]> git.sesse.net Git - kdenlive/blobdiff - src/transitionsettings.cpp
Improve keyframe editor (keyframe value can now be adjusted with mouse wheel)
[kdenlive] / src / transitionsettings.cpp
index 7b16827dfb5b6de448f4241b00032d491edd5aac..2b2aecf31ffc6fc5db2b6582f392bc8bef972505 100644 (file)
@@ -29,7 +29,8 @@
 TransitionSettings::TransitionSettings(QWidget* parent) :
         QWidget(parent),
         m_usedTransition(NULL),
-        m_tracksCount(0)
+        m_tracksCount(0),
+        m_autoTrackTransition(0)
 {
     m_ui.setupUi(this);
     m_effectEdit = new EffectStackEdit(m_ui.frame);
@@ -107,6 +108,7 @@ void TransitionSettings::slotTransitionTrackChanged()
         m_effectEdit->updateParameter("force_track", "1");
         emit transitionUpdated(m_usedTransition, oldxml);
     } else {
+        ix = m_autoTrackTransition;
         m_usedTransition->setForcedTrack(false, ix);
         m_effectEdit->updateParameter("force_track", "0");
         emit transitionUpdated(m_usedTransition, oldxml);
@@ -114,10 +116,11 @@ void TransitionSettings::slotTransitionTrackChanged()
     m_effectEdit->updateParameter("transition_btrack", QString::number(ix));
 }
 
-void TransitionSettings::slotTransitionItemSelected(Transition* t, QPoint p, bool update)
+void TransitionSettings::slotTransitionItemSelected(Transition* t, int nextTrack, QPoint p, bool update)
 {
     setEnabled(t != NULL);
     m_effectEdit->setFrameSize(p);
+    m_autoTrackTransition = nextTrack;
     if (t == m_usedTransition) {
         if (t == NULL) return;
         if (update) {
@@ -126,15 +129,15 @@ void TransitionSettings::slotTransitionItemSelected(Transition* t, QPoint p, boo
             else m_ui.transitionTrack->setCurrentIndex(0);
             m_ui.transitionTrack->blockSignals(false);
         }
-        if (update || t->duration() != m_transitionDuration || t->startPos() != m_transitionStart) {
-            m_transitionDuration = t->duration();
+        if (update || t->cropDuration() != m_transitionDuration || t->startPos() != m_transitionStart) {
+            m_transitionDuration = t->cropDuration();
             m_transitionStart = t->startPos();
             slotTransitionChanged(false, true);
         }
         return;
     } else if (update) return;
     if (t) {
-        m_transitionDuration = t->duration();
+        m_transitionDuration = t->cropDuration();
         m_transitionStart = t->startPos();
         m_ui.transitionTrack->blockSignals(true);
         if (!t->forcedTrack()) m_ui.transitionTrack->setCurrentIndex(0);
@@ -148,11 +151,10 @@ void TransitionSettings::slotTransitionItemSelected(Transition* t, QPoint p, boo
             slotTransitionChanged(false, false);
             m_ui.transitionList->blockSignals(false);
         }
-    }
-    else {
-       // null transition selected
-       m_usedTransition = NULL;
-       m_effectEdit->transferParamDesc(QDomElement(), 0, 0);
+    } else {
+        // null transition selected
+        m_usedTransition = NULL;
+        m_effectEdit->transferParamDesc(QDomElement(), 0, 0);
     }
 
 }