]> git.sesse.net Git - kdenlive/blobdiff - src/dragvalue.h
Integrate with the required MLT hooks for getting Movit to work.
[kdenlive] / src / dragvalue.h
index 53adb2b8b3e639c2785584eb463e2283807ef50f..2ca950ed668124506310b2b0b75c6f330b363eec 100644 (file)
@@ -26,9 +26,6 @@
 #include <QLabel>
 #include <QProgressBar>
 
-class QValidator;
-class QToolButton;
-class QLineEdit;
 class QAction;
 class QMenu;
 class KSelectAction;
@@ -38,26 +35,26 @@ class CustomLabel : public QProgressBar
 {
     Q_OBJECT
 public:
-    CustomLabel(const QString &label, bool showSlider = true, int precision = 0, QWidget *parent = 0);
+    explicit CustomLabel(const QString &label, bool showSlider = true, int range = 1000, QWidget *parent = 0);
     void setProgressValue(double value);
     void setStep(double step);
     
 protected:
     //virtual void mouseDoubleClickEvent(QMouseEvent * event);
-    virtual void mousePressEvent(QMouseEvent * event);
-    virtual void mouseReleaseEvent(QMouseEvent *event);
-    virtual void mouseMoveEvent(QMouseEvent *event);
+    void mousePressEvent(QMouseEvent * event);
+    void mouseReleaseEvent(QMouseEvent *event);
+    void mouseMoveEvent(QMouseEvent *event);
     //virtual void paintEvent(QPaintEvent *event);
-    virtual void wheelEvent(QWheelEvent * event);
+    void wheelEvent(QWheelEvent * event);
+    void focusInEvent(QFocusEvent *e);
+    void focusOutEvent(QFocusEvent *e);
 
 private:
     QPoint m_dragStartPosition;
     QPoint m_dragLastPosition;
     bool m_dragMode;
-    double m_step;
     bool m_showSlider;
-    double m_precision;
-    double m_value;
+    double m_step;
     void slotValueInc(double factor = 1);
     void slotValueDec(double factor = 1);
     void setNewValue(double, bool);
@@ -77,7 +74,18 @@ class DragValue : public QWidget
     Q_OBJECT
 
 public:
-    DragValue(const QString &label, double defaultValue, int decimals, int id, const QString suffix, bool showSlider = true, QWidget* parent = 0);
+    /**
+    * @brief Default constructor.
+    * @param label The label that will be displayed in the progress bar
+    * @param defaultValue The default value
+    * @param decimals The number of decimals for the parameter. 0 means it is an integer
+    * @param min The minimum value
+    * @param max The maximum value
+    * @param id Used to identify this widget. If this parameter is set, "Show in Timeline" will be available in context menu.
+    * @param suffix The suffix that will be displayed in the spinbox (for example '%')
+    * @param showSlider If disabled, user can still drag on the label but no progress bar is shown
+    */    
+    explicit DragValue(const QString &label, double defaultValue, int decimals, double min = 0, double max = 100, int id = -1, const QString &suffix = QString(), bool showSlider = true, QWidget* parent = 0);
     virtual ~DragValue();
 
     /** @brief Returns the precision = number of decimals */
@@ -110,11 +118,11 @@ public:
 public slots:
     /** @brief Sets the value (forced to be in the valid range) and emits valueChanged. */
     void setValue(double value, bool final = true);
+    void setValueFromProgress(double value, bool final);
     /** @brief Resets to default value */
     void slotReset();
 
 signals:
-    void valueChanged(int value, bool final = true);
     void valueChanged(double value, bool final = true);
     void inTimeline(int);
 
@@ -130,6 +138,7 @@ protected:
     virtual void mouseReleaseEvent(QMouseEvent *e);*/
     /** @brief Forwards tab focus to lineedit since it is disabled. */
     virtual void focusInEvent(QFocusEvent *e);
+    virtual void focusOutEvent(QFocusEvent *e);
     //virtual void keyPressEvent(QKeyEvent *e);
     //virtual void wheelEvent(QWheelEvent *e);
     //virtual void paintEvent( QPaintEvent * event );