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.
This commit is contained in:
Jim Broadus 2021-06-10 21:17:12 -07:00 committed by John Maguire
parent 612767c878
commit f4108b5a0c
3 changed files with 6 additions and 0 deletions

View File

@ -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);

View File

@ -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;
}

View File

@ -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;