X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;ds=sidebyside;f=src%2Ftrackview.cpp;h=f91abc35b871e51146332e79f8f1f5dab11dff43;hb=96974b15f7e9fc9f7cf71795a26997b2bcf1146d;hp=16e0da314683bb46a31b69d0b36313a530b22381;hpb=1bb5954abb1179a8cd75a3dbffec0911f297357e;p=kdenlive diff --git a/src/trackview.cpp b/src/trackview.cpp index 16e0da31..f91abc35 100644 --- a/src/trackview.cpp +++ b/src/trackview.cpp @@ -106,8 +106,7 @@ TrackView::TrackView(KdenliveDoc *doc, bool *ok, QWidget *parent) : 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))); @@ -635,7 +634,6 @@ int TrackView::slotAddProjectTrack(int ix, QDomElement xml, bool locked) 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))); @@ -647,12 +645,13 @@ int TrackView::slotAddProjectTrack(int ix, QDomElement xml, bool locked) // 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()) { @@ -662,8 +661,12 @@ int TrackView::slotAddProjectTrack(int ix, QDomElement xml, bool locked) 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)) { @@ -689,7 +692,7 @@ int TrackView::slotAddProjectTrack(int ix, QDomElement xml, bool locked) 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 @@ -792,16 +795,15 @@ int TrackView::slotAddProjectTrack(int ix, QDomElement xml, bool locked) 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; } @@ -816,8 +818,8 @@ int TrackView::slotAddProjectTrack(int ix, QDomElement xml, bool locked) } currenteffect.setAttribute("src", ladspaEffectFile); } + if (disableeffect) currenteffect.setAttribute("disable", "1"); item->addEffect(currenteffect, false); - item->effectsCounter(); } } }