- } else if (type == "color") {
- if (value.startsWith('#'))
- value = value.replace('#', "0x");
- bool ok;
- ChooseColorWidget *choosecolor = new ChooseColorWidget(paramName, QColor(value.toUInt(&ok, 16)), parent);
- 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(slotCollectAllParameters()));
- } else if (type == "position") {
- int pos = value.toInt();
- if (effect.attribute("id") == "fadein" || effect.attribute("id") == "fade_from_black") {
- pos = pos - m_in;
- } else if (effect.attribute("id") == "fadeout" || effect.attribute("id") == "fade_to_black") {
- // fadeout position starts from clip end
- pos = m_out - pos;
- }
- PositionEdit *posedit = new PositionEdit(paramName, pos, 0, m_out - m_in, m_metaInfo->timecode);
- vbox->addWidget(posedit);
- m_valueItems[paramName+"position"] = posedit;
- connect(posedit, SIGNAL(parameterChanged()), this, SLOT(slotCollectAllParameters()));
- } else if (type == "curve") {
- KisCurveWidget *curve = new KisCurveWidget(parent);
- 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);
- vbox->addWidget(curve);
- vbox->addWidget(spinin);
- vbox->addWidget(spinout);
-
- connect(curve, SIGNAL(modified()), this, SLOT(slotCollectAllParameters()));
- m_valueItems[paramName] = curve;
-
- QString depends = pa.attribute("depends");
- if (!depends.isEmpty())
- meetDependency(paramName, type, EffectsList::parameter(e, depends));
- } else if (type == "bezier_spline") {
- BezierSplineWidget *widget = new BezierSplineWidget(value, parent);
- stretch = false;
- vbox->addWidget(widget);
- m_valueItems[paramName] = widget;
- connect(widget, SIGNAL(modified()), this, SLOT(slotCollectAllParameters()));
- QString depends = pa.attribute("depends");
- if (!depends.isEmpty())
- meetDependency(paramName, type, EffectsList::parameter(e, depends));
-#ifdef USE_QJSON
- } else if (type == "roto-spline") {
- RotoWidget *roto = new RotoWidget(value, m_metaInfo->monitor, info, m_metaInfo->timecode, parent);
- roto->slotShowScene(!disable);
- connect(roto, SIGNAL(valueChanged()), this, SLOT(slotCollectAllParameters()));
- connect(roto, SIGNAL(checkMonitorPosition(int)), this, SIGNAL(checkMonitorPosition(int)));
- connect(roto, SIGNAL(seekToPos(int)), this, SIGNAL(seekTimeline(int)));
- connect(this, SIGNAL(syncEffectsPos(int)), roto, SLOT(slotSyncPosition(int)));
- connect(this, SIGNAL(effectStateChanged(bool)), roto, SLOT(slotShowScene(bool)));
- vbox->addWidget(roto);
- m_valueItems[paramName] = roto;
-#endif
- } 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(slotCollectAllParameters()));
- connect(wpval->end_down, SIGNAL(clicked()), this, SLOT(slotCollectAllParameters()));
- connect(wpval->end_left, SIGNAL(clicked()), this, SLOT(slotCollectAllParameters()));
- connect(wpval->end_right, SIGNAL(clicked()), this, SLOT(slotCollectAllParameters()));
- connect(wpval->end_center, SIGNAL(clicked()), this, SLOT(slotCollectAllParameters()));
- connect(wpval->start_up, SIGNAL(clicked()), this, SLOT(slotCollectAllParameters()));
- connect(wpval->start_down, SIGNAL(clicked()), this, SLOT(slotCollectAllParameters()));
- connect(wpval->start_left, SIGNAL(clicked()), this, SLOT(slotCollectAllParameters()));
- connect(wpval->start_right, SIGNAL(clicked()), this, SLOT(slotCollectAllParameters()));
- connect(wpval->start_center, SIGNAL(clicked()), this, SLOT(slotCollectAllParameters()));
- connect(wpval->start_transp, SIGNAL(valueChanged(int)), this, SLOT(slotCollectAllParameters()));
- connect(wpval->end_transp, SIGNAL(valueChanged(int)), this, SLOT(slotCollectAllParameters()));
- //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(slotCollectAllParameters()));
- connect(cval->urlwidget, SIGNAL(urlSelected(const KUrl&)) , this, SLOT(slotCollectAllParameters()));
- m_uiItems.append(cval);
- } else {
- delete toFillin;
- toFillin = NULL;