diff --git a/src/equalizer/equalizerwidget.cpp b/src/equalizer/equalizerwidget.cpp index 0d64638..c5a8cd0 100644 --- a/src/equalizer/equalizerwidget.cpp +++ b/src/equalizer/equalizerwidget.cpp @@ -178,14 +178,12 @@ EqualizerWidget::paintEvent (QPaintEvent *event) paint.end(); } -/* - * These methods handle server configuration updates and - * update the serverconfiguraten if we change something - */ -void -EqualizerWidget::loadServerConfig () + +bool +EqualizerWidget::haveEqualizerEffect() { // FIXME: Disable Widget if doesn't get enabled + // TODO: Test if server has equalizer effect plugin // TODO: Add 'don't bother me again' checkbox if (!(m_xconfig->values_get (QRegExp ("effect\\.order\\.\\d+")). contains ("equalizer"))) { @@ -205,8 +203,22 @@ EqualizerWidget::loadServerConfig () break; } } + return true; + } else { + return false; } } + return true; + +} + +/* + * These methods handle server configuration updates and + * update the serverconfiguraten if we change something + */ +void +EqualizerWidget::loadServerConfig () +{ QString key; QString value; // set enabled checkbox @@ -249,10 +261,12 @@ EqualizerWidget::serverConfigValueChanged (QString key, QString value) void EqualizerWidget::setEqualizerEnabled (bool enabled) { - if (enabled) { + if (enabled && haveEqualizerEffect()) { m_xconfig->value_set ("equalizer.enabled", "1"); m_xconfig->value_set ("equalizer.use_legacy", "1"); } else { + m_enable->setChecked (false); // uncheck the button again if equalizer + // effect is not enabled m_xconfig->value_set ("equalizer.enabled", "0"); } } diff --git a/src/equalizer/equalizerwidget.h b/src/equalizer/equalizerwidget.h index 754e769..8aad964 100644 --- a/src/equalizer/equalizerwidget.h +++ b/src/equalizer/equalizerwidget.h @@ -66,6 +66,7 @@ class EqualizerWidget : public QWidget void updateServerBands (int value, int id); private: + bool haveEqualizerEffect(); XConfig *m_xconfig; QPixmap m_pixmap;