aboutsummaryrefslogtreecommitdiff
path: root/src/qmmpui/uihelper.cpp
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2011-07-03 13:37:23 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2011-07-03 13:37:23 +0000
commitc08f92cd60b3085bca71d25fa7c2d4583339c281 (patch)
treec995f317eb61075b9609eb13ecca4d258eb60a6d /src/qmmpui/uihelper.cpp
parentefc9ddaaa552acf0cc3d96f1dcdb2459b27141f3 (diff)
downloadqmmp-c08f92cd60b3085bca71d25fa7c2d4583339c281.tar.gz
qmmp-c08f92cd60b3085bca71d25fa7c2d4583339c281.tar.bz2
qmmp-c08f92cd60b3085bca71d25fa7c2d4583339c281.zip
added playlist functions
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@2265 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/qmmpui/uihelper.cpp')
-rw-r--r--src/qmmpui/uihelper.cpp53
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();