commit 7eef2ed5887b9b03f5b512be349c2dfe0657e106
parent cb28136312600e2a6c23c289670364bf94dd406a
Author: Alexandre BIQUE <bique.alexandre@gmail.com>
Date: Fri, 21 May 2021 20:22:59 +0200
Invalidate isBeingAdjusted
Diffstat:
3 files changed, 30 insertions(+), 2 deletions(-)
diff --git a/examples/host/plugin-param.hh b/examples/host/plugin-param.hh
@@ -39,13 +39,16 @@ public:
void beginAdjust() {
Q_ASSERT(!is_being_adjusted_);
is_being_adjusted_ = true;
+ isBeingAdjustedChanged();
}
void endAdjust() {
Q_ASSERT(is_being_adjusted_);
is_being_adjusted_ = false;
+ isBeingAdjustedChanged();
}
signals:
+ void isBeingAdjustedChanged();
void infoChanged();
void valueChanged();
void modulatedValueChanged();
diff --git a/examples/host/plugin-parameters-widget.cc b/examples/host/plugin-parameters-widget.cc
@@ -197,9 +197,12 @@ void PluginParametersWidget::connectToParam(PluginParam *param) {
currentParam_ = param;
connect(param, &PluginParam::infoChanged, this, &PluginParametersWidget::paramInfoChanged);
connect(param, &PluginParam::valueChanged, this, &PluginParametersWidget::paramValueChanged);
+ connect(param,
+ &PluginParam::isBeingAdjustedChanged,
+ this,
+ &PluginParametersWidget::updateParamIsBeingAjustedChanged);
- updateParamInfo();
- updateParamValue();
+ updateAll();
}
void PluginParametersWidget::disconnectFromParam() {
@@ -210,7 +213,18 @@ void PluginParametersWidget::disconnectFromParam() {
currentParam_, &PluginParam::infoChanged, this, &PluginParametersWidget::paramInfoChanged);
disconnect(
currentParam_, &PluginParam::valueChanged, this, &PluginParametersWidget::paramValueChanged);
+ disconnect(currentParam_,
+ &PluginParam::isBeingAdjustedChanged,
+ this,
+ &PluginParametersWidget::updateParamIsBeingAjustedChanged);
+
+ updateAll();
+}
+
+void PluginParametersWidget::updateAll() {
updateParamInfo();
+ updateParamValue();
+ updateParamIsBeingAjustedChanged();
}
void PluginParametersWidget::updateParamInfo() {
@@ -277,6 +291,15 @@ void PluginParametersWidget::updateParamInfo() {
}
}
+void PluginParametersWidget::updateParamIsBeingAjustedChanged() {
+ if (!currentParam_) {
+ isBeingAdjusted_->setText("-");
+ } else {
+ auto &p = *currentParam_;
+ isBeingAdjusted_->setText(p.isBeingAdjusted() ? "true" : "false");
+ }
+}
+
void PluginParametersWidget::updateParamValue() {
if (valueSlider_->isSliderDown())
return;
diff --git a/examples/host/plugin-parameters-widget.hh b/examples/host/plugin-parameters-widget.hh
@@ -65,8 +65,10 @@ private:
void paramValueChanged();
void sliderValueChanged(int newValue);
+ void updateAll();
void updateParamInfo();
void updateParamValue();
+ void updateParamIsBeingAjustedChanged();
static const constexpr int SLIDER_RANGE = 10000;