void Library::updateTrackMetadata(Track track) { Track ntrack = track; if (track.id() > 0) { ntrack = _library_storage->updateTrack(track); } // update all playlists QList<QString> playlists = getPlaylistsNames(); foreach (QString name, playlists) { Playlist pl = getPlaylist(name); QList<Track> tracks = pl.tracks(); int pos = tracks.indexOf(ntrack); // comparing using source tracks.removeOne(ntrack); // comparing using source tracks.insert(pos, ntrack); pl.setTracks(tracks); savePlaylist(pl); }