]> git.sesse.net Git - kdenlive/blobdiff - src/effectstack/parametercontainer.cpp
Moving widget files into widgets folder.
[kdenlive] / src / effectstack / parametercontainer.cpp
index 937ab746da17bada78eecbf28c8621bd27dadc43..e1e12c4a984763415f7ba9f222b70682b1fa0eb5 100644 (file)
 #include "complexparameter.h"
 #include "geometryval.h"
 #include "positionedit.h"
-#include "kis_curve_widget.h"
+#include "widgets/kis_curve_widget.h"
 #include "kis_cubic_curve.h"
-#include "choosecolorwidget.h"
-#include "geometrywidget.h"
+#include "widgets/choosecolorwidget.h"
+#include "widgets/geometrywidget.h"
 #include "colortools.h"
-#include "doubleparameterwidget.h"
-#include "cornerswidget.h"
+#include "widgets/doubleparameterwidget.h"
+#include "widgets/cornerswidget.h"
 #include "dragvalue.h"
 #include "beziercurve/beziersplinewidget.h"
 #ifdef USE_QJSON
@@ -95,7 +95,7 @@ class Fontval: public QWidget, public Ui::Fontval_UI
 };
 
 
-ParameterContainer::ParameterContainer(QDomElement effect, ItemInfo info, EffectMetaInfo *metaInfo, QWidget * parent) :
+ParameterContainer::ParameterContainer(const QDomElement &effect, const ItemInfo &info, EffectMetaInfo *metaInfo, QWidget * parent) :
         m_keyframeEditor(NULL),
         m_geometryWidget(NULL),
         m_metaInfo(metaInfo),
