From: Marco Gittler Date: Thu, 28 Feb 2008 18:16:19 +0000 (+0000) Subject: complex parameters editable X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=64e0317ef2dd5baf5319ce099d51260b958e4bed;p=kdenlive complex parameters editable svn path=/branches/KDE4/; revision=1963 --- diff --git a/effects/obscure.xml b/effects/obscure.xml index a676fe5b..bf5d43bc 100644 --- a/effects/obscure.xml +++ b/effects/obscure.xml @@ -9,7 +9,7 @@ - + Region diff --git a/src/clipitem.cpp b/src/clipitem.cpp index 03ce5eec..d7b929d7 100644 --- a/src/clipitem.cpp +++ b/src/clipitem.cpp @@ -638,6 +638,20 @@ QMap ClipItem::getEffectArgs(QDomElement effect) QDomNodeList params = effect.elementsByTagName("parameter"); for (int i = 0; i < params.count(); i++) { QDomElement e = params.item(i).toElement(); + if (e.attribute("name").contains(";")){ + QString format=e.attribute("format"); + QStringList separators=format.split("%d",QString::SkipEmptyParts); + QStringList values=e.attribute("value").split(QRegExp("[,:;x]")); + QString neu; + QTextStream txtNeu(&neu); + if (values.size()>0) + txtNeu << (int)values[0].toDouble(); + for (int i=0;isetupParam(d,0,100); diff --git a/src/initeffects.cpp b/src/initeffects.cpp index ecbdfaf3..30daa767 100644 --- a/src/initeffects.cpp +++ b/src/initeffects.cpp @@ -384,8 +384,16 @@ QDomDocument initEffects::createDescriptionFromMlt(Mlt::Repository* repository, params.setAttribute("type","constant"); if (QString(paramdesc.get("type"))=="boolean" ) params.setAttribute("type","bool"); + if (!QString(paramdesc.get("format")).isEmpty()){ + params.setAttribute("type","complex"); + params.setAttribute("format",paramdesc.get("format")); + } if (paramdesc.get("default") ) params.setAttribute("default",paramdesc.get("default")); - if (paramdesc.get("value") ) params.setAttribute("value",paramdesc.get("value")); + if (paramdesc.get("value") ){ + params.setAttribute("value",paramdesc.get("value")); + }else{ + params.setAttribute("value",paramdesc.get("default")); + } QDomElement pname=ret.createElement("name"); diff --git a/src/parameterplotter.cpp b/src/parameterplotter.cpp index fe9dd87d..6701638f 100644 --- a/src/parameterplotter.cpp +++ b/src/parameterplotter.cpp @@ -80,7 +80,13 @@ void ParameterPlotter::setPointLists(const QDomElement& d,int startframe,int end //max_y=pa.attributes().namedItem("max").nodeValue().toInt(); //int val=pa.attributes().namedItem("value").nodeValue().toInt(); - QStringList defauls=pa.attributes().namedItem("default").nodeValue().split(";"); + QStringList defaults; + if (pa.attributes().namedItem("start").nodeValue().contains(";")) + defaults=pa.attributes().namedItem("start").nodeValue().split(";"); + else if (pa.attributes().namedItem("value").nodeValue().contains(";")) + defaults=pa.attributes().namedItem("value").nodeValue().split(";"); + else if (pa.attributes().namedItem("default").nodeValue().contains(";")) + defaults=pa.attributes().namedItem("default").nodeValue().split(";"); QStringList maxv=pa.attributes().namedItem("max").nodeValue().split(";"); QStringList minv=pa.attributes().namedItem("max").nodeValue().split(";"); for (int i=0;iaddPoint(startframe,defauls[i].toInt()*stretchFactors[i]); + if (defaults[i].toDouble()>max_y) + defaults[i]=max_y; + plot->addPoint(startframe,defaults[i].toInt()*stretchFactors[i]); //add keyframes here - plot->addPoint(endframe,defauls[i].toInt()*stretchFactors[i]); + plot->addPoint(endframe,defaults[i].toInt()*stretchFactors[i]); plotobjects.append(plot); } @@ -128,24 +135,22 @@ void ParameterPlotter::createParametersNew(){ kDebug() << "ERROR size not equal"; } QDomNodeList namenode = itemParameter.elementsByTagName("parameter"); - for (int i=0;i points=plotobjs[i]->points(); - QDomNode pa=namenode.item(i); - - - - - - - QMap vals; - foreach (KPlotPoint *o,points){ - //vals[o->x()]=o->y(); - pa.attributes().namedItem("value").setNodeValue(QString::number(o->y())); + QString paramlist; + QTextStream txtstr(¶mlist); + QDomNode pa=namenode.item(0); + if (namenode.count()>0){ + for (int i=0;i points=plotobjs[i]->points(); + foreach (KPlotPoint *o,points){ + txtstr << (int)o->y() ; + break;//first no keyframes + } + if (i+1!=plotobjs.count()) + txtstr<< ";"; } - QPair > pair("contrast",vals); - //ret.append(pair); } - + pa.attributes().namedItem("value").setNodeValue(paramlist); + pa.attributes().namedItem("start").setNodeValue(paramlist); emit parameterChanged(itemParameter); }