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