diff --git a/src/widgets/equalizerslider.cpp b/src/widgets/equalizerslider.cpp index 8a7bcc817..f449b06f0 100644 --- a/src/widgets/equalizerslider.cpp +++ b/src/widgets/equalizerslider.cpp @@ -21,9 +21,25 @@ EqualizerSlider::EqualizerSlider(const QString& label, QWidget* parent) : QWidget(parent), ui_(new Ui_EqualizerSlider) { ui_->setupUi(this); - ui_->label->setText(label); + ui_->band->setText(label); // Band [Hz] - connect(ui_->slider, SIGNAL(valueChanged(int)), SIGNAL(ValueChanged(int))); + QFontMetrics fm = ui_->gain->fontMetrics(); + int longestLabelWidth = fm.width(tr("%1 dB").arg(-99.99)); + ui_->gain->setMinimumWidth(longestLabelWidth); + ui_->gain->setText(tr("%1 dB").arg(0)); // Gain [dB] + + ui_->slider->setValue(0); + + connect(ui_->slider, SIGNAL(valueChanged(int)), this, + SLOT(onValueChanged(int))); +} + +void EqualizerSlider::onValueChanged(int value) { + // Converting % to dB as per GstEnginePipeline::UpdateEqualizer(): + float gain = (value < 0) ? value * 0.24 : value * 0.12; + + ui_->gain->setText(tr("%1 dB").arg(gain)); // Gain [dB] + emit ValueChanged(value); } EqualizerSlider::~EqualizerSlider() { delete ui_; } diff --git a/src/widgets/equalizerslider.h b/src/widgets/equalizerslider.h index 0c81236c6..94845d76f 100644 --- a/src/widgets/equalizerslider.h +++ b/src/widgets/equalizerslider.h @@ -19,6 +19,7 @@ #define EQUALISERSLIDER_H #include +#include class Ui_EqualizerSlider; @@ -33,6 +34,9 @@ class EqualizerSlider : public QWidget { int value() const; void set_value(int value); + public slots: + void onValueChanged(int value); + signals: void ValueChanged(int value); diff --git a/src/widgets/equalizerslider.ui b/src/widgets/equalizerslider.ui index 8390fe7e6..04ec29f2e 100644 --- a/src/widgets/equalizerslider.ui +++ b/src/widgets/equalizerslider.ui @@ -6,7 +6,7 @@ 0 0 - 33 + 34 224 @@ -20,7 +20,16 @@ Form - + + 0 + + + 0 + + + 0 + + 0 @@ -73,7 +82,29 @@ - + + + true + + + Qt::AlignCenter + + + + + + + + 0 + 0 + + + + + + + + Qt::AlignCenter