diff --git a/include/AutomatableSlider.h b/include/AutomatableSlider.h index cb1a6965f43..22fe0ff13f7 100644 --- a/include/AutomatableSlider.h +++ b/include/AutomatableSlider.h @@ -56,12 +56,14 @@ class AutomatableSlider : public QSlider, public IntModelView void mousePressEvent( QMouseEvent * _me ) override; void mouseReleaseEvent( QMouseEvent * _me ) override; void wheelEvent( QWheelEvent * _me ) override; + void mouseDoubleClickEvent(QMouseEvent* ev) override; void modelChanged() override; private: bool m_showStatus; + void enterValue(); private slots: diff --git a/src/gui/widgets/AutomatableSlider.cpp b/src/gui/widgets/AutomatableSlider.cpp index 39720d4d3ad..9c391f18cf7 100644 --- a/src/gui/widgets/AutomatableSlider.cpp +++ b/src/gui/widgets/AutomatableSlider.cpp @@ -26,6 +26,7 @@ #include "AutomatableSlider.h" #include +#include #include "CaptionMenu.h" @@ -111,7 +112,31 @@ void AutomatableSlider::wheelEvent( QWheelEvent * _me ) m_showStatus = old_status; } +void AutomatableSlider::mouseDoubleClickEvent(QMouseEvent*) +{ + enterValue(); +} +void AutomatableSlider::enterValue() +{ + bool ok; + int newVal; + + newVal = QInputDialog::getInt( + this, tr("Set value"), + tr("Please enter a new value between %1 and %2:") + .arg(model()->minValue()) + .arg(model()->maxValue()), + model()->value(), + model()->minValue(), + model()->maxValue(), + model()->step(), &ok); + + if (ok) + { + model()->setValue(newVal); + } +} void AutomatableSlider::modelChanged()