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)), connect(library_backend_, SIGNAL(SongsRatingChanged(SongList)),
SLOT(SongsDiscovered(SongList))); SLOT(SongsDiscovered(SongList)));
connect(parser_, SIGNAL(Error(QString)), this, SIGNAL(Error(QString)));
for (const PlaylistBackend::Playlist& p : for (const PlaylistBackend::Playlist& p :
playlist_backend->GetAllOpenPlaylists()) { playlist_backend->GetAllOpenPlaylists()) {
AddPlaylist(p.id, p.name, p.special_type, p.ui_path, p.favorite); 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 // Find a parser that supports this file extension
ParserBase* parser = ParserForExtension(info.suffix()); ParserBase* parser = ParserForExtension(info.suffix());
if (!parser) { if (!parser) {
emit Error(tr("Unknown filetype: %1").arg(filename));
qLog(Warning) << "Unknown filetype:" << filename; qLog(Warning) << "Unknown filetype:" << filename;
return SongList(); return SongList();
} }
@ -159,6 +160,7 @@ void PlaylistParser::Save(const SongList& songs, const QString& filename,
// Find a parser that supports this file extension // Find a parser that supports this file extension
ParserBase* parser = ParserForExtension(info.suffix()); ParserBase* parser = ParserForExtension(info.suffix());
if (!parser) { if (!parser) {
emit Error(tr("Unknown filetype: %1").arg(filename));
qLog(Warning) << "Unknown filetype:" << filename; qLog(Warning) << "Unknown filetype:" << filename;
return; return;
} }

View File

@ -55,6 +55,9 @@ class PlaylistParser : public QObject {
void Save(const SongList& songs, const QString& filename, void Save(const SongList& songs, const QString& filename,
Playlist::Path) const; Playlist::Path) const;
signals:
void Error(const QString& msg) const;
private: private:
QString FilterForParser(const ParserBase* parser, QString FilterForParser(const ParserBase* parser,
QStringList* all_extensions = nullptr) const; QStringList* all_extensions = nullptr) const;