X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fdragvalue.h;h=2ca950ed668124506310b2b0b75c6f330b363eec;hb=c3302003093710ee247ad84c0fe2ef3c579d417f;hp=d39c9ebc276be06207091a4659850217dcb99c08;hpb=23803a2984c48c67414440ac078ae0e43b4ceec3;p=kdenlive diff --git a/src/dragvalue.h b/src/dragvalue.h index d39c9ebc..2ca950ed 100644 --- a/src/dragvalue.h +++ b/src/dragvalue.h @@ -26,9 +26,6 @@ #include #include -class QValidator; -class QToolButton; -class QLineEdit; class QAction; class QMenu; class KSelectAction; @@ -38,25 +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_value; - double m_step; - double m_precision; bool m_showSlider; + double m_step; void slotValueInc(double factor = 1); void slotValueDec(double factor = 1); void setNewValue(double, bool); @@ -76,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 */ @@ -109,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); @@ -129,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 ); @@ -148,15 +158,15 @@ private: double m_maximum; double m_minimum; int m_decimals; + double m_default; + int m_id; QSpinBox *m_intEdit; QDoubleSpinBox *m_doubleEdit; - double m_default; QMenu *m_menu; KSelectAction *m_scale; QAction *m_directUpdate; CustomLabel *m_label; - int m_id; }; #endif