@@ -121,7 +121,7 @@ ParameterContainer::ParameterContainer(QDomElement effect, ItemInfo info, Effect
     m_vbox->setContentsMargins(4, 0, 4, 0);
     m_vbox->setSpacing(2);
 
-    for (int i = 0; i < namenode.count() ; i++) {
+    for (int i = 0; i < namenode.count() ; ++i) {
         QDomElement pa = namenode.item(i).toElement();
         if (pa.tagName() != "parameter") continue;
         QDomElement na = pa.firstChildElement("name");
@@ -176,7 +176,7 @@ ParameterContainer::ParameterContainer(QDomElement effect, ItemInfo info, Effect
             if (listitemsdisplay.count() != listitems.count())
                 listitemsdisplay = listitems;
             lsval->list->setIconSize(QSize(30, 30));
-            for (int i = 0; i < listitems.count(); i++) {
+            for (int i = 0; i < listitems.count(); ++i) {
                 lsval->list->addItem(listitemsdisplay.at(i), listitems.at(i));
                 QString entry = listitems.at(i);
                 if (!entry.isEmpty() && (entry.endsWith(".png") || entry.endsWith(".pgm"))) {
@@ -189,6 +189,7 @@ ParameterContainer::ParameterContainer(QDomElement effect, ItemInfo info, Effect
             }
             if (!value.isEmpty()) lsval->list->setCurrentIndex(listitems.indexOf(value));
             lsval->name->setText(paramName);
+           lsval->setToolTip(comment);
             lsval->labelComment->setText(comment);
             lsval->widgetComment->setHidden(true);
             m_valueItems[paramName] = lsval;
@@ -201,6 +202,7 @@ ParameterContainer::ParameterContainer(QDomElement effect, ItemInfo info, Effect
             bval->setupUi(toFillin);
             bval->checkBox->setCheckState(value == "0" ? Qt::Unchecked : Qt::Checked);
             bval->name->setText(paramName);
+           bval->name->setToolTip(comment);
             bval->labelComment->setText(comment);
             bval->widgetComment->setHidden(true);
             m_valueItems[paramName] = bval;
@@ -278,9 +280,10 @@ ParameterContainer::ParameterContainer(QDomElement effect, ItemInfo info, Effect
             if (value.startsWith('#'))
                 value = value.replace('#', "0x");
             ChooseColorWidget *choosecolor = new ChooseColorWidget(paramName, value, pa.hasAttribute("alpha"), parent);
+           choosecolor->setToolTip(comment);
             m_vbox->addWidget(choosecolor);
             m_valueItems[paramName] = choosecolor;
-            connect(choosecolor, SIGNAL(displayMessage(const QString&, int)), this, SIGNAL(displayMessage(const QString&, int)));
+            connect(choosecolor, SIGNAL(displayMessage(QString,int)), this, SIGNAL(displayMessage(QString,int)));
             connect(choosecolor, SIGNAL(modified()) , this, SLOT(slotCollectAllParameters()));
            connect(choosecolor, SIGNAL(disableCurrentFilter(bool)) , this, SIGNAL(disableCurrentFilter(bool)));
         } else if (type == "position") {
@@ -292,6 +295,7 @@ ParameterContainer::ParameterContainer(QDomElement effect, ItemInfo info, Effect
                 pos = m_out - pos;
             }
             PositionEdit *posedit = new PositionEdit(paramName, pos, 0, m_out - m_in, m_metaInfo->timecode);
+           posedit->setToolTip(comment);
            connect(this, SIGNAL(updateRange(int,int)), posedit, SLOT(setRange(int,int)));
             m_vbox->addWidget(posedit);
             m_valueItems[paramName+"position"] = posedit;
@@ -412,17 +416,19 @@ ParameterContainer::ParameterContainer(QDomElement effect, ItemInfo info, Effect
             Urlval *cval = new Urlval;
             cval->setupUi(toFillin);
             cval->label->setText(paramName);
+           cval->setToolTip(comment);
             cval->urlwidget->fileDialog()->setFilter(ProjectList::getExtensions());
             m_valueItems[paramName] = cval;
             cval->urlwidget->setUrl(KUrl(value));
             connect(cval->urlwidget, SIGNAL(returnPressed()) , this, SLOT(slotCollectAllParameters()));
-            connect(cval->urlwidget, SIGNAL(urlSelected(const KUrl&)) , this, SLOT(slotCollectAllParameters()));
+            connect(cval->urlwidget, SIGNAL(urlSelected(KUrl)) , this, SLOT(slotCollectAllParameters()));
             m_uiItems.append(cval);
        } else if (type == "keywords") {
             Keywordval* kval = new Keywordval;
             kval->setupUi(toFillin);
             kval->label->setText(paramName);
             kval->lineeditwidget->setText(value);
+           kval->setToolTip(comment);
             QDomElement klistelem = pa.firstChildElement("keywords");
             QDomElement kdisplaylistelem = pa.firstChildElement("keywordsdisplay");
             QStringList keywordlist;
@@ -434,7 +440,7 @@ ParameterContainer::ParameterContainer(QDomElement effect, ItemInfo info, Effect
             if (keyworddisplaylist.count() != keywordlist.count()) {
                 keyworddisplaylist = keywordlist;
             }
-            for (int i = 0; i < keywordlist.count(); i++) {
+            for (int i = 0; i < keywordlist.count(); ++i) {
                 kval->comboboxwidget->addItem(keyworddisplaylist.at(i), keywordlist.at(i));
             }
             // Add disabled user prompt at index 0
@@ -442,8 +448,8 @@ ParameterContainer::ParameterContainer(QDomElement effect, ItemInfo info, Effect
             kval->comboboxwidget->model()->setData( kval->comboboxwidget->model()->index(0,0), QVariant(Qt::NoItemFlags), Qt::UserRole -1);
             kval->comboboxwidget->setCurrentIndex(0);
             m_valueItems[paramName] = kval;
-            connect(kval->lineeditwidget, SIGNAL(editingFinished()) , this, SLOT(collectAllParameters()));
-            connect(kval->comboboxwidget, SIGNAL(activated (const QString&)), this, SLOT(collectAllParameters()));
+            connect(kval->lineeditwidget, SIGNAL(editingFinished()) , this, SLOT(slotCollectAllParameters()));
+            connect(kval->comboboxwidget, SIGNAL(activated(QString)), this, SLOT(slotCollectAllParameters()));
             m_uiItems.append(kval);
         } else if (type == "fontfamily") {
             Fontval* fval = new Fontval;
@@ -451,7 +457,7 @@ ParameterContainer::ParameterContainer(QDomElement effect, ItemInfo info, Effect
             fval->name->setText(paramName);
             fval->fontfamilywidget->setCurrentFont(QFont(value));
             m_valueItems[paramName] = fval;
-            connect(fval->fontfamilywidget, SIGNAL(currentFontChanged(const QFont &)), this, SLOT(collectAllParameters())) ;
+            connect(fval->fontfamilywidget, SIGNAL(currentFontChanged(QFont)), this, SLOT(slotCollectAllParameters())) ;
             m_uiItems.append(fval);
         } else if (type == "filterjob") {
            QVBoxLayout *l= new QVBoxLayout(toFillin);
@@ -477,10 +483,10 @@ ParameterContainer::ParameterContainer(QDomElement effect, ItemInfo info, Effect
     // Make sure all doubleparam spinboxes have the same width, looks much better
     QList<DoubleParameterWidget *> allWidgets = findChildren<DoubleParameterWidget *>();
     int minSize = 0;
-    for (int i = 0; i < allWidgets.count(); i++) {
+    for (int i = 0; i < allWidgets.count(); ++i) {
         if (minSize < allWidgets.at(i)->spinSize()) minSize = allWidgets.at(i)->spinSize();
     }
-    for (int i = 0; i < allWidgets.count(); i++) {
+    for (int i = 0; i < allWidgets.count(); ++i) {
         allWidgets.at(i)->setSpinSize(minSize);
     }
 }
@@ -491,12 +497,12 @@ ParameterContainer::~ParameterContainer()
     delete m_vbox;
 }
 
-void ParameterContainer::meetDependency(const QString& name, QString type, QString value)
+void ParameterContainer::meetDependency(const QString& name, const QString &type, const QString &value)
 {
     if (type == "curve") {
         KisCurveWidget *curve = (KisCurveWidget*)m_valueItems[name];
         if (curve) {
-            int color = value.toInt();
+            const int color = value.toInt();
             curve->setPixmap(QPixmap::fromImage(ColorTools::rgbCurvePlane(curve->size(), (ColorTools::ColorsRGB)(color == 3 ? 4 : color), 0.8)));
         }
     } else if (type == "bezier_spline") {
@@ -555,7 +561,7 @@ void ParameterContainer::updateTimecodeFormat()
         m_keyframeEditor->updateTimecodeFormat();
 
     QDomNodeList namenode = m_effect.elementsByTagName("parameter");
-    for (int i = 0; i < namenode.count() ; i++) {
+    for (int i = 0; i < namenode.count() ; ++i) {
         QDomNode pa = namenode.item(i);
         QDomElement na = pa.firstChildElement("name");
         QString type = pa.attributes().namedItem("type").nodeValue();
@@ -591,7 +597,7 @@ void ParameterContainer::slotCollectAllParameters()
     //QDomElement newparam = oldparam.cloneNode().toElement();
     QDomNodeList namenode = m_effect.elementsByTagName("parameter");
 
-    for (int i = 0; i < namenode.count() ; i++) {
+    for (int i = 0; i < namenode.count() ; ++i) {
         QDomElement pa = namenode.item(i).toElement();
         QDomElement na = pa.firstChildElement("name");
         QString type = pa.attribute("type");
@@ -634,7 +640,7 @@ void ParameterContainer::slotCollectAllParameters()
                 namenode.item(i).toElement().setAttribute("value", geom->getValue());
             }
         } else if (type == "addedgeometry") {
-            namenode.item(i).toElement().setAttribute("value", m_geometryWidget->getExtraValue(namenode.item(i).toElement().attribute("name")));
+            if (m_geometryWidget) namenode.item(i).toElement().setAttribute("value", m_geometryWidget->getExtraValue(namenode.item(i).toElement().attribute("name")));
         } else if (type == "position") {
             PositionEdit *pedit = ((PositionEdit*)m_valueItems.value(paramName));
             int pos = pedit->getPosition();
@@ -734,7 +740,7 @@ void ParameterContainer::slotCollectAllParameters()
                 pa.setAttribute("intimeline", "1");
            }
             else if (pa.hasAttribute("intimeline"))
-                pa.removeAttribute("intimeline");
+                pa.setAttribute("intimeline", "0");
         } else if (type == "url") {
             KUrlRequester *req = ((Urlval*)m_valueItems.value(paramName))->urlwidget;
             setValue = req->url().path();
@@ -812,7 +818,7 @@ void ParameterContainer::updateParameter(const QString &key, const QString &valu
 void ParameterContainer::slotStartFilterJobAction()
 {
     QDomNodeList namenode = m_effect.elementsByTagName("parameter");
-    for (int i = 0; i < namenode.count() ; i++) {
+    for (int i = 0; i < namenode.count() ; ++i) {
         QDomElement pa = namenode.item(i).toElement();
         QString type = pa.attribute("type");
         if (type == "filterjob") {
@@ -883,3 +889,5 @@ void ParameterContainer::setRange(int inPoint, int outPoint)
 }
 
 
+
+#include "parametercontainer.moc"