]> git.sesse.net Git - kdenlive/commitdiff
Bezier Spline: Add button to reset current spline (without affecting any other settings)
authorTill Theato <root@ttill.de>
Mon, 3 Jan 2011 19:43:16 +0000 (19:43 +0000)
committerTill Theato <root@ttill.de>
Mon, 3 Jan 2011 19:43:16 +0000 (19:43 +0000)
svn path=/trunk/kdenlive/; revision=5255

src/beziercurve/beziersplineeditor.cpp
src/beziercurve/beziersplinewidget.cpp
src/beziercurve/beziersplinewidget.h
src/beziercurve/cubicbezierspline.cpp
src/widgets/bezierspline_ui.ui

index 2d85c676445431bd3f6ad2a3c1cd1371dbd325b5..50735c679019ef721fecf027007bbf1124cdf094 100644 (file)
@@ -51,8 +51,13 @@ CubicBezierSpline BezierSplineEditor::spline()
 
 void BezierSplineEditor::setSpline(const CubicBezierSpline& spline)
 {
-    // TODO: cleanup
-    m_spline.fromString(spline.toString());
+    int precision = m_spline.getPrecision();
+    m_spline = spline;
+    m_spline.setPrecision(precision);
+    m_currentPointIndex = -1;
+    m_mode = ModeNormal;
+    emit modified();
+    update();
 }
 
 BPoint BezierSplineEditor::getCurrentPoint()
@@ -228,7 +233,7 @@ void BezierSplineEditor::paintEvent(QPaintEvent* event)
 
 void BezierSplineEditor::resizeEvent(QResizeEvent* event)
 {
-    m_spline.setPrecision(width());
+    m_spline.setPrecision(width() > height() ? width() : height());
     m_pixmapIsDirty = true;
     QWidget::resizeEvent(event);
 }
index b7f52f0d9c2ef67e9a5b8d247735eaf5e15e2c49..695efbb9b5ab4dec6aedd581df47f68ef3df3c74 100644 (file)
@@ -40,6 +40,7 @@ BezierSplineWidget::BezierSplineWidget(const QString& spline, QWidget* parent) :
     m_ui.buttonZoomOut->setIcon(KIcon("zoom-out"));
     m_ui.buttonGridChange->setIcon(KIcon("view-grid"));
     m_ui.buttonShowPixmap->setIcon(QIcon(QPixmap::fromImage(ColorTools::rgbCurvePlane(QSize(16, 16), ColorTools::COL_Luma, 0.8))));
+    m_ui.buttonResetSpline->setIcon(KIcon("view-refresh"));
     m_ui.widgetPoint->setEnabled(false);
 
     CubicBezierSpline s;
@@ -60,6 +61,7 @@ BezierSplineWidget::BezierSplineWidget(const QString& spline, QWidget* parent) :
     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()));
 
     m_edit.setGridLines(KdenliveSettings::bezier_gridlines());
     m_ui.buttonShowPixmap->setChecked(KdenliveSettings::bezier_showpixmap());
@@ -90,7 +92,7 @@ void BezierSplineWidget::slotShowPixmap(bool show)
     m_showPixmap = show;
     KdenliveSettings::setBezier_showpixmap(show);
     if (show && m_mode != ModeAlpha && m_mode != ModeRGB)
-        m_edit.setPixmap(QPixmap::fromImage(ColorTools::rgbCurvePlane(m_edit.size(), (ColorTools::ColorsRGB)((int)(m_mode == ModeLuma ? 3 : m_mode)), 0.8)));
+        m_edit.setPixmap(QPixmap::fromImage(ColorTools::rgbCurvePlane(m_edit.size(), (ColorTools::ColorsRGB)((int)(m_mode)))));
     else
         m_edit.setPixmap(QPixmap());
 }
@@ -136,4 +138,9 @@ void BezierSplineWidget::slotUpdateSpline()
     emit modified();
 }
 
+void BezierSplineWidget::slotResetSpline()
+{
+    m_edit.setSpline(CubicBezierSpline());
+}
+
 #include "beziersplinewidget.moc"
index e19f387fcf70299de1cb071b978dcc7a8cebc90e..761df80d0befff7a71b36cac9ca35f19a91cd1fb 100644 (file)
@@ -35,7 +35,7 @@ public:
 
     QString spline();
 
-    enum CurveModes { ModeRed, ModeGreen, ModeBlue, ModeAlpha, ModeLuma, ModeRGB };
+    enum CurveModes { ModeRed, ModeGreen, ModeBlue, ModeAlpha, ModeLuma, ModeRGB/*, ModeSaturation*/ };
     void setMode(CurveModes mode);
 
 private slots:
@@ -43,6 +43,7 @@ private slots:
     void slotUpdateSpline();
     void slotGridChange();
     void slotShowPixmap(bool show = true);
+    void slotResetSpline();
 
 private:
     Ui::BezierSpline_UI m_ui;
index f188860db8098da3cfa296cb07038fcad77b5d03..ba95d3a80d4379da967be99b711ef6f05559737b 100644 (file)
@@ -62,6 +62,7 @@ CubicBezierSpline& CubicBezierSpline::operator=(const CubicBezierSpline& spline)
 {
     m_precision = spline.m_precision;
     m_points = spline.m_points;
+    m_validSpline = false;
     return *this;
 }
 
index 3ef39ca34dd78df89c0a525351acf3aee2ac4352..773c2269212c05133e58f6004516399235eb909b 100644 (file)
@@ -14,7 +14,7 @@
    <string>Form</string>
   </property>
   <layout class="QGridLayout" name="gridLayout">
-   <item row="1" column="0" colspan="6">
+   <item row="1" column="0" colspan="7">
     <widget class="QWidget" name="widgetPoint" native="true">
      <layout class="QGridLayout" name="gridLayout_2">
       <property name="margin">
      </layout>
     </widget>
    </item>
-   <item row="2" column="0">
+   <item row="2" column="1">
     <widget class="QToolButton" name="buttonShowPixmap">
      <property name="toolTip">
       <string>Show background indicating changes caused by modifying the curve.</string>
      </property>
     </widget>
    </item>
-   <item row="2" column="3">
+   <item row="2" column="4">
     <widget class="QToolButton" name="buttonZoomIn">
      <property name="text">
       <string>...</string>
      </property>
     </widget>
    </item>
-   <item row="2" column="4">
+   <item row="2" column="5">
     <widget class="QToolButton" name="buttonZoomOut">
      <property name="text">
       <string>...</string>
      </property>
     </widget>
    </item>
-   <item row="2" column="1">
+   <item row="2" column="2">
     <widget class="QToolButton" name="buttonGridChange">
      <property name="toolTip">
       <string>Increases the number of lines in the grid.&lt;br /&gt;After 8 lines it will begin from 0 again.</string>
      </property>
     </widget>
    </item>
-   <item row="2" column="5">
+   <item row="2" column="6">
     <spacer name="spacer">
      <property name="orientation">
       <enum>Qt::Horizontal</enum>
      </property>
     </spacer>
    </item>
+   <item row="2" column="0">
+    <widget class="QToolButton" name="buttonResetSpline">
+     <property name="toolTip">
+      <string>Reset the selected spline</string>
+     </property>
+     <property name="text">
+      <string>...</string>
+     </property>
+     <property name="autoRaise">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
   </layout>
  </widget>
  <resources/>