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/plugins/Ui/skinned/mainwindow.cpp | 61 ++++------------------ src/plugins/Ui/skinned/mainwindow.h | 2 +- src/plugins/Ui/skinned/skinnedfactory.cpp | 5 +- .../Ui/skinned/translations/skinned_plugin_cs.ts | 16 ------ .../Ui/skinned/translations/skinned_plugin_de.ts | 16 ------ .../Ui/skinned/translations/skinned_plugin_es.ts | 16 ------ .../Ui/skinned/translations/skinned_plugin_hu.ts | 16 ------ .../Ui/skinned/translations/skinned_plugin_it.ts | 16 ------ .../Ui/skinned/translations/skinned_plugin_ja.ts | 16 ------ .../Ui/skinned/translations/skinned_plugin_lt.ts | 16 ------ .../Ui/skinned/translations/skinned_plugin_nl.ts | 16 ------ .../skinned/translations/skinned_plugin_pl_PL.ts | 16 ------ .../skinned/translations/skinned_plugin_pt_BR.ts | 16 ------ .../Ui/skinned/translations/skinned_plugin_ru.ts | 16 ------ .../Ui/skinned/translations/skinned_plugin_sk.ts | 16 ------ .../Ui/skinned/translations/skinned_plugin_tr.ts | 16 ------ .../skinned/translations/skinned_plugin_uk_UA.ts | 16 ------ .../skinned/translations/skinned_plugin_zh_CN.ts | 16 ------ .../skinned/translations/skinned_plugin_zh_TW.ts | 16 ------ src/qmmpui/playlistparser.cpp | 4 +- src/qmmpui/playlistparser.h | 3 +- src/qmmpui/translations/libqmmpui_cs.ts | 22 ++++++-- src/qmmpui/translations/libqmmpui_de.ts | 22 ++++++-- src/qmmpui/translations/libqmmpui_es.ts | 22 ++++++-- src/qmmpui/translations/libqmmpui_it.ts | 22 ++++++-- src/qmmpui/translations/libqmmpui_ja.ts | 22 ++++++-- src/qmmpui/translations/libqmmpui_lt.ts | 22 ++++++-- src/qmmpui/translations/libqmmpui_nl.ts | 22 ++++++-- src/qmmpui/translations/libqmmpui_pl.ts | 22 ++++++-- src/qmmpui/translations/libqmmpui_pt_BR.ts | 22 ++++++-- src/qmmpui/translations/libqmmpui_ru.ts | 22 ++++++-- src/qmmpui/translations/libqmmpui_tr.ts | 22 ++++++-- src/qmmpui/translations/libqmmpui_uk_UA.ts | 22 ++++++-- src/qmmpui/translations/libqmmpui_zh_CN.ts | 22 ++++++-- src/qmmpui/translations/libqmmpui_zh_TW.ts | 22 ++++++-- src/qmmpui/uihelper.cpp | 53 +++++++++++++++++++ src/qmmpui/uihelper.h | 4 ++ 37 files changed, 342 insertions(+), 354 deletions(-) (limited to 'src') diff --git a/src/plugins/Ui/skinned/mainwindow.cpp b/src/plugins/Ui/skinned/mainwindow.cpp index 8398807d5..5cf391ccd 100644 --- a/src/plugins/Ui/skinned/mainwindow.cpp +++ b/src/plugins/Ui/skinned/mainwindow.cpp @@ -69,7 +69,7 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) m_player = MediaPlayer::instance(); m_core = SoundCore::instance(); m_pl_manager = PlayListManager::instance(); - m_generalHandler = UiHelper::instance(); + m_uiHelper = UiHelper::instance(); //user interface m_skin = new Skin(this); @@ -112,15 +112,15 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) connect(m_core, SIGNAL(stateChanged(Qmmp::State)), SLOT(showState(Qmmp::State))); connect(m_core, SIGNAL(elapsedChanged(qint64)),m_playlist, SLOT(setTime(qint64))); connect(m_core, SIGNAL(metaDataChanged()),SLOT(showMetaData())); - connect(m_generalHandler, SIGNAL(toggleVisibilityCalled()), SLOT(toggleVisibility())); - connect(m_generalHandler, SIGNAL(exitCalled()), SLOT(close())); + connect(m_uiHelper, SIGNAL(toggleVisibilityCalled()), SLOT(toggleVisibility())); + connect(m_uiHelper, SIGNAL(exitCalled()), SLOT(close())); readSettings(); m_display->setEQ(m_equalizer); m_display->setPL(m_playlist); dock->updateDock(); m_pl_manager->currentPlayList()->doCurrentVisibleRequest(); - if (m_startHidden && m_generalHandler->visibilityControl()) + if (m_startHidden && m_uiHelper->visibilityControl()) toggleVisibility(); } @@ -216,12 +216,12 @@ void MainWindow::closeEvent (QCloseEvent *) void MainWindow::addDir() { - m_generalHandler->addDirectory(this); + m_uiHelper->addDirectory(this); } void MainWindow::addFile() { - m_generalHandler->addFile(this); + m_uiHelper->addFile(this); } void MainWindow::changeEvent (QEvent * event) @@ -419,7 +419,7 @@ void MainWindow::createActions() m_visMenu = new VisualMenu(this); m_mainMenu->addMenu(m_visMenu); - m_mainMenu->addMenu(m_generalHandler->createMenu(UiHelper::TOOLS_MENU, tr("Tools"), this)); + m_mainMenu->addMenu(m_uiHelper->createMenu(UiHelper::TOOLS_MENU, tr("Tools"), this)); m_mainMenu->addSeparator(); m_mainMenu->addAction(SET_ACTION(ActionManager::SETTINGS, this, SLOT(showSettings()))); m_mainMenu->addSeparator(); @@ -461,53 +461,12 @@ QMenu* MainWindow::menu() void MainWindow::loadPlaylist() { - 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 m_lastDir; - QString f_name = FileDialog::getOpenFileName(this,tr("Open Playlist"),m_lastDir,mask); - if (!f_name.isEmpty()) - { - m_pl_manager->selectedPlayList()->clear(); - m_pl_manager->selectedPlayList()->loadPlaylist(f_name); - m_pl_manager->selectedPlayList()->setName(QFileInfo(f_name).baseName()); - m_lastDir = QFileInfo(f_name).absoluteDir().path(); - } - } - else - { - qWarning("Error: There is no registered playlist parsers"); - } + m_uiHelper->loadPlayList(this); } void MainWindow::savePlaylist() { - QStringList l; - QList p_list = PlaylistParser::instance()->formats(); - QString m_lastDir; - 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(this, tr("Save Playlist"),m_lastDir + "/" + - m_pl_manager->selectedPlayList()->name() + "." + l[0],mask); - - if (!f_name.isEmpty()) - { - m_pl_manager->selectedPlayList()->savePlaylist(f_name); - m_lastDir = QFileInfo(f_name).absoluteDir().path(); - } - } - else - qWarning("Error: There is no registered playlist parsers"); + m_uiHelper->savePlayList(this); } void MainWindow::playPause() @@ -529,7 +488,7 @@ void MainWindow::jumpToFile() void MainWindow::handleCloseRequest() { - if (m_hideOnClose && m_generalHandler->visibilityControl()) + if (m_hideOnClose && m_uiHelper->visibilityControl()) toggleVisibility(); else QApplication::closeAllWindows(); diff --git a/src/plugins/Ui/skinned/mainwindow.h b/src/plugins/Ui/skinned/mainwindow.h index 9d8a8e519..a228b2be9 100644 --- a/src/plugins/Ui/skinned/mainwindow.h +++ b/src/plugins/Ui/skinned/mainwindow.h @@ -111,7 +111,7 @@ private: JumpToTrackDialog* m_jumpDialog; bool m_hideOnClose, m_startHidden; VisualMenu *m_visMenu; - UiHelper *m_generalHandler; + UiHelper *m_uiHelper; MediaPlayer *m_player; }; diff --git a/src/plugins/Ui/skinned/skinnedfactory.cpp b/src/plugins/Ui/skinned/skinnedfactory.cpp index b220f2ca8..f577a3d2c 100644 --- a/src/plugins/Ui/skinned/skinnedfactory.cpp +++ b/src/plugins/Ui/skinned/skinnedfactory.cpp @@ -37,7 +37,10 @@ void SkinnedFactory::showAbout(QWidget *parent){} QTranslator *SkinnedFactory::createTranslator(QObject *parent) { - return 0; + QTranslator *translator = new QTranslator(parent); + QString locale = Qmmp::systemLanguageID(); + translator->load(QString(":/skinned_plugin_") + locale); + return translator; } Q_EXPORT_PLUGIN2(skinned, SkinnedFactory) diff --git a/src/plugins/Ui/skinned/translations/skinned_plugin_cs.ts b/src/plugins/Ui/skinned/translations/skinned_plugin_cs.ts index b5c9f597f..04368e078 100644 --- a/src/plugins/Ui/skinned/translations/skinned_plugin_cs.ts +++ b/src/plugins/Ui/skinned/translations/skinned_plugin_cs.ts @@ -1346,22 +1346,6 @@ Playlist Seznam skladeb - - - - Playlist Files - Seznamy skladeb - - - - Open Playlist - Načíst seznam skladeb - - - - Save Playlist - Uložit seznam skladeb - Tools diff --git a/src/plugins/Ui/skinned/translations/skinned_plugin_de.ts b/src/plugins/Ui/skinned/translations/skinned_plugin_de.ts index 359b72ae9..6f9cb3335 100644 --- a/src/plugins/Ui/skinned/translations/skinned_plugin_de.ts +++ b/src/plugins/Ui/skinned/translations/skinned_plugin_de.ts @@ -1346,22 +1346,6 @@ Playlist Wiedergabeliste - - - - Playlist Files - Wiedergabelisten - - - - Open Playlist - Wiedergabeliste öffnen - - - - Save Playlist - Wiedergabeliste speichern - Tools diff --git a/src/plugins/Ui/skinned/translations/skinned_plugin_es.ts b/src/plugins/Ui/skinned/translations/skinned_plugin_es.ts index e2ef4b6c0..f06a1d73b 100644 --- a/src/plugins/Ui/skinned/translations/skinned_plugin_es.ts +++ b/src/plugins/Ui/skinned/translations/skinned_plugin_es.ts @@ -1346,22 +1346,6 @@ Playlist Lista de reproducción - - - Open Playlist - Abrir la lista de reproducción - - - - Save Playlist - Guardar la lista de reproducción - - - - - Playlist Files - Archivos a reproducir - Tools diff --git a/src/plugins/Ui/skinned/translations/skinned_plugin_hu.ts b/src/plugins/Ui/skinned/translations/skinned_plugin_hu.ts index ee6dbbd64..0770292f1 100644 --- a/src/plugins/Ui/skinned/translations/skinned_plugin_hu.ts +++ b/src/plugins/Ui/skinned/translations/skinned_plugin_hu.ts @@ -1351,22 +1351,6 @@ Tools Eszközök - - - - Playlist Files - Lejátszási lista fájl - - - - Open Playlist - Lista megnyitása - - - - Save Playlist - Lista mentése - PlayList diff --git a/src/plugins/Ui/skinned/translations/skinned_plugin_it.ts b/src/plugins/Ui/skinned/translations/skinned_plugin_it.ts index ea0ed4cc3..1cc270fe9 100644 --- a/src/plugins/Ui/skinned/translations/skinned_plugin_it.ts +++ b/src/plugins/Ui/skinned/translations/skinned_plugin_it.ts @@ -1346,22 +1346,6 @@ Playlist - - - Open Playlist - Apri lista di brani - - - - Save Playlist - Salva lista di brani - - - - - Playlist Files - Brani della lista - Tools diff --git a/src/plugins/Ui/skinned/translations/skinned_plugin_ja.ts b/src/plugins/Ui/skinned/translations/skinned_plugin_ja.ts index e5df00932..aaf97c3d4 100644 --- a/src/plugins/Ui/skinned/translations/skinned_plugin_ja.ts +++ b/src/plugins/Ui/skinned/translations/skinned_plugin_ja.ts @@ -1351,22 +1351,6 @@ Tools ツール - - - - Playlist Files - プレイリストファイル - - - - Open Playlist - プレイリストを開く - - - - Save Playlist - プレイリストを保存 - PlayList diff --git a/src/plugins/Ui/skinned/translations/skinned_plugin_lt.ts b/src/plugins/Ui/skinned/translations/skinned_plugin_lt.ts index 3e0172681..aa561045c 100644 --- a/src/plugins/Ui/skinned/translations/skinned_plugin_lt.ts +++ b/src/plugins/Ui/skinned/translations/skinned_plugin_lt.ts @@ -1348,22 +1348,6 @@ Playlist Grojaraštis - - - Open Playlist - Atverti grojaraštį - - - - Save Playlist - Išsaugoti grojaraštį - - - - - Playlist Files - Grojaraščio bylos - Tools diff --git a/src/plugins/Ui/skinned/translations/skinned_plugin_nl.ts b/src/plugins/Ui/skinned/translations/skinned_plugin_nl.ts index fa4316e00..d1de43ba5 100644 --- a/src/plugins/Ui/skinned/translations/skinned_plugin_nl.ts +++ b/src/plugins/Ui/skinned/translations/skinned_plugin_nl.ts @@ -1346,22 +1346,6 @@ Playlist Afspeellijst - - - - Playlist Files - Afspeellijst Bestanden - - - - Open Playlist - Open Afspeellijst - - - - Save Playlist - Bewaar Afspeellijst - Tools diff --git a/src/plugins/Ui/skinned/translations/skinned_plugin_pl_PL.ts b/src/plugins/Ui/skinned/translations/skinned_plugin_pl_PL.ts index 28b6094f4..5ddc92ae4 100644 --- a/src/plugins/Ui/skinned/translations/skinned_plugin_pl_PL.ts +++ b/src/plugins/Ui/skinned/translations/skinned_plugin_pl_PL.ts @@ -1346,22 +1346,6 @@ Playlist Lista odtwarzania - - - Open Playlist - Otwórz listę odtwarzania - - - - Save Playlist - Zapisz listę odtwarzania - - - - - Playlist Files - Pliki listy odtwarzania - Tools diff --git a/src/plugins/Ui/skinned/translations/skinned_plugin_pt_BR.ts b/src/plugins/Ui/skinned/translations/skinned_plugin_pt_BR.ts index 88f8aa355..ac26c0a18 100644 --- a/src/plugins/Ui/skinned/translations/skinned_plugin_pt_BR.ts +++ b/src/plugins/Ui/skinned/translations/skinned_plugin_pt_BR.ts @@ -1346,22 +1346,6 @@ Playlist Lista de músicas - - - Open Playlist - Abrir Playlist - - - - Save Playlist - Salvar Playlist - - - - - Playlist Files - ФArquivos de lista de músicas - Tools diff --git a/src/plugins/Ui/skinned/translations/skinned_plugin_ru.ts b/src/plugins/Ui/skinned/translations/skinned_plugin_ru.ts index 6b31549ba..256127b15 100644 --- a/src/plugins/Ui/skinned/translations/skinned_plugin_ru.ts +++ b/src/plugins/Ui/skinned/translations/skinned_plugin_ru.ts @@ -1346,22 +1346,6 @@ Playlist Список - - - Open Playlist - Открыть список - - - - Save Playlist - Сохранить список - - - - - Playlist Files - Файлы списков - Tools diff --git a/src/plugins/Ui/skinned/translations/skinned_plugin_sk.ts b/src/plugins/Ui/skinned/translations/skinned_plugin_sk.ts index 3cbac763c..8d0ee5b81 100644 --- a/src/plugins/Ui/skinned/translations/skinned_plugin_sk.ts +++ b/src/plugins/Ui/skinned/translations/skinned_plugin_sk.ts @@ -1346,22 +1346,6 @@ Playlist Playlist - - - - Playlist Files - Súbory playlistov - - - - Open Playlist - Otvoriť playlist - - - - Save Playlist - Uložiť playlist - Tools diff --git a/src/plugins/Ui/skinned/translations/skinned_plugin_tr.ts b/src/plugins/Ui/skinned/translations/skinned_plugin_tr.ts index b0593a4bd..01de09cf0 100644 --- a/src/plugins/Ui/skinned/translations/skinned_plugin_tr.ts +++ b/src/plugins/Ui/skinned/translations/skinned_plugin_tr.ts @@ -1346,22 +1346,6 @@ Playlist Çalma Listesi - - - Open Playlist - Çalma Listesini Aç - - - - Save Playlist - Çalma Listesini Kaydet - - - - - Playlist Files - Çalma Listesi Dosyaları - Tools diff --git a/src/plugins/Ui/skinned/translations/skinned_plugin_uk_UA.ts b/src/plugins/Ui/skinned/translations/skinned_plugin_uk_UA.ts index 1ff98e19d..84e756841 100644 --- a/src/plugins/Ui/skinned/translations/skinned_plugin_uk_UA.ts +++ b/src/plugins/Ui/skinned/translations/skinned_plugin_uk_UA.ts @@ -1346,22 +1346,6 @@ Playlist Список - - - Open Playlist - Відкрити список - - - - Save Playlist - Зберегти список - - - - - Playlist Files - Файли списків - Tools diff --git a/src/plugins/Ui/skinned/translations/skinned_plugin_zh_CN.ts b/src/plugins/Ui/skinned/translations/skinned_plugin_zh_CN.ts index 4a2455f95..1e262cdfb 100644 --- a/src/plugins/Ui/skinned/translations/skinned_plugin_zh_CN.ts +++ b/src/plugins/Ui/skinned/translations/skinned_plugin_zh_CN.ts @@ -1346,22 +1346,6 @@ Playlist 播放列表 - - - Open Playlist - 打开播放列表 - - - - Save Playlist - 保存播放列表 - - - - - Playlist Files - 播放列表文件 - Tools diff --git a/src/plugins/Ui/skinned/translations/skinned_plugin_zh_TW.ts b/src/plugins/Ui/skinned/translations/skinned_plugin_zh_TW.ts index 08ac73afd..e6b162dbb 100644 --- a/src/plugins/Ui/skinned/translations/skinned_plugin_zh_TW.ts +++ b/src/plugins/Ui/skinned/translations/skinned_plugin_zh_TW.ts @@ -1346,22 +1346,6 @@ Playlist 播放清單 - - - Open Playlist - 開啟播放清單 - - - - Save Playlist - 儲存播放清單 - - - - - Playlist Files - 播放清單文件 - Tools diff --git a/src/qmmpui/playlistparser.cpp b/src/qmmpui/playlistparser.cpp index 7b41f35c9..9ba959e06 100644 --- a/src/qmmpui/playlistparser.cpp +++ b/src/qmmpui/playlistparser.cpp @@ -34,7 +34,9 @@ PlaylistParser::PlaylistParser(QObject *parent) : QObject (parent) } PlaylistParser::~PlaylistParser() -{} +{ + m_instance = 0; +} QStringList PlaylistParser::getExtensions() { diff --git a/src/qmmpui/playlistparser.h b/src/qmmpui/playlistparser.h index 5197feefe..285444686 100644 --- a/src/qmmpui/playlistparser.h +++ b/src/qmmpui/playlistparser.h @@ -21,8 +21,7 @@ #define PLAYLISTPARSER_H #include - -class PlaylistFormat; +#include "playlistformat.h" /*! @brief The PlaylistParser class provides a simple api to access playlist format plugins. * @author Ilya Kotov diff --git a/src/qmmpui/translations/libqmmpui_cs.ts b/src/qmmpui/translations/libqmmpui_cs.ts index 405132284..38dd06530 100644 --- a/src/qmmpui/translations/libqmmpui_cs.ts +++ b/src/qmmpui/translations/libqmmpui_cs.ts @@ -268,19 +268,35 @@ p, li { white-space: pre-wrap; } UiHelper - + All Supported Bitstreams - + Select one or more files to open - + Choose a directory + + + + Playlist Files + + + + + Open Playlist + + + + + Save Playlist + + diff --git a/src/qmmpui/translations/libqmmpui_de.ts b/src/qmmpui/translations/libqmmpui_de.ts index 1fab86535..5c897cac1 100644 --- a/src/qmmpui/translations/libqmmpui_de.ts +++ b/src/qmmpui/translations/libqmmpui_de.ts @@ -268,19 +268,35 @@ p, li { white-space: pre-wrap; } UiHelper - + All Supported Bitstreams - + Select one or more files to open - + Choose a directory + + + + Playlist Files + + + + + Open Playlist + + + + + Save Playlist + + diff --git a/src/qmmpui/translations/libqmmpui_es.ts b/src/qmmpui/translations/libqmmpui_es.ts index d31de3712..800c75b54 100644 --- a/src/qmmpui/translations/libqmmpui_es.ts +++ b/src/qmmpui/translations/libqmmpui_es.ts @@ -268,19 +268,35 @@ p, li { white-space: pre-wrap; } UiHelper - + All Supported Bitstreams - + Select one or more files to open - + Choose a directory + + + + Playlist Files + + + + + Open Playlist + + + + + Save Playlist + + diff --git a/src/qmmpui/translations/libqmmpui_it.ts b/src/qmmpui/translations/libqmmpui_it.ts index d1588c70f..c2b1cb673 100644 --- a/src/qmmpui/translations/libqmmpui_it.ts +++ b/src/qmmpui/translations/libqmmpui_it.ts @@ -268,19 +268,35 @@ p, li { white-space: pre-wrap; } UiHelper - + All Supported Bitstreams - + Select one or more files to open - + Choose a directory + + + + Playlist Files + + + + + Open Playlist + + + + + Save Playlist + + diff --git a/src/qmmpui/translations/libqmmpui_ja.ts b/src/qmmpui/translations/libqmmpui_ja.ts index 30ec07b85..e69c3e986 100644 --- a/src/qmmpui/translations/libqmmpui_ja.ts +++ b/src/qmmpui/translations/libqmmpui_ja.ts @@ -268,19 +268,35 @@ p, li { white-space: pre-wrap; } UiHelper - + All Supported Bitstreams - + Select one or more files to open - + Choose a directory + + + + Playlist Files + + + + + Open Playlist + + + + + Save Playlist + + diff --git a/src/qmmpui/translations/libqmmpui_lt.ts b/src/qmmpui/translations/libqmmpui_lt.ts index 4421fafeb..496a08818 100644 --- a/src/qmmpui/translations/libqmmpui_lt.ts +++ b/src/qmmpui/translations/libqmmpui_lt.ts @@ -268,19 +268,35 @@ p, li { white-space: pre-wrap; } UiHelper - + All Supported Bitstreams - + Select one or more files to open - + Choose a directory + + + + Playlist Files + + + + + Open Playlist + + + + + Save Playlist + + diff --git a/src/qmmpui/translations/libqmmpui_nl.ts b/src/qmmpui/translations/libqmmpui_nl.ts index 225bf664e..54edf7a64 100644 --- a/src/qmmpui/translations/libqmmpui_nl.ts +++ b/src/qmmpui/translations/libqmmpui_nl.ts @@ -268,19 +268,35 @@ p, li { white-space: pre-wrap; } UiHelper - + All Supported Bitstreams - + Select one or more files to open - + Choose a directory + + + + Playlist Files + + + + + Open Playlist + + + + + Save Playlist + + diff --git a/src/qmmpui/translations/libqmmpui_pl.ts b/src/qmmpui/translations/libqmmpui_pl.ts index a6359653c..b7ab188c3 100644 --- a/src/qmmpui/translations/libqmmpui_pl.ts +++ b/src/qmmpui/translations/libqmmpui_pl.ts @@ -260,19 +260,35 @@ p, li { white-space: pre-wrap; } UiHelper - + All Supported Bitstreams - + Select one or more files to open - + Choose a directory + + + + Playlist Files + + + + + Open Playlist + + + + + Save Playlist + + diff --git a/src/qmmpui/translations/libqmmpui_pt_BR.ts b/src/qmmpui/translations/libqmmpui_pt_BR.ts index 866b3e3be..d95eb1947 100644 --- a/src/qmmpui/translations/libqmmpui_pt_BR.ts +++ b/src/qmmpui/translations/libqmmpui_pt_BR.ts @@ -260,19 +260,35 @@ p, li { white-space: pre-wrap; } UiHelper - + All Supported Bitstreams - + Select one or more files to open - + Choose a directory + + + + Playlist Files + + + + + Open Playlist + + + + + Save Playlist + + diff --git a/src/qmmpui/translations/libqmmpui_ru.ts b/src/qmmpui/translations/libqmmpui_ru.ts index b70d72a11..543f2bc6d 100644 --- a/src/qmmpui/translations/libqmmpui_ru.ts +++ b/src/qmmpui/translations/libqmmpui_ru.ts @@ -260,19 +260,35 @@ p, li { white-space: pre-wrap; } UiHelper - + All Supported Bitstreams - + Select one or more files to open - + Choose a directory + + + + Playlist Files + + + + + Open Playlist + + + + + Save Playlist + + diff --git a/src/qmmpui/translations/libqmmpui_tr.ts b/src/qmmpui/translations/libqmmpui_tr.ts index 306db9f00..524fd0bf6 100644 --- a/src/qmmpui/translations/libqmmpui_tr.ts +++ b/src/qmmpui/translations/libqmmpui_tr.ts @@ -260,19 +260,35 @@ p, li { white-space: pre-wrap; } UiHelper - + All Supported Bitstreams - + Select one or more files to open - + Choose a directory + + + + Playlist Files + + + + + Open Playlist + + + + + Save Playlist + + diff --git a/src/qmmpui/translations/libqmmpui_uk_UA.ts b/src/qmmpui/translations/libqmmpui_uk_UA.ts index 53a9fc58d..333310043 100644 --- a/src/qmmpui/translations/libqmmpui_uk_UA.ts +++ b/src/qmmpui/translations/libqmmpui_uk_UA.ts @@ -260,19 +260,35 @@ p, li { white-space: pre-wrap; } UiHelper - + All Supported Bitstreams - + Select one or more files to open - + Choose a directory + + + + Playlist Files + + + + + Open Playlist + + + + + Save Playlist + + diff --git a/src/qmmpui/translations/libqmmpui_zh_CN.ts b/src/qmmpui/translations/libqmmpui_zh_CN.ts index b9d1c6ee1..f04da8908 100644 --- a/src/qmmpui/translations/libqmmpui_zh_CN.ts +++ b/src/qmmpui/translations/libqmmpui_zh_CN.ts @@ -260,19 +260,35 @@ p, li { white-space: pre-wrap; } UiHelper - + All Supported Bitstreams - + Select one or more files to open - + Choose a directory + + + + Playlist Files + + + + + Open Playlist + + + + + Save Playlist + + diff --git a/src/qmmpui/translations/libqmmpui_zh_TW.ts b/src/qmmpui/translations/libqmmpui_zh_TW.ts index 0d17aa0e9..cc55b05b2 100644 --- a/src/qmmpui/translations/libqmmpui_zh_TW.ts +++ b/src/qmmpui/translations/libqmmpui_zh_TW.ts @@ -260,19 +260,35 @@ p, li { white-space: pre-wrap; } UiHelper - + All Supported Bitstreams - + Select one or more files to open - + Choose a directory + + + + Playlist Files + + + + + Open Playlist + + + + + Save Playlist + + 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(); diff --git a/src/qmmpui/uihelper.h b/src/qmmpui/uihelper.h index ec33250e8..e6987c618 100644 --- a/src/qmmpui/uihelper.h +++ b/src/qmmpui/uihelper.h @@ -90,6 +90,10 @@ public: PlayListModel *model = PlayListManager::instance()->selectedPlayList()); void addDirectory(QWidget *parent = qApp->activeWindow(), PlayListModel *model = PlayListManager::instance()->selectedPlayList()); + void loadPlayList(QWidget *parent = qApp->activeWindow(), + PlayListModel *model = PlayListManager::instance()->selectedPlayList()); + void savePlayList(QWidget *parent = qApp->activeWindow(), + PlayListModel *model = PlayListManager::instance()->selectedPlayList()); /*! * Returns a pointer to the object's instance. */ -- cgit v1.2.3-13-gbd6f