Save/restore multiple-artist details to cache

This commit is contained in:
craig
2012-04-02 18:00:59 +00:00
parent 197ea42c14
commit f2deb573e4

View File

@@ -293,8 +293,7 @@ void MusicLibraryItemRoot::toXML(const QString &filename, const QString &pathRem
writer.writeAttribute("year", QString::number(album->year()));
if (album->isSingleTracks()) {
writer.writeAttribute("singleTracks", "true");
}
if (album->isMultipleArtists()) {
} else if (album->isMultipleArtists()) {
writer.writeAttribute("multipleArtists", "true");
}
foreach (const MusicLibraryItem *t, album->childItems()) {
@@ -326,6 +325,8 @@ void MusicLibraryItemRoot::toXML(const QString &filename, const QString &pathRem
}
if (album->isSingleTracks()) {
writer.writeAttribute("album", track->song().album);
} else if (album->isMultipleArtists()) {
writer.writeAttribute("artist", track->song().artist);
}
}
writer.writeEndElement();
@@ -386,9 +387,12 @@ quint32 MusicLibraryItemRoot::fromXML(const QString &filename, const QString &pa
albumItem = artistItem->createAlbum(song);
if (QLatin1String("true")==attributes.value("singleTracks").toString()) {
albumItem->setIsSingleTracks();
}
if (QLatin1String("true")==attributes.value("multipleArtists").toString()) {
song.type=Song::SingleTracks;
} else if (QLatin1String("true")==attributes.value("multipleArtists").toString()) {
albumItem->setIsMultipleArtists();
song.type=Song::MultipleArtists;
} else {
song.type=Song::Standard;
}
}
else if (QLatin1String("Track")==element) {
@@ -422,7 +426,13 @@ quint32 MusicLibraryItemRoot::fromXML(const QString &filename, const QString &pa
if (!str.isEmpty()) {
song.album=str;
}
} else if (albumItem->isMultipleArtists()) {
str=attributes.value("artist").toString();
if (!str.isEmpty()) {
song.artist=str;
}
}
song.fillEmptyFields();
songItem = new MusicLibraryItemSong(song, albumItem);
albumItem->append(songItem);