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:
parent
612767c878
commit
f4108b5a0c
@ -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);
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user