]> git.sesse.net Git - kdenlive/commitdiff
Fix editing duration of fades:
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Wed, 17 Jun 2009 20:20:13 +0000 (20:20 +0000)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Wed, 17 Jun 2009 20:20:13 +0000 (20:20 +0000)
http://www.kdenlive.org:80/mantis/view.php?id=922

svn path=/trunk/kdenlive/; revision=3560

src/effectstackedit.cpp

index a425ebecb881ad24a99afb9176bce06fada9c745..eff1d156d708b237eecf2f5a82959b8ffa2b7bf7 100644 (file)
@@ -24,6 +24,7 @@
 #include "ui_wipeval_ui.h"
 #include "complexparameter.h"
 #include "geometryval.h"
+#include "effectslist.h"
 #include "kdenlivesettings.h"
 
 #include <KDebug>
@@ -434,20 +435,26 @@ void EffectStackEdit::collectAllParameters()
         } else if (type == "position") {
             KRestrictedLine *line = ((Positionval*)m_valueItems[paramName+"position"])->krestrictedline;
             int pos = m_timecode.getFrameCount(line->text(), KdenliveSettings::project_fps());
+            setValue = QString::number(pos);
             if (m_params.attribute("id") == "fadein" || m_params.attribute("id") == "fade_from_black") {
-                pos += m_in;
+                // Make sure duration is not longer than clip
                 if (pos > m_out) {
                     pos = m_out;
                     line->setText(m_timecode.getTimecodeFromFrames(pos));
                 }
+                EffectsList::setParameter(m_params, "in", QString::number(m_in));
+                EffectsList::setParameter(m_params, "out", QString::number(m_in + pos));
+                setValue.clear();
             } else if (m_params.attribute("id") == "fadeout" || m_params.attribute("id") == "fade_to_black") {
-                pos = m_out - (pos - m_in);
-                if (pos > m_out - m_in) {
-                    pos = m_out - m_in;
+                // Make sure duration is not longer than clip
+                if (pos > m_out) {
+                    pos = m_out;
                     line->setText(m_timecode.getTimecodeFromFrames(pos));
                 }
+                EffectsList::setParameter(m_params, "in", QString::number(m_out + m_in - pos));
+                EffectsList::setParameter(m_params, "out", QString::number(m_out + m_in));
+                setValue.clear();
             }
-            setValue = QString::number(pos);
         } else if (type == "wipe") {
             Wipeval *wp = (Wipeval*)m_valueItems[paramName];
             wipeInfo info;