diff options
Diffstat (limited to 'src/qmmpui/uihelper.cpp')
| -rw-r--r-- | src/qmmpui/uihelper.cpp | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/src/qmmpui/uihelper.cpp b/src/qmmpui/uihelper.cpp index abc11680a..dd2e13148 100644 --- a/src/qmmpui/uihelper.cpp +++ b/src/qmmpui/uihelper.cpp @@ -25,6 +25,8 @@ #include <QSettings> #include <qmmp/metadatamanager.h> #include <qmmpui/filedialog.h> +#include <qmmpui/playlistparser.h> +#include <qmmpui/playlistmanager.h> #include "general.h" #include "generalfactory.h" #include "uihelper.h" @@ -40,6 +42,8 @@ UiHelper::UiHelper(QObject *parent) General::create(parent); QSettings settings(Qmmp::configFile(), QSettings::IniFormat); m_lastDir = settings.value("General/last_dir", QDir::homePath()).toString(); //last directory + if(!PlaylistParser::instance()) + new PlaylistParser(parent); } UiHelper::~UiHelper() @@ -140,6 +144,55 @@ void UiHelper::addDirectory(QWidget *parent, PlayListModel *model) tr("Choose a directory")); } +void UiHelper::loadPlayList(QWidget *parent, PlayListModel *model) +{ + QStringList l; + QList<PlaylistFormat*> p_list = PlaylistParser::instance()->formats(); + if (!p_list.isEmpty()) + { + foreach(PlaylistFormat* fmt,p_list) + l << fmt->getExtensions(); + + QString mask = tr("Playlist Files")+" (" + l.join(" *.").prepend("*.") + ")"; + //TODO use nonmodal dialog and multiplier playlists + QString f_name = FileDialog::getOpenFileName(parent ,tr("Open Playlist"),m_lastDir,mask); + if (!f_name.isEmpty()) + { + model->clear(); + model->loadPlaylist(f_name); + model->setName(QFileInfo(f_name).baseName()); + m_lastDir = QFileInfo(f_name).absoluteDir().path(); + } + } + else + { + qWarning("Error: There is no registered playlist parsers"); + } +} + +void UiHelper::savePlayList(QWidget *parent, PlayListModel *model) +{ + QStringList l; + QList<PlaylistFormat*> p_list = PlaylistParser::instance()->formats(); + if (!p_list.isEmpty()) + { + foreach(PlaylistFormat* fmt,p_list) + l << fmt->getExtensions(); + + QString mask = tr("Playlist Files")+" (" + l.join(" *.").prepend("*.") + ")"; + QString f_name = FileDialog::getSaveFileName(parent, tr("Save Playlist"),m_lastDir + "/" + + model->name() + "." + l[0],mask); + + if (!f_name.isEmpty()) + { + model->savePlaylist(f_name); + m_lastDir = QFileInfo(f_name).absoluteDir().path(); + } + } + else + qWarning("Error: There is no registered playlist parsers"); +} + void UiHelper::toggleVisibility() { emit toggleVisibilityCalled(); |
