diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/plugins/PlaylistFormats/m3u/m3uplaylistformat.cpp | 39 | ||||
| -rw-r--r-- | src/qmmpui/playlistmodel.cpp | 43 |
2 files changed, 41 insertions, 41 deletions
diff --git a/src/plugins/PlaylistFormats/m3u/m3uplaylistformat.cpp b/src/plugins/PlaylistFormats/m3u/m3uplaylistformat.cpp index ce126384a..314982c29 100644 --- a/src/plugins/PlaylistFormats/m3u/m3uplaylistformat.cpp +++ b/src/plugins/PlaylistFormats/m3u/m3uplaylistformat.cpp @@ -20,16 +20,11 @@ #include <QFileInfo> #include <QtPlugin> - #include "m3uplaylistformat.h" -bool M3UPlaylistFormat::hasFormat(const QString & f) +bool M3UPlaylistFormat::hasFormat(const QString &f) { - foreach(QString s,m_supported_formats) - if (f == s) - return true; - - return false; + return m_supported_formats.contains(f); } QStringList M3UPlaylistFormat::getExtensions() const @@ -46,26 +41,20 @@ QStringList M3UPlaylistFormat::decode(const QString & contents) { QStringList out; QStringList splitted = contents.split("\n"); - if (!splitted.isEmpty()) + if(splitted.isEmpty()) + return QStringList(); + + foreach(QString str, splitted) { - foreach(QString str, splitted) - { - str = str.trimmed (); - if (str.startsWith("#EXTM3U") || str.startsWith("#EXTINF:") || str.isEmpty()) - ;//TODO: Let's skip it for now... - else if (str.startsWith("http://")) - out << str; - else if (!str.startsWith("#")) - out << str; - else - qWarning("File %s does not exist", qPrintable(str)); - } - return out; + str = str.trimmed (); + if (str.startsWith("#EXTM3U") || str.startsWith("#EXTINF:") || str.isEmpty()) + continue;//TODO: Let's skip it for now.. + else if (str.startsWith("#") || str.isEmpty()) + continue; + else + out << str; } - else - qWarning("Error parsing M3U format"); - - return QStringList(); + return out; } QString M3UPlaylistFormat::encode(const QList<PlayListItem*> & contents) diff --git a/src/qmmpui/playlistmodel.cpp b/src/qmmpui/playlistmodel.cpp index 2df8d9ef2..015a0548e 100644 --- a/src/qmmpui/playlistmodel.cpp +++ b/src/qmmpui/playlistmodel.cpp @@ -812,24 +812,35 @@ void PlayListModel::doCurrentVisibleRequest() void PlayListModel::loadPlaylist(const QString &f_name) { PlaylistFormat* prs = PlaylistParser::instance()->findByPath(f_name); - if (prs) + if(!prs) { - QFile file(f_name); - if (file.open(QIODevice::ReadOnly)) - { - //clear(); - QStringList list = prs->decode(QTextStream(&file).readAll()); - for (int i = 0; i < list.size(); ++i) - { - if (QFileInfo(list.at(i)).isRelative() && !list.at(i).contains("://")) - QString path = list[i].prepend(QFileInfo(f_name).canonicalPath () + QDir::separator ()); - } - m_loader->loadFiles(list); - file.close(); - } - else - qWarning("Error opening %s",f_name.toLocal8Bit().data()); + qWarning("PlayListModel: unsupported playlist format"); + return; + } + + QFile file(f_name); + if (!file.open(QIODevice::ReadOnly)) + { + qWarning("PlayListModel: %s", qPrintable(file.errorString())); + return; + } + + //clear(); + QStringList list = prs->decode(QTextStream(&file).readAll()); + if(list.isEmpty()) + { + qWarning("PlayListModel: error opening %s",qPrintable(f_name)); + } + for (int i = 0; i < list.size(); ++i) + { + if(list.at(i).contains("://")) + continue; + + if (QFileInfo(list.at(i)).isRelative()) + list[i].prepend(QFileInfo(f_name).canonicalPath () + QDir::separator ()); } + m_loader->loadFiles(list); + file.close(); } void PlayListModel::savePlaylist(const QString & f_name) |
