X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Feffectstack%2Fparametercontainer.cpp;h=e1e12c4a984763415f7ba9f222b70682b1fa0eb5;hb=5bcb9b7ead3d053cb2b0498d84a2622626bf7f14;hp=937ab746da17bada78eecbf28c8621bd27dadc43;hpb=3b176bab2ad91159c0a4a7dbe5f278f646115218;p=kdenlive diff --git a/src/effectstack/parametercontainer.cpp b/src/effectstack/parametercontainer.cpp index 937ab746..e1e12c4a 100644 --- a/src/effectstack/parametercontainer.cpp +++ b/src/effectstack/parametercontainer.cpp @@ -26,13 +26,13 @@ #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 allWidgets = findChildren(); 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"