diff --git a/src/SettingsDialog.cpp b/src/SettingsDialog.cpp
index 720b55cea..e4913df56 100644
--- a/src/SettingsDialog.cpp
+++ b/src/SettingsDialog.cpp
@@ -90,6 +90,7 @@ SettingsDialog::SettingsDialog(QObject *parent )
m_advancedWidgetUi->checkBoxReporter->setChecked( s->crashReporterEnabled() );
m_advancedWidgetUi->checkBoxHttp->setChecked( s->httpEnabled() );
+ m_advancedWidgetUi->checkBoxSongChangeNotifications->setChecked( s->songChangeNotificationEnabled() );
//Network settings
TomahawkSettings::ExternalAddressMode mode = TomahawkSettings::instance()->externalAddressMode();
@@ -254,6 +255,7 @@ SettingsDialog::saveSettings()
s->setCrashReporterEnabled( m_advancedWidgetUi->checkBoxReporter->checkState() == Qt::Checked );
s->setHttpEnabled( m_advancedWidgetUi->checkBoxHttp->checkState() == Qt::Checked );
+ s->setSongChangeNotificationEnabled( m_advancedWidgetUi->checkBoxSongChangeNotifications->checkState() == Qt::Checked );
s->setProxyType( m_advancedWidgetUi->enableProxyCheckBox->isChecked() ? QNetworkProxy::Socks5Proxy : QNetworkProxy::NoProxy );
s->setExternalAddressMode( m_advancedWidgetUi->upnpRadioButton->isChecked() ? TomahawkSettings::Upnp : ( m_advancedWidgetUi->lanOnlyRadioButton->isChecked() ? TomahawkSettings::Lan : TomahawkSettings::Static ) );
diff --git a/src/Settings_Advanced.ui b/src/Settings_Advanced.ui
index 324bace00..e7e9a5dd7 100644
--- a/src/Settings_Advanced.ui
+++ b/src/Settings_Advanced.ui
@@ -221,6 +221,16 @@
+ -
+
+
+ Show notification when a new song starts to play
+
+
+ true
+
+
+
-
-
diff --git a/src/infoplugins/linux/fdonotify/FdoNotifyPlugin.cpp b/src/infoplugins/linux/fdonotify/FdoNotifyPlugin.cpp
index c7e9aa982..eef36037f 100644
--- a/src/infoplugins/linux/fdonotify/FdoNotifyPlugin.cpp
+++ b/src/infoplugins/linux/fdonotify/FdoNotifyPlugin.cpp
@@ -41,13 +41,15 @@
#include "utils/TomahawkUtils.h"
#include "ImageConverter.h"
+#include "TomahawkSettings.h"
+
+#include "utils/Logger.h"
+
#include
#include
#include
#include
-#include "utils/Logger.h"
-
namespace Tomahawk
{
@@ -72,7 +74,11 @@ FdoNotifyPlugin::~FdoNotifyPlugin()
void
FdoNotifyPlugin::pushInfo( Tomahawk::InfoSystem::InfoPushData pushData )
{
- qDebug() << Q_FUNC_INFO;
+ qDebug() << Q_FUNC_INFO << "showing notification: " << TomahawkSettings::instance()->songChangeNotificationEnabled();
+
+ if ( !TomahawkSettings::instance()->songChangeNotificationEnabled() )
+ return;
+
QVariant inputData = pushData.infoPair.second;
switch ( pushData.type )
diff --git a/src/libtomahawk/TomahawkSettings.cpp b/src/libtomahawk/TomahawkSettings.cpp
index e073b2490..0aa059583 100644
--- a/src/libtomahawk/TomahawkSettings.cpp
+++ b/src/libtomahawk/TomahawkSettings.cpp
@@ -727,6 +727,20 @@ TomahawkSettings::setCrashReporterEnabled( bool enable )
}
+bool
+TomahawkSettings::songChangeNotificationEnabled() const
+{
+ return value( "ui/songChangeNotification", true ).toBool();
+}
+
+
+void
+TomahawkSettings::setSongChangeNotificationEnabled(bool enable)
+{
+ setValue( "ui/songChangeNotification", enable );
+}
+
+
unsigned int
TomahawkSettings::volume() const
{
diff --git a/src/libtomahawk/TomahawkSettings.h b/src/libtomahawk/TomahawkSettings.h
index a22be0818..94182084d 100644
--- a/src/libtomahawk/TomahawkSettings.h
+++ b/src/libtomahawk/TomahawkSettings.h
@@ -139,6 +139,9 @@ public:
bool crashReporterEnabled() const; /// true by default
void setCrashReporterEnabled( bool enable );
+ bool songChangeNotificationEnabled() const; /// true by default
+ void setSongChangeNotificationEnabled( bool enable );
+
QString externalHostname() const;
void setExternalHostname( const QString& externalHostname );