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

#include "moc_externaltrackcollection.cpp"

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);
}