X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Finiteffects.cpp;h=62961b7ccddc21c16eced2f62d1a63decd9776d8;hb=664d1a3d5bf9c771936ca98d48163fa4df6ffc0e;hp=a388b11394a7ab463d6e3d33fb6e1636eff79c99;hpb=14463a722064177b1699d3ab562e3a89e0a39da9;p=kdenlive diff --git a/src/initeffects.cpp b/src/initeffects.cpp index a388b113..62961b7c 100644 --- a/src/initeffects.cpp +++ b/src/initeffects.cpp @@ -134,7 +134,7 @@ QDomDocument initEffects::getUsedCustomEffects(QMap effectids } //static -Mlt::Repository *initEffects::parseEffectFiles() +void initEffects::parseEffectFiles() { QStringList::Iterator more; QStringList::Iterator it; @@ -144,20 +144,22 @@ Mlt::Repository *initEffects::parseEffectFiles() Mlt::Repository *repository = Mlt::Factory::init(); if (!repository) { kDebug() << "Repository didn't finish initialisation" ; - return NULL; + return; } // Retrieve the list of MLT's available effects. Mlt::Properties *filters = repository->filters(); QStringList filtersList; - for (int i = 0; i < filters->count(); ++i) + int max = filters->count(); + for (int i = 0; i < max; ++i) filtersList << filters->get_name(i); delete filters; // Retrieve the list of available producers. Mlt::Properties *producers = repository->producers(); QStringList producersList; - for (int i = 0; i < producers->count(); ++i) + max = producers->count(); + for (int i = 0; i < max; ++i) producersList << producers->get_name(i); KdenliveSettings::setProducerslist(producersList); delete producers; @@ -165,7 +167,8 @@ Mlt::Repository *initEffects::parseEffectFiles() // Retrieve the list of available transitions. Mlt::Properties *transitions = repository->transitions(); QStringList transitionsItemList; - for (int i = 0; i < transitions->count(); ++i) + max = transitions->count(); + for (int i = 0; i < max; ++i) transitionsItemList << transitions->get_name(i); delete transitions; @@ -214,7 +217,8 @@ Mlt::Repository *initEffects::parseEffectFiles() QMap audioEffectsMap; // Create transitions - for (int i = 0; i < MainWindow::transitions.count(); ++i) { + max = MainWindow::transitions.count(); + for (int i = 0; i < max; ++i) { effectInfo = MainWindow::transitions.at(i); effectsMap.insert(effectInfo.firstChildElement("name").text().toLower().toUtf8().data(), effectInfo); } @@ -261,7 +265,8 @@ Mlt::Repository *initEffects::parseEffectFiles() } // Create custom effects - for (int i = 0; i < MainWindow::customEffects.count(); ++i) { + max = MainWindow::customEffects.count(); + for (int i = 0; i < max; ++i) { effectInfo = MainWindow::customEffects.at(i); effectsMap.insert(effectInfo.firstChildElement("name").text().toLower().toUtf8().data(), effectInfo); } @@ -271,7 +276,8 @@ Mlt::Repository *initEffects::parseEffectFiles() effectsMap.clear(); // Create audio effects - for (int i = 0; i < MainWindow::audioEffects.count(); ++i) { + max = MainWindow::audioEffects.count(); + for (int i = 0; i < max; ++i) { effectInfo = MainWindow::audioEffects.at(i); audioEffectsMap.insert(effectInfo.firstChildElement("name").text().toLower().toUtf8().data(), effectInfo); } @@ -280,15 +286,14 @@ Mlt::Repository *initEffects::parseEffectFiles() MainWindow::audioEffects.append(effect); // Create video effects - for (int i = 0; i < MainWindow::videoEffects.count(); ++i) { + max = MainWindow::videoEffects.count(); + for (int i = 0; i < max; ++i) { effectInfo = MainWindow::videoEffects.at(i); videoEffectsMap.insert(effectInfo.firstChildElement("name").text().toLower().toUtf8().data(), effectInfo); } MainWindow::videoEffects.clearList(); foreach(const QDomElement & effect, videoEffectsMap) MainWindow::videoEffects.append(effect); - - return repository; } // static @@ -327,7 +332,7 @@ void initEffects::parseCustomEffectsFile() } } foreach(const QDomElement & effect, effectsMap) - MainWindow::customEffects.append(effect); + MainWindow::customEffects.append(effect); } // static @@ -550,8 +555,9 @@ void initEffects::fillTransitionsList(Mlt::Repository *repository, EffectsList * QDomElement desc = ret.createElement("description"); ktrans.appendChild(tname); ktrans.appendChild(desc); - Mlt::Properties *metadata = repository->metadata(transition_type, name.toUtf8().data()); - if (!customTransitions.contains(name) && metadata && metadata->is_valid()) { + Mlt::Properties *metadata = NULL; + if (!customTransitions.contains(name)) metadata = repository->metadata(transition_type, name.toUtf8().data()); + if (metadata && metadata->is_valid()) { // If possible, set name and description. if (metadata->get("title") && metadata->get("identifier")) tname.appendChild(ret.createTextNode(metadata->get("title"))); @@ -591,8 +597,6 @@ void initEffects::fillTransitionsList(Mlt::Repository *repository, EffectsList * params.appendChild(pname); ktrans.appendChild(params); } - delete metadata; - metadata = 0; } else { /* * Check for Kdenlive installed luma files, add empty string at @@ -643,16 +647,16 @@ void initEffects::fillTransitionsList(Mlt::Repository *repository, EffectsList * paramList.append(quickParameterFill(ret, "keyed", "keyed", "fixed", "1", "1", "1")); paramList.append(quickParameterFill(ret, i18n("Geometry"), "geometry", "geometry", "0/0:100%x100%:100%", "0/0:100%x100%:100%", "0/0:100%x100%:100%", "", "", "", "", "", "true")); - + paramList.append(quickParameterFill(ret, i18n("Distort"), "distort", "bool", "0", "0", "1")); paramList.append(quickParameterFill(ret, i18n("Rotate X"), "rotate_x", "addedgeometry", "0", "-1800", "1800", QString(), QString(), "10")); paramList.append(quickParameterFill(ret, i18n("Rotate Y"), "rotate_y", "addedgeometry", "0", "-1800", "1800", QString(), QString(), "10")); paramList.append(quickParameterFill(ret, i18n("Rotate Z"), "rotate_z", "addedgeometry", "0", "-1800", "1800", QString(), QString(), "10")); /*paramList.append(quickParameterFill(ret, i18n("Rotate Y"), "rotate_y", "simplekeyframe", "0", "-1800", "1800", QString(), QString(), "10")); paramList.append(quickParameterFill(ret, i18n("Rotate Z"), "rotate_z", "simplekeyframe", "0", "-1800", "1800", QString(), QString(), "10"));*/ - paramList.append(quickParameterFill(ret, i18n("Fix Shear Y"), "fix_shear_y", "double", "0", "0", "360")); - paramList.append(quickParameterFill(ret, i18n("Fix Shear X"), "fix_shear_x", "double", "0", "0", "360")); - paramList.append(quickParameterFill(ret, i18n("Fix Shear Z"), "fix_shear_z", "double", "0", "0", "360")); + paramList.append(quickParameterFill(ret, i18n("Fix Shear Y"), "shear_y", "double", "0", "0", "360")); + paramList.append(quickParameterFill(ret, i18n("Fix Shear X"), "shear_x", "double", "0", "0", "360")); + paramList.append(quickParameterFill(ret, i18n("Fix Shear Z"), "shear_z", "double", "0", "0", "360")); } else if (name == "mix") { tname.appendChild(ret.createTextNode(i18n("Mix"))); } else if (name == "region") { @@ -674,7 +678,8 @@ void initEffects::fillTransitionsList(Mlt::Repository *repository, EffectsList * foreach(const QDomElement & e, paramList) ktrans.appendChild(e); } - + delete metadata; + metadata = 0; // Add the transition to the global list. transitions->append(ret.documentElement()); //kDebug() << ret.toString();