From ccad8fcf06dcdd7821b5c4d04978734e431b0433 Mon Sep 17 00:00:00 2001 From: Andrzej Rybczak Date: Sat, 18 Apr 2015 20:27:17 +0200 Subject: [PATCH] status: when updating playlist, deselect modified items --- src/status.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/status.cpp b/src/status.cpp index b6b1a903..3fda126b 100644 --- a/src/status.cpp +++ b/src/status.cpp @@ -416,16 +416,23 @@ void Status::Changes::playlist(unsigned previous_version) for (; s != end; ++s) { size_t pos = s->getPosition(); - myPlaylist->registerSong(*s); if (pos < myPlaylist->main().size()) { // if song's already in playlist, replace it with a new one MPD::Song &old_s = myPlaylist->main()[pos].value(); - myPlaylist->unregisterSong(old_s); - old_s = std::move(*s); + if (old_s != *s) + { + myPlaylist->registerSong(*s); + myPlaylist->unregisterSong(old_s); + myPlaylist->main()[pos].setSelected(false); + old_s = std::move(*s); + } } else // otherwise just add it to playlist + { + myPlaylist->registerSong(*s); myPlaylist->main().addItem(std::move(*s)); + } } myPlaylist->reloadTotalLength();