}
}
+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<QGraphicsItem *> itemList = items();
+ Transition *transitionitem;
+ QDomElement transitionXml;
+ for (int i = 0; i < itemList.count(); i++) {
+ if (itemList.at(i)->type() == TRANSITIONWIDGET) {
+ transitionitem = static_cast <Transition*> (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"
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);
// 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();
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();
}
}
+ 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;
+ }
+ }
+
}
}
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"));
transitions->append(ret.documentElement());
//kDebug() << "//// //// TRANSITON XML";
- // kDebug() << ret.toString();
+ //kDebug() << ret.toString();
/*
<transition fill="1" in="11" a_track="1" out="73" mlt_service="luma" b_track="2" softness="0" resource="/home/marco/Projekte/kdenlive/install_cmake/share/apps/kdenlive/pgm/PAL/square2.pgm" />
*/
}
- QString wipetrans = "<ktransition tag=\"composite\" id=\"slide\"><name>Slide</name><description>Slide image from one side to another</description><parameter tag=\"geometry\" type=\"wipe\" default=\"-100%,0%:100%x100%;-1=0%,0%:100%x100%\" name=\"geometry\"><name>Direction</name> </parameter><parameter tag=\"aligned\" default=\"0\" type=\"bool\" name=\"aligned\" ><name>Align</name></parameter><parameter tag=\"progressive\" default=\"1\" type=\"bool\" name=\"progressive\" ><name>Force Progressive Rendering</name></parameter><parameter tag=\"deinterlace\" default=\"0\" type=\"bool\" name=\"deinterlace\" ><name>Force Deinterlace Overlay</name></parameter><parameter tag=\"invert\" default=\"0\" type=\"bool\" name=\"invert\" ><name>Invert</name></parameter></ktransition>";
+ QString slidetrans = "<ktransition tag=\"composite\" id=\"slide\"><name>Slide</name><description>Slide image from one side to another</description><parameter tag=\"geometry\" type=\"wipe\" default=\"-100%,0%:100%x100%;-1=0%,0%:100%x100%\" name=\"geometry\"><name>Direction</name> </parameter><parameter tag=\"aligned\" default=\"0\" type=\"bool\" name=\"aligned\" ><name>Align</name></parameter><parameter tag=\"progressive\" default=\"1\" type=\"bool\" name=\"progressive\" ><name>Force Progressive Rendering</name></parameter><parameter tag=\"deinterlace\" default=\"0\" type=\"bool\" name=\"deinterlace\" ><name>Force Deinterlace Overlay</name></parameter><parameter tag=\"invert\" default=\"0\" type=\"bool\" name=\"invert\" ><name>Invert</name></parameter></ktransition>";
QDomDocument ret;
- ret.setContent(wipetrans);
+ ret.setContent(slidetrans);
transitions->append(ret.documentElement());
QString dissolve = "<ktransition tag=\"luma\" id=\"dissolve\"><name>Dissolve</name><description>Fade out one video while fading in the other video</description><parameter tag=\"reverse\" default=\"0\" type=\"bool\" name=\"reverse\" ><name>Reverse</name></parameter></ktransition>";
}
qDeleteAll(entries);
initEffects::refreshLumas();
+ m_activeTimeline->projectView()->reloadTransitionLumas();
}
void MainWindow::slotGetNewRenderStuff()
m_parameters.setAttribute("clipb_starttime", m_secondClip->startPos().frames(m_referenceClip->fps()));
m_parameters.setAttribute("clipb_track", transitionEndTrack());
}
-
return m_parameters;
}
m_ui.transitionList->blockSignals(false);
}
}
+ else {
+ // null transition selected
+ m_usedTransition = NULL;
+ m_effectEdit->transferParamDesc(QDomElement(), 0, 0);
+ }
}