+ ChooseColorWidget *choosecolor = new ChooseColorWidget(paramName, QColor(value.toUInt(&ok, 16)), this);
+ m_vbox->addWidget(choosecolor);
+ m_valueItems[paramName] = choosecolor;
+ connect(choosecolor, SIGNAL(displayMessage(const QString&, int)), this, SIGNAL(displayMessage(const QString&, int)));
+ connect(choosecolor, SIGNAL(modified()) , this, SLOT(collectAllParameters()));
+ } else if (type == "position") {
+ int pos = value.toInt();
+ if (d.attribute("id") == "fadein" || d.attribute("id") == "fade_from_black") {
+ pos = pos - m_in;
+ } else if (d.attribute("id") == "fadeout" || d.attribute("id") == "fade_to_black") {
+ // fadeout position starts from clip end
+ pos = m_out - (pos - m_in);
+ }
+ PositionEdit *posedit = new PositionEdit(paramName, pos, 1, m_out, m_timecode);
+ m_vbox->addWidget(posedit);
+ m_valueItems[paramName+"position"] = posedit;
+ connect(posedit, SIGNAL(parameterChanged()), this, SLOT(collectAllParameters()));
+ } else if (type == "curve") {
+ KisCurveWidget *curve = new KisCurveWidget(this);
+ curve->setMaxPoints(pa.attribute("max").toInt());
+ QList<QPointF> points;
+ int number = EffectsList::parameter(e, pa.attribute("number")).toInt();
+ QString inName = pa.attribute("inpoints");
+ QString outName = pa.attribute("outpoints");
+ int start = pa.attribute("min").toInt();
+ for (int j = start; j <= number; j++) {
+ QString in = inName;
+ in.replace("%i", QString::number(j));
+ QString out = outName;
+ out.replace("%i", QString::number(j));
+ points << QPointF(EffectsList::parameter(e, in).toDouble(), EffectsList::parameter(e, out).toDouble());
+ }
+ if (!points.isEmpty())
+ curve->setCurve(KisCubicCurve(points));
+ QSpinBox *spinin = new QSpinBox();
+ spinin->setRange(0, 1000);
+ QSpinBox *spinout = new QSpinBox();
+ spinout->setRange(0, 1000);
+ curve->setupInOutControls(spinin, spinout, 0, 1000);
+ m_vbox->addWidget(curve);
+ m_vbox->addWidget(spinin);
+ m_vbox->addWidget(spinout);
+ connect(curve, SIGNAL(modified()), this, SLOT(collectAllParameters()));
+ m_valueItems[paramName] = curve;
+ } else if (type == "wipe") {
+ Wipeval *wpval = new Wipeval;
+ wpval->setupUi(toFillin);
+ wipeInfo w = getWipeInfo(value);
+ switch (w.start) {
+ case UP:
+ wpval->start_up->setChecked(true);
+ break;
+ case DOWN:
+ wpval->start_down->setChecked(true);
+ break;
+ case RIGHT:
+ wpval->start_right->setChecked(true);
+ break;
+ case LEFT:
+ wpval->start_left->setChecked(true);
+ break;
+ default:
+ wpval->start_center->setChecked(true);
+ break;
+ }
+ switch (w.end) {
+ case UP:
+ wpval->end_up->setChecked(true);
+ break;
+ case DOWN:
+ wpval->end_down->setChecked(true);
+ break;
+ case RIGHT:
+ wpval->end_right->setChecked(true);
+ break;
+ case LEFT:
+ wpval->end_left->setChecked(true);
+ break;
+ default:
+ wpval->end_center->setChecked(true);
+ break;
+ }
+ wpval->start_transp->setValue(w.startTransparency);
+ wpval->end_transp->setValue(w.endTransparency);
+ m_valueItems[paramName] = wpval;
+ connect(wpval->end_up, SIGNAL(clicked()), this, SLOT(collectAllParameters()));
+ connect(wpval->end_down, SIGNAL(clicked()), this, SLOT(collectAllParameters()));
+ connect(wpval->end_left, SIGNAL(clicked()), this, SLOT(collectAllParameters()));
+ connect(wpval->end_right, SIGNAL(clicked()), this, SLOT(collectAllParameters()));
+ connect(wpval->end_center, SIGNAL(clicked()), this, SLOT(collectAllParameters()));
+ connect(wpval->start_up, SIGNAL(clicked()), this, SLOT(collectAllParameters()));
+ connect(wpval->start_down, SIGNAL(clicked()), this, SLOT(collectAllParameters()));
+ connect(wpval->start_left, SIGNAL(clicked()), this, SLOT(collectAllParameters()));
+ connect(wpval->start_right, SIGNAL(clicked()), this, SLOT(collectAllParameters()));
+ connect(wpval->start_center, SIGNAL(clicked()), this, SLOT(collectAllParameters()));
+ connect(wpval->start_transp, SIGNAL(valueChanged(int)), this, SLOT(collectAllParameters()));
+ connect(wpval->end_transp, SIGNAL(valueChanged(int)), this, SLOT(collectAllParameters()));
+ //wpval->title->setTitle(na.toElement().text());
+ m_uiItems.append(wpval);
+ } else if (type == "url") {
+ Urlval *cval = new Urlval;
+ cval->setupUi(toFillin);
+ cval->label->setText(paramName);
+ cval->urlwidget->fileDialog()->setFilter(ProjectList::getExtensions());
+ m_valueItems[paramName] = cval;
+ cval->urlwidget->setUrl(KUrl(value));
+ connect(cval->urlwidget, SIGNAL(returnPressed()) , this, SLOT(collectAllParameters()));
+ connect(cval->urlwidget, SIGNAL(urlSelected(const KUrl&)) , this, SLOT(collectAllParameters()));
+ m_uiItems.append(cval);