diff --git a/src/ui/behavioursettingspage.cpp b/src/ui/behavioursettingspage.cpp
index dee59f177..3b05eb773 100644
--- a/src/ui/behavioursettingspage.cpp
+++ b/src/ui/behavioursettingspage.cpp
@@ -106,6 +106,8 @@ void BehaviourSettingsPage::Load() {
s.beginGroup(MainWindow::kSettingsGroup);
ui_->b_show_tray_icon_->setChecked(s.value("showtray", true).toBool());
+ ui_->b_scroll_tray_icon_->setChecked(
+ s.value("scrolltrayicon", ui_->b_show_tray_icon_->isChecked()).toBool());
ui_->b_keep_running_->setChecked(
s.value("keeprunning", ui_->b_show_tray_icon_->isChecked()).toBool());
ui_->doubleclick_addmode->setCurrentIndex(ui_->doubleclick_addmode->findData(
@@ -227,6 +229,7 @@ void BehaviourSettingsPage::Save() {
s.beginGroup(MainWindow::kSettingsGroup);
s.setValue("showtray", ui_->b_show_tray_icon_->isChecked());
+ s.setValue("scrolltrayicon", ui_->b_scroll_tray_icon_->isChecked());
s.setValue("keeprunning", ui_->b_keep_running_->isChecked());
s.setValue("startupbehaviour", int(behaviour));
s.setValue("doubleclick_addmode", doubleclick_addmode);
@@ -266,4 +269,5 @@ void BehaviourSettingsPage::ShowTrayIconToggled(bool on) {
ui_->b_remember_->setChecked(true);
ui_->b_keep_running_->setEnabled(on);
ui_->b_keep_running_->setChecked(on);
+ ui_->b_scroll_tray_icon_->setEnabled(on);
}
diff --git a/src/ui/behavioursettingspage.ui b/src/ui/behavioursettingspage.ui
index 2eef9bc48..d0f003679 100644
--- a/src/ui/behavioursettingspage.ui
+++ b/src/ui/behavioursettingspage.ui
@@ -24,6 +24,16 @@
+ -
+
+
+ Scroll over icon to change track
+
+
+ false
+
+
+
-
diff --git a/src/ui/qtsystemtrayicon.cpp b/src/ui/qtsystemtrayicon.cpp
index 828eacf8a..2848f3153 100644
--- a/src/ui/qtsystemtrayicon.cpp
+++ b/src/ui/qtsystemtrayicon.cpp
@@ -85,7 +85,18 @@ bool QtSystemTrayIcon::eventFilter(QObject* object, QEvent* event) {
emit PreviousTrack();
}
} else {
+ QSettings s;
+ s.beginGroup(MainWindow::kSettingsGroup);
+ bool prev_next_track = s.value("scrolltrayicon").toBool();
+ if(prev_next_track) {
+ if (e->delta() < 0) {
+ emit NextTrack();
+ } else {
+ emit PreviousTrack();
+ }
+ } else {
emit ChangeVolume(e->delta());
+ }
}
return true;
}
diff --git a/src/ui/qtsystemtrayicon.h b/src/ui/qtsystemtrayicon.h
index ff1d8a0e1..903e3d6b6 100644
--- a/src/ui/qtsystemtrayicon.h
+++ b/src/ui/qtsystemtrayicon.h
@@ -18,6 +18,7 @@
#ifndef QTSYSTEMTRAYICON_H
#define QTSYSTEMTRAYICON_H
+#include "mainwindow.h"
#include "systemtrayicon.h"
#include