connect(m_trackview, SIGNAL(updateTrackHeaders()), this, SLOT(slotRepaintTracks()));
parseDocument(m_doc->toXml());
- int error = m_doc->setSceneList();
- if (error == -1) *ok = false;
+ if (m_doc->setSceneList() == -1) *ok = false;
else *ok = true;
connect(m_trackview, SIGNAL(cursorMoved(int, int)), m_ruler, SLOT(slotCursorMoved(int, int)));
connect(m_trackview->horizontalScrollBar(), SIGNAL(valueChanged(int)), m_ruler, SLOT(slotMoveRuler(int)));
if (locked) item->setItemLocked(true);
clip->addReference();
position += (out - in + 1);
- kDebug() << "/////////\n\n\n" << "CLIP SPEED: " << speed << ", " << strobe << "\n\n\n/////////////////////";
if (speed != 1.0 || strobe > 1) {
QDomElement speedeffect = MainWindow::videoEffects.getEffectByTag(QString(), "speed").cloneNode().toElement();
EffectsList::setParameter(speedeffect, "speed", QString::number((int)(100 * speed + 0.5)));
// parse clip effects
QDomNodeList effects = elem.childNodes();
for (int ix = 0; ix < effects.count(); ix++) {
+ bool disableeffect = false;
QDomElement effect = effects.at(ix).toElement();
if (effect.tagName() == "filter") {
// add effect to clip
QString effecttag;
QString effectid;
- QString effectindex;
+ QString effectindex = QString::number(ix + 1);
QString ladspaEffectFile;
// Get effect tag & index
for (QDomNode n3 = effect.firstChild(); !n3.isNull(); n3 = n3.nextSibling()) {
effecttag = effectparam.text();
} else if (effectparam.attribute("name") == "kdenlive_id") {
effectid = effectparam.text();
+ } else if (effectparam.attribute("name") == "disable" && effectparam.text().toInt() == 1) {
+ // Fix effects index
+ disableeffect = true;
} else if (effectparam.attribute("name") == "kdenlive_ix") {
- effectindex = effectparam.text();
+ // Fix effects index
+ effectparam.firstChild().setNodeValue(effectindex);
} else if (effectparam.attribute("name") == "src") {
ladspaEffectFile = effectparam.text();
if (!QFile::exists(ladspaEffectFile)) {
QDomElement currenteffect = clipeffect.cloneNode().toElement();
currenteffect.setAttribute("kdenlive_ix", effectindex);
QDomNodeList clipeffectparams = currenteffect.childNodes();
-
+
if (MainWindow::videoEffects.hasKeyFrames(currenteffect)) {
//kDebug() << " * * * * * * * * * * ** CLIP EFF WITH KFR FND * * * * * * * * * * *";
// effect is key-framable, read all effects to retrieve keyframes
if (factor.startsWith('%')) {
fact = ProfilesDialog::getStringEval(m_doc->mltProfile(), factor);
} else fact = factor.toDouble();
- if (e.attribute("type") == "simplekeyframe") {
- QStringList kfrs = paramvalue.split(";");
- for (int l = 0; l < kfrs.count(); l++) {
- QString fr = kfrs.at(l).section("=", 0, 0);
- double val = kfrs.at(l).section("=", 1, 1).toDouble();
- kfrs[l] = fr + ":" + QString::number((int) (val * fact));
- }
- e.setAttribute("keyframes", kfrs.join(";"));
- }
- else e.setAttribute("value", paramvalue.toDouble() * fact);
+ if (e.attribute("type") == "simplekeyframe") {
+ QStringList kfrs = paramvalue.split(";");
+ for (int l = 0; l < kfrs.count(); l++) {
+ QString fr = kfrs.at(l).section("=", 0, 0);
+ double val = kfrs.at(l).section("=", 1, 1).toDouble();
+ kfrs[l] = fr + ":" + QString::number((int)(val * fact));
+ }
+ e.setAttribute("keyframes", kfrs.join(";"));
+ } else e.setAttribute("value", paramvalue.toDouble() * fact);
} else e.setAttribute("value", paramvalue);
break;
}
}
currenteffect.setAttribute("src", ladspaEffectFile);
}
+ if (disableeffect) currenteffect.setAttribute("disable", "1");
item->addEffect(currenteffect, false);
- item->effectsCounter();
}
}
}