From 846796b4b7b167c074010d8befbf00d51fe43476 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Mardelle Date: Sat, 21 May 2011 17:07:30 +0000 Subject: [PATCH] Fix effect's creation svn path=/trunk/kdenlive/; revision=5603 --- src/initeffects.cpp | 81 ++++++++++++++++++++++++--------------------- 1 file changed, 43 insertions(+), 38 deletions(-) diff --git a/src/initeffects.cpp b/src/initeffects.cpp index bdbbe907..884438ec 100644 --- a/src/initeffects.cpp +++ b/src/initeffects.cpp @@ -238,47 +238,59 @@ Mlt::Repository *initEffects::parseEffectFiles() */ QDomElement effectInfo; QMap effectsMap; + QMap videoEffectsMap; + QMap audioEffectsMap; + + // Create transitions for (int i = 0; i < MainWindow::transitions.count(); ++i) { effectInfo = MainWindow::transitions.at(i); effectsMap.insert(effectInfo.elementsByTagName("name").item(0).toElement().text().toLower().toUtf8().data(), effectInfo); } MainWindow::transitions.clearList(); foreach(const QDomElement & effect, effectsMap) - MainWindow::transitions.append(effect); + MainWindow::transitions.append(effect); effectsMap.clear(); + + // Create custom effects for (int i = 0; i < MainWindow::customEffects.count(); ++i) { effectInfo = MainWindow::customEffects.at(i); effectsMap.insert(effectInfo.elementsByTagName("name").item(0).toElement().text().toLower().toUtf8().data(), effectInfo); } MainWindow::customEffects.clearList(); foreach(const QDomElement & effect, effectsMap) - MainWindow::customEffects.append(effect); + MainWindow::customEffects.append(effect); effectsMap.clear(); + + // Create effects from MLT + foreach(const QString & filtername, filtersList) { + QDomDocument doc = createDescriptionFromMlt(repository, "filters", filtername); + if (!doc.isNull()) { + //kDebug()<<"ADDING: "<append(documentElement); @@ -621,22 +625,24 @@ QDomDocument initEffects::createDescriptionFromMlt(Mlt::Repository* repository, if (paramdesc.get("maximum")) params.setAttribute("max", paramdesc.get("maximum")); if (paramdesc.get("minimum")) params.setAttribute("min", paramdesc.get("minimum")); - if (QString(paramdesc.get("type")) == "integer") + + QString paramType = paramdesc.get("type"); + + if (paramType == "integer") params.setAttribute("type", "constant"); - if (QString(paramdesc.get("type")) == "float") { + else if (paramType == "float") { params.setAttribute("type", "constant"); // param type is float, set default decimals to 3 params.setAttribute("decimals", "3"); } - if (QString(paramdesc.get("type")) == "boolean") + else if (paramType == "boolean") params.setAttribute("type", "bool"); - if (!QString(paramdesc.get("format")).isEmpty() && QString(paramdesc.get("type")) != "geometry") { + else if (paramType == "geometry") { params.setAttribute("type", "geometry"); - params.setAttribute("format", paramdesc.get("format")); } - if (!QString(paramdesc.get("format")).isEmpty() && QString(paramdesc.get("type")) == "geometry") { - params.setAttribute("type", "geometry"); - //params.setAttribute("format", paramdesc.get("format")); + else { + params.setAttribute("type", paramType); + if (!QString(paramdesc.get("format")).isEmpty()) params.setAttribute("format", paramdesc.get("format")); } if (paramdesc.get("default")) params.setAttribute("default", paramdesc.get("default")); if (paramdesc.get("value")) { @@ -645,7 +651,6 @@ QDomDocument initEffects::createDescriptionFromMlt(Mlt::Repository* repository, params.setAttribute("value", paramdesc.get("default")); } - QDomElement pname = ret.createElement("name"); pname.appendChild(ret.createTextNode(paramdesc.get("title"))); params.appendChild(pname); @@ -657,7 +662,7 @@ QDomDocument initEffects::createDescriptionFromMlt(Mlt::Repository* repository, } delete metadata; metadata = 0; - /* QString outstr; + /*QString outstr; QTextStream str(&outstr); ret.save(str, 2); kDebug() << outstr;*/ -- 2.39.2