X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Finiteffects.cpp;h=a7b4d3f623de9f2fb0f5207dce0d5f6b135acd04;hb=d4048b5cfa6fa527f5f77f1b8b4203673a6427eb;hp=064b0c375ca35a12f8a9baefb97d461c4c8eb6a8;hpb=12c17f0ebd954b5d7b4f0d6e836f851095101818;p=kdenlive diff --git a/src/initeffects.cpp b/src/initeffects.cpp index 064b0c37..a7b4d3f6 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(); @@ -77,20 +76,23 @@ void initEffects::refreshLumas() QStringList filesnames = QDir(folder).entryList(filters, QDir::Files); foreach(const QString &fname, filesnames) { imagenamelist.append(fname); - imagefiles.append(folder + '/' + fname); + imagefiles.append(KUrl(folder).path(KUrl::AddTrailingSlash) + fname); } } // Check for MLT lumas - QString folder = mlt_environment("MLT_DATA"); - folder.append("/lumas/").append(mlt_environment("MLT_NORMALISATION")); - QDir lumafolder(folder); + KUrl folder(mlt_environment("MLT_DATA")); + folder.addPath("lumas"); + folder.addPath(mlt_environment("MLT_NORMALISATION")); + QDir lumafolder(folder.path()); QStringList filesnames = lumafolder.entryList(filters, QDir::Files); foreach(const QString &fname, filesnames) { imagenamelist.append(fname); - imagefiles.append(folder + '/' + fname); + KUrl path(folder); + path.addPath(fname); + imagefiles.append(path.toLocalFile()); } - QDomElement lumaTransition = MainWindow::transitions.getEffectByTag("luma", QString()); + 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 +103,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; + } + } + } @@ -184,6 +197,8 @@ Mlt::Repository *initEffects::parseEffectFiles() KGlobal::dirs()->addResourceDir("ladspa_plugin", "/usr/local/lib/ladspa"); KGlobal::dirs()->addResourceDir("ladspa_plugin", "/opt/lib/ladspa"); KGlobal::dirs()->addResourceDir("ladspa_plugin", "/opt/local/lib/ladspa"); + KGlobal::dirs()->addResourceDir("ladspa_plugin", "/usr/lib64/ladspa"); + KGlobal::dirs()->addResourceDir("ladspa_plugin", "/usr/local/lib64/ladspa"); kDebug() << "// INIT EFFECT SEARCH" << endl; @@ -217,7 +232,7 @@ Mlt::Repository *initEffects::parseEffectFiles() // static void initEffects::parseCustomEffectsFile() { - MainWindow::customEffects.clear(); + MainWindow::customEffects.clearList(); QString path = KStandardDirs::locateLocal("appdata", "effects/", true); QDir directory = QDir(path); QStringList filter; @@ -504,7 +519,7 @@ QDomDocument initEffects::createDescriptionFromMlt(Mlt::Repository* repository, eff.appendChild(desc); Mlt::Properties param_props((mlt_properties) metadata->get_data("parameters")); - for (int j = 0; param_props.is_valid() && j < param_props.count();j++) { + for (int j = 0; param_props.is_valid() && j < param_props.count(); j++) { QDomElement params = ret.createElement("parameter"); Mlt::Properties paramdesc((mlt_properties) param_props.get_data(param_props.get_name(j))); @@ -582,7 +597,7 @@ void initEffects::fillTransitionsList(Mlt::Repository * repository, EffectsList* desc.appendChild(ret.createTextNode(metadata->get("description"))); Mlt::Properties param_props((mlt_properties) metadata->get_data("parameters")); - for (int j = 0; param_props.is_valid() && j < param_props.count();j++) { + for (int j = 0; param_props.is_valid() && j < param_props.count(); j++) { QDomElement params = ret.createElement("parameter"); Mlt::Properties paramdesc((mlt_properties) param_props.get_data(param_props.get_name(j))); @@ -636,28 +651,32 @@ void initEffects::fillTransitionsList(Mlt::Repository * repository, EffectsList* filters << "*.pgm" << "*.png"; QStringList customLumas = KGlobal::dirs()->findDirs("appdata", "lumas"); - foreach(const QString &folder, customLumas) { + foreach(QString folder, customLumas) { + if (!folder.endsWith('/')) folder.append('/'); QStringList filesnames = QDir(folder).entryList(filters, QDir::Files); foreach(const QString &fname, filesnames) { imagenamelist.append(fname); - imagefiles.append(folder + '/' + fname); + imagefiles.append(folder + fname); } } // Check for MLT lumas - QString folder = mlt_environment("MLT_DATA"); - folder.append("/lumas/").append(mlt_environment("MLT_NORMALISATION")); - QDir lumafolder(folder); + KUrl folder(mlt_environment("MLT_DATA")); + folder.addPath("lumas"); + folder.addPath(mlt_environment("MLT_NORMALISATION")); + QDir lumafolder(folder.path()); QStringList filesnames = lumafolder.entryList(filters, QDir::Files); foreach(const QString &fname, filesnames) { imagenamelist.append(fname); - imagefiles.append(folder + '/' + fname); + KUrl path(folder); + path.addPath(fname); + imagefiles.append(path.toLocalFile()); } if (name == "luma") { - - tname.appendChild(ret.createTextNode("Luma")); - desc.appendChild(ret.createTextNode("Applies a luma transition between the current and next frames")); + ktrans.setAttribute("id", name); + tname.appendChild(ret.createTextNode("Wipe")); + desc.appendChild(ret.createTextNode("Applies a stationary transition between the current and next frames")); paramList.append(quickParameterFill(ret, "Softness", "softness", "double", "0", "0", "100", "", "", "100")); paramList.append(quickParameterFill(ret, "Invert", "invert", "bool", "0", "0", "1")); @@ -672,9 +691,9 @@ void initEffects::fillTransitionsList(Mlt::Repository * repository, EffectsList* paramList.append(quickParameterFill(ret, "Align", "aligned", "bool", "1", "0", "1")); paramList.append(quickParameterFill(ret, "Fill", "fill", "bool", "0", "0", "1")); paramList.append(quickParameterFill(ret, "Distort", "distort", "bool", "0", "0", "1")); - paramList.append(quickParameterFill(ret, "Luma Image File", "luma", "list", "", "", "", imagefiles.join(","), imagenamelist.join(","))); - paramList.append(quickParameterFill(ret, "Luma Softness", "softness", "double", "0", "0", "100", "", "", "100")); - paramList.append(quickParameterFill(ret, "Luma Invert", "luma_invert", "bool", "0", "0", "1")); + paramList.append(quickParameterFill(ret, "Wipe File", "luma", "list", "", "", "", imagefiles.join(","), imagenamelist.join(","))); + paramList.append(quickParameterFill(ret, "Wipe Softness", "softness", "double", "0", "0", "100", "", "", "100")); + paramList.append(quickParameterFill(ret, "Wipe Invert", "luma_invert", "bool", "0", "0", "1")); paramList.append(quickParameterFill(ret, "Force Progressive Rendering", "progressive", "bool", "1", "0", "1")); paramList.append(quickParameterFill(ret, "Force Deinterlace Overlay", "deinterlace", "bool", "0", "0", "1")); tname.appendChild(ret.createTextNode("Composite")); @@ -723,18 +742,23 @@ void initEffects::fillTransitionsList(Mlt::Repository * repository, EffectsList* transitions->append(ret.documentElement()); //kDebug() << "//// //// TRANSITON XML"; - // kDebug() << ret.toString(); + //kDebug() << ret.toString(); /* */ } - QString wipetrans = "WipeSlide image from one side to anotherDirection AlignForce Progressive RenderingForce Deinterlace Overlay"; + 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"; + QDomDocument dissolveDoc; + dissolveDoc.setContent(dissolve); + transitions->append(dissolveDoc.documentElement()); + /*QString alphatrans = "Alpha transparencyMake alpha channel transparentDirectionRescaleAlign"; QDomDocument ret2; ret2.setContent(alphatrans);