From 9628108325c436f9abcee1c1dd03ca32d45f8c8f Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Mardelle Date: Mon, 23 Mar 2009 21:29:12 +0000 Subject: [PATCH] Fix updating of keyframes when resizing a transition, and some bugs in undo svn path=/trunk/kdenlive/; revision=3174 --- src/customtrackview.cpp | 1 + src/transition.cpp | 9 +++++++++ src/transition.h | 1 + src/transitionsettings.cpp | 1 + 4 files changed, 12 insertions(+) diff --git a/src/customtrackview.cpp b/src/customtrackview.cpp index f37eae27..bdf1cb22 100644 --- a/src/customtrackview.cpp +++ b/src/customtrackview.cpp @@ -3027,6 +3027,7 @@ void CustomTrackView::moveTransition(const ItemInfo start, const ItemInfo end) { KdenliveSettings::setSnaptopoints(snap); item->updateTransitionEndTrack(getPreviousVideoTrack(end.track)); m_document->renderer()->mltMoveTransition(item->transitionTag(), m_document->tracksCount() - start.track, m_document->tracksCount() - end.track, item->transitionEndTrack(), start.startPos, start.endPos, end.startPos, end.endPos); + if (m_dragItem && m_dragItem == item) emit transitionItemSelected(item); } void CustomTrackView::resizeClip(const ItemInfo start, const ItemInfo end) { diff --git a/src/transition.cpp b/src/transition.cpp index f2efbf35..70f552b9 100644 --- a/src/transition.cpp +++ b/src/transition.cpp @@ -301,3 +301,12 @@ QDomElement Transition::toXML() { return m_parameters; } +bool Transition::hasGeometry() { + QDomNodeList namenode = m_parameters.elementsByTagName("parameter"); + for (int i = 0;i < namenode.count() ;i++) { + QDomElement pa = namenode.item(i).toElement(); + if (pa.attribute("type") == "geometry") return true; + } + return false; +} + diff --git a/src/transition.h b/src/transition.h index da699e6e..f5f1ba75 100644 --- a/src/transition.h +++ b/src/transition.h @@ -71,6 +71,7 @@ public: Transition *clone(); bool isAutomatic() const; void setAutomatic(bool automatic); + bool hasGeometry(); protected: virtual QVariant itemChange(GraphicsItemChange change, const QVariant &value); diff --git a/src/transitionsettings.cpp b/src/transitionsettings.cpp index cfa77d1a..1301fa34 100644 --- a/src/transitionsettings.cpp +++ b/src/transitionsettings.cpp @@ -74,6 +74,7 @@ void TransitionSettings::slotTransitionChanged(bool reinit, bool updateCurrent) } else { // Same transition, we just want to update the parameters value slotUpdateEffectParams(e, e); + if (m_usedTransition->hasGeometry()) emit transferParamDesc(m_usedTransition->toXML(), m_usedTransition->startPos().frames(KdenliveSettings::project_fps()), m_usedTransition->endPos().frames(KdenliveSettings::project_fps())); } } -- 2.39.2