From 120b18b3992eb54b95fab9e37f9a74cccc2bf910 Mon Sep 17 00:00:00 2001 From: Tom Kranz Date: Sun, 19 Sep 2021 13:06:02 +0200 Subject: [PATCH] Use XSPF image elements as manually set artwork --- src/playlistparsers/xspfparser.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/playlistparsers/xspfparser.cpp b/src/playlistparsers/xspfparser.cpp index 0529581fd..d053ea91e 100644 --- a/src/playlistparsers/xspfparser.cpp +++ b/src/playlistparsers/xspfparser.cpp @@ -65,7 +65,7 @@ SongList XSPFParser::Load(QIODevice *device, const QString &playlist_path, const Song XSPFParser::ParseTrack(QXmlStreamReader *reader, const QDir &dir, const bool collection_search) const { - QString title, artist, album, location; + QString title, artist, album, location, art; qint64 nanosec = -1; int track_num = -1; @@ -86,6 +86,9 @@ Song XSPFParser::ParseTrack(QXmlStreamReader *reader, const QDir &dir, const boo else if (name == "album") { album = reader->readElementText(); } + else if (name == "image") { + art = reader->readElementText(); + } else if (name == "duration") { // in milliseconds. const QString duration = reader->readElementText(); bool ok = false; @@ -102,9 +105,6 @@ Song XSPFParser::ParseTrack(QXmlStreamReader *reader, const QDir &dir, const boo track_num = -1; } } - else if (name == "image") { - // TODO: Fetch album covers. - } else if (name == "info") { // TODO: Do something with extra info? } @@ -128,6 +128,7 @@ return_song: if (!title.isEmpty()) song.set_title(title); if (!artist.isEmpty()) song.set_artist(artist); if (!album.isEmpty()) song.set_album(album); + if (!art.isEmpty()) song.set_art_manual(QUrl(art)); if (nanosec > 0) song.set_length_nanosec(nanosec); if (track_num > 0) song.set_track(track_num); }