From d2bfc73b916ea488bd123315c64116d74e4ce167 Mon Sep 17 00:00:00 2001 From: Jonas Kvinge Date: Fri, 10 Jul 2020 16:18:31 +0200 Subject: [PATCH] Only set playlist view item delegates once --- src/playlist/playlistcontainer.cpp | 1 - src/playlist/playlistview.cpp | 19 +++++++++++-------- src/playlist/playlistview.h | 2 +- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/src/playlist/playlistcontainer.cpp b/src/playlist/playlistcontainer.cpp index 69f26f10d..4cfb63f3b 100644 --- a/src/playlist/playlistcontainer.cpp +++ b/src/playlist/playlistcontainer.cpp @@ -189,7 +189,6 @@ void PlaylistContainer::SetViewModel(Playlist *playlist) { // Set the view playlist->IgnoreSorting(true); view()->setModel(playlist->proxy()); - view()->SetItemDelegates(manager_->collection_backend()); view()->SetPlaylist(playlist); view()->selectionModel()->select(manager_->current_selection(), QItemSelectionModel::ClearAndSelect); playlist->IgnoreSorting(false); diff --git a/src/playlist/playlistview.cpp b/src/playlist/playlistview.cpp index 487e5ab59..9ed8e5d63 100644 --- a/src/playlist/playlistview.cpp +++ b/src/playlist/playlistview.cpp @@ -219,6 +219,9 @@ void PlaylistView::SetApplication(Application *app) { Q_ASSERT(app); app_ = app; + + SetItemDelegates(); + connect(app_->playlist_manager(), SIGNAL(CurrentSongChanged(Song)), this, SLOT(SongChanged(Song))); connect(app_->current_albumcover_loader(), SIGNAL(AlbumCoverLoaded(Song, AlbumCoverLoaderResult)), SLOT(AlbumCoverLoaded(Song, AlbumCoverLoaderResult))); connect(app_->player(), SIGNAL(Playing()), SLOT(StartGlowing())); @@ -227,18 +230,18 @@ void PlaylistView::SetApplication(Application *app) { } -void PlaylistView::SetItemDelegates(CollectionBackend *backend) { +void PlaylistView::SetItemDelegates() { setItemDelegate(new PlaylistDelegateBase(this)); setItemDelegateForColumn(Playlist::Column_Title, new TextItemDelegate(this)); - setItemDelegateForColumn(Playlist::Column_Album, new TagCompletionItemDelegate(this, backend, Playlist::Column_Album)); - setItemDelegateForColumn(Playlist::Column_Artist, new TagCompletionItemDelegate(this, backend, Playlist::Column_Artist)); - setItemDelegateForColumn(Playlist::Column_AlbumArtist, new TagCompletionItemDelegate(this, backend, Playlist::Column_AlbumArtist)); - setItemDelegateForColumn(Playlist::Column_Genre, new TagCompletionItemDelegate(this, backend, Playlist::Column_Genre)); - setItemDelegateForColumn(Playlist::Column_Composer, new TagCompletionItemDelegate(this, backend, Playlist::Column_Composer)); - setItemDelegateForColumn(Playlist::Column_Performer, new TagCompletionItemDelegate(this, backend, Playlist::Column_Performer)); - setItemDelegateForColumn(Playlist::Column_Grouping, new TagCompletionItemDelegate(this, backend, Playlist::Column_Grouping)); + setItemDelegateForColumn(Playlist::Column_Album, new TagCompletionItemDelegate(this, app_->collection_backend(), Playlist::Column_Album)); + setItemDelegateForColumn(Playlist::Column_Artist, new TagCompletionItemDelegate(this, app_->collection_backend(), Playlist::Column_Artist)); + setItemDelegateForColumn(Playlist::Column_AlbumArtist, new TagCompletionItemDelegate(this, app_->collection_backend(), Playlist::Column_AlbumArtist)); + setItemDelegateForColumn(Playlist::Column_Genre, new TagCompletionItemDelegate(this, app_->collection_backend(), Playlist::Column_Genre)); + setItemDelegateForColumn(Playlist::Column_Composer, new TagCompletionItemDelegate(this, app_->collection_backend(), Playlist::Column_Composer)); + setItemDelegateForColumn(Playlist::Column_Performer, new TagCompletionItemDelegate(this, app_->collection_backend(), Playlist::Column_Performer)); + setItemDelegateForColumn(Playlist::Column_Grouping, new TagCompletionItemDelegate(this, app_->collection_backend(), Playlist::Column_Grouping)); setItemDelegateForColumn(Playlist::Column_Length, new LengthItemDelegate(this)); setItemDelegateForColumn(Playlist::Column_Filesize, new SizeItemDelegate(this)); setItemDelegateForColumn(Playlist::Column_Filetype, new FileTypeItemDelegate(this)); diff --git a/src/playlist/playlistview.h b/src/playlist/playlistview.h index 03b89e2ae..1a4520217 100644 --- a/src/playlist/playlistview.h +++ b/src/playlist/playlistview.h @@ -99,7 +99,7 @@ class PlaylistView : public QTreeView { static ColumnAlignmentMap DefaultColumnAlignment(); void SetApplication(Application *app); - void SetItemDelegates(CollectionBackend *backend); + void SetItemDelegates(); void SetPlaylist(Playlist *playlist); void RemoveSelected();