From c08f92cd60b3085bca71d25fa7c2d4583339c281 Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Sun, 3 Jul 2011 13:37:23 +0000 Subject: added playlist functions git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@2265 90c681e8-e032-0410-971d-27865f9a5e38 --- src/qmmpui/uihelper.cpp | 53 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) (limited to 'src/qmmpui/uihelper.cpp') 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 #include #include +#include +#include #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 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 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(); -- cgit v1.2.3-13-gbd6f