- QAction *addClipButton = addMenu->addAction (KIcon("document-new"), i18n("Add Clip"));
- connect(addClipButton, SIGNAL(triggered()), this, SLOT(slotAddClip()));
-
- QAction *addColorClip = addMenu->addAction (KIcon("document-new"), i18n("Add Color Clip"));
- connect(addColorClip, SIGNAL(triggered()), this, SLOT(slotAddColorClip()));
-
- QAction *addTitleClip = addMenu->addAction (KIcon("document-new"), i18n("Add Title Clip"));
- connect(addTitleClip, SIGNAL(triggered()), this, SLOT(slotAddTitleClip()));
-
- m_deleteAction = m_toolbar->addAction (KIcon("edit-delete"), i18n("Delete Clip"));
- connect(m_deleteAction, SIGNAL(triggered()), this, SLOT(slotRemoveClip()));
-
- m_editAction = m_toolbar->addAction (KIcon("document-properties"), i18n("Edit Clip"));
- connect(m_editAction, SIGNAL(triggered()), this, SLOT(slotEditClip()));
-
- QAction *addFolderButton = addMenu->addAction (KIcon("folder-new"), i18n("Create Folder"));
- connect(addFolderButton, SIGNAL(triggered()), this, SLOT(slotAddFolder()));
-
- addButton->setDefaultAction( addClipButton );
-
- layout->addWidget( m_toolbar );
- layout->addWidget( listView );
- setLayout( layout );
- //m_toolbar->setEnabled(false);
-
- searchView->setTreeWidget(listView);
- listView->setColumnCount(3);
- QStringList headers;
- headers<<i18n("Thumbnail")<<i18n("Filename")<<i18n("Description");
- listView->setHeaderLabels(headers);
- listView->sortByColumn(1, Qt::AscendingOrder);
-
- m_menu = new QMenu();
- m_menu->addAction(addClipButton);
- m_menu->addAction(addColorClip);
- m_menu->addAction(addTitleClip);
- m_menu->addAction(m_editAction);
- m_menu->addAction(m_deleteAction);
- m_menu->addAction(addFolderButton);
- m_menu->insertSeparator(m_deleteAction);
-
- connect(listView, SIGNAL(itemSelectionChanged()), this, SLOT(slotClipSelected()));
- connect(listView, SIGNAL(requestMenu ( const QPoint &, QTreeWidgetItem * )), this, SLOT(slotContextMenu(const QPoint &, QTreeWidgetItem *)));
- connect(listView, SIGNAL(addClip ()), this, SLOT(slotAddClip()));
- connect(listView, SIGNAL(addClip (QUrl, const QString &)), this, SLOT(slotAddClip(QUrl, const QString &)));
- connect(listView, SIGNAL (itemChanged ( QTreeWidgetItem *, int )), this, SLOT(slotUpdateItemDescription(QTreeWidgetItem *, int )));
-
- m_listViewDelegate = new ItemDelegate(listView);
- listView->setItemDelegate(m_listViewDelegate);
- listView->setIconSize(QSize(60, 40));
- listView->setSortingEnabled (true);
-}
-
-ProjectList::~ProjectList()
-{
- delete m_menu;
- delete m_toolbar;
-}
-
-void ProjectList::setRenderer(Render *projectRender)
-{
- m_render = projectRender;
-}
-
-void ProjectList::slotClipSelected()
-{
- ProjectItem *item = (ProjectItem*) listView->currentItem();
- if (item && !item->isGroup()) emit clipSelected(item->toXml());
-}
-
-void ProjectList::slotUpdateItemDescription( QTreeWidgetItem *item, int column)
-{
- if (column != 2) return;
- ProjectItem *clip = (ProjectItem*) item;
- CLIPTYPE type = clip->clipType();
- if (type == AUDIO || type == VIDEO || type == AV || type == IMAGE || type == PLAYLIST) {
- // Use Nepomuk system to store clip description
- Nepomuk::Resource f( clip->clipUrl().path() );
- f.setDescription(item->text(2));
- kDebug()<<"NEPOMUK, SETTING CLIP: "<<clip->clipUrl().path()<<", TO TEXT: "<<item->text(2);
- }
-}
-
-void ProjectList::slotEditClip()
-{
- kDebug()<<"//////////////////////////////////////// DBL CLK";
-}
-
-
-void ProjectList::slotEditClip(QTreeWidgetItem *item, int column)
-{
- kDebug()<<"//////////////////////////////////////// DBL CLK";
-}
-
-void ProjectList::slotContextMenu( const QPoint &pos, QTreeWidgetItem *item )
-{
- bool enable = false;
- if (item) {
- QFrame *w = new QFrame;
- w->setFrameShape(QFrame::StyledPanel);
- w->setLineWidth(2);
- w->setAutoFillBackground(true);
- QHBoxLayout *layout = new QHBoxLayout;
- layout->addWidget( new QLabel(i18n("Color:")));
- layout->addWidget( new KColorButton());
- layout->addWidget( new QLabel(i18n("Duration:")));
- layout->addWidget( new KRestrictedLine());
- w->setLayout( layout );
- m_listViewDelegate->extendItem(w, listView->currentIndex());
- enable = true;
- }
- m_editAction->setEnabled(enable);
- m_deleteAction->setEnabled(enable);
-
- m_menu->popup(pos);
-}
-
-void ProjectList::slotRemoveClip()
-{
-
- if (!m_commandStack) kDebug()<<"!!!!!!!!!!!!!!!! NO CMD STK";
- if (!listView->currentItem()) return;
- ProjectItem *item = ((ProjectItem *)listView->currentItem());
- if (item->numReferences() > 0) {
- if (KMessageBox::questionYesNo(this, i18n("Delete clip <b>%1</b> ?<br>This will also remove its %2 clips in timeline").arg(item->names().at(1)).arg(item->numReferences()), i18n("Delete Clip")) != KMessageBox::Yes) return;
- }
- m_doc->deleteProjectClip(item->clipId());
-}
-
-void ProjectList::selectItemById(const int clipId)
-{
- ProjectItem *item = getItemById(clipId);
- if (item) listView->setCurrentItem(item);
-}
-
-void ProjectList::addClip(const QStringList &name, const QDomElement &elem, const int clipId, const KUrl &url, const QString &group, int parentId)
-{
- kDebug()<<"///////// ADDING VCLIP=: "<<name;
- ProjectItem *item;
- ProjectItem *groupItem = NULL;
- QString groupName;
- if (group.isEmpty()) groupName = elem.attribute("group", QString::null);
- else groupName = group;
- if (elem.isNull() && url.isEmpty()) {
- // this is a folder
- groupName = name.at(1);
- QList<QTreeWidgetItem *> groupList = listView->findItems(groupName, Qt::MatchExactly, 1);
- if (groupList.isEmpty()) {
- (void) new ProjectItem(listView, name, clipId);