Make showing song progress on taskbar optional

This commit is contained in:
Jonas Kvinge 2024-04-04 16:49:53 +02:00
parent 70809e0647
commit d398c86b0c
4 changed files with 49 additions and 6 deletions

View File

@ -339,6 +339,9 @@ MainWindow::MainWindow(Application *app, SharedPtr<SystemTrayIcon> tray_icon, OS
track_slider_timer_(new QTimer(this)),
keep_running_(false),
playing_widget_(true),
#ifdef HAVE_DBUS
taskbar_progress_(false),
#endif
doubleclick_addmode_(BehaviourSettingsPage::AddBehaviour::Append),
doubleclick_playmode_(BehaviourSettingsPage::PlayBehaviour::Never),
doubleclick_playlist_addmode_(BehaviourSettingsPage::PlaylistAddBehaviour::Play),
@ -1108,6 +1111,9 @@ void MainWindow::ReloadSettings() {
keep_running_ = keeprunning_available && s.value("keeprunning", false).toBool();
playing_widget_ = s.value("playing_widget", true).toBool();
bool trayicon_progress = s.value("trayicon_progress", false).toBool();
#ifdef HAVE_DBUS
const bool taskbar_progress = s.value("taskbar_progress", true).toBool();
#endif
if (playing_widget_ != ui_->widget_playing->IsEnabled()) TabSwitched();
doubleclick_addmode_ = static_cast<BehaviourSettingsPage::AddBehaviour>(s.value("doubleclick_addmode", static_cast<int>(BehaviourSettingsPage::AddBehaviour::Append)).toInt());
doubleclick_playmode_ = static_cast<BehaviourSettingsPage::PlayBehaviour>(s.value("doubleclick_playmode", static_cast<int>(BehaviourSettingsPage::PlayBehaviour::Never)).toInt());
@ -1121,6 +1127,13 @@ void MainWindow::ReloadSettings() {
tray_icon_->SetTrayiconProgress(trayicon_progress);
#ifdef HAVE_DBUS
if (taskbar_progress_ && !taskbar_progress) {
UpdateTaskbarProgress(false);
}
taskbar_progress_ = taskbar_progress;
#endif
ui_->back_button->setIconSize(QSize(iconsize, iconsize));
ui_->pause_play_button->setIconSize(QSize(iconsize, iconsize));
ui_->stop_button->setIconSize(QSize(iconsize, iconsize));
@ -1277,7 +1290,9 @@ void MainWindow::Exit() {
}
#ifdef HAVE_DBUS
UpdateTaskbarProgress(false, 0, 0);
if (taskbar_progress_) {
UpdateTaskbarProgress(false);
}
#endif
DoExit();
@ -1333,7 +1348,9 @@ void MainWindow::MediaStopped() {
tray_icon_->SetStopped();
#ifdef HAVE_DBUS
UpdateTaskbarProgress(false, 0, 0);
if (taskbar_progress_) {
UpdateTaskbarProgress(false);
}
#endif
song_playing_ = Song();
@ -1413,7 +1430,9 @@ void MainWindow::SongChanged(const Song &song) {
tray_icon_->SetProgress(0);
#ifdef HAVE_DBUS
UpdateTaskbarProgress(false, 0, 0);
if (taskbar_progress_) {
UpdateTaskbarProgress(false);
}
#endif
SendNowPlaying();
@ -1706,7 +1725,9 @@ void MainWindow::Seeked(const qint64 microseconds) {
tray_icon_->SetProgress(static_cast<int>(static_cast<double>(position) / static_cast<double>(length) * 100.0));
#ifdef HAVE_DBUS
UpdateTaskbarProgress(true, position, length);
if (taskbar_progress_) {
UpdateTaskbarProgress(true, position, length);
}
#endif
}
@ -1724,7 +1745,9 @@ void MainWindow::UpdateTrackPosition() {
if (position % 10 == 0) tray_icon_->SetProgress(static_cast<int>(static_cast<double>(position) / static_cast<double>(length) * 100.0));
#ifdef HAVE_DBUS
UpdateTaskbarProgress(true, position, length);
if (taskbar_progress_) {
UpdateTaskbarProgress(true, position, length);
}
#endif
// Send Scrobble

View File

@ -293,7 +293,7 @@ class MainWindow : public QMainWindow, public PlatformInterface {
void SetToggleScrobblingIcon(const bool value);
#ifdef HAVE_DBUS
void UpdateTaskbarProgress(const bool visible, const double position, const double length);
void UpdateTaskbarProgress(const bool visible, const double position = 0, const double length = 0);
#endif
private:
@ -383,6 +383,9 @@ class MainWindow : public QMainWindow, public PlatformInterface {
bool keep_running_;
bool playing_widget_;
#ifdef HAVE_DBUS
bool taskbar_progress_;
#endif
BehaviourSettingsPage::AddBehaviour doubleclick_addmode_;
BehaviourSettingsPage::PlayBehaviour doubleclick_playmode_;
BehaviourSettingsPage::PlaylistAddBehaviour doubleclick_playlist_addmode_;

View File

@ -69,6 +69,10 @@ BehaviourSettingsPage::BehaviourSettingsPage(SettingsDialog *dialog, QWidget *pa
ui_->checkbox_showtrayicon->hide();
ui_->checkbox_trayicon_progress->hide();
ui_->groupbox_startup->hide();
#else
# ifndef HAVE_DBUS
ui_->checkbox_taskbar_progress->hide();
# endif
#endif
#ifdef HAVE_TRANSLATIONS
@ -156,6 +160,9 @@ void BehaviourSettingsPage::Load() {
ui_->checkbox_trayicon_progress->setEnabled(systemtray_available && ui_->checkbox_showtrayicon->isChecked());
ui_->checkbox_trayicon_progress->setChecked(systemtray_available && ui_->checkbox_showtrayicon->isChecked() && s.value("trayicon_progress", false).toBool());
ui_->radiobutton_hide->setEnabled(systemtray_available && ui_->checkbox_showtrayicon->isChecked());
#ifdef HAVE_DBUS
ui_->checkbox_taskbar_progress->setChecked(s.value("taskbar_progress", true).toBool());
#endif
#endif
ui_->checkbox_resumeplayback->setChecked(s.value("resumeplayback", false).toBool());
@ -222,6 +229,9 @@ void BehaviourSettingsPage::Save() {
s.setValue("showtrayicon", ui_->checkbox_showtrayicon->isChecked());
s.setValue("keeprunning", ui_->checkbox_keeprunning->isChecked());
s.setValue("trayicon_progress", ui_->checkbox_trayicon_progress->isChecked());
#if defined(HAVE_DBUS) && !defined(Q_OS_MACOS)
s.setValue("taskbar_progress", ui_->checkbox_taskbar_progress->isChecked());
#endif
s.setValue("resumeplayback", ui_->checkbox_resumeplayback->isChecked());
s.setValue("playing_widget", ui_->checkbox_playingwidget->isChecked());

View File

@ -41,6 +41,13 @@
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="checkbox_taskbar_progress">
<property name="text">
<string>Show song progress on taskbar</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="checkbox_resumeplayback">
<property name="text">