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 );