From fe16b157c1f157d522d401620b73f7ec875dc64e Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Mardelle Date: Wed, 10 Jun 2009 22:19:04 +0000 Subject: [PATCH] Update transitions lumas when user installs a new one: http://www.kdenlive.org:80/mantis/view.php?id=891 svn path=/trunk/kdenlive/; revision=3515 --- src/customtrackview.cpp | 48 ++++++++++++++++++++++++++++++++++++++ src/customtrackview.h | 1 + src/initeffects.cpp | 22 ++++++++++++----- src/mainwindow.cpp | 1 + src/transition.cpp | 1 - src/transitionsettings.cpp | 5 ++++ 6 files changed, 71 insertions(+), 7 deletions(-) diff --git a/src/customtrackview.cpp b/src/customtrackview.cpp index 20177397..796ffa15 100644 --- a/src/customtrackview.cpp +++ b/src/customtrackview.cpp @@ -4552,5 +4552,53 @@ void CustomTrackView::updateClipTypeActions(ClipItem *clip) } } +void CustomTrackView::reloadTransitionLumas() +{ + QString lumaNames; + QString lumaFiles; + QDomElement lumaTransition = MainWindow::transitions.getEffectByTag("luma", "luma"); + QDomNodeList params = lumaTransition.elementsByTagName("parameter"); + for (int i = 0; i < params.count(); i++) { + QDomElement e = params.item(i).toElement(); + if (e.attribute("tag") == "resource") { + lumaNames = e.attribute("paramlistdisplay"); + lumaFiles = e.attribute("paramlist"); + break; + } + } + + QList itemList = items(); + Transition *transitionitem; + QDomElement transitionXml; + for (int i = 0; i < itemList.count(); i++) { + if (itemList.at(i)->type() == TRANSITIONWIDGET) { + transitionitem = static_cast (itemList.at(i)); + transitionXml = transitionitem->toXML(); + if (transitionXml.attribute("id") == "luma" && transitionXml.attribute("tag") == "luma") { + QDomNodeList params = transitionXml.elementsByTagName("parameter"); + for (int i = 0; i < params.count(); i++) { + QDomElement e = params.item(i).toElement(); + if (e.attribute("tag") == "resource") { + e.setAttribute("paramlistdisplay", lumaNames); + e.setAttribute("paramlist", lumaFiles); + break; + } + } + } + if (transitionXml.attribute("id") == "composite" && transitionXml.attribute("tag") == "composite") { + QDomNodeList params = transitionXml.elementsByTagName("parameter"); + for (int i = 0; i < params.count(); i++) { + QDomElement e = params.item(i).toElement(); + if (e.attribute("tag") == "luma") { + e.setAttribute("paramlistdisplay", lumaNames); + e.setAttribute("paramlist", lumaFiles); + break; + } + } + } + } + } + emit transitionItemSelected(NULL); +} #include "customtrackview.moc" diff --git a/src/customtrackview.h b/src/customtrackview.h index 843a65b2..7e8a67e0 100644 --- a/src/customtrackview.h +++ b/src/customtrackview.h @@ -121,6 +121,7 @@ public: void setAudioAndVideo(); void doChangeClipType(const GenTime &pos, int track, bool videoOnly, bool audioOnly); int hasGuide(int pos, int offset); + void reloadTransitionLumas(); public slots: void setCursorPos(int pos, bool seek = true); diff --git a/src/initeffects.cpp b/src/initeffects.cpp index c8ee2118..d276f987 100644 --- a/src/initeffects.cpp +++ b/src/initeffects.cpp @@ -65,7 +65,6 @@ initEffectsThumbnailer initEffects::thumbnailer; // static void initEffects::refreshLumas() { - // Check for Kdenlive installed luma files, add empty string at start for no luma QStringList imagenamelist = QStringList() << i18n("None"); QStringList imagefiles = QStringList() << QString(); @@ -90,7 +89,7 @@ void initEffects::refreshLumas() imagenamelist.append(fname); imagefiles.append(folder + '/' + fname); } - QDomElement lumaTransition = MainWindow::transitions.getEffectByName("Wipe"); + QDomElement lumaTransition = MainWindow::transitions.getEffectByTag("luma", "luma"); QDomNodeList params = lumaTransition.elementsByTagName("parameter"); for (int i = 0; i < params.count(); i++) { QDomElement e = params.item(i).toElement(); @@ -101,6 +100,17 @@ void initEffects::refreshLumas() } } + QDomElement compositeTransition = MainWindow::transitions.getEffectByTag("composite", "composite"); + params = compositeTransition.elementsByTagName("parameter"); + for (int i = 0; i < params.count(); i++) { + QDomElement e = params.item(i).toElement(); + if (e.attribute("tag") == "luma") { + e.setAttribute("paramlistdisplay", imagenamelist.join(",")); + e.setAttribute("paramlist", imagefiles.join(",")); + break; + } + } + } @@ -657,7 +667,7 @@ void initEffects::fillTransitionsList(Mlt::Repository * repository, EffectsList* } if (name == "luma") { - + ktrans.setAttribute("id", name); tname.appendChild(ret.createTextNode("Wipe")); desc.appendChild(ret.createTextNode("Applies a stationary transition between the current and next frames")); @@ -725,16 +735,16 @@ void initEffects::fillTransitionsList(Mlt::Repository * repository, EffectsList* transitions->append(ret.documentElement()); //kDebug() << "//// //// TRANSITON XML"; - // kDebug() << ret.toString(); + //kDebug() << ret.toString(); /* */ } - QString wipetrans = "SlideSlide image from one side to anotherDirection AlignForce Progressive RenderingForce Deinterlace OverlayInvert"; + QString slidetrans = "SlideSlide image from one side to anotherDirection AlignForce Progressive RenderingForce Deinterlace OverlayInvert"; QDomDocument ret; - ret.setContent(wipetrans); + ret.setContent(slidetrans); transitions->append(ret.documentElement()); QString dissolve = "DissolveFade out one video while fading in the other videoReverse"; diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index fd8adfc0..0d87edfc 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -2564,6 +2564,7 @@ void MainWindow::slotGetNewLumaStuff() } qDeleteAll(entries); initEffects::refreshLumas(); + m_activeTimeline->projectView()->reloadTransitionLumas(); } void MainWindow::slotGetNewRenderStuff() diff --git a/src/transition.cpp b/src/transition.cpp index d2f70b89..3fc7ac9c 100644 --- a/src/transition.cpp +++ b/src/transition.cpp @@ -323,7 +323,6 @@ QDomElement Transition::toXML() m_parameters.setAttribute("clipb_starttime", m_secondClip->startPos().frames(m_referenceClip->fps())); m_parameters.setAttribute("clipb_track", transitionEndTrack()); } - return m_parameters; } diff --git a/src/transitionsettings.cpp b/src/transitionsettings.cpp index 08eeecd0..7b16827d 100644 --- a/src/transitionsettings.cpp +++ b/src/transitionsettings.cpp @@ -149,6 +149,11 @@ void TransitionSettings::slotTransitionItemSelected(Transition* t, QPoint p, boo m_ui.transitionList->blockSignals(false); } } + else { + // null transition selected + m_usedTransition = NULL; + m_effectEdit->transferParamDesc(QDomElement(), 0, 0); + } } -- 2.39.2