summaryrefslogtreecommitdiffstats
path: root/src/library/externaltrackcollection.cpp
blob: ce5f38b2114625b3914a9bc2d14c613cf93e3baf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include "library/externaltrackcollection.h"


void ExternalTrackCollection::relocateTracks(
        const QList<RelocatedTrack>& relocatedTracks) {
    QList<QString> purgedTracks;
    QList<TrackRef> updatedTracks;
    purgedTracks.reserve(relocatedTracks.size());
    updatedTracks.reserve(relocatedTracks.size());
    for (const auto& relocatedTrack : relocatedTracks) {
        if (!relocatedTrack.deletedTrackLocation().isEmpty()) {
            purgedTracks.append(relocatedTrack.deletedTrackLocation());
        }
        DEBUG_ASSERT(relocatedTrack.updatedTrackRef().isValid());
        updatedTracks.append(relocatedTrack.updatedTrackRef());
    }
    purgeTracks(purgedTracks);
    updateTracks(updatedTracks);
}