Mlt::Properties *filters = repository->filters();
QStringList filtersList;
+ // Check for blacklisted effects
+ QString blacklist = KStandardDirs::locate("appdata", "blacklisted_effects.txt");
+
+ QFile file(blacklist);
+ QStringList blackListed;
+
+ if (file.open(QIODevice::ReadOnly)) {
+ QTextStream in(&file);
+ while (!in.atEnd()) {
+ QString black = in.readLine().simplified();
+ if (!black.isEmpty() && !black.startsWith('#')) blackListed.append(black);
+ }
+ }
+ file.close();
+
+ // Check for blacklisted transitions
+ blacklist = KStandardDirs::locate("appdata", "blacklisted_transitions.txt");
+
+ QFile file2(blacklist);
+ QStringList blackListedtransitions;
+
+ if (file2.open(QIODevice::ReadOnly)) {
+ QTextStream in(&file2);
+ while (!in.atEnd()) {
+ QString black = in.readLine().simplified();
+ if (!black.isEmpty() && !black.startsWith('#')) blackListedtransitions.append(black);
+ }
+ }
+ file2.close();
+
for (int i = 0 ; i < filters->count() ; i++) {
filtersList << filters->get_name(i);
}
transitionsItemList << transitions->get_name(i);
}
delete transitions;
+
+ foreach(const QString &trans, blackListedtransitions) {
+ if (transitionsItemList.contains(trans)) transitionsItemList.removeAll(trans);
+ }
fillTransitionsList(repository, &MainWindow::transitions, transitionsItemList);
KGlobal::dirs()->addResourceType("ladspa_plugin", 0, "lib/ladspa");
// kDebug()<<"// FOUND EFFECT FILE: "<<itemName<<endl;
}
}
+
+ foreach(const QString &effect, blackListed) {
+ if (filtersList.contains(effect)) filtersList.removeAll(effect);
+ }
+
foreach(const QString &filtername, filtersList) {
QDomDocument doc = createDescriptionFromMlt(repository, "filters", filtername);
if (!doc.isNull())
}
void initEffects::fillTransitionsList(Mlt::Repository * repository, EffectsList* transitions, QStringList names) {
+ // remove transitions that are not implemented
+ int pos = names.indexOf("mix");
+ if (pos != -1) names.takeAt(pos);
+ pos = names.indexOf("region");
+ if (pos != -1) names.takeAt(pos);
foreach(const QString &name, names) {
QDomDocument ret;
QDomElement ktrans = ret.createElement("ktransition");
paramList.append(quickParameterFill(ret, "Softness", "softness", "double", "0", "0", "100", "", "", "100"));
paramList.append(quickParameterFill(ret, "Invert", "invert", "bool", "0", "0", "1"));
paramList.append(quickParameterFill(ret, "ImageFile", "resource", "list", "", "", "", imagefiles, imagenamelist));
+ paramList.append(quickParameterFill(ret, "Reverse Transition", "reverse", "bool", "0", "0", "1"));
//thumbnailer.prepareThumbnailsCall(imagelist);
} else if (name == "composite") {
- paramList.append(quickParameterFill(ret, "Geometry", "geometry", "geometry", "0;0;100;100;100", "-500;-500;-500;-500;0", "500;500;500;500;100"));
+ paramList.append(quickParameterFill(ret, "Geometry", "geometry", "geometry", "0%,0%:100%x100%:100", "-500;-500;-500;-500;0", "500;500;500;500;100"));
+ paramList.append(quickParameterFill(ret, "Distort", "distort", "bool", "1", "1", "1"));
tname.appendChild(ret.createTextNode("Composite"));
-
QDomDocument ret1;
QDomElement ktrans1 = ret1.createElement("ktransition");
ret1.appendChild(ktrans1);
}
- paramList.append(quickParameterFill(ret, "Reverse Transition", "reverse", "bool", "0", "0", "1"));
+
ktrans.appendChild(tname);
foreach(const QDomElement &e, paramList) {
transitions->append(ret.documentElement());
- kDebug() << "//// //// TRANSITON XML";
- kDebug() << ret.toString();
+ //kDebug() << "//// //// TRANSITON XML";
+ //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" />