]> git.sesse.net Git - kdenlive/blobdiff - src/projectlist.cpp
Correctly focus clips / folders when they are created:
[kdenlive] / src / projectlist.cpp
index db61f5042a4065f375d08f8e9b692e8aa1a859d3..698a16f2919d7da0638833791276656e6020e94c 100644 (file)
@@ -94,7 +94,7 @@ ProjectList::ProjectList(QWidget *parent) :
     connect(m_listView, SIGNAL(pauseMonitor()), this, SLOT(slotPauseMonitor()));
     connect(m_listView, SIGNAL(requestMenu(const QPoint &, QTreeWidgetItem *)), this, SLOT(slotContextMenu(const QPoint &, QTreeWidgetItem *)));
     connect(m_listView, SIGNAL(addClip()), this, SLOT(slotAddClip()));
-    connect(m_listView, SIGNAL(addClip(const QList <QUrl>, const QString &)), this, SLOT(slotAddClip(const QList <QUrl>, const QString &)));
+    connect(m_listView, SIGNAL(addClip(const QList <QUrl>, const QString &, const QString &)), this, SLOT(slotAddClip(const QList <QUrl>, const QString &, const QString &)));
     connect(m_listView, SIGNAL(itemChanged(QTreeWidgetItem *, int)), this, SLOT(slotItemEdited(QTreeWidgetItem *, int)));
     connect(m_listView, SIGNAL(showProperties(DocClipBase *)), this, SIGNAL(showClipProperties(DocClipBase *)));
 
@@ -454,7 +454,7 @@ void ProjectList::slotAddFolder(const QString foldername, const QString &clipId,
             QStringList text;
             text << QString() << foldername;
             m_listView->blockSignals(true);
-            (void) new ProjectItem(m_listView, text, clipId);
+            m_listView->setCurrentItem(new ProjectItem(m_listView, text, clipId));
             m_doc->clipManager()->addFolder(clipId, foldername);
             m_listView->blockSignals(false);
         }
@@ -498,7 +498,6 @@ void ProjectList::slotAddClip(DocClipBase *clip, bool getProperties)
         if (parentitem) item = new ProjectItem(parentitem, clip);
     }
     if (item == NULL) item = new ProjectItem(m_listView, clip);
-
     KUrl url = clip->fileURL();
     if (!url.isEmpty() && KdenliveSettings::activate_nepomuk()) {
         // if file has Nepomuk comment, use it
@@ -596,7 +595,7 @@ void ProjectList::updateAllClips()
     QTimer::singleShot(500, this, SLOT(slotCheckForEmptyQueue()));
 }
 
-void ProjectList::slotAddClip(const QList <QUrl> givenList, QString group)
+void ProjectList::slotAddClip(const QList <QUrl> givenList, const QString &groupName, const QString &groupId)
 {
     if (!m_commandStack) kDebug() << "!!!!!!!!!!!!!!!! NO CMD STK";
     KUrl::List list;
@@ -622,10 +621,10 @@ void ProjectList::slotAddClip(const QList <QUrl> givenList, QString group)
     }
     if (list.isEmpty()) return;
 
-    if (group.isEmpty()) {
+    if (givenList.isEmpty()) {
         QStringList groupInfo = getGroup();
         m_doc->slotAddClipList(list, groupInfo.at(0), groupInfo.at(1));
-    } else m_doc->slotAddClipList(list, group, QString());
+    } else m_doc->slotAddClipList(list, groupName, groupId);
 }
 
 void ProjectList::slotRemoveInvalidClip(const QString &id, bool replace)
@@ -659,8 +658,7 @@ void ProjectList::slotAddColorClip()
         QString color = dia_ui.clip_color->color().name();
         color = color.replace(0, 1, "0x") + "ff";
         QStringList groupInfo = getGroup();
-        m_doc->clipManager()->slotAddColorClipFile(dia_ui.clip_name->text(), color, dia_ui.clip_duration->text(), groupInfo.at(0), groupInfo.at(1));
-        m_doc->setModified(true);
+        m_doc->slotCreateColorClip(dia_ui.clip_name->text(), color, dia_ui.clip_duration->text(), groupInfo.at(0), groupInfo.at(1));
     }
     delete dia;
 }
@@ -673,8 +671,7 @@ void ProjectList::slotAddSlideshowClip()
 
     if (dia->exec() == QDialog::Accepted) {
         QStringList groupInfo = getGroup();
-        m_doc->clipManager()->slotAddSlideshowClipFile(dia->clipName(), dia->selectedPath(), dia->imageCount(), dia->clipDuration(), dia->loop(), dia->fade(), dia->lumaDuration(), dia->lumaFile(), dia->softness(), groupInfo.at(0), groupInfo.at(1));
-        m_doc->setModified(true);
+        m_doc->slotCreateSlideshowClipFile(dia->clipName(), dia->selectedPath(), dia->imageCount(), dia->clipDuration(), dia->loop(), dia->fade(), dia->lumaDuration(), dia->lumaFile(), dia->softness(), groupInfo.at(0), groupInfo.at(1));
     }
     delete dia;
 }