diff --git a/include/BarModelEditor.h b/include/BarModelEditor.h index 0ffb27199..b854cf932 100644 --- a/include/BarModelEditor.h +++ b/include/BarModelEditor.h @@ -22,14 +22,13 @@ * */ -#include "AutomatableModelView.h" +#include "FloatModelEditorBase.h" -#include namespace lmms::gui { -class BarModelEditor : public QWidget, public FloatModelView +class BarModelEditor : public FloatModelEditorBase { public: BarModelEditor(QString text, FloatModel * floatModel, QWidget * parent = nullptr); @@ -44,12 +43,6 @@ public: protected: virtual void paintEvent(QPaintEvent *event) override; - virtual void contextMenuEvent(QContextMenuEvent * me) override; - virtual void mouseDoubleClickEvent(QMouseEvent * me) override; - -private: - void connectToModelSignals(); - private: QString const m_text; }; diff --git a/src/gui/LadspaWidgetFactory.cpp b/src/gui/LadspaWidgetFactory.cpp index 10344706f..3aa81653b 100644 --- a/src/gui/LadspaWidgetFactory.cpp +++ b/src/gui/LadspaWidgetFactory.cpp @@ -67,14 +67,7 @@ QWidget * LadspaWidgetFactory::createWidget(LadspaControl * ladspaControl, QWidg knob->setModel(ladspaControl->knobModel()); knob->setLabel(name); break;*/ - { - FloatModelEditorBase * fme = new FloatModelEditorBase(parent, name); - fme->setModel(ladspaControl->knobModel()); - fme->setHintText(QObject::tr("Value:"), ""); - return fme; - } - // FloatModelEditorBase - //return new BarModelEditor(name, ladspaControl->knobModel(), parent); + return new BarModelEditor(name, ladspaControl->knobModel(), parent); case TIME: knob = new TempoSyncKnob(knobBright_26, parent, name); diff --git a/src/gui/widgets/BarModelEditor.cpp b/src/gui/widgets/BarModelEditor.cpp index f8b8fae5b..b22e8f33e 100644 --- a/src/gui/widgets/BarModelEditor.cpp +++ b/src/gui/widgets/BarModelEditor.cpp @@ -1,20 +1,16 @@ #include -#include "CaptionMenu.h" - #include -#include namespace lmms::gui { BarModelEditor::BarModelEditor(QString text, FloatModel * floatModel, QWidget * parent) : - QWidget(parent), - FloatModelView( floatModel, this ), + FloatModelEditorBase(parent), m_text(text) { - connectToModelSignals(); + setModel(floatModel); } QSizePolicy BarModelEditor::sizePolicy() const @@ -71,45 +67,4 @@ void BarModelEditor::paintEvent(QPaintEvent *event) painter.drawText(textRect, m_text); } -void BarModelEditor::contextMenuEvent(QContextMenuEvent * me) -{ - CaptionMenu contextMenu(model()->displayName(), this); - - addDefaultActions(&contextMenu); - - contextMenu.addSeparator(); - contextMenu.exec(QCursor::pos()); -} - -void BarModelEditor::mouseDoubleClickEvent(QMouseEvent * me) -{ - bool ok; - - float new_val = QInputDialog::getDouble( - this, tr("Set value"), - tr("Please enter a new value between " - "%1 and %2:"). - arg(model()->minValue()). - arg(model()->maxValue()), - model()->getRoundedValue(), - model()->minValue(), - model()->maxValue(), model()->getDigitCount(), &ok); - - if (ok) - { - model()->setValue(new_val); - } -} - -void BarModelEditor::connectToModelSignals() -{ - auto * m = model(); - if(m) - { - // TODO The first connection does a "friendly" update in Knob. Do we also have to do this? - QObject::connect(m, SIGNAL(dataChanged()), this, SLOT(update())); - QObject::connect(m ,SIGNAL(propertiesChanged()), this, SLOT(update())); - } -} - }