+ QVBoxLayout *layout = new QVBoxLayout(this);
+ layout->addWidget(&m_edit);
+ QWidget *widget = new QWidget(this);
+ m_ui.setupUi(widget);
+ layout->addWidget(widget);
+
+ m_ui.buttonLinkHandles->setIcon(KIcon(QLatin1String("insert-link")));
+ m_ui.buttonZoomIn->setIcon(KIcon(QLatin1String("zoom-in")));
+ m_ui.buttonZoomOut->setIcon(KIcon(QLatin1String("zoom-out")));
+ m_ui.buttonGridChange->setIcon(KIcon(QLatin1String("view-grid")));
+ m_ui.buttonShowPixmap->setIcon(QIcon(QPixmap::fromImage(ColorTools::rgbCurvePlane(QSize(16, 16), ColorTools::COL_Luma, 0.8))));
+ m_ui.buttonResetSpline->setIcon(KIcon(QLatin1String("view-refresh")));
+ m_ui.buttonShowAllHandles->setIcon(KIcon(QLatin1String("draw-bezier-curves")));
+ m_ui.widgetPoint->setEnabled(false);
+
+ m_pX = new DragValue(i18n("In"), 0, 3, 0, 1, -1, QString(), false, this);
+ m_pX->setStep(0.001);
+ m_pY = new DragValue(i18n("Out"), 0, 3, 0, 1, -1, QString(), false, this);
+ m_pY->setStep(0.001);
+ m_h1X = new DragValue(i18n("X"), 0, 3, -2, 2, -1, QString(), false, this);
+ m_h1X->setStep(0.001);
+ m_h1Y = new DragValue(i18n("Y"), 0, 3, -2, 2, -1, QString(), false, this);
+ m_h1Y->setStep(0.001);
+ m_h2X = new DragValue(i18n("X"), 0, 3, -2, 2, -1, QString(), false, this);
+ m_h2X->setStep(0.001);
+ m_h2Y = new DragValue(i18n("Y"), 0, 3, -2, 2, -1, QString(), false, this);
+ m_h2Y->setStep(0.001);
+
+ m_ui.layoutP->addWidget(m_pX);
+ m_ui.layoutP->addWidget(m_pY);
+ m_ui.layoutH1->addWidget(new QLabel(i18n("Handle 1:")));
+ m_ui.layoutH1->addWidget(m_h1X);
+ m_ui.layoutH1->addWidget(m_h1Y);
+ m_ui.layoutH2->addWidget(new QLabel(i18n("Handle 2:")));
+ m_ui.layoutH2->addWidget(m_h2X);
+ m_ui.layoutH2->addWidget(m_h2Y);
+
+ CubicBezierSpline s;
+ s.fromString(spline);
+ m_edit.setSpline(s);
+
+ connect(&m_edit, SIGNAL(modified()), this, SIGNAL(modified()));
+ connect(&m_edit, SIGNAL(currentPoint(BPoint)), this, SLOT(slotUpdatePointEntries(BPoint)));
+
+ connect(m_pX, SIGNAL(valueChanged(double,bool)), this, SLOT(slotUpdatePointP(double,bool)));
+ connect(m_pY, SIGNAL(valueChanged(double,bool)), this, SLOT(slotUpdatePointP(double,bool)));
+ connect(m_h1X, SIGNAL(valueChanged(double,bool)), this, SLOT(slotUpdatePointH1(double,bool)));
+ connect(m_h1Y, SIGNAL(valueChanged(double,bool)), this, SLOT(slotUpdatePointH1(double,bool)));
+ connect(m_h2X, SIGNAL(valueChanged(double,bool)), this, SLOT(slotUpdatePointH2(double,bool)));
+ connect(m_h2Y, SIGNAL(valueChanged(double,bool)), this, SLOT(slotUpdatePointH2(double,bool)));
+
+ connect(m_ui.buttonLinkHandles, SIGNAL(toggled(bool)), this, SLOT(slotSetHandlesLinked(bool)));
+ connect(m_ui.buttonZoomIn, SIGNAL(clicked()), &m_edit, SLOT(slotZoomIn()));
+ connect(m_ui.buttonZoomOut, SIGNAL(clicked()), &m_edit, SLOT(slotZoomOut()));
+ connect(m_ui.buttonGridChange, SIGNAL(clicked()), this, SLOT(slotGridChange()));
+ connect(m_ui.buttonShowPixmap, SIGNAL(toggled(bool)), this, SLOT(slotShowPixmap(bool)));
+ connect(m_ui.buttonResetSpline, SIGNAL(clicked()), this, SLOT(slotResetSpline()));
+ connect(m_ui.buttonShowAllHandles, SIGNAL(toggled(bool)), this, SLOT(slotShowAllHandles(bool)));
+
+ m_edit.setGridLines(KdenliveSettings::bezier_gridlines());
+ m_ui.buttonShowPixmap->setChecked(KdenliveSettings::bezier_showpixmap());
+ slotShowPixmap(m_ui.buttonShowPixmap->isChecked());
+ m_ui.buttonShowAllHandles->setChecked(KdenliveSettings::bezier_showallhandles());