]> git.sesse.net Git - kdenlive/commitdiff
Fix undo / redo with effect groups
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Fri, 30 Mar 2012 15:46:14 +0000 (17:46 +0200)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Fri, 30 Mar 2012 15:46:14 +0000 (17:46 +0200)
src/commands/editeffectcommand.cpp
src/commands/editeffectcommand.h
src/customtrackview.cpp
src/customtrackview.h
src/effectslist.cpp
src/effectslist.h
src/effectstack/collapsiblegroup.cpp
src/effectstack/collapsiblegroup.h
src/effectstack/effectstackview2.cpp
src/effectstack/effectstackview2.h
src/mainwindow.cpp

index b6a98145f2c0ab8605a3a859edafd30e5e9519b6..73ca47f220783acbe090d454dc053532d6c1664c 100644 (file)
@@ -23,7 +23,7 @@
 
 #include <KLocale>
 
-EditEffectCommand::EditEffectCommand(CustomTrackView *view, const int track, GenTime pos, QDomElement oldeffect, QDomElement effect, int stackPos, bool doIt, QUndoCommand *parent) :
+EditEffectCommand::EditEffectCommand(CustomTrackView *view, const int track, GenTime pos, QDomElement oldeffect, QDomElement effect, int stackPos, bool refreshEffectStack, bool doIt, QUndoCommand *parent) :
         QUndoCommand(parent),
         m_view(view),
         m_track(track),
