From 2215f300bf3acf60a4d15a345b7ce02fd721ac82 Mon Sep 17 00:00:00 2001 From: Jonas Kvinge Date: Sat, 4 Jan 2020 06:38:25 +0100 Subject: [PATCH] Added option to disable playlist clear button Fixes #339 --- src/core/mainwindow.cpp | 1 + src/playlist/playlistcontainer.cpp | 14 ++++++++++++++ src/playlist/playlistcontainer.h | 1 + src/settings/playlistsettingspage.cpp | 2 ++ src/settings/playlistsettingspage.ui | 7 +++++++ 5 files changed, 25 insertions(+) diff --git a/src/core/mainwindow.cpp b/src/core/mainwindow.cpp index 3596b20c8..520d40135 100644 --- a/src/core/mainwindow.cpp +++ b/src/core/mainwindow.cpp @@ -949,6 +949,7 @@ void MainWindow::ReloadAllSettings() { osd_->ReloadSettings(); collection_view_->ReloadSettings(); ui_->playlist->view()->ReloadSettings(); + app_->playlist_manager()->playlist_container()->ReloadSettings(); app_->album_cover_loader()->ReloadSettings(); album_cover_choice_controller_->ReloadSettings(); if (cover_manager_.get()) cover_manager_->ReloadSettings(); diff --git a/src/playlist/playlistcontainer.cpp b/src/playlist/playlistcontainer.cpp index 5cef0fb22..19d41bc4b 100644 --- a/src/playlist/playlistcontainer.cpp +++ b/src/playlist/playlistcontainer.cpp @@ -118,6 +118,8 @@ PlaylistContainer::PlaylistContainer(QWidget *parent) connect(ui_->playlist, SIGNAL(FocusOnFilterSignal(QKeyEvent*)), SLOT(FocusOnFilter(QKeyEvent*))); ui_->filter->installEventFilter(this); + ReloadSettings(); + } PlaylistContainer::~PlaylistContainer() { delete ui_; } @@ -225,6 +227,18 @@ void PlaylistContainer::SetViewModel(Playlist *playlist) { } +void PlaylistContainer::ReloadSettings() { + + bool playlist_clear = settings_.value("playlist_clear", true).toBool(); + if (playlist_clear) { + ui_->clear->show(); + } + else { + ui_->clear->hide(); + } + +} + void PlaylistContainer::ActivePlaying() { UpdateActiveIcon(QIcon(":/pictures/tiny-play.png")); } diff --git a/src/playlist/playlistcontainer.h b/src/playlist/playlistcontainer.h index 8a8ae5418..b667d42ee 100644 --- a/src/playlist/playlistcontainer.h +++ b/src/playlist/playlistcontainer.h @@ -56,6 +56,7 @@ class PlaylistContainer : public QWidget { void SetActions(QAction *new_playlist, QAction *load_playlist, QAction *save_playlist, QAction *clear_playlist, QAction *next_playlist, QAction *previous_playlist); void SetManager(PlaylistManager *manager); + void ReloadSettings(); PlaylistView *view() const; diff --git a/src/settings/playlistsettingspage.cpp b/src/settings/playlistsettingspage.cpp index 12c3fecda..86a47a9db 100644 --- a/src/settings/playlistsettingspage.cpp +++ b/src/settings/playlistsettingspage.cpp @@ -66,6 +66,7 @@ void PlaylistSettingsPage::Load() { ui_->checkbox_greyout_songs_startup->setChecked(s.value("greyout_songs_startup", true).toBool()); ui_->checkbox_greyout_songs_play->setChecked(s.value("greyout_songs_play", true).toBool()); ui_->checkbox_select_track->setChecked(s.value("select_track", false).toBool()); + ui_->checkbox_playlist_clear->setChecked(s.value("playlist_clear", true).toBool()); Playlist::Path path = Playlist::Path(s.value(Playlist::kPathType, Playlist::Path_Automatic).toInt()); switch (path) { @@ -114,6 +115,7 @@ void PlaylistSettingsPage::Save() { s.setValue("greyout_songs_startup", ui_->checkbox_greyout_songs_startup->isChecked()); s.setValue("greyout_songs_play", ui_->checkbox_greyout_songs_play->isChecked()); s.setValue("select_track", ui_->checkbox_select_track->isChecked()); + s.setValue("playlist_clear", ui_->checkbox_playlist_clear->isChecked()); s.setValue(Playlist::kPathType, static_cast(path)); s.setValue("editmetadatainline", ui_->checkbox_editmetadatainline->isChecked()); s.setValue(Playlist::kWriteMetadata, ui_->checkbox_writemetadata->isChecked()); diff --git a/src/settings/playlistsettingspage.ui b/src/settings/playlistsettingspage.ui index a4a7f48ea..a405184b6 100644 --- a/src/settings/playlistsettingspage.ui +++ b/src/settings/playlistsettingspage.ui @@ -56,6 +56,13 @@ + + + + Enable playlist clear button + + +