]> git.sesse.net Git - kdenlive/commitdiff
images for luma can be selected
authorMarco Gittler <marco@gitma.de>
Mon, 24 Mar 2008 11:21:14 +0000 (11:21 +0000)
committerMarco Gittler <marco@gitma.de>
Mon, 24 Mar 2008 11:21:14 +0000 (11:21 +0000)
svn path=/branches/KDE4/; revision=2112

src/effectstackedit.cpp
src/initeffects.cpp

index 11c026510334e57b6b1adf7a4add989acd685299..ef3cfbcccd49651922a88c8b176e6dffea9f1ba0 100644 (file)
@@ -30,6 +30,8 @@
 #include "ui_colorval_ui.h"
 #include "complexparameter.h"
 
+static QMap<QString, QIcon> iconCache;
+
 EffectStackEdit::EffectStackEdit(QFrame* frame, QWidget *parent): QObject(parent) {
     QScrollArea *area;
     QVBoxLayout *vbox1 = new QVBoxLayout(frame);
@@ -93,7 +95,18 @@ void EffectStackEdit::transferParamDesc(const QDomElement& d, int , int) {
             nodeAtts.namedItem("paramlist");
             QStringList listitems = nodeAtts.namedItem("paramlist").nodeValue().split(",");
             lsval->list->addItems(listitems);
-            lsval->list->setCurrentIndex(listitems.indexOf(value));;
+            lsval->list->setCurrentIndex(listitems.indexOf(value));
+            for (int i = 0;i < lsval->list->count();i++) {
+                QString entry = lsval->list->itemText(i);
+                if (!entry.isEmpty() && (entry.endsWith(".png") || entry.endsWith(".pnm"))) {
+                    if (!iconCache.contains(entry)) {
+                        QPixmap pix(entry);
+                        iconCache[entry] = pix.scaled(30, 30);
+                    }
+                    lsval->list->setIconSize(QSize(30, 30));
+                    lsval->list->setItemIcon(i, iconCache[entry]);
+                }
+            }
             connect(lsval->list, SIGNAL(currentIndexChanged(int)) , this, SLOT(collectAllParameters()));
             lsval->title->setTitle(na.toElement().text());
             valueItems[paramName] = lsval;
index d56cc5f553c91433f3085eb08551ce31813c68c7..29a2b6924f597c01069fd010b48779d75de6c4d9 100644 (file)
@@ -437,12 +437,19 @@ void initEffects::fillTransitionsList(Mlt::Repository * repository, EffectsList*
                 Mlt::Properties entries;
                 mlt_properties_dir_list(entries.get_properties(), path.toAscii().data(), "*.*", 1);
                 kDebug() << path << entries.count();
+                QString imagefiles;
                 for (int i = 0;i < entries.count();i++) {
-                    kDebug() << "luma:" << entries.get(i);
+                    //if (!imagefiles.isEmpty()) // add empty entry too
+                    imagefiles.append(",");
+                    imagefiles.append(entries.get(i));
                 }
+                paramList.append(quickParameterFill(ret, "Softness", "softness", "double", "0", "0", "360"));
+                paramList.append(quickParameterFill(ret, "Invert", "invert", "bool", "0", "0", "1"));
+                paramList.append(quickParameterFill(ret, "ImageFile", "resource", "list", "", "", "", imagefiles));
 
-            } else if (name == "composite") {
 
+            } else if (name == "composite") {
+                paramList.append(quickParameterFill(ret, "Geometry", "geometry", "geometry", "0%,0%:100%x100%", "0%,0%:100%x100%", "0%,0%:100%x100%"));
                 tname.appendChild(ret.createTextNode("Composite"));
 
                 QDomDocument ret1;
@@ -470,7 +477,7 @@ void initEffects::fillTransitionsList(Mlt::Repository * repository, EffectsList*
                 paramList.append(quickParameterFill(ret, "Fix Shear Z", "fix_shear_z", "double", "0", "0", "360"));
                 paramList.append(quickParameterFill(ret, "Mirror", "mirror_off", "bool", "0", "0", "1"));
                 paramList.append(quickParameterFill(ret, "Repeat", "repeat_off", "bool", "0", "0", "1"));
-                paramList.append(quickParameterFill(ret, "Geometry", "geometry", "geometry", "0%,0%:100%x100%", "0,0:100%x100%0", "0,0:100%x100%1"));
+                paramList.append(quickParameterFill(ret, "Geometry", "geometry", "geometry", "0%,0%:100%x100%", "0,0:100%x100%", "0,0:100%x100%"));
             } else if (name == "region") {
                 tname.appendChild(ret.createTextNode("Region"));
             }
@@ -492,7 +499,7 @@ void initEffects::fillTransitionsList(Mlt::Repository * repository, EffectsList*
         */
     }
 }
-QDomElement initEffects::quickParameterFill(QDomDocument & doc, QString name, QString tag, QString type, QString def, QString min, QString max) {
+QDomElement initEffects::quickParameterFill(QDomDocument & doc, QString name, QString tag, QString type, QString def, QString min, QString max, QString list) {
     QDomElement parameter = doc.createElement("parameter");
     parameter.setAttribute("tag", tag);
     parameter.setAttribute("default", def);
@@ -500,6 +507,8 @@ QDomElement initEffects::quickParameterFill(QDomDocument & doc, QString name, QS
     parameter.setAttribute("name", tag);
     parameter.setAttribute("max", max);
     parameter.setAttribute("min", min);
+    if (!list.isEmpty())
+        parameter.setAttribute("paramlist", list);
     QDomElement pname = doc.createElement("name");
     pname.appendChild(doc.createTextNode(name));
     parameter.appendChild(pname);