@@ -31,7 +31,8 @@ EditEffectCommand::EditEffectCommand(CustomTrackView *view, const int track, Gen
         m_effect(effect),
         m_pos(pos),
         m_stackPos(stackPos),
-        m_doIt(doIt)
+        m_doIt(doIt),
+        m_refreshEffectStack(refreshEffectStack)
 {
     QString effectName;
     QDomElement namenode = effect.firstChildElement("name");
@@ -51,6 +52,7 @@ bool EditEffectCommand::mergeWith(const QUndoCommand * other)
 {
     if (other->id() != id()) return false;
     if (m_track != static_cast<const EditEffectCommand*>(other)->m_track) return false;
+    if (m_stackPos != static_cast<const EditEffectCommand*>(other)->m_stackPos) return false;
     if (m_pos != static_cast<const EditEffectCommand*>(other)->m_pos) return false;
     m_effect = static_cast<const EditEffectCommand*>(other)->m_effect.cloneNode().toElement();
     return true;
@@ -59,13 +61,14 @@ bool EditEffectCommand::mergeWith(const QUndoCommand * other)
 // virtual
 void EditEffectCommand::undo()
 {
-    m_view->updateEffect(m_track, m_pos, m_oldeffect, m_stackPos, false);
+    m_view->updateEffect(m_track, m_pos, m_oldeffect, m_stackPos, true);
 }
 // virtual
 void EditEffectCommand::redo()
 {
-    m_view->updateEffect(m_track, m_pos, m_effect, m_stackPos, m_doIt);
-    m_doIt = false;
+    if (m_doIt) m_view->updateEffect(m_track, m_pos, m_effect, m_stackPos, m_refreshEffectStack);
+    m_doIt = true;
+    m_refreshEffectStack = true;
 }
 
 
index c793fd4f842ac3962644dd5d8ec9b3fb7381b7f1..6129420ed532a5cbad8baaa2a7b9756b36cbf6b1 100644 (file)
@@ -31,7 +31,7 @@ class CustomTrackView;
 class EditEffectCommand : public QUndoCommand
 {
 public:
-    EditEffectCommand(CustomTrackView *view, const int track, GenTime pos, QDomElement oldeffect, QDomElement effect, int stackPos, bool doIt, QUndoCommand *parent = 0);
+    EditEffectCommand(CustomTrackView *view, const int track, GenTime pos, QDomElement oldeffect, QDomElement effect, int stackPos, bool refreshEffectStack, bool doIt, QUndoCommand *parent = 0);
 
     virtual int id() const;
     virtual bool mergeWith(const QUndoCommand * command);
@@ -46,6 +46,7 @@ private:
     const GenTime m_pos;
     int m_stackPos;
     bool m_doIt;
+    bool m_refreshEffectStack;
 };
 
 #endif
index 3cd0003b61877a2505e403175e2b266462233e06..b292a1ff0c4bfa2daf1c06098352e70fcfc118e8 100644 (file)
@@ -1287,7 +1287,7 @@ void CustomTrackView::mouseDoubleClickEvent(QMouseEvent *event)
             //item->updateKeyframeEffect();
             //QString next = item->keyframes(item->selectedEffectIndex());
             QDomElement newEffect = item->selectedEffect().cloneNode().toElement();
-            EditEffectCommand *command = new EditEffectCommand(this, m_document->tracksCount() - item->track(), item->startPos(), oldEffect, newEffect, item->selectedEffectIndex(), false);
+            EditEffectCommand *command = new EditEffectCommand(this, m_document->tracksCount() - item->track(), item->startPos(), oldEffect, newEffect, item->selectedEffectIndex(), false, false);
             //EditKeyFrameCommand *command = new EditKeyFrameCommand(this, m_dragItem->track(), m_dragItem->startPos(), item->selectedEffectIndex(), previous, next, false);
             m_commandStack->push(command);
             updateEffect(m_document->tracksCount() - item->track(), item->startPos(), item->selectedEffect(), item->selectedEffectIndex());
@@ -1904,7 +1904,7 @@ void CustomTrackView::slotDeleteEffect(ClipItem *clip, int track, QDomElement ef
     setDocumentModified();
 }
 
-void CustomTrackView::updateEffect(int track, GenTime pos, QDomElement insertedEffect, int ix, bool triggeredByUser)
+void CustomTrackView::updateEffect(int track, GenTime pos, QDomElement insertedEffect, int ix, bool updateEffectStack)
 {
     if (insertedEffect.isNull()) {
         emit displayMessage(i18n("Problem editing effect"), ErrorMessage);
@@ -1942,11 +1942,12 @@ void CustomTrackView::updateEffect(int track, GenTime pos, QDomElement insertedE
                 doChangeClipSpeed(clip->info(), clip->speedIndependantInfo(), speed, clip->speed(), strobe, clip->baseClip()->getId());
             }
             if (clip->updateEffect(effect)) {
-               if (ix == clip->selectedEffectIndex()) {
-                   clip->setSelectedEffect(ix);
-                   if (!triggeredByUser)
+               if (updateEffectStack && clip->isSelected())
                        emit clipItemSelected(clip, ix);
-               }
+               /*if (ix == clip->selectedEffectIndex()) {
+                   clip->setSelectedEffect(ix);
+                   
+               }*/
            } else emit displayMessage(i18n("Problem editing effect"), ErrorMessage);
             return;
         }
@@ -1969,15 +1970,15 @@ void CustomTrackView::updateEffect(int track, GenTime pos, QDomElement insertedE
                 clip->setFadeOut(pos);
             }
         }
-       bool success = true;
-        if (!m_document->renderer()->mltEditEffect(m_document->tracksCount() - clip->track(), clip->startPos(), effectParams)) success = false;
+       bool success = m_document->renderer()->mltEditEffect(m_document->tracksCount() - clip->track(), clip->startPos(), effectParams);
 
         if (success && clip->updateEffect(effect)) {
-           if (ix == clip->selectedEffectIndex()) {
-               clip->setSelectedEffect(ix);
-               if (!triggeredByUser)
-                   emit clipItemSelected(clip, ix);
+           if (updateEffectStack && clip->isSelected()) {
+               emit clipItemSelected(clip, ix);
            }
+           /*if (ix == clip->selectedEffectIndex()) {
+               clip->setSelectedEffect(ix);
+           }*/
        }
        else emit displayMessage(i18n("Problem editing effect"), ErrorMessage);
     }
@@ -2038,9 +2039,9 @@ void CustomTrackView::slotChangeEffectState(ClipItem *clip, int track, int effec
 
     if (clip == NULL) {
         // editing track effect
-        command = new EditEffectCommand(this, m_document->tracksCount() - track, GenTime(-1), oldEffect, effect, effectPos, true);
+        command = new EditEffectCommand(this, m_document->tracksCount() - track, GenTime(-1), oldEffect, effect, effectPos, true, true);
     } else {
-        command = new EditEffectCommand(this, m_document->tracksCount() - clip->track(), clip->startPos(), oldEffect, effect, effectPos, true);
+        command = new EditEffectCommand(this, m_document->tracksCount() - clip->track(), clip->startPos(), oldEffect, effect, effectPos, true, true);
     }
     m_commandStack->push(command);
     setDocumentModified();;
@@ -2057,11 +2058,11 @@ void CustomTrackView::slotChangeEffectPosition(ClipItem *clip, int track, int cu
     setDocumentModified();
 }
 
-void CustomTrackView::slotUpdateClipEffect(ClipItem *clip, int track, QDomElement oldeffect, QDomElement effect, int ix)
+void CustomTrackView::slotUpdateClipEffect(ClipItem *clip, int track, QDomElement oldeffect, QDomElement effect, int ix, bool refreshEffectStack)
 {
     EditEffectCommand *command;
-    if (clip) command = new EditEffectCommand(this, m_document->tracksCount() - clip->track(), clip->startPos(), oldeffect, effect, ix, true);
-    else command = new EditEffectCommand(this, m_document->tracksCount() - track, GenTime(-1), oldeffect, effect, ix, true);
+    if (clip) command = new EditEffectCommand(this, m_document->tracksCount() - clip->track(), clip->startPos(), oldeffect, effect, ix, refreshEffectStack, true);
+    else command = new EditEffectCommand(this, m_document->tracksCount() - track, GenTime(-1), oldeffect, effect, ix, refreshEffectStack, true);
     m_commandStack->push(command);
 }
 
@@ -2070,7 +2071,7 @@ void CustomTrackView::slotUpdateClipRegion(ClipItem *clip, int ix, QString regio
     QDomElement effect = clip->getEffectAt(ix);
     QDomElement oldeffect = effect.cloneNode().toElement();
     effect.setAttribute("region", region);
-    EditEffectCommand *command = new EditEffectCommand(this, m_document->tracksCount() - clip->track(), clip->startPos(), oldeffect, effect, ix, true);
+    EditEffectCommand *command = new EditEffectCommand(this, m_document->tracksCount() - clip->track(), clip->startPos(), oldeffect, effect, ix, true, true);
     m_commandStack->push(command);
 }
 
@@ -3769,7 +3770,7 @@ void CustomTrackView::mouseReleaseEvent(QMouseEvent * event)
         //item->updateKeyframeEffect();
         //QString next = item->keyframes(item->selectedEffectIndex());
         //EditKeyFrameCommand *command = new EditKeyFrameCommand(this, item->track(), item->startPos(), item->selectedEffectIndex(), previous, next, false);
-        EditEffectCommand *command = new EditEffectCommand(this, m_document->tracksCount() - item->track(), item->startPos(), oldEffect, newEffect, item->selectedEffectIndex(), false);
+        EditEffectCommand *command = new EditEffectCommand(this, m_document->tracksCount() - item->track(), item->startPos(), oldEffect, newEffect, item->selectedEffectIndex(), false, false);
 
         m_commandStack->push(command);
         updateEffect(m_document->tracksCount() - item->track(), item->startPos(), item->selectedEffect(), item->selectedEffectIndex());
@@ -6830,7 +6831,7 @@ void CustomTrackView::adjustEffects(ClipItem* item, ItemInfo oldInfo, QUndoComma
     if (effects.count()) {
         QMap<int, QDomElement>::const_iterator i = effects.constBegin();
         while (i != effects.constEnd()) {
-            new EditEffectCommand(this, m_document->tracksCount() - item->track(), item->startPos(), i.value(), item->effectAt(i.key()), i.key(), false, command);
+            new EditEffectCommand(this, m_document->tracksCount() - item->track(), item->startPos(), i.value(), item->effectAt(i.key()), i.key(), false, false, command);
             ++i;
         }
     }
@@ -6854,7 +6855,7 @@ void CustomTrackView::slotGotFilterJobResults(const QString &/*id*/, int startPo
             kDebug()<<"// RESULT FILTER: "<<i.key()<<"="<< i.value();
             ++i;
         }
-        EditEffectCommand *command = new EditEffectCommand(this, m_document->tracksCount() - clip->track(), clip->startPos(), effect, newEffect, clip->selectedEffectIndex(), true);
+        EditEffectCommand *command = new EditEffectCommand(this, m_document->tracksCount() - clip->track(), clip->startPos(), effect, newEffect, clip->selectedEffectIndex(), true, true);
         m_commandStack->push(command);
         emit clipItemSelected(clip, clip->selectedEffectIndex());
     }
index 6a66ae68c253e59b88a21b98c571e0f49753011d..76b5cfed76b29880e5e8cb9103cd77b1f2e02ac7 100644 (file)
@@ -76,7 +76,7 @@ public:
     void slotAddGroupEffect(QDomElement effect, AbstractGroupItem *group);
     void addEffect(int track, GenTime pos, QDomElement effect);
     void deleteEffect(int track, GenTime pos, QDomElement effect);
-    void updateEffect(int track, GenTime pos, QDomElement insertedEffect, int ix, bool triggeredByUser = true);
+    void updateEffect(int track, GenTime pos, QDomElement insertedEffect, int ix, bool refreshEffectStack = false);
     void moveEffect(int track, GenTime pos, int oldPos, int newPos);
     void addTransition(ItemInfo transitionInfo, int endTrack, QDomElement params, bool refresh);
     void deleteTransition(ItemInfo transitionInfo, int endTrack, QDomElement params, bool refresh);
@@ -194,7 +194,7 @@ public slots:
     void slotDeleteEffect(ClipItem *clip, int track, QDomElement effect, bool affectGroup = true);
     void slotChangeEffectState(ClipItem *clip, int track, int effectPos, bool disable);
     void slotChangeEffectPosition(ClipItem *clip, int track, int currentPos, int newPos);
-    void slotUpdateClipEffect(ClipItem *clip, int track, QDomElement oldeffect, QDomElement effect, int ix);
+    void slotUpdateClipEffect(ClipItem *clip, int track, QDomElement oldeffect, QDomElement effect, int ix, bool refreshEffectStack = true);
     void slotUpdateClipRegion(ClipItem *clip, int ix, QString region);
     void slotRefreshEffects(ClipItem *clip);
     void setDuration(int duration);
index 68706abb02dd2800852efe3f0b0152068e026a3f..f673c0e1ed6ad79e5fc823281fdf7708160ea5a8 100644 (file)
@@ -303,7 +303,7 @@ QDomElement EffectsList::append(QDomElement e)
     if (!e.isNull()) {
        result = m_baseElement.appendChild(importNode(e, true)).toElement();
        if (m_useIndex) {
-           updateIndexes(m_baseElement.childNodes());
+           updateIndexes(m_baseElement.childNodes(), m_baseElement.childNodes().count() - 1);
        }
     }
     return result;
@@ -331,7 +331,7 @@ void EffectsList::removeAt(int ix)
     QDomNodeList effects = m_baseElement.childNodes();
     if (ix <= 0 || ix > effects.count()) return;
     m_baseElement.removeChild(effects.at(ix - 1));
-    if (m_useIndex) updateIndexes(effects);
+    if (m_useIndex) updateIndexes(effects, ix - 1);
 }
 
 QDomElement EffectsList::itemFromIndex(int ix) const
@@ -346,18 +346,21 @@ QDomElement EffectsList::insert(QDomElement effect)
     QDomNodeList effects = m_baseElement.childNodes();
     int ix = effect.attribute("kdenlive_ix").toInt();
     QDomElement result;
-    if (effect.hasAttribute("kdenlive_ix") && ix > effects.count()) result = m_baseElement.appendChild(importNode(effect, true)).toElement();
+    if (effect.hasAttribute("kdenlive_ix") && ix > effects.count()) {
+       ix = effects.count();
+       result = m_baseElement.appendChild(importNode(effect, true)).toElement();
+    }
     else {
         QDomElement listeffect =  effects.at(ix - 1).toElement();
        result = m_baseElement.insertBefore(importNode(effect, true), listeffect).toElement();
     }
-    if (m_useIndex) updateIndexes(effects);
+    if (m_useIndex) updateIndexes(effects, ix - 1);
     return result;
 }
 
-void EffectsList::updateIndexes(QDomNodeList effects)
+void EffectsList::updateIndexes(QDomNodeList effects, int startIndex)
 {
-    for (int i = 0; i < effects.count(); i++) {
+    for (int i = startIndex; i < effects.count(); i++) {
         QDomElement listeffect =  effects.at(i).toElement();
        listeffect.setAttribute("kdenlive_ix", i + 1);
     }
index e338b2bf1bc8abcad5134a66827ad4eb59bb54d1..e52bb01f80ec1ebb69178bb8f6dd2afdbe02711d 100644 (file)
@@ -87,7 +87,7 @@ public:
     /** @brief Get am effect with effect index equal to ix. */
     QDomElement effectFromIndex(QDomNodeList effects, int ix);
     /** @brief Update all effects indexes to make sure they are 1, 2, 3, ... */
-    void updateIndexes(QDomNodeList effects);
+    void updateIndexes(QDomNodeList effects, int startIndex);
 
 private:
     QDomElement m_baseElement;
index ac0ab4ec115dd1967caab731e05b3c0f5c9c61fe..7e0773bebe8436f43de8dfe748b6014f077f2c7c 100644 (file)
@@ -26,7 +26,7 @@
 #include <QInputDialog>
 #include <QDragEnterEvent>
 #include <QDropEvent>
-
+#include <QMutexLocker>
 
 #include <KDebug>
 #include <KGlobalSettings>
@@ -218,6 +218,7 @@ QWidget *CollapsibleGroup::title() const
 
 void CollapsibleGroup::addGroupEffect(CollapsibleEffect *effect)
 {
+    QMutexLocker lock(&m_mutex);
     QVBoxLayout *vbox = static_cast<QVBoxLayout *>(widgetFrame->layout());
     if (vbox == NULL) {
        vbox = new QVBoxLayout();
@@ -238,12 +239,14 @@ QString CollapsibleGroup::infoString() const
 
 void CollapsibleGroup::removeGroup(int ix, QVBoxLayout *layout)
 {
+    QMutexLocker lock(&m_mutex);
     QVBoxLayout *vbox = static_cast<QVBoxLayout *>(widgetFrame->layout());
     if (vbox == NULL) return;
     for (int i = m_subWidgets.count() - 1; i >= 0 ; i--) {
        vbox->removeWidget(m_subWidgets.at(i));
        layout->insertWidget(ix, m_subWidgets.at(i));
         m_subWidgets.at(i)->removeFromGroup();
+       kDebug()<<"// Removing effect at: "<<i;
     }
     m_subWidgets.clear();
 }
@@ -285,6 +288,7 @@ void CollapsibleGroup::dragLeaveEvent(QDragLeaveEvent */*event*/)
 
 void CollapsibleGroup::dropEvent(QDropEvent *event)
 {
+    QMutexLocker lock(&m_mutex);
     framegroup->setProperty("active", false);
     framegroup->setStyleSheet(framegroup->styleSheet());
     const QString effects = QString::fromUtf8(event->mimeData()->data("kdenlive/effectslist"));
@@ -310,6 +314,7 @@ void CollapsibleGroup::dropEvent(QDropEvent *event)
 
 void CollapsibleGroup::slotRenameGroup()
 {
+    QMutexLocker lock(&m_mutex);
     m_title->setReadOnly(true);
     if (m_title->text().isEmpty()) m_title->setText(i18n("Effect Group"));
     for (int j = 0; j < m_subWidgets.count(); j++) {
@@ -320,11 +325,13 @@ void CollapsibleGroup::slotRenameGroup()
 
 QList <CollapsibleEffect*> CollapsibleGroup::effects()
 {
+    QMutexLocker lock(&m_mutex);
     return m_subWidgets;
 }
 
 QDomDocument CollapsibleGroup::effectsData()
 {
+    QMutexLocker lock(&m_mutex);
     QDomDocument doc;
     QDomElement list = doc.createElement("list");
     list.setAttribute("name", m_title->text());
index 79e7a5cc10b330f5adfecde21557772074e80477..bf33330afd6659a5af5a4f7bdb7eab4a0a152c44 100644 (file)
@@ -32,6 +32,7 @@
 #include <QDomElement>
 #include <QToolButton>
 #include <QLineEdit>
+#include <QMutex>
 
 class QFrame;
 
@@ -95,6 +96,7 @@ private:
     EffectInfo m_info;
     int m_index;
     MyEditableLabel *m_title;
+    QMutex m_mutex;
     
 protected:
     virtual void mouseDoubleClickEvent ( QMouseEvent * event );
index f3b8479e9816329a592690bcba59adfca6f9ab2b..e8f0386e95ab850efdc983e20ef3aff6e2d265d4 100644 (file)
@@ -488,9 +488,9 @@ CollapsibleEffect *EffectStackView2::getEffectByIndex(int ix)
 void EffectStackView2::slotUpdateEffectParams(const QDomElement old, const QDomElement e, int ix)
 {
     if (m_effectMetaInfo.trackMode)
-        emit updateEffect(NULL, m_trackindex, old, e, ix);
+        emit updateEffect(NULL, m_trackindex, old, e, ix,false);
     else if (m_clipref) {
-        emit updateEffect(m_clipref, -1, old, e, ix);
+        emit updateEffect(m_clipref, -1, old, e, ix, false);
         // Make sure the changed effect is currently displayed
         slotSetCurrentEffect(ix);
     }
@@ -571,12 +571,12 @@ void EffectStackView2::slotResetEffect(int ix)
             info.startPos = GenTime(-1);
             info.track = 0;
            m_effects.at(ix)->updateWidget(info, dom, &m_effectMetaInfo);
-            emit updateEffect(NULL, m_trackindex, old, dom, ix);
+            emit updateEffect(NULL, m_trackindex, old, dom, ix,false);
         } else {
             m_clipref->initEffect(dom);
            m_effects.at(ix)->updateWidget(m_clipref->info(), dom, &m_effectMetaInfo);
             //m_ui.region_url->setUrl(KUrl(dom.attribute("region")));
-            emit updateEffect(m_clipref, -1, old, dom, ix);
+            emit updateEffect(m_clipref, -1, old, dom, ix,false);
         }
     }
 
@@ -606,9 +606,9 @@ void EffectStackView2::slotCreateGroup(int ix)
         info.cropStart = GenTime(0);
         info.startPos = GenTime(-1);
         info.track = 0;
-       emit updateEffect(NULL, m_trackindex, oldeffect, neweffect, ix);
+       emit updateEffect(NULL, m_trackindex, oldeffect, neweffect, ix, false);
     } else {
-       emit updateEffect(m_clipref, -1, oldeffect, neweffect, ix);
+       emit updateEffect(m_clipref, -1, oldeffect, neweffect, ix, false);
     }
     
     QVBoxLayout *l = static_cast<QVBoxLayout *>(m_ui.container->widget()->layout());
@@ -654,9 +654,9 @@ void EffectStackView2::slotMoveEffect(int currentIndex, int newIndex, int groupI
         info.cropStart = GenTime(0);
         info.startPos = GenTime(-1);
         info.track = 0;
-       emit updateEffect(NULL, m_trackindex, oldeffect, neweffect, effectToMove->effectIndex());
+       emit updateEffect(NULL, m_trackindex, oldeffect, neweffect, effectToMove->effectIndex(),false);
     } else {
-       emit updateEffect(m_clipref, -1, oldeffect, neweffect, effectToMove->effectIndex());
+       emit updateEffect(m_clipref, -1, oldeffect, neweffect, effectToMove->effectIndex(),false);
     }
     
     //if (currentIndex == newIndex) return;
@@ -685,9 +685,9 @@ void EffectStackView2::slotRenameGroup(CollapsibleGroup *group)
        QDomElement changed = origin.cloneNode().toElement();
        changed.setAttribute("kdenlive_info", effects.at(i)->infoString());
        if (m_effectMetaInfo.trackMode) { 
-           emit updateEffect(NULL, m_trackindex, origin, changed, effects.at(i)->effectIndex());
+           emit updateEffect(NULL, m_trackindex, origin, changed, effects.at(i)->effectIndex(),false);
        } else {
-           emit updateEffect(m_clipref, -1, origin, changed, effects.at(i)->effectIndex());
+           emit updateEffect(m_clipref, -1, origin, changed, effects.at(i)->effectIndex(),false);
        }
     }
 }
index ffcebec6e118d676f38ba55c5da7a238406da8fe..cf7df7b85823ff107c5a951d8c713626d8101aef 100644 (file)
@@ -184,7 +184,7 @@ private slots:
 signals:
     void removeEffect(ClipItem*, int, QDomElement);
     /**  Parameters for an effect changed, update the filter in playlist */
-    void updateEffect(ClipItem*, int, QDomElement, QDomElement, int);
+    void updateEffect(ClipItem*, int, QDomElement, QDomElement, int,bool);
     /** An effect in stack was moved, we need to regenerate
         all effects for this clip in the playlist */
     void refreshEffectStack(ClipItem *);
index 7d55391ef76e70c576bd213d23898b751c2ee1bd..1df1226c578aa1aa93f1fd7637c4289a2b51d996 100644 (file)
@@ -2470,7 +2470,7 @@ void MainWindow::connectDocument(TrackView *trackView, KdenliveDoc *doc)   //cha
             disconnect(m_activeTimeline, SIGNAL(cursorMoved()), m_projectMonitor, SLOT(slotActivateMonitor()));
             disconnect(m_activeTimeline, SIGNAL(configTrack(int)), this, SLOT(slotConfigTrack(int)));
             disconnect(m_activeDocument, SIGNAL(docModified(bool)), this, SLOT(slotUpdateDocumentState(bool)));
-            disconnect(m_effectStack, SIGNAL(updateEffect(ClipItem*, int, QDomElement, QDomElement, int)), m_activeTimeline->projectView(), SLOT(slotUpdateClipEffect(ClipItem*, int, QDomElement, QDomElement, int)));
+            disconnect(m_effectStack, SIGNAL(updateEffect(ClipItem*, int, QDomElement, QDomElement, int,bool)), m_activeTimeline->projectView(), SLOT(slotUpdateClipEffect(ClipItem*, int, QDomElement, QDomElement, int,bool)));
             disconnect(m_effectStack, SIGNAL(removeEffect(ClipItem*, int, QDomElement)), m_activeTimeline->projectView(), SLOT(slotDeleteEffect(ClipItem*, int, QDomElement)));
            disconnect(m_effectStack, SIGNAL(addEffect(ClipItem*, QDomElement)), trackView->projectView(), SLOT(slotAddEffect(ClipItem*, QDomElement)));
             disconnect(m_effectStack, SIGNAL(changeEffectState(ClipItem*, int, int, bool)), m_activeTimeline->projectView(), SLOT(slotChangeEffectState(ClipItem*, int, int, bool)));
@@ -2547,7 +2547,7 @@ void MainWindow::connectDocument(TrackView *trackView, KdenliveDoc *doc)   //cha
 
     connect(m_projectList, SIGNAL(gotFilterJobResults(const QString &, int, int, const QString &, stringMap)), trackView->projectView(), SLOT(slotGotFilterJobResults(const QString &, int, int, const QString &, stringMap)));
 
-    connect(m_effectStack, SIGNAL(updateEffect(ClipItem*, int, QDomElement, QDomElement, int)), trackView->projectView(), SLOT(slotUpdateClipEffect(ClipItem*, int, QDomElement, QDomElement, int)));
+    connect(m_effectStack, SIGNAL(updateEffect(ClipItem*, int, QDomElement, QDomElement, int,bool)), trackView->projectView(), SLOT(slotUpdateClipEffect(ClipItem*, int, QDomElement, QDomElement, int,bool)));
     connect(m_effectStack, SIGNAL(updateClipRegion(ClipItem*, int, QString)), trackView->projectView(), SLOT(slotUpdateClipRegion(ClipItem*, int, QString)));
     connect(m_effectStack, SIGNAL(removeEffect(ClipItem*, int, QDomElement)), trackView->projectView(), SLOT(slotDeleteEffect(ClipItem*, int, QDomElement)));
     connect(m_effectStack, SIGNAL(addEffect(ClipItem*, QDomElement)), trackView->projectView(), SLOT(slotAddEffect(ClipItem*, QDomElement)));