Skip to content

Commit df45e6e

Browse files
committed
Playlist: Grey invalid song entries when updating items.
1 parent 1989e57 commit df45e6e

2 files changed

Lines changed: 12 additions & 5 deletions

File tree

src/playlist/playlist.cpp

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,12 @@ Playlist::Playlist(PlaylistBackend* backend, TaskManager* task_manager,
173173

174174
settings.endGroup();
175175

176+
settings.beginGroup(kSettingsGroup);
177+
178+
grey_unfound_ = settings.value("greyoutdeleted", false).toBool();
179+
180+
settings.endGroup();
181+
176182
qLog(Debug) << "k_max_scrobble_point"
177183
<< (max_play_count_point_nsecs_ / kNsecPerSec);
178184
}
@@ -1223,6 +1229,9 @@ void Playlist::UpdateItems(const SongList& songs) {
12231229
} else {
12241230
new_item = PlaylistItemPtr(new SongPlaylistItem(song));
12251231
}
1232+
if (grey_unfound_ && !song.is_valid()) {
1233+
new_item->SetForegroundColor(kInvalidSongPriority, kInvalidSongColor);
1234+
}
12261235
items_[i] = new_item;
12271236
emit dataChanged(index(i, 0), index(i, ColumnCount - 1));
12281237
// Also update undo actions
@@ -1626,11 +1635,7 @@ void Playlist::ItemsLoaded(QFuture<PlaylistItemList> future) {
16261635

16271636
emit RestoreFinished();
16281637

1629-
QSettings s;
1630-
s.beginGroup(kSettingsGroup);
1631-
1632-
// should we gray out deleted songs asynchronously on startup?
1633-
if (s.value("greyoutdeleted", false).toBool()) {
1638+
if (grey_unfound_) {
16341639
QtConcurrent::run(this, &Playlist::InvalidateDeletedSongs);
16351640
}
16361641
}

src/playlist/playlist.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -471,6 +471,8 @@ class Playlist : public QAbstractListModel {
471471

472472
// Cancel async restore if songs are already replaced
473473
bool cancel_restore_;
474+
475+
bool grey_unfound_;
474476
};
475477

476478
// QDataStream& operator <<(QDataStream&, const Playlist*);

0 commit comments

Comments
 (0)