Improve equalizer and fix alignment of label right

This commit is contained in:
Jonas Kvinge
2019-04-22 22:21:44 +02:00
parent 984abc89a8
commit 1e886cb12c
4 changed files with 55 additions and 12 deletions

View File

@@ -33,15 +33,33 @@ EqualizerSlider::EqualizerSlider(const QString &label, QWidget *parent)
ui_(new Ui_EqualizerSlider)
{
ui_->setupUi(this);
ui_->label->setText(label);
ui_->band->setText(label);
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)));
connect(ui_->slider, SIGNAL(valueChanged(int)), SIGNAL(ValueChanged(int)));
}
EqualizerSlider::~EqualizerSlider() {
delete ui_;
}
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);
}
int EqualizerSlider::value() const {
return ui_->slider->value();
}