From 7fa1461d5e5ade11b00f0008ba82ee723cb7de24 Mon Sep 17 00:00:00 2001 From: Jonas Kvinge Date: Tue, 9 Jul 2019 21:43:56 +0200 Subject: [PATCH] Use QUrl::isLocalFile() --- src/core/song.cpp | 9 ++++----- src/core/songloader.cpp | 2 +- src/core/utilities.cpp | 4 ++-- src/covermanager/albumcoverchoicecontroller.cpp | 5 +++-- src/covermanager/albumcoverloader.cpp | 2 +- src/dialogs/edittagdialog.cpp | 2 +- src/engine/xineengine.cpp | 2 +- src/organise/organise.cpp | 4 ++-- src/organise/organisedialog.cpp | 2 +- src/playlist/playlist.cpp | 2 +- src/playlist/playlistdelegates.cpp | 2 +- src/playlist/songplaylistitem.cpp | 2 +- src/playlistparsers/parserbase.cpp | 2 +- 13 files changed, 20 insertions(+), 20 deletions(-) diff --git a/src/core/song.cpp b/src/core/song.cpp index 17daee132..b1eed8960 100644 --- a/src/core/song.cpp +++ b/src/core/song.cpp @@ -328,9 +328,9 @@ int Song::lastplayed() const { return d->lastplayed_; } const QUrl &Song::art_automatic() const { return d->art_automatic_; } const QUrl &Song::art_manual() const { return d->art_manual_; } bool Song::has_manually_unset_cover() const { return d->art_manual_.path() == kManuallyUnsetCover; } -void Song::manually_unset_cover() { d->art_manual_.clear(); d->art_manual_.setPath(kManuallyUnsetCover); } +void Song::manually_unset_cover() { d->art_manual_ = QUrl::fromLocalFile(kManuallyUnsetCover); } bool Song::has_embedded_cover() const { return d->art_automatic_.path() == kEmbeddedCover; } -void Song::set_embedded_cover() { d->art_automatic_.clear(); d->art_automatic_.setPath(kEmbeddedCover); } +void Song::set_embedded_cover() { d->art_automatic_ = QUrl::fromLocalFile(kEmbeddedCover); } const QImage &Song::image() const { return d->image_; } const QString &Song::cue_path() const { return d->cue_path_; } @@ -447,7 +447,7 @@ QString Song::JoinSpec(const QString &table) { Song::Source Song::SourceFromURL(const QUrl &url) { - if (url.scheme() == "file") return Source_LocalFile; + if (url.isLocalFile()) return Source_LocalFile; else if (url.scheme() == "cdda") return Source_CDDA; else if (url.scheme() == "tidal") return Source_Tidal; else if (url.scheme() == "subsonic") return Source_Subsonic; @@ -697,7 +697,7 @@ void Song::InitFromProtobuf(const pb::tagreader::SongMetadata &pb) { } if (pb.has_art_automatic()) { - set_art_automatic(QUrl::fromEncoded(QByteArray(pb.art_automatic().data(), pb.art_automatic().size()))); + set_art_automatic(QUrl::fromLocalFile(QByteArray(pb.art_automatic().data(), pb.art_automatic().size()))); } InitArtManual(); @@ -1407,4 +1407,3 @@ void Song::MergeUserSetData(const Song &other) { set_art_manual(other.art_manual()); } - diff --git a/src/core/songloader.cpp b/src/core/songloader.cpp index 2bc7a145b..9a9f9bbef 100644 --- a/src/core/songloader.cpp +++ b/src/core/songloader.cpp @@ -118,7 +118,7 @@ SongLoader::Result SongLoader::Load(const QUrl &url) { url_ = url; - if (url_.scheme() == "file") { + if (url_.isLocalFile()) { return LoadLocal(url_.toLocalFile()); } diff --git a/src/core/utilities.cpp b/src/core/utilities.cpp index b5edcf42c..a3a0946d5 100644 --- a/src/core/utilities.cpp +++ b/src/core/utilities.cpp @@ -379,7 +379,7 @@ void OpenInFileBrowser(const QList &urls) { QSet dirs; for (const QUrl &url : urls) { - if (url.scheme() != "file") { + if (!url.isLocalFile()) { continue; } QString path = url.toLocalFile(); @@ -662,7 +662,7 @@ bool IsLaptop() { bool UrlOnSameDriveAsStrawberry(const QUrl &url) { - if (!url.isValid() || url.scheme() != "file" || url.toLocalFile().isEmpty()) return false; + if (!url.isValid() || !url.isLocalFile() || url.toLocalFile().isEmpty()) return false; #ifdef Q_OS_WIN QUrl appUrl = QUrl::fromLocalFile(QCoreApplication::applicationDirPath()); diff --git a/src/covermanager/albumcoverchoicecontroller.cpp b/src/covermanager/albumcoverchoicecontroller.cpp index 92ffb09b6..43e87c237 100644 --- a/src/covermanager/albumcoverchoicecontroller.cpp +++ b/src/covermanager/albumcoverchoicecontroller.cpp @@ -252,17 +252,18 @@ QUrl AlbumCoverChoiceController::UnsetCover(Song *song) { void AlbumCoverChoiceController::ShowCover(const Song &song) { QPixmap pixmap = AlbumCoverLoader::TryLoadPixmap(song.art_automatic(), song.art_manual(), song.url()); + if (pixmap.isNull()) return; ShowCover(song, pixmap); } void AlbumCoverChoiceController::ShowCover(const Song &song, const QImage &image) { - if (!image.isNull()) ShowCover(song, QPixmap::fromImage(image)); - else if (!song.art_manual().isEmpty() || !song.art_automatic().isEmpty()) { + if (song.art_manual().isLocalFile() || song.art_automatic().isLocalFile()) { QPixmap pixmap = AlbumCoverLoader::TryLoadPixmap(song.art_automatic(), song.art_manual(), song.url()); if (!pixmap.isNull()) ShowCover(song, pixmap); } + else if (!image.isNull()) ShowCover(song, QPixmap::fromImage(image)); } diff --git a/src/covermanager/albumcoverloader.cpp b/src/covermanager/albumcoverloader.cpp index 66ac46ba0..5e06c1ffc 100644 --- a/src/covermanager/albumcoverloader.cpp +++ b/src/covermanager/albumcoverloader.cpp @@ -321,7 +321,7 @@ AlbumCoverLoader::TryLoadResult AlbumCoverLoader::TryLoadImage(const Task &task) return TryLoadResult(false, false, cover_url, task.options.default_output_image_); } else { - if (cover_url.scheme() == "file") { + if (cover_url.isLocalFile()) { QImage image(cover_url.toLocalFile()); return TryLoadResult(false, !image.isNull(), cover_url, image.isNull() ? task.options.default_output_image_ : image); } diff --git a/src/dialogs/edittagdialog.cpp b/src/dialogs/edittagdialog.cpp index 0167b8eb7..58945e819 100644 --- a/src/dialogs/edittagdialog.cpp +++ b/src/dialogs/edittagdialog.cpp @@ -543,7 +543,7 @@ void EditTagDialog::UpdateSummaryTab(const Song &song) { ui_->filetype->setText(song.TextForFiletype()); - if (song.url().scheme() == "file") + if (song.url().isLocalFile()) ui_->filename->setText(QDir::toNativeSeparators(song.url().toLocalFile())); else ui_->filename->setText(song.url().toString()); diff --git a/src/engine/xineengine.cpp b/src/engine/xineengine.cpp index 8484ed859..0af7738c3 100644 --- a/src/engine/xineengine.cpp +++ b/src/engine/xineengine.cpp @@ -502,7 +502,7 @@ uint XineEngine::length() const { // Xine often delivers nonsense values for VBR files and such, so we only use the length for remote files - if (media_url_.scheme().toLower() == "file") return 0; + if (media_url_.isLocalFile()) return 0; else { int pos = 0, time = 0, length = 0; diff --git a/src/organise/organise.cpp b/src/organise/organise.cpp index b30ce4af3..962746f27 100644 --- a/src/organise/organise.cpp +++ b/src/organise/organise.cpp @@ -202,7 +202,7 @@ void Organise::ProcessSomeFiles() { job.remove_original_ = !copy_; if (task.song_info_.song_.art_manual_is_valid() && task.song_info_.song_.art_manual().path() != Song::kManuallyUnsetCover) { - if (task.song_info_.song_.art_manual().scheme() == "file" && QFile::exists(task.song_info_.song_.art_manual().toLocalFile())) { + if (task.song_info_.song_.art_manual().isLocalFile() && QFile::exists(task.song_info_.song_.art_manual().toLocalFile())) { job.cover_source_ = task.song_info_.song_.art_manual().toLocalFile(); } else if (task.song_info_.song_.art_manual().scheme().isEmpty() && QFile::exists(task.song_info_.song_.art_manual().path())) { @@ -210,7 +210,7 @@ void Organise::ProcessSomeFiles() { } } else if (task.song_info_.song_.art_automatic_is_valid() && task.song_info_.song_.art_automatic().path() != Song::kEmbeddedCover) { - if (task.song_info_.song_.art_automatic().scheme() == "file" && QFile::exists(task.song_info_.song_.art_automatic().toLocalFile())) { + if (task.song_info_.song_.art_automatic().isLocalFile() && QFile::exists(task.song_info_.song_.art_automatic().toLocalFile())) { job.cover_source_ = task.song_info_.song_.art_automatic().toLocalFile(); } else if (task.song_info_.song_.art_automatic().scheme().isEmpty() && QFile::exists(task.song_info_.song_.art_automatic().path())) { diff --git a/src/organise/organisedialog.cpp b/src/organise/organisedialog.cpp index 4b36c6c82..0e1cce9a7 100644 --- a/src/organise/organisedialog.cpp +++ b/src/organise/organisedialog.cpp @@ -157,7 +157,7 @@ bool OrganiseDialog::SetSongs(const SongList &songs) { songs_.clear(); for (const Song &song : songs) { - if (song.url().scheme() != "file") { + if (!song.url().isLocalFile()) { continue; } diff --git a/src/playlist/playlist.cpp b/src/playlist/playlist.cpp index 8071fd6ce..b8080228b 100644 --- a/src/playlist/playlist.cpp +++ b/src/playlist/playlist.cpp @@ -1826,7 +1826,7 @@ void Playlist::InvalidateDeletedSongs() { PlaylistItemPtr item = items_[row]; Song song = item->Metadata(); - if (song.url().scheme() == "file") { + if (song.url().isLocalFile()) { bool exists = QFile::exists(song.url().toLocalFile()); if (!exists && !item->HasForegroundColor(kInvalidSongPriority)) { diff --git a/src/playlist/playlistdelegates.cpp b/src/playlist/playlistdelegates.cpp index 068624ddf..4316a592a 100644 --- a/src/playlist/playlistdelegates.cpp +++ b/src/playlist/playlistdelegates.cpp @@ -426,7 +426,7 @@ QString NativeSeparatorsDelegate::displayText(const QVariant &value, const QLoca return QDir::toNativeSeparators(string_value); } - if (url.scheme() == "file") { + if (url.isLocalFile()) { return QDir::toNativeSeparators(url.toLocalFile()); } return string_value; diff --git a/src/playlist/songplaylistitem.cpp b/src/playlist/songplaylistitem.cpp index 116ebbcbc..a0d970d87 100644 --- a/src/playlist/songplaylistitem.cpp +++ b/src/playlist/songplaylistitem.cpp @@ -40,7 +40,7 @@ bool SongPlaylistItem::InitFromQuery(const SqlRow &query) { QUrl SongPlaylistItem::Url() const { return song_.url(); } void SongPlaylistItem::Reload() { - if (song_.url().scheme() != "file") return; + if (!song_.url().isLocalFile()) return; TagReaderClient::Instance()->ReadFileBlocking(song_.url().toLocalFile(), &song_); } diff --git a/src/playlistparsers/parserbase.cpp b/src/playlistparsers/parserbase.cpp index f95cf24f8..22724d8c7 100644 --- a/src/playlistparsers/parserbase.cpp +++ b/src/playlistparsers/parserbase.cpp @@ -101,7 +101,7 @@ Song ParserBase::LoadSong(const QString &filename_or_url, qint64 beginning, cons QString ParserBase::URLOrFilename(const QUrl &url, const QDir &dir, Playlist::Path path_type) const { - if (url.scheme() != "file") return url.toString(); + if (!url.isLocalFile()) return url.toString(); const QString filename = url.toLocalFile();