+ } else if (type == "geometry") {
+ if (KdenliveSettings::on_monitor_effects()) {
+ GeometryWidget *geometry = ((GeometryWidget*)m_valueItems.value(paramName));
+ namenode.item(i).toElement().setAttribute("value", geometry->getValue());
+ } else {
+ Geometryval *geom = ((Geometryval*)m_valueItems.value(paramName));
+ namenode.item(i).toElement().setAttribute("value", geom->getValue());
+ }
+ } else if (type == "position") {
+ PositionEdit *pedit = ((PositionEdit*)m_valueItems.value(paramName));
+ int pos = pedit->getPosition();
+ setValue = QString::number(pos);
+ if (newparam.attribute("id") == "fadein" || newparam.attribute("id") == "fade_from_black") {
+ // Make sure duration is not longer than clip
+ /*if (pos > m_out) {
+ pos = m_out;
+ pedit->setPosition(pos);
+ }*/
+ EffectsList::setParameter(newparam, "in", QString::number(m_in));
+ EffectsList::setParameter(newparam, "out", QString::number(m_in + pos));
+ setValue.clear();
+ } else if (newparam.attribute("id") == "fadeout" || newparam.attribute("id") == "fade_to_black") {
+ // Make sure duration is not longer than clip
+ /*if (pos > m_out) {
+ pos = m_out;
+ pedit->setPosition(pos);
+ }*/
+ EffectsList::setParameter(newparam, "in", QString::number(m_out - pos));
+ EffectsList::setParameter(newparam, "out", QString::number(m_out));
+ setValue.clear();
+ }
+ } else if (type == "curve") {
+ KisCurveWidget *curve = ((KisCurveWidget*)m_valueItems.value(paramName));
+ QList<QPointF> points = curve->curve().points();
+ QString number = pa.attributes().namedItem("number").nodeValue();
+ QString inName = pa.attributes().namedItem("inpoints").nodeValue();
+ QString outName = pa.attributes().namedItem("outpoints").nodeValue();
+ int off = pa.attributes().namedItem("min").nodeValue().toInt();
+ int end = pa.attributes().namedItem("max").nodeValue().toInt();
+ EffectsList::setParameter(newparam, number, QString::number(points.count()));
+ for (int j = 0; (j < points.count() && j + off <= end); j++) {
+ QString in = inName;
+ in.replace("%i", QString::number(j + off));
+ QString out = outName;
+ out.replace("%i", QString::number(j + off));
+ EffectsList::setParameter(newparam, in, QString::number(points.at(j).x()));
+ EffectsList::setParameter(newparam, out, QString::number(points.at(j).y()));
+ }
+ QString depends = pa.attributes().namedItem("depends").nodeValue();
+ if (!depends.isEmpty())
+ meetDependency(paramName, type, EffectsList::parameter(newparam, depends));
+ } else if (type == "corners") {
+ CornersWidget *corners = ((CornersWidget*)m_valueItems.value(paramName));
+ QString xName = pa.attributes().namedItem("xpoints").nodeValue();
+ QString yName = pa.attributes().namedItem("ypoints").nodeValue();
+ QPolygon points = corners->getValue();
+ QPoint p;
+ for (int j = 1; j <= 4; ++j) {
+ p = points.at(j - 1);
+ EffectsList::setParameter(newparam, QString(xName).replace("%i", QString::number(j)), QString::number(p.x()));
+ EffectsList::setParameter(newparam, QString(yName).replace("%i", QString::number(j)), QString::number(p.y()));
+ }