aboutsummaryrefslogtreecommitdiff
path: root/src/qmmpui/uihelper.cpp
diff options
context:
space:
mode:
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();