From f94a3095fd1bf6684bb58b3038906f4867927acc Mon Sep 17 00:00:00 2001 From: Jonas Kvinge Date: Tue, 9 Jul 2019 01:05:42 +0200 Subject: [PATCH] Fix TryLoadPixmap and ShowCover --- .../albumcoverchoicecontroller.cpp | 9 ++---- src/covermanager/albumcoverchoicecontroller.h | 2 +- src/covermanager/albumcoverloader.cpp | 32 +++++++++---------- 3 files changed, 20 insertions(+), 23 deletions(-) diff --git a/src/covermanager/albumcoverchoicecontroller.cpp b/src/covermanager/albumcoverchoicecontroller.cpp index 42d9854e0..a6e51ceb2 100644 --- a/src/covermanager/albumcoverchoicecontroller.cpp +++ b/src/covermanager/albumcoverchoicecontroller.cpp @@ -256,14 +256,11 @@ void AlbumCoverChoiceController::ShowCover(const Song &song) { } -void AlbumCoverChoiceController::ShowCover(const Song &song, const QImage image) { +void AlbumCoverChoiceController::ShowCover(const Song &song, const QImage &image) { - QUrl url_manual(song.art_manual()); - QUrl url_automatic(song.art_automatic()); - - if (url_manual.isLocalFile() || url_automatic.isLocalFile()) { + if (song.art_manual().isLocalFile() || song.art_automatic().isLocalFile()) { QPixmap pixmap = AlbumCoverLoader::TryLoadPixmap(song.art_automatic(), song.art_manual(), song.url().toLocalFile()); - ShowCover(song, pixmap); + if (!pixmap.isNull()) ShowCover(song, pixmap); } else if (!image.isNull()) ShowCover(song, QPixmap::fromImage(image)); diff --git a/src/covermanager/albumcoverchoicecontroller.h b/src/covermanager/albumcoverchoicecontroller.h index 44dc178a0..b96c4cfa3 100644 --- a/src/covermanager/albumcoverchoicecontroller.h +++ b/src/covermanager/albumcoverchoicecontroller.h @@ -105,7 +105,7 @@ class AlbumCoverChoiceController : public QWidget { // Shows the cover of given song in it's original size. void ShowCover(const Song &song); - void ShowCover(const Song &song, const QImage image); + void ShowCover(const Song &song, const QImage &image); void ShowCover(const Song &song, const QPixmap &pixmap); // Search for covers automatically diff --git a/src/covermanager/albumcoverloader.cpp b/src/covermanager/albumcoverloader.cpp index 1750b4853..6db2470c3 100644 --- a/src/covermanager/albumcoverloader.cpp +++ b/src/covermanager/albumcoverloader.cpp @@ -407,31 +407,31 @@ QImage AlbumCoverLoader::ScaleAndPad(const AlbumCoverLoaderOptions &options, con } -QPixmap AlbumCoverLoader::TryLoadPixmap(const QUrl &automatic, const QUrl &manual, const QString &filename) { +QPixmap AlbumCoverLoader::TryLoadPixmap(const QUrl &art_automatic, const QUrl &art_manual, const QString &filename) { QPixmap ret; - if (manual.path() == Song::kManuallyUnsetCover) return ret; - if (!manual.path().isEmpty()) { - if (manual.scheme().isEmpty()) { - ret.load(manual.path()); + + if (!art_manual.path().isEmpty()) { + if (art_manual.path() == Song::kManuallyUnsetCover) return ret; + else if (art_manual.isLocalFile()) { + ret.load(art_manual.toLocalFile()); } - else if (manual.scheme() == "file") { - ret.load(manual.toLocalFile()); + else if (art_manual.scheme().isEmpty()) { + ret.load(art_manual.path()); } } - if (ret.isNull()) { - if (automatic.path() == Song::kEmbeddedCover && !filename.isEmpty()) { + if (ret.isNull() && !art_automatic.path().isEmpty()) { + if (art_automatic.path() == Song::kEmbeddedCover && !filename.isEmpty() && filename.isLocalFile()) { ret = QPixmap::fromImage(TagReaderClient::Instance()->LoadEmbeddedArtBlocking(filename)); } - else if (!automatic.path().isEmpty()) { - if (automatic.scheme().isEmpty()) { - ret.load(automatic.path()); - } - else if (manual.scheme() == "file") { - ret.load(automatic.toLocalFile()); - } + else if (art_automatic.isLocalFile()) { + ret.load(art_automatic.toLocalFile()); + } + else if (art_automatic.scheme().isEmpty()) { + ret.load(art_automatic.path()); } } + return ret; }