]> git.sesse.net Git - kdenlive/blobdiff - src/projectlist.cpp
Correctly update monitor when changing a title clip duration
[kdenlive] / src / projectlist.cpp
index fe503c87f85f67f8cc00d65f97f725054c4da1d0..af531d2565490be6ca812177ee7e0d9988c8f3ed 100644 (file)
@@ -314,11 +314,14 @@ void ProjectList::slotUpdateClipProperties(const QString &id, QMap <QString, QSt
     ProjectItem *item = getItemById(id);
     if (item) {
         slotUpdateClipProperties(item, properties);
-        if (properties.contains("colour") || properties.contains("resource") || properties.contains("xmldata") || properties.contains("force_aspect_ratio") || properties.contains("templatetext")) {
+        if (properties.contains("out")) {
+            slotReloadClip(id);
+            //item->changeDuration(properties.value("out").toInt());
+        }
+        else if (properties.contains("colour") || properties.contains("resource") || properties.contains("xmldata") || properties.contains("force_aspect_ratio") || properties.contains("templatetext")) {
             slotRefreshClipThumbnail(item);
             emit refreshClip();
         }
-        if (properties.contains("out")) item->changeDuration(properties.value("out").toInt());
     }
 }
 
@@ -544,7 +547,6 @@ void ProjectList::slotAddClip(DocClipBase *clip, bool getProperties)
         //m_render->getFileProperties(clip->toXML(), clip->getId(), true);
     }
     const QString parent = clip->getProperty("groupid");
-    kDebug() << "Adding clip with groupid: " << parent;
     ProjectItem *item = NULL;
     if (!parent.isEmpty()) {
         ProjectItem *parentitem = getFolderItemById(parent);
@@ -852,7 +854,7 @@ void ProjectList::slotCheckForEmptyQueue()
     if (!m_refreshed && m_thumbnailQueue.isEmpty() && m_infoQueue.isEmpty()) {
         m_refreshed = true;
         emit loadingIsOver();
-        emit displayMessage(QString(), DefaultMessage);
+        emit displayMessage(QString(), -1);
         m_listView->blockSignals(false);
         m_listView->setEnabled(true);
     } else if (!m_refreshed) QTimer::singleShot(300, this, SLOT(slotCheckForEmptyQueue()));
@@ -860,6 +862,7 @@ void ProjectList::slotCheckForEmptyQueue()
 
 void ProjectList::reloadClipThumbnails()
 {
+    kDebug() << "//////////////  RELOAD CLIPS THUMBNAILS!!!";
     m_thumbnailQueue.clear();
     QTreeWidgetItemIterator it(m_listView);
     while (*it) {
@@ -872,7 +875,7 @@ void ProjectList::reloadClipThumbnails()
 
 void ProjectList::requestClipThumbnail(const QString id)
 {
-    m_thumbnailQueue.append(id);
+    if (!m_thumbnailQueue.contains(id)) m_thumbnailQueue.append(id);
 }
 
 void ProjectList::slotProcessNextThumbnail()
@@ -885,10 +888,11 @@ void ProjectList::slotProcessNextThumbnail()
         //QTimer::singleShot(300, this, SLOT(slotProcessNextThumbnail()));
         return;
     }
-    slotRefreshClipThumbnail(m_thumbnailQueue.takeFirst(), false);
     if (m_thumbnailQueue.count() > 1) {
-        emit displayMessage(i18n("Loading thumbnails (%1)", m_thumbnailQueue.count()), InformationMessage);
+        int max = m_doc->clipManager()->clipsCount();
+        emit displayMessage(i18n("Loading thumbnails"), (int)(100 * (max - m_thumbnailQueue.count()) / max));
     }
+    slotRefreshClipThumbnail(m_thumbnailQueue.takeFirst(), false);
 }
 
 void ProjectList::slotRefreshClipThumbnail(const QString &clipId, bool update)
@@ -947,8 +951,8 @@ void ProjectList::slotReplyGetFileProperties(const QString &clipId, Mlt::Produce
             requestClipThumbnail(clipId);
         }
     } else kDebug() << "////////  COULD NOT FIND CLIP TO UPDATE PRPS...";
-    emit displayMessage(i18n("Loading clips (%1)", m_infoQueue.count()), InformationMessage);
-    
+    int max = m_doc->clipManager()->clipsCount();
+    emit displayMessage(i18n("Loading clips"), (int)(100 * (max - m_infoQueue.count()) / max));
     // small delay so that the app can display the progress info
     QTimer::singleShot(30, this, SLOT(slotProcessNextClipInQueue()));
 }