From 3de85549b653b78871ea2ff671c40219def02c20 Mon Sep 17 00:00:00 2001 From: Jonas Kvinge Date: Sun, 27 Oct 2019 02:11:51 +0100 Subject: [PATCH] Add option to automatically select current playing track --- src/playlist/playlistview.cpp | 10 ++++++++++ src/playlist/playlistview.h | 2 ++ src/settings/playlistsettingspage.cpp | 2 ++ src/settings/playlistsettingspage.ui | 10 +++++++--- 4 files changed, 21 insertions(+), 3 deletions(-) diff --git a/src/playlist/playlistview.cpp b/src/playlist/playlistview.cpp index 2b92b9445..7cf0a0d80 100644 --- a/src/playlist/playlistview.cpp +++ b/src/playlist/playlistview.cpp @@ -161,6 +161,7 @@ PlaylistView::PlaylistView(QWidget *parent) previous_background_image_x_(0), previous_background_image_y_(0), glow_enabled_(true), + select_track_(false), currently_glowing_(false), glow_intensity_step_(0), inhibit_autoscroll_timer_(new QTimer(this)), @@ -1004,6 +1005,7 @@ void PlaylistView::ReloadSettings() { #endif glow_enabled_ = s.value("glow_effect", glow_effect).toBool(); bool editmetadatainline = s.value("editmetadatainline", false).toBool(); + select_track_ = s.value("select_track", false).toBool(); s.endGroup(); s.beginGroup(Playlist::kSettingsGroup); @@ -1228,7 +1230,15 @@ void PlaylistView::CopyCurrentSongToClipboard() const { } void PlaylistView::SongChanged(const Song &song) { + song_playing_ = song; + + if (select_track_ && playlist_) { + clearSelection(); + QItemSelection selection(playlist_->index(playlist_->current_row(), 0), playlist_->index(playlist_->current_row(), playlist_->ColumnCount - 1)); + selectionModel()->select(selection, QItemSelectionModel::Select); + } + } void PlaylistView::Playing() {} diff --git a/src/playlist/playlistview.h b/src/playlist/playlistview.h index e49cc65a3..68107424a 100644 --- a/src/playlist/playlistview.h +++ b/src/playlist/playlistview.h @@ -240,6 +240,8 @@ class PlaylistView : public QTreeView { int previous_background_image_y_; bool glow_enabled_; + bool select_track_; + bool currently_glowing_; QBasicTimer glow_timer_; int glow_intensity_step_; diff --git a/src/settings/playlistsettingspage.cpp b/src/settings/playlistsettingspage.cpp index 539404899..e290272ac 100644 --- a/src/settings/playlistsettingspage.cpp +++ b/src/settings/playlistsettingspage.cpp @@ -66,6 +66,7 @@ void PlaylistSettingsPage::Load() { ui_->checkbox_continueonerror->setChecked(s.value("continue_on_error", false).toBool()); 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()); Playlist::Path path = Playlist::Path(s.value(Playlist::kPathType, Playlist::Path_Automatic).toInt()); switch (path) { @@ -113,6 +114,7 @@ void PlaylistSettingsPage::Save() { s.setValue("continue_on_error", ui_->checkbox_continueonerror->isChecked()); 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::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 337b6af89..a4a7f48ea 100644 --- a/src/settings/playlistsettingspage.ui +++ b/src/settings/playlistsettingspage.ui @@ -19,9 +19,6 @@ Show a glowing animation on the current track - - true - @@ -52,6 +49,13 @@ + + + + Automatically select current playing track + + +