If phonon is not availaible: disable the audio settings
authorSebastien Fricker <fricker@froglogic.com>
Thu, 13 Sep 2012 15:20:26 +0000 (17:20 +0200)
committerManuel Nickschas <sputnick@quassel-irc.org>
Tue, 19 Feb 2013 21:18:14 +0000 (22:18 +0100)
src/qtui/phononnotificationbackend.cpp

index 766cf59..db2450e 100644 (file)
@@ -21,7 +21,7 @@
 #include <QFileDialog>
 
 #include <phonon/mediaobject.h>
-
+#include <Phonon/BackendCapabilities>
 #include "phononnotificationbackend.h"
 
 #include "clientsettings.h"
@@ -122,12 +122,24 @@ PhononNotificationBackend::ConfigWidget::~ConfigWidget()
 
 void PhononNotificationBackend::ConfigWidget::widgetChanged()
 {
-    ui.play->setEnabled(ui.enabled->isChecked() && !ui.filename->text().isEmpty());
+    bool audioAvailable = ! Phonon::BackendCapabilities::availableAudioOutputDevices().isEmpty();
+    if ( ! audioAvailable )
+    {
+        ui.enabled->setChecked( false );
+        ui.enabled->setEnabled( false );
+        ui.play->setEnabled( false );
+        ui.open->setEnabled( false );
+        ui.filename->setEnabled( false );
+    }
+    else
+    {
+        ui.play->setEnabled(ui.enabled->isChecked() && !ui.filename->text().isEmpty());
 
-    bool changed = (enabled != ui.enabled->isChecked()
-                    || filename != ui.filename->text());
+        bool changed = (enabled != ui.enabled->isChecked()
+                || filename != ui.filename->text());
 
-    if (changed != hasChanged()) setChangedState(changed);
+        if (changed != hasChanged()) setChangedState(changed);
+    }
 }