From: Jean-Baptiste Mardelle Date: Mon, 2 Jun 2008 22:50:58 +0000 (+0000) Subject: Fix param update when switching between 2 transitions X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=316d4a3c2ff45e49a6f5c09cd09ef678b25bb5ca;p=kdenlive Fix param update when switching between 2 transitions svn path=/branches/KDE4/; revision=2222 --- diff --git a/src/transitionsettings.cpp b/src/transitionsettings.cpp index 292aab2d..dd4ff965 100644 --- a/src/transitionsettings.cpp +++ b/src/transitionsettings.cpp @@ -37,39 +37,31 @@ TransitionSettings::TransitionSettings(QWidget* parent): QWidget(parent) { } -void TransitionSettings::slotTransitionChanged() { - - QDomElement e = m_usedTransition->toXML(); - - //set old values from e in to desc (like reverse and so ) - /* QDomElement desc = m_transitions->getEffectByName(ui.listWidget->currentItem()->text()); - if (m_usedTransition) { - m_usedTransition->setTransitionParameters(desc); - m_usedTransition->update(); - } - emit transitionUpdated(e, m_usedTransition->toXML());*/ - /*QDomDocument doc; - doc.appendChild(doc.importNode(e, true)); - kDebug()<<"/////////// TRANSITION CHANGED: "<transitionName() == ui.listWidget->currentItem()->text() && !e.attribute("tag").isNull()) { - slotUpdateEffectParams(e, e); - } else - slotUpdateEffectParams(e, MainWindow::transitions.getEffectByName(ui.listWidget->currentItem()->text())); - emit transferParamDesc(e, 0, 0); +void TransitionSettings::slotTransitionChanged(bool reinit) { + QDomElement e = m_usedTransition->toXML().cloneNode().toElement(); + if (reinit) { + QDomElement newTransition = MainWindow::transitions.getEffectByName(ui.listWidget->currentItem()->text()); + slotUpdateEffectParams(e, newTransition); + emit transferParamDesc(newTransition, 0, 0); + } + else { + //slotUpdateEffectParams(e, e); + emit transferParamDesc(e, 0, 0); + } } void TransitionSettings::slotTransitionItemSelected(Transition* t) { setEnabled(t != NULL); - if (t == m_usedTransition) return; + if (t == m_usedTransition) { + return; + } m_usedTransition = t; if (m_usedTransition) { QList list = ui.listWidget->findItems(m_usedTransition->transitionName(), Qt::MatchExactly); if (list.size() > 0) { ui.listWidget->blockSignals(true); ui.listWidget->setCurrentItem(list[0]); - slotTransitionChanged(); + slotTransitionChanged(false); ui.listWidget->blockSignals(false); } } diff --git a/src/transitionsettings.h b/src/transitionsettings.h index 3bb93ee8..d4b7ce24 100644 --- a/src/transitionsettings.h +++ b/src/transitionsettings.h @@ -32,10 +32,12 @@ private: Ui::TransitionSettings_UI ui; EffectStackEdit *effectEdit; Transition* m_usedTransition; + public slots: void slotTransitionItemSelected(Transition*); - void slotTransitionChanged(); + void slotTransitionChanged(bool reinit = true); void slotUpdateEffectParams(const QDomElement&, const QDomElement&); + signals: void transitionUpdated(Transition *, QDomElement); void transferParamDesc(const QDomElement&, int , int);