]> git.sesse.net Git - kdenlive/blobdiff - src/effectstackedit.cpp
New: option to resize monitor to current project size (50% or 100%)
[kdenlive] / src / effectstackedit.cpp
index 29c38dde247eea886efb54b6b8b55dfa074a4e82..ca8ae5d0f87af6be882e865b8d0da5639745afcc 100644 (file)
@@ -30,6 +30,7 @@
 #include "ui_colorval_ui.h"
 #include "ui_wipeval_ui.h"
 #include "complexparameter.h"
+#include "geometryval.h"
 
 QMap<QString, QImage> EffectStackEdit::iconCache;
 
@@ -87,10 +88,10 @@ void EffectStackEdit::transferParamDesc(const QDomElement& d, int , int) {
         QString value = pa.attribute("value").isNull() ?
                         pa.attribute("default") : pa.attribute("value");
         if (type == "geometry") {
-            pa.setAttribute("namedesc", "X;Y;W;H;M");
-            pa.setAttribute("format", "%d%,%d%:%d%x%d%:%d%");
-            pa.setAttribute("min", "-200;-20;0;0;0");
-            pa.setAttribute("max", "200;200;100;100;100");
+            pa.setAttribute("namedesc", "X;Y;Width;Height;Transparency");
+            pa.setAttribute("format", "%d%,%d%:%d%x%d%:%d");
+            pa.setAttribute("min", "-500;-500;0;0;0");
+            pa.setAttribute("max", "500;500;200;200;100");
         } else if (type == "complex") {
             //pa.setAttribute("namedesc",pa.attribute("name"));
 
@@ -137,7 +138,7 @@ void EffectStackEdit::transferParamDesc(const QDomElement& d, int , int) {
             bval->checkBox->setText(na.toElement().text());
             valueItems[paramName] = bval;
             uiItems.append(bval);
-        } else if (type == "complex" || type == "geometry") {
+        } else if (type == "complex") {
             /*QStringList names=nodeAtts.namedItem("name").nodeValue().split(";");
             QStringList max=nodeAtts.namedItem("max").nodeValue().split(";");
             QStringList min=nodeAtts.namedItem("min").nodeValue().split(";");
@@ -157,6 +158,13 @@ void EffectStackEdit::transferParamDesc(const QDomElement& d, int , int) {
             vbox->addWidget(pl);
             valueItems[paramName+"complex"] = pl;
             items.append(pl);
+        } else if (type == "geometry") {
+            Geometryval *geo = new Geometryval;
+            connect(geo, SIGNAL(parameterChanged()), this, SLOT(collectAllParameters()));
+            geo->setupParam(d, pa.attribute("name"), 0, 100);
+            vbox->addWidget(geo);
+            valueItems[paramName+"geometry"] = geo;
+            items.append(geo);
         } else if (type == "color") {
             Ui::Colorval_UI *cval = new Ui::Colorval_UI;
             cval->setupUi(toFillin);
@@ -323,9 +331,12 @@ void EffectStackEdit::collectAllParameters() {
         } else if (type == "color") {
             KColorButton *color = ((Ui::Colorval_UI*)valueItems[na.toElement().text()])->kcolorbutton;
             setValue.sprintf("0x%08x", color->color().rgba());
-        } else if (type == "complex" || type == "geometry") {
+        } else if (type == "complex") {
             ComplexParameter *complex = ((ComplexParameter*)valueItems[na.toElement().text()+"complex"]);
             namenode.item(i) = complex->getParamDesc();
+        } else if (type == "geometry") {
+            Geometryval *geom = ((Geometryval*)valueItems[na.toElement().text()+"geometry"]);
+            namenode.item(i) = geom->getParamDesc();
         } else if (type == "wipe") {
             Ui::Wipeval_UI *wp = (Ui::Wipeval_UI*)valueItems[na.toElement().text()];
             wipeInfo info;
@@ -375,10 +386,7 @@ void EffectStackEdit::slotSliderMoved(int) {
 }
 
 void EffectStackEdit::clearAllItems() {
-    foreach(QWidget *w, items) {
-        vbox->removeWidget(w);
-        delete w;
-    }
+    qDeleteAll(items);
     foreach(void *p, uiItems) {
         delete p;
     }