From e12c2a2ec6ac53409ce670d630ee677e900c5828 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Mardelle Date: Sat, 20 Feb 2010 07:12:30 +0000 Subject: [PATCH] Fix seek to pos in composite transition: http://kdenlive.org/mantis/view.php?id=1452 svn path=/trunk/kdenlive/; revision=4322 --- src/effectstackedit.cpp | 4 ++-- src/geometryval.cpp | 7 ++++--- src/geometryval.h | 3 ++- src/keyframeedit.cpp | 4 ++-- 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/effectstackedit.cpp b/src/effectstackedit.cpp index 20f26c2d..d47da1ae 100644 --- a/src/effectstackedit.cpp +++ b/src/effectstackedit.cpp @@ -227,7 +227,7 @@ void EffectStackEdit::transferParamDesc(const QDomElement d, int in, int out) m_valueItems[paramName+"complex"] = pl; connect(pl, SIGNAL(parameterChanged()), this, SLOT(collectAllParameters())); } else if (type == "geometry") { - Geometryval *geo = new Geometryval(m_profile, m_frameSize); + Geometryval *geo = new Geometryval(m_profile, m_frameSize, m_in); geo->setupParam(pa, minFrame, maxFrame); m_vbox->addWidget(geo); m_valueItems[paramName+"geometry"] = geo; @@ -339,7 +339,7 @@ void EffectStackEdit::transferParamDesc(const QDomElement d, int in, int out) void EffectStackEdit::slotSeekToPos(int pos) { - emit seekTimeline(pos - m_in); + emit seekTimeline(pos); } wipeInfo EffectStackEdit::getWipeInfo(QString value) diff --git a/src/geometryval.cpp b/src/geometryval.cpp index cf681be6..6409cc79 100644 --- a/src/geometryval.cpp +++ b/src/geometryval.cpp @@ -28,14 +28,15 @@ #include -Geometryval::Geometryval(const MltVideoProfile profile, QPoint frame_size, QWidget* parent) : +Geometryval::Geometryval(const MltVideoProfile profile, QPoint frame_size, int startPoint, QWidget* parent) : QWidget(parent), m_profile(profile), m_paramRect(NULL), m_geom(NULL), m_path(NULL), m_fixedMode(false), - m_frameSize(frame_size) + m_frameSize(frame_size), + m_startPoint(startPoint) { setupUi(this); QVBoxLayout* vbox = new QVBoxLayout(widget); @@ -324,7 +325,7 @@ void Geometryval::slotSyncCursor() void Geometryval::slotPositionChanged(int pos, bool seek) { - if (seek && KdenliveSettings::transitionfollowcursor()) emit seekToPos(pos); + if (seek && KdenliveSettings::transitionfollowcursor()) emit seekToPos(pos + m_startPoint); spinPos->setValue(pos); m_helper->setValue(pos); Mlt::GeometryItem item; diff --git a/src/geometryval.h b/src/geometryval.h index ac2672d8..b2d90764 100644 --- a/src/geometryval.h +++ b/src/geometryval.h @@ -41,7 +41,7 @@ class Geometryval : public QWidget, public Ui::Geometryval { Q_OBJECT public: - explicit Geometryval(const MltVideoProfile profile, QPoint frame_size, QWidget* parent = 0); + explicit Geometryval(const MltVideoProfile profile, QPoint frame_size, int startPoint = 0, QWidget* parent = 0); virtual ~Geometryval(); QDomElement getParamDesc(); QString getValue() const; @@ -65,6 +65,7 @@ private: Ui::GeometryPosition_UI m_view; void updateTransitionPath(); double m_dar; + int m_startPoint; QGraphicsView *m_sceneview; public slots: diff --git a/src/keyframeedit.cpp b/src/keyframeedit.cpp index ecfcb9cc..8f14b44f 100644 --- a/src/keyframeedit.cpp +++ b/src/keyframeedit.cpp @@ -383,7 +383,7 @@ void KeyframeEdit::slotAdjustKeyframeInfo(bool seek) sl->setValue(keyframe_list->item(item->row(), col)->text().toInt()); sl->blockSignals(false); } - if (KdenliveSettings::keyframeseek() && seek) emit seekToPos(keyframe_pos->value()); + if (KdenliveSettings::keyframeseek() && seek) emit seekToPos(keyframe_pos->value() - m_min); } void KeyframeEdit::slotAdjustKeyframePos(int value) @@ -394,7 +394,7 @@ void KeyframeEdit::slotAdjustKeyframePos(int value) else val = m_timecode.getTimecodeFromFrames(value); keyframe_list->verticalHeaderItem(item->row())->setText(val); slotGenerateParams(item->row(), -1); - if (KdenliveSettings::keyframeseek()) emit seekToPos(value); + if (KdenliveSettings::keyframeseek()) emit seekToPos(value - m_min); } void KeyframeEdit::slotAdjustKeyframeValue(int /*value*/) -- 2.39.2