From f4108b5a0cbfe2df7e2386d546e29513663b82be Mon Sep 17 00:00:00 2001 From: Jim Broadus Date: Thu, 10 Jun 2021 21:17:12 -0700 Subject: [PATCH] playlistparser: Display errors on failures. Add an Error signal to PlayListParser and connect that to the PlayListManager::Error signal. This is eventually connected to the Application::AddError. Add error messages in some cases where PlayListParser can fail silently. --- src/playlist/playlistmanager.cpp | 1 + src/playlistparsers/playlistparser.cpp | 2 ++ src/playlistparsers/playlistparser.h | 3 +++ 3 files changed, 6 insertions(+) diff --git a/src/playlist/playlistmanager.cpp b/src/playlist/playlistmanager.cpp index 20f6df35f..0fc1be642 100644 --- a/src/playlist/playlistmanager.cpp +++ b/src/playlist/playlistmanager.cpp @@ -79,6 +79,7 @@ void PlaylistManager::Init(LibraryBackend* library_backend, connect(library_backend_, SIGNAL(SongsRatingChanged(SongList)), SLOT(SongsDiscovered(SongList))); + connect(parser_, SIGNAL(Error(QString)), this, SIGNAL(Error(QString))); for (const PlaylistBackend::Playlist& p : playlist_backend->GetAllOpenPlaylists()) { AddPlaylist(p.id, p.name, p.special_type, p.ui_path, p.favorite); diff --git a/src/playlistparsers/playlistparser.cpp b/src/playlistparsers/playlistparser.cpp index 6241bc91c..5a00c6a1c 100644 --- a/src/playlistparsers/playlistparser.cpp +++ b/src/playlistparsers/playlistparser.cpp @@ -129,6 +129,7 @@ SongList PlaylistParser::LoadFromFile(const QString& filename) const { // Find a parser that supports this file extension ParserBase* parser = ParserForExtension(info.suffix()); if (!parser) { + emit Error(tr("Unknown filetype: %1").arg(filename)); qLog(Warning) << "Unknown filetype:" << filename; return SongList(); } @@ -159,6 +160,7 @@ void PlaylistParser::Save(const SongList& songs, const QString& filename, // Find a parser that supports this file extension ParserBase* parser = ParserForExtension(info.suffix()); if (!parser) { + emit Error(tr("Unknown filetype: %1").arg(filename)); qLog(Warning) << "Unknown filetype:" << filename; return; } diff --git a/src/playlistparsers/playlistparser.h b/src/playlistparsers/playlistparser.h index c8e3651d4..897ceb98d 100644 --- a/src/playlistparsers/playlistparser.h +++ b/src/playlistparsers/playlistparser.h @@ -55,6 +55,9 @@ class PlaylistParser : public QObject { void Save(const SongList& songs, const QString& filename, Playlist::Path) const; + signals: + void Error(const QString& msg) const; + private: QString FilterForParser(const ParserBase* parser, QStringList* all_extensions = nullptr) const;