]> git.sesse.net Git - kdenlive/commitdiff
Fix audio thumbs not displayed on project opening and abortion if audio thumbs creation
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Tue, 18 May 2010 14:42:47 +0000 (14:42 +0000)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Tue, 18 May 2010 14:42:47 +0000 (14:42 +0000)
svn path=/trunk/kdenlive/; revision=4453

src/clipmanager.cpp
src/clipmanager.h
src/docclipbase.cpp
src/docclipbase.h
src/projectlist.cpp

index 7db3a4af928144868505aacb9d31a257af2fb8b7..f4dce6475b974bb258cda5e9143fd0dad83dd630 100644 (file)
@@ -40,7 +40,6 @@ ClipManager::ClipManager(KdenliveDoc *doc) :
         QObject(),
         m_audioThumbsQueue(),
         m_doc(doc),
-        m_audioThumbsEnabled(false),
         m_generatingAudioId()
 {
     m_clipIdCounter = 1;
@@ -70,18 +69,20 @@ void ClipManager::clear()
 
 void ClipManager::checkAudioThumbs()
 {
-    if (m_audioThumbsEnabled == KdenliveSettings::audiothumbnails()) return;
-    m_audioThumbsEnabled = KdenliveSettings::audiothumbnails();
-    for (int i = 0; i < m_clipList.count(); i++) {
-        if (m_audioThumbsEnabled) m_audioThumbsQueue.append(m_clipList.at(i)->getId());
-        else m_clipList.at(i)->slotClearAudioCache();
-    }
-    if (m_audioThumbsEnabled) {
-        if (m_generatingAudioId.isEmpty()) startAudioThumbsGeneration();
-    } else {
+    if (!KdenliveSettings::audiothumbnails()) {
+      if (!m_generatingAudioId.isEmpty()) {
+           DocClipBase *clip = getClipById(m_generatingAudioId);
+           if (clip) clip->slotClearAudioCache();
+       }
         m_audioThumbsQueue.clear();
         m_generatingAudioId.clear();
+       return;
+    }
+    
+    for (int i = 0; i < m_clipList.count(); i++) {
+        m_audioThumbsQueue.append(m_clipList.at(i)->getId());
     }
+    if (m_generatingAudioId.isEmpty()) startAudioThumbsGeneration();
 }
 
 void ClipManager::askForAudioThumb(const QString &id)
index bb45d4ffc9f720d2175611dde6bc056c93a45830..943d6a56e7c6ac3736593f5a4252b986e5879efa 100644 (file)
@@ -118,7 +118,6 @@ private:   // Private attributes
     KdenliveDoc *m_doc;
     int m_clipIdCounter;
     int m_folderIdCounter;
-    bool m_audioThumbsEnabled;
     QString m_generatingAudioId;
     KDirWatch m_fileWatcher;
 
index 599f32f5236ac5822bfb7e7293641d81330bb399..41eb8c5e34c35bcb57fe841d6fdaa81d00db02e8 100644 (file)
@@ -133,7 +133,6 @@ QPoint DocClipBase::zone() const
 void DocClipBase::slotCreateAudioTimer()
 {
     connect(m_thumbProd, SIGNAL(audioThumbReady(QMap <int, QMap <int, QByteArray> >)), this , SLOT(updateAudioThumbnail(QMap <int, QMap <int, QByteArray> >)));
-    connect(this, SIGNAL(getAudioThumbs()), this , SLOT(slotGetAudioThumbs()));
     m_audioTimer = new QTimer(this);
     connect(m_audioTimer, SIGNAL(timeout()), this, SLOT(slotGetAudioThumbs()));
 }
index 6ad3894c7a3c8c0bf77f51d15a2335aee543357a..60e1402baa9fd3d1c6ce3205e09a1625b451be04 100644 (file)
@@ -265,7 +265,6 @@ public slots:
 
 
 signals:
-    void getAudioThumbs();
     void gotAudioData();
 };
 
index 2ced59add8da311075e4ff9f6f500e97d46e04e5..6fcbd91a9fe0887418245ede1526ca611f7a967d 100644 (file)
@@ -830,9 +830,9 @@ void ProjectList::slotAddClip(DocClipBase *clip, bool getProperties)
         QDomElement e = clip->toXML().cloneNode().toElement();
         e.removeAttribute("file_hash");
         m_infoQueue.insert(clip->getId(), e);
-        clip->askForAudioThumbs();
         //m_render->getFileProperties(clip->toXML(), clip->getId(), true);
     }
+    clip->askForAudioThumbs();
     const QString parent = clip->getProperty("groupid");
     ProjectItem *item = NULL;
     if (!parent.isEmpty()) {