]> git.sesse.net Git - kdenlive/blobdiff - src/clipmanager.cpp
Fix track labels not correctly updated on track size change
[kdenlive] / src / clipmanager.cpp
index c43b583d25660d12d6251d4068c5c81139ab50f1..afac6ef5c1d57000e0e1d78c2078bbc3ed5758d5 100644 (file)
@@ -144,12 +144,10 @@ void ClipManager::addClip(DocClipBase *clip)
 
 void ClipManager::slotDeleteClip(const QString &clipId)
 {
-    for (int i = 0; i < m_clipList.count(); i++) {
-        if (m_clipList.at(i)->getId() == clipId) {
-            AddClipCommand *command = new AddClipCommand(m_doc, m_clipList.at(i)->toXML(), clipId, false);
-            m_doc->commandStack()->push(command);
-            break;
-        }
+    DocClipBase *clip = getClipById(clipId);
+    if (clip) {
+        AddClipCommand *command = new AddClipCommand(m_doc, clip->toXML(), clipId, false);
+        m_doc->commandStack()->push(command);
     }
 }
 
@@ -157,9 +155,7 @@ void ClipManager::deleteClip(const QString &clipId)
 {
     for (int i = 0; i < m_clipList.count(); i++) {
         if (m_clipList.at(i)->getId() == clipId) {
-            DocClipBase *clip = m_clipList.takeAt(i);
-            delete clip;
-            clip = NULL;
+            delete m_clipList.takeAt(i);
             break;
         }
     }
@@ -185,8 +181,11 @@ DocClipBase *ClipManager::getClipById(QString clipId)
 
 DocClipBase *ClipManager::getClipByResource(QString resource)
 {
+    QString clipResource;
     for (int i = 0; i < m_clipList.count(); i++) {
-        if (m_clipList.at(i)->getProperty("resource") == resource) {
+        clipResource = m_clipList.at(i)->getProperty("resource");
+        if (clipResource.isEmpty()) clipResource = m_clipList.at(i)->getProperty("colour");
+        if (clipResource == resource) {
             return m_clipList.at(i);
         }
     }