]> git.sesse.net Git - kdenlive/blobdiff - src/customtrackview.cpp
Fix some crashes on proxy operations
[kdenlive] / src / customtrackview.cpp
index 844a171e64ffaa0b6934f91aff7236b851163218..6b2165ed3edb17fe60309f6756d99cdad9e129fc 100644 (file)
@@ -4130,6 +4130,7 @@ void CustomTrackView::addClip(QDomElement xml, const QString &clipId, ItemInfo i
 void CustomTrackView::slotUpdateClip(const QString &clipId, bool reload)
 {
     QList<QGraphicsItem *> list = scene()->items();
+    QList <ClipItem *>clipList;
     ClipItem *clip = NULL;
     for (int i = 0; i < list.size(); ++i) {
         if (list.at(i)->type() == AVWIDGET) {
@@ -4139,10 +4140,12 @@ void CustomTrackView::slotUpdateClip(const QString &clipId, bool reload)
                 if (reload && !m_document->renderer()->mltUpdateClip(info, clip->xml(), clip->baseClip()->producer(info.track))) {
                     emit displayMessage(i18n("Cannot update clip (time: %1, track: %2)", info.startPos.frames(m_document->fps()), info.track), ErrorMessage);
                 }
-                clip->refreshClip(true, true);
+                else clipList.append(clip);
             }
         }
     }
+    for (int i = 0; i < clipList.count(); i++)
+        clipList.at(i)->refreshClip(true, true);
 }
 
 ClipItem *CustomTrackView::getClipItemAtEnd(GenTime pos, int track)