From b0d6aa0eb77aa7e313ab9a395d074afffdc8eff2 Mon Sep 17 00:00:00 2001 From: ronso0 Date: Sat, 17 Aug 2024 17:36:06 +0200 Subject: [PATCH 1/2] History: remove purged tracks --- src/library/dao/playlistdao.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/library/dao/playlistdao.cpp b/src/library/dao/playlistdao.cpp index 40e8682bccc..8bb0b34fc3a 100644 --- a/src/library/dao/playlistdao.cpp +++ b/src/library/dao/playlistdao.cpp @@ -956,8 +956,8 @@ void PlaylistDAO::removeTracksFromPlaylists(const QList& trackIds, bool ++it) { if (it.key() == trackId) { const auto playlistId = it.value(); - // keep tracks in history playlists - if (getHiddenType(playlistId) == PlaylistDAO::PLHT_SET_LOG) { + // keep hidden tracks in history playlists, remove purged tracks + if (!purged && getHiddenType(playlistId) == PlaylistDAO::PLHT_SET_LOG) { continue; } removeTracksFromPlaylistByIdInner(playlistId, trackId); From 56cf7c8926967eafa540c93a454b833818f8a3fc Mon Sep 17 00:00:00 2001 From: ronso0 Date: Sat, 17 Aug 2024 17:36:22 +0200 Subject: [PATCH 2/2] History: auto-remove empty playlists after purging tracks --- src/library/dao/playlistdao.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/library/dao/playlistdao.cpp b/src/library/dao/playlistdao.cpp index 8bb0b34fc3a..1aa9539ec91 100644 --- a/src/library/dao/playlistdao.cpp +++ b/src/library/dao/playlistdao.cpp @@ -967,6 +967,9 @@ void PlaylistDAO::removeTracksFromPlaylists(const QList& trackIds, bool } transaction.commit(); + // We may now have empty history playlists. Remove them. + deleteAllUnlockedPlaylistsWithFewerTracks(PlaylistDAO::PLHT_SET_LOG, 1); + // update the sidebar emit playlistContentChanged(playlistIds); // If this is called by TrackCollection::purgeTracks() it will call