aboutsummaryrefslogtreecommitdiff
path: root/src/ui
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2009-11-13 14:47:33 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2009-11-13 14:47:33 +0000
commit3d06313cd8ed2c8843f0c512c349296326f5a9e4 (patch)
tree739d28d5a782f366ef28e3807d459db7cc2de66b /src/ui
parent90d3aeb642ba4d6445932343010294a39b33efe2 (diff)
downloadqmmp-3d06313cd8ed2c8843f0c512c349296326f5a9e4.tar.gz
qmmp-3d06313cd8ed2c8843f0c512c349296326f5a9e4.tar.bz2
qmmp-3d06313cd8ed2c8843f0c512c349296326f5a9e4.zip
added playlist browser
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@1364 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/ui')
-rw-r--r--src/ui/CMakeLists.txt3
-rw-r--r--src/ui/forms/playlistbrowser.ui103
-rw-r--r--src/ui/mainwindow.cpp4
-rw-r--r--src/ui/playlist.cpp77
-rw-r--r--src/ui/playlist.h12
-rw-r--r--src/ui/playlistbrowser.cpp86
-rw-r--r--src/ui/playlistbrowser.h51
-rw-r--r--src/ui/translations/qmmp_cs.ts222
-rw-r--r--src/ui/translations/qmmp_de.ts222
-rw-r--r--src/ui/translations/qmmp_it.ts222
-rw-r--r--src/ui/translations/qmmp_lt.ts220
-rw-r--r--src/ui/translations/qmmp_pl_PL.ts222
-rw-r--r--src/ui/translations/qmmp_pt_BR.ts220
-rw-r--r--src/ui/translations/qmmp_ru.ts220
-rw-r--r--src/ui/translations/qmmp_tr.ts222
-rw-r--r--src/ui/translations/qmmp_uk_UA.ts222
-rw-r--r--src/ui/translations/qmmp_zh_CN.ts222
-rw-r--r--src/ui/translations/qmmp_zh_TW.ts222
-rw-r--r--src/ui/ui.pro9
19 files changed, 1800 insertions, 981 deletions
diff --git a/src/ui/CMakeLists.txt b/src/ui/CMakeLists.txt
index 76c8dc3ef..dacab3fcc 100644
--- a/src/ui/CMakeLists.txt
+++ b/src/ui/CMakeLists.txt
@@ -76,6 +76,7 @@ SET(ui_SRCS
visualmenu.cpp
volumebar.cpp
cursorimage.cpp
+ playlistbrowser.cpp
)
SET(ui_MOC_HDRS
@@ -126,6 +127,7 @@ SET(ui_MOC_HDRS
visualmenu.h
volumebar.h
cursorimage.h
+ playlistbrowser.h
)
SET(ui_RCCS images/images.qrc stuff.qrc translations/qmmp_locales.qrc)
@@ -144,6 +146,7 @@ SET(ui_UIS
forms/configdialog.ui
forms/jumptotrackdialog.ui
forms/preseteditor.ui
+ forms/playlistbrowser.ui
)
QT4_WRAP_UI(ui_UIS_H ${ui_UIS})
diff --git a/src/ui/forms/playlistbrowser.ui b/src/ui/forms/playlistbrowser.ui
new file mode 100644
index 000000000..65af8c73f
--- /dev/null
+++ b/src/ui/forms/playlistbrowser.ui
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>PlayListBrowser</class>
+ <widget class="QDialog" name="PlayListBrowser">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>402</width>
+ <height>298</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Playlist Browser</string>
+ </property>
+ <layout class="QGridLayout" name="gridLayout">
+ <property name="leftMargin">
+ <number>6</number>
+ </property>
+ <property name="topMargin">
+ <number>9</number>
+ </property>
+ <property name="rightMargin">
+ <number>6</number>
+ </property>
+ <property name="bottomMargin">
+ <number>6</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <item row="0" column="0" colspan="3">
+ <widget class="QListWidget" name="listWidget">
+ <property name="selectionMode">
+ <enum>QAbstractItemView::ExtendedSelection</enum>
+ </property>
+ <property name="selectionBehavior">
+ <enum>QAbstractItemView::SelectRows</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <widget class="QPushButton" name="newButton">
+ <property name="text">
+ <string>New</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="QPushButton" name="deleteButton">
+ <property name="text">
+ <string>Delete</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="2">
+ <widget class="QDialogButtonBox" name="buttonBox">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="standardButtons">
+ <set>QDialogButtonBox::Close</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>accepted()</signal>
+ <receiver>PlayListBrowser</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>248</x>
+ <y>254</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>157</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>rejected()</signal>
+ <receiver>PlayListBrowser</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>316</x>
+ <y>260</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>286</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/src/ui/mainwindow.cpp b/src/ui/mainwindow.cpp
index 4f021d725..7bfeea4c1 100644
--- a/src/ui/mainwindow.cpp
+++ b/src/ui/mainwindow.cpp
@@ -22,10 +22,7 @@
#include <QDir>
#include <QAction>
#include <QMenu>
-#include <QLibrary>
-
#include <math.h>
-
#include <qmmp/soundcore.h>
#include <qmmp/visual.h>
#include <qmmp/metadatamanager.h>
@@ -38,7 +35,6 @@
#include <qmmpui/playlistmodel.h>
#include <qmmpui/playlistmanager.h>
#include <qmmpui/mediaplayer.h>
-
#include "textscroller.h"
#include "mainwindow.h"
#include "skin.h"
diff --git a/src/ui/playlist.cpp b/src/ui/playlist.cpp
index 296d26d5e..7aab2fa66 100644
--- a/src/ui/playlist.cpp
+++ b/src/ui/playlist.cpp
@@ -38,6 +38,7 @@
#include "symboldisplay.h"
#include "playlistcontrol.h"
#include "keyboardmanager.h"
+#include "playlistbrowser.h"
#include <qmmpui/playlistitem.h>
#include <qmmpui/playlistmodel.h>
@@ -55,6 +56,7 @@ PlayList::PlayList (PlayListManager *manager, QWidget *parent)
m_skin = Skin::instance();
m_ratio = m_skin->ratio();
m_shaded = FALSE;
+ m_pl_browser = 0;
resize (275*m_ratio, 116*m_ratio);
setSizeIncrement (25*m_ratio, 29*m_ratio);
@@ -77,7 +79,6 @@ PlayList::PlayList (PlayListManager *manager, QWidget *parent)
m_current_time = new SymbolDisplay (this,6);
m_keyboardManager = new KeyboardManager (this);
- m_pl_actions = new QActionGroup (this);
connect (m_listWidget, SIGNAL (selectionChanged()), parent, SLOT (replay()));
@@ -312,12 +313,12 @@ void PlayList::createActions()
// Playlist Menu
QAction *newListAct = new QAction (tr ("&New List"),this);
- newListAct->setShortcut (tr ("Shift+N"));
+ newListAct->setShortcut (tr ("Ctrl+T"));
m_actions << newListAct;
m_playlistMenu->addAction (newListAct);
connect (newListAct, SIGNAL (triggered()), m_pl_manager, SLOT (createPlayList()));
QAction *deleteListAct = new QAction (tr ("&Delete List"),this);
- deleteListAct->setShortcut (tr ("Shift+D"));
+ deleteListAct->setShortcut (tr ("Ctrl+W"));
m_actions << deleteListAct;
m_playlistMenu->addAction (deleteListAct);
connect (deleteListAct, SIGNAL (triggered()), SLOT (deletePlaylist()));
@@ -334,19 +335,26 @@ void PlayList::createActions()
m_actions << saveListAct;
m_playlistMenu->addAction (saveListAct);
connect (saveListAct, SIGNAL (triggered()), this, SIGNAL (savePlaylist()));
- //plalists
+
m_playlistMenu->addSeparator();
- foreach(QString name, m_pl_manager->playListNames())
- {
- QAction *pl = new QAction(name, this);
- pl->setCheckable(TRUE);
- m_playlistMenu->addAction (pl);
- m_pl_actions->addAction(pl);
- }
- m_pl_actions->actions().at(m_pl_manager->indexOf(m_pl_manager->currentPlayList()))->setChecked(TRUE);
- connect(m_pl_actions, SIGNAL(triggered(QAction*)), SLOT(select(QAction*)));
- connect(m_pl_manager, SIGNAL(playListAdded(int)), SLOT(addModel(int)));
- connect(m_pl_manager, SIGNAL(playListRemoved(int)), SLOT(removeModel(int)));
+ QAction *nextListAct = new QAction (tr ("&Select Next Playlist"),this);
+ nextListAct->setShortcut (tr ("Ctrl+PgDown"));
+ m_actions << nextListAct;
+ m_playlistMenu->addAction (nextListAct);
+ connect (nextListAct, SIGNAL (triggered()), m_pl_manager, SLOT (selectNextPlayList()));
+
+ QAction *previousListAct = new QAction (tr ("&Select Previous Playlist"),this);
+ previousListAct->setShortcut (tr ("Ctrl+PgUp"));
+ m_actions << previousListAct;
+ m_playlistMenu->addAction (previousListAct);
+ connect (previousListAct, SIGNAL (triggered()), m_pl_manager, SLOT (selectPreviousPlayList()));
+
+ QAction *browseListsAct = new QAction (tr ("&Show Playlists"),this);
+ browseListsAct->setShortcut (tr ("P"));
+ m_actions << browseListsAct;
+ m_playlistMenu->addAction (browseListsAct);
+ connect (browseListsAct, SIGNAL (triggered()), SLOT (showPlayLists()));
+
Dock::instance()->addActions (m_actions);
}
@@ -551,43 +559,20 @@ void PlayList::updateSkin()
setMinimalMode(m_shaded);
}
-void PlayList::select(QAction *a)
+void PlayList::deletePlaylist()
{
- int i = m_pl_actions->actions().indexOf(a);
- m_pl_manager->selectPlayList(i);
+ m_pl_manager->removePlayList(m_pl_manager->selectedPlayList());
}
-void PlayList::addModel(int i)
+void PlayList::showPlayLists()
{
- QList <QAction *> actions = m_pl_actions->actions();
- foreach(QAction *a, actions) //clear action group
- {
- m_pl_actions->removeAction(a);
- m_playlistMenu->removeAction (a);
- }
- QAction *new_action = new QAction(m_pl_manager->playListNames().at(i), this);
- new_action->setCheckable(TRUE);
- actions.insert(i, new_action);
- foreach(QAction *a, actions)
+ if(!m_pl_browser)
{
- m_pl_actions->addAction(a);
- m_playlistMenu->addAction (a);
+ m_pl_browser = new PlayListBrowser(m_pl_manager, this);
+ m_pl_browser->show();
}
- m_pl_actions->actions().at(m_pl_manager->indexOf(m_pl_manager->currentPlayList()))->setChecked(TRUE);
-}
-
-void PlayList::removeModel(int i)
-{
- QAction *a = m_pl_actions->actions().at(i);
- m_pl_actions->removeAction(a);
- m_playlistMenu->removeAction (a);
- a->deleteLater();
- m_pl_actions->actions().at(m_pl_manager->indexOf(m_pl_manager->currentPlayList()))->setChecked(TRUE);
-}
-
-void PlayList::deletePlaylist()
-{
- m_pl_manager->removePlayList(m_pl_manager->selectedPlayList());
+ else
+ m_pl_browser->show();
}
void PlayList::setMinimalMode(bool b)
diff --git a/src/ui/playlist.h b/src/ui/playlist.h
index 4b58b0048..d74971c53 100644
--- a/src/ui/playlist.h
+++ b/src/ui/playlist.h
@@ -21,9 +21,9 @@
#define PLAYLIST_H
#include <QWidget>
+#include <QPointer>
-class QMenu;
-class QActionGroup;
+class QMenu;;
class Skin;
class ListWidget;
class PlayListItem;
@@ -38,7 +38,7 @@ class PixmapWidget;
class PlaylistControl;
class KeyboardManager;
class PlayListManager;
-
+class PlayListBrowser;
/**
@author Ilya Kotov <forkotov02@hotmail.ru>
@@ -81,10 +81,8 @@ class PlayList : public QWidget
void showSortMenu();
void showPlaylistMenu();
void updateSkin();
- void select(QAction *a); //selects playlist with action
- void addModel(int i);
- void removeModel(int i);
void deletePlaylist();
+ void showPlayLists();
private:
void updatePositions();
@@ -122,7 +120,7 @@ class PlayList : public QWidget
bool m_shaded;
PlayListManager *m_pl_manager;
KeyboardManager* m_keyboardManager;
- QActionGroup *m_pl_actions;
+ QPointer <PlayListBrowser> m_pl_browser;
protected:
virtual void paintEvent (QPaintEvent *);
diff --git a/src/ui/playlistbrowser.cpp b/src/ui/playlistbrowser.cpp
new file mode 100644
index 000000000..f4844dadf
--- /dev/null
+++ b/src/ui/playlistbrowser.cpp
@@ -0,0 +1,86 @@
+/***************************************************************************
+ * Copyright (C) 2009 by Ilya Kotov *
+ * forkotov02@hotmail.ru *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ * This program is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+ * GNU General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program; if not, write to the *
+ * Free Software Foundation, Inc., *
+ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
+ ***************************************************************************/
+
+#include <QAction>
+#include <qmmpui/playlistmanager.h>
+#include "playlistbrowser.h"
+
+PlayListBrowser::PlayListBrowser(PlayListManager *manager, QWidget *parent) : QDialog(parent)
+{
+ setAttribute(Qt::WA_DeleteOnClose, TRUE);
+ setWindowModality(Qt::NonModal);
+ ui.setupUi(this);
+ m_pl_manager = manager;
+ connect(m_pl_manager, SIGNAL(playListsChanged()), SLOT(updateList()));
+ connect(ui.newButton, SIGNAL(clicked()), m_pl_manager, SLOT(createPlayList()));
+ updateList();
+ //actions
+ QAction *renameAct = new QAction(tr("Rename"), this);
+ QAction *removeAct = new QAction(tr("Delete"), this);
+ connect(renameAct,SIGNAL(triggered()), SLOT(rename()));
+ connect(removeAct,SIGNAL(triggered()), SLOT(on_deleteButton_clicked()));
+ ui.listWidget->setContextMenuPolicy(Qt::ActionsContextMenu);
+ ui.listWidget->addAction(renameAct);
+ ui.listWidget->addAction(removeAct);
+}
+
+PlayListBrowser::~PlayListBrowser()
+{}
+
+void PlayListBrowser::updateList()
+{
+ ui.listWidget->clear();
+ foreach(PlayListModel *model, m_pl_manager->playLists())
+ ui.listWidget->addItem(model->name());
+ int c = m_pl_manager->indexOf(m_pl_manager->selectedPlayList());
+ ui.listWidget->setCurrentRow (c);
+ QFont font = ui.listWidget->currentItem()->font();
+ font.setBold(TRUE);
+ ui.listWidget->currentItem()->setFont(font);
+}
+
+void PlayListBrowser::on_listWidget_itemDoubleClicked(QListWidgetItem *item)
+{
+ m_pl_manager->selectPlayList(ui.listWidget->row(item));
+}
+
+void PlayListBrowser::on_listWidget_itemChanged(QListWidgetItem *item)
+{
+ m_pl_manager->playListAt(ui.listWidget->row(item))->setName(item->text());
+}
+
+void PlayListBrowser::rename()
+{
+ QListWidgetItem *item = ui.listWidget->currentItem();
+ if(item)
+ {
+ item->setFlags(Qt::ItemIsEditable | item->flags());
+ ui.listWidget->editItem(item);
+ }
+}
+
+void PlayListBrowser::on_deleteButton_clicked()
+{
+ QList <PlayListModel *> models;
+ foreach(QListWidgetItem *item, ui.listWidget->selectedItems())
+ models.append(m_pl_manager->playListAt(ui.listWidget->row (item)));
+ foreach(PlayListModel *model, models)
+ m_pl_manager->removePlayList(model);
+}
diff --git a/src/ui/playlistbrowser.h b/src/ui/playlistbrowser.h
new file mode 100644
index 000000000..c9ac23c77
--- /dev/null
+++ b/src/ui/playlistbrowser.h
@@ -0,0 +1,51 @@
+/***************************************************************************
+ * Copyright (C) 2009 by Ilya Kotov *
+ * forkotov02@hotmail.ru *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ * This program is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+ * GNU General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program; if not, write to the *
+ * Free Software Foundation, Inc., *
+ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
+ ***************************************************************************/
+
+#ifndef PLAYLISTBROWSER_H
+#define PLAYLISTBROWSER_H
+
+#include <QDialog>
+#include "ui_playlistbrowser.h"
+
+class PlayListManager;
+
+/**
+ @author Ilya Kotov <forkotov02@hotmail.ru>
+*/
+class PlayListBrowser : public QDialog
+{
+Q_OBJECT
+public:
+ PlayListBrowser(PlayListManager *manager, QWidget *parent = 0);
+ ~PlayListBrowser();
+
+private slots:
+ void updateList();
+ void on_listWidget_itemDoubleClicked(QListWidgetItem *item);
+ void on_listWidget_itemChanged(QListWidgetItem *item);
+ void rename();
+ void on_deleteButton_clicked();
+
+private:
+ Ui::PlayListBrowser ui;
+ PlayListManager *m_pl_manager;
+};
+
+#endif // PLAYLISTBROWSER_H
diff --git a/src/ui/translations/qmmp_cs.ts b/src/ui/translations/qmmp_cs.ts
index 4c73fe409..46be78fd6 100644
--- a/src/ui/translations/qmmp_cs.ts
+++ b/src/ui/translations/qmmp_cs.ts
@@ -851,168 +851,168 @@
<context>
<name>MainWindow</name>
<message>
- <location filename="../mainwindow.cpp" line="266"/>
+ <location filename="../mainwindow.cpp" line="262"/>
<source>Choose a directory</source>
<translation>Výběr adresáře</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="277"/>
+ <location filename="../mainwindow.cpp" line="273"/>
<source>Select one or more files to open</source>
<translation>Vyberte jeden či více souborů k otevření</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="391"/>
+ <location filename="../mainwindow.cpp" line="387"/>
<source>&amp;Play</source>
<translation>Pře&amp;hrát</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="391"/>
+ <location filename="../mainwindow.cpp" line="387"/>
<source>X</source>
<translation>X</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="392"/>
+ <location filename="../mainwindow.cpp" line="388"/>
<source>&amp;Pause</source>
<translation>Pau&amp;za</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="392"/>
+ <location filename="../mainwindow.cpp" line="388"/>
<source>C</source>
<translation>C</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="393"/>
+ <location filename="../mainwindow.cpp" line="389"/>
<source>&amp;Stop</source>
<translation>&amp;Stop</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="393"/>
+ <location filename="../mainwindow.cpp" line="389"/>
<source>V</source>
<translation>V</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="394"/>
+ <location filename="../mainwindow.cpp" line="390"/>
<source>&amp;Previous</source>
<translation>&amp;Předchozí</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="394"/>
+ <location filename="../mainwindow.cpp" line="390"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="395"/>
+ <location filename="../mainwindow.cpp" line="391"/>
<source>&amp;Next</source>
<translation>&amp;Další</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="395"/>
+ <location filename="../mainwindow.cpp" line="391"/>
<source>B</source>
<translation>B</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="414"/>
+ <location filename="../mainwindow.cpp" line="410"/>
<source>&amp;Jump To File</source>
<translation>Přeskočit na soubo&amp;r</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="414"/>
+ <location filename="../mainwindow.cpp" line="410"/>
<source>J</source>
<translation>J</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="420"/>
+ <location filename="../mainwindow.cpp" line="416"/>
<source>&amp;Settings</source>
<translation>&amp;Nastavení</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="420"/>
+ <location filename="../mainwindow.cpp" line="416"/>
<source>Ctrl+P</source>
<translation>Ctrl+P</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="422"/>
+ <location filename="../mainwindow.cpp" line="418"/>
<source>&amp;About</source>
<translation>O &amp;aplikaci</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="426"/>
+ <location filename="../mainwindow.cpp" line="422"/>
<source>&amp;Exit</source>
<translation>U&amp;končit</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="426"/>
+ <location filename="../mainwindow.cpp" line="422"/>
<source>Ctrl+Q</source>
<translation>Ctrl+Q</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="460"/>
- <location filename="../mainwindow.cpp" line="486"/>
+ <location filename="../mainwindow.cpp" line="456"/>
+ <location filename="../mainwindow.cpp" line="482"/>
<source>Playlist Files</source>
<translation>Seznamy skladeb</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="462"/>
+ <location filename="../mainwindow.cpp" line="458"/>
<source>Open Playlist</source>
<translation>Načíst seznam skladeb</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="487"/>
+ <location filename="../mainwindow.cpp" line="483"/>
<source>Save Playlist</source>
<translation>Uložit seznam skladeb</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="396"/>
+ <location filename="../mainwindow.cpp" line="392"/>
<source>Space</source>
<translation>Mezerník</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="423"/>
+ <location filename="../mainwindow.cpp" line="419"/>
<source>&amp;About Qt</source>
<translation>O knihovně &amp;Qt</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="396"/>
+ <location filename="../mainwindow.cpp" line="392"/>
<source>&amp;Play/Pause</source>
<translation>&amp;Přehrát/Pauza</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="272"/>
+ <location filename="../mainwindow.cpp" line="268"/>
<source>All Supported Bitstreams</source>
<translation>Všechny podporované formáty</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="399"/>
+ <location filename="../mainwindow.cpp" line="395"/>
<source>&amp;Repeat Track</source>
<translation>&amp;Opakovat stopu</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="400"/>
+ <location filename="../mainwindow.cpp" line="396"/>
<source>&amp;Shuffle</source>
<translation>Za&amp;míchat</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="404"/>
+ <location filename="../mainwindow.cpp" line="400"/>
<source>R</source>
<translation>O</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="405"/>
+ <location filename="../mainwindow.cpp" line="401"/>
<source>Ctrl+R</source>
<translation>Ctrl+R</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="406"/>
+ <location filename="../mainwindow.cpp" line="402"/>
<source>S</source>
<translation>M</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="398"/>
+ <location filename="../mainwindow.cpp" line="394"/>
<source>&amp;Repeat Playlist</source>
<translation>&amp;Opakovat seznam skladeb</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="418"/>
+ <location filename="../mainwindow.cpp" line="414"/>
<source>Tools</source>
<translation>Nástroje</translation>
</message>
@@ -1020,214 +1020,268 @@
<context>
<name>PlayList</name>
<message>
- <location filename="../playlist.cpp" line="164"/>
+ <location filename="../playlist.cpp" line="165"/>
<source>&amp;Add File</source>
<translation>Přidat &amp;soubor</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="165"/>
+ <location filename="../playlist.cpp" line="166"/>
<source>F</source>
<translation>F</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="170"/>
+ <location filename="../playlist.cpp" line="171"/>
<source>&amp;Add Directory</source>
<translation>Přidat &amp;adresář</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="171"/>
+ <location filename="../playlist.cpp" line="172"/>
<source>D</source>
<translation>D</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="183"/>
+ <location filename="../playlist.cpp" line="184"/>
<source>&amp;Remove Selected</source>
<translation>&amp;Odstranit vybrané</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="184"/>
+ <location filename="../playlist.cpp" line="185"/>
<source>Del</source>
<translation>Del</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="189"/>
+ <location filename="../playlist.cpp" line="190"/>
<source>&amp;Remove All</source>
<translation>Odstranit &amp;vše</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="195"/>
+ <location filename="../playlist.cpp" line="196"/>
<source>&amp;Remove Unselected</source>
<translation>Odstranit &amp;nevybrané</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="200"/>
+ <location filename="../playlist.cpp" line="201"/>
<source>Remove unavailable files</source>
<translation>Odstranit nedostupné soubory</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="203"/>
+ <location filename="../playlist.cpp" line="204"/>
<source>&amp;View Track Details</source>
<translation>Zobrazit &amp;informace o skladbě</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="204"/>
+ <location filename="../playlist.cpp" line="205"/>
<source>Alt+I</source>
<translation>Alt+I</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="212"/>
+ <location filename="../playlist.cpp" line="213"/>
<source>Sort List</source>
<translation>Seřadit seznam</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="215"/>
- <location filename="../playlist.cpp" line="249"/>
+ <location filename="../playlist.cpp" line="216"/>
+ <location filename="../playlist.cpp" line="250"/>
<source>By Title</source>
<translation>Podle názvu skladby</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="219"/>
- <location filename="../playlist.cpp" line="253"/>
+ <location filename="../playlist.cpp" line="220"/>
+ <location filename="../playlist.cpp" line="254"/>
<source>By Album</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="223"/>
- <location filename="../playlist.cpp" line="257"/>
+ <location filename="../playlist.cpp" line="224"/>
+ <location filename="../playlist.cpp" line="258"/>
<source>By Artist</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="227"/>
- <location filename="../playlist.cpp" line="261"/>
+ <location filename="../playlist.cpp" line="228"/>
+ <location filename="../playlist.cpp" line="262"/>
<source>By Filename</source>
<translation>Podle názvu souboru</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="231"/>
- <location filename="../playlist.cpp" line="265"/>
+ <location filename="../playlist.cpp" line="232"/>
+ <location filename="../playlist.cpp" line="266"/>
<source>By Path + Filename</source>
<translation>Podle cesty a názvu souboru</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="235"/>
- <location filename="../playlist.cpp" line="269"/>
+ <location filename="../playlist.cpp" line="236"/>
+ <location filename="../playlist.cpp" line="270"/>
<source>By Date</source>
<translation>Podle data</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="247"/>
+ <location filename="../playlist.cpp" line="248"/>
<source>Sort Selection</source>
<translation>Seřadit výběr</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="282"/>
+ <location filename="../playlist.cpp" line="283"/>
<source>Randomize List</source>
<translation>Zamíchat seznam</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="283"/>
+ <location filename="../playlist.cpp" line="284"/>
<source>Reverse List</source>
<translation>Obrátit pořadí seznamu</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="295"/>
+ <location filename="../playlist.cpp" line="296"/>
<source>Invert Selection</source>
<translation>Invertovat výběr</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="301"/>
+ <location filename="../playlist.cpp" line="302"/>
<source>&amp;Select None</source>
<translation>&amp;Zrušit výběr</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="302"/>
+ <location filename="../playlist.cpp" line="303"/>
<source>Shift+A</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="307"/>
+ <location filename="../playlist.cpp" line="308"/>
<source>&amp;Select All</source>
<translation>&amp;Vybrat vše</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="308"/>
+ <location filename="../playlist.cpp" line="309"/>
<source>Ctrl+A</source>
<translation>Ctrl+A</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="314"/>
+ <location filename="../playlist.cpp" line="315"/>
<source>&amp;New List</source>
<translation>&amp;Nový seznam</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="315"/>
- <source>Shift+N</source>
- <translation>Shift+N</translation>
+ <location filename="../playlist.cpp" line="316"/>
+ <source>Ctrl+T</source>
+ <translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="319"/>
- <source>&amp;Delete List</source>
+ <location filename="../playlist.cpp" line="321"/>
+ <source>Ctrl+W</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="340"/>
+ <source>&amp;Select Next Playlist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="341"/>
+ <source>Ctrl+PgDown</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="346"/>
+ <source>&amp;Select Previous Playlist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="347"/>
+ <source>Ctrl+PgUp</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="352"/>
+ <source>&amp;Show Playlists</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="353"/>
+ <source>P</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../playlist.cpp" line="320"/>
- <source>Shift+D</source>
+ <source>&amp;Delete List</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="326"/>
+ <location filename="../playlist.cpp" line="327"/>
<source>&amp;Load List</source>
<translation>Načíst &amp;seznam</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="327"/>
+ <location filename="../playlist.cpp" line="328"/>
<source>O</source>
<translation>O</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="332"/>
+ <location filename="../playlist.cpp" line="333"/>
<source>&amp;Save List</source>
<translation>&amp;Uložit seznam</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="333"/>
+ <location filename="../playlist.cpp" line="334"/>
<source>Shift+S</source>
<translation>Shift+S</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="176"/>
+ <location filename="../playlist.cpp" line="177"/>
<source>&amp;Add Url</source>
<translation>Přidat &amp;URL</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="177"/>
+ <location filename="../playlist.cpp" line="178"/>
<source>U</source>
<translation>U</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="239"/>
- <location filename="../playlist.cpp" line="273"/>
+ <location filename="../playlist.cpp" line="240"/>
+ <location filename="../playlist.cpp" line="274"/>
<source>By Track Number</source>
<translation>Podle čísla skladby</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="291"/>
+ <location filename="../playlist.cpp" line="292"/>
<source>&amp;Queue</source>
<translation>&amp;Fronta</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="291"/>
+ <location filename="../playlist.cpp" line="292"/>
<source>Q</source>
<translation>Q</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="288"/>
+ <location filename="../playlist.cpp" line="289"/>
<source>Actions</source>
<translation>Činnosti</translation>
</message>
</context>
<context>
+ <name>PlayListBrowser</name>
+ <message>
+ <location filename="../forms/playlistbrowser.ui" line="14"/>
+ <source>Playlist Browser</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/playlistbrowser.ui" line="45"/>
+ <source>New</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/playlistbrowser.ui" line="52"/>
+ <location filename="../playlistbrowser.cpp" line="36"/>
+ <source>Delete</source>
+ <translation type="unfinished">Odstranit</translation>
+ </message>
+ <message>
+ <location filename="../playlistbrowser.cpp" line="35"/>
+ <source>Rename</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>PresetEditor</name>
<message>
<location filename="../forms/preseteditor.ui" line="13"/>
diff --git a/src/ui/translations/qmmp_de.ts b/src/ui/translations/qmmp_de.ts
index 5824c12c6..9da4d0a2f 100644
--- a/src/ui/translations/qmmp_de.ts
+++ b/src/ui/translations/qmmp_de.ts
@@ -851,168 +851,168 @@
<context>
<name>MainWindow</name>
<message>
- <location filename="../mainwindow.cpp" line="266"/>
+ <location filename="../mainwindow.cpp" line="262"/>
<source>Choose a directory</source>
<translation>Verzeichnis wählen</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="277"/>
+ <location filename="../mainwindow.cpp" line="273"/>
<source>Select one or more files to open</source>
<translation>Dateien hinzufügen</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="391"/>
+ <location filename="../mainwindow.cpp" line="387"/>
<source>&amp;Play</source>
<translation>&amp;Wiedergabe</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="391"/>
+ <location filename="../mainwindow.cpp" line="387"/>
<source>X</source>
<translation>X</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="392"/>
+ <location filename="../mainwindow.cpp" line="388"/>
<source>&amp;Pause</source>
<translation>&amp;Pause</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="392"/>
+ <location filename="../mainwindow.cpp" line="388"/>
<source>C</source>
<translation>C</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="393"/>
+ <location filename="../mainwindow.cpp" line="389"/>
<source>&amp;Stop</source>
<translation>&amp;Stopp</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="393"/>
+ <location filename="../mainwindow.cpp" line="389"/>
<source>V</source>
<translation>V</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="394"/>
+ <location filename="../mainwindow.cpp" line="390"/>
<source>&amp;Previous</source>
<translation>&amp;Vorheriger Titel</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="394"/>
+ <location filename="../mainwindow.cpp" line="390"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="395"/>
+ <location filename="../mainwindow.cpp" line="391"/>
<source>&amp;Next</source>
<translation>&amp;Nächster Titel</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="395"/>
+ <location filename="../mainwindow.cpp" line="391"/>
<source>B</source>
<translation>B</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="414"/>
+ <location filename="../mainwindow.cpp" line="410"/>
<source>&amp;Jump To File</source>
<translation>Springe zu &amp;Titel</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="414"/>
+ <location filename="../mainwindow.cpp" line="410"/>
<source>J</source>
<translation>J</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="420"/>
+ <location filename="../mainwindow.cpp" line="416"/>
<source>&amp;Settings</source>
<translation>&amp;Einstellungen</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="420"/>
+ <location filename="../mainwindow.cpp" line="416"/>
<source>Ctrl+P</source>
<translation>Strg+P</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="422"/>
+ <location filename="../mainwindow.cpp" line="418"/>
<source>&amp;About</source>
<translation>Ü&amp;ber</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="426"/>
+ <location filename="../mainwindow.cpp" line="422"/>
<source>&amp;Exit</source>
<translation>Be&amp;enden</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="426"/>
+ <location filename="../mainwindow.cpp" line="422"/>
<source>Ctrl+Q</source>
<translation>Strg+Q</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="460"/>
- <location filename="../mainwindow.cpp" line="486"/>
+ <location filename="../mainwindow.cpp" line="456"/>
+ <location filename="../mainwindow.cpp" line="482"/>
<source>Playlist Files</source>
<translation>Wiedergabelisten</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="462"/>
+ <location filename="../mainwindow.cpp" line="458"/>
<source>Open Playlist</source>
<translation>Wiedergabeliste öffnen</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="487"/>
+ <location filename="../mainwindow.cpp" line="483"/>
<source>Save Playlist</source>
<translation>Wiedergabeliste speichern</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="396"/>
+ <location filename="../mainwindow.cpp" line="392"/>
<source>Space</source>
<translation>Leertaste</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="423"/>
+ <location filename="../mainwindow.cpp" line="419"/>
<source>&amp;About Qt</source>
<translation>Übe&amp;r Qt</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="396"/>
+ <location filename="../mainwindow.cpp" line="392"/>
<source>&amp;Play/Pause</source>
<translation>Wieder&amp;gabe/Pause</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="272"/>
+ <location filename="../mainwindow.cpp" line="268"/>
<source>All Supported Bitstreams</source>
<translation>Alle unterstützten Formate</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="399"/>
+ <location filename="../mainwindow.cpp" line="395"/>
<source>&amp;Repeat Track</source>
<translation>Tite&amp;l wiederholen</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="400"/>
+ <location filename="../mainwindow.cpp" line="396"/>
<source>&amp;Shuffle</source>
<translation>&amp;Zufallswiedergabe</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="404"/>
+ <location filename="../mainwindow.cpp" line="400"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="405"/>
+ <location filename="../mainwindow.cpp" line="401"/>
<source>Ctrl+R</source>
<translation>Strg+R</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="406"/>
+ <location filename="../mainwindow.cpp" line="402"/>
<source>S</source>
<translation>S</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="398"/>
+ <location filename="../mainwindow.cpp" line="394"/>
<source>&amp;Repeat Playlist</source>
<translation>W&amp;iedergabeliste wiederholen</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="418"/>
+ <location filename="../mainwindow.cpp" line="414"/>
<source>Tools</source>
<translation>Werkzeuge</translation>
</message>
@@ -1020,214 +1020,268 @@
<context>
<name>PlayList</name>
<message>
- <location filename="../playlist.cpp" line="164"/>
+ <location filename="../playlist.cpp" line="165"/>
<source>&amp;Add File</source>
<translation>&amp;Datei hinzufügen</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="165"/>
+ <location filename="../playlist.cpp" line="166"/>
<source>F</source>
<translation>F</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="170"/>
+ <location filename="../playlist.cpp" line="171"/>
<source>&amp;Add Directory</source>
<translation>&amp;Verzeichnis hinzufügen</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="171"/>
+ <location filename="../playlist.cpp" line="172"/>
<source>D</source>
<translation>D</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="183"/>
+ <location filename="../playlist.cpp" line="184"/>
<source>&amp;Remove Selected</source>
<translation>&amp;Ausgewählte entfernen</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="184"/>
+ <location filename="../playlist.cpp" line="185"/>
<source>Del</source>
<translation>Entf</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="189"/>
+ <location filename="../playlist.cpp" line="190"/>
<source>&amp;Remove All</source>
<translation>Alle &amp;entfernen</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="195"/>
+ <location filename="../playlist.cpp" line="196"/>
<source>&amp;Remove Unselected</source>
<translation>&amp;Nicht ausgewählte entfernen</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="200"/>
+ <location filename="../playlist.cpp" line="201"/>
<source>Remove unavailable files</source>
<translation>Nichtverfügbare Dateien entfernen</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="203"/>
+ <location filename="../playlist.cpp" line="204"/>
<source>&amp;View Track Details</source>
<translation>&amp;Titeldetails anzeigen</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="204"/>
+ <location filename="../playlist.cpp" line="205"/>
<source>Alt+I</source>
<translation>Alt+I</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="212"/>
+ <location filename="../playlist.cpp" line="213"/>
<source>Sort List</source>
<translation>Wiedergabeliste sortieren</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="215"/>
- <location filename="../playlist.cpp" line="249"/>
+ <location filename="../playlist.cpp" line="216"/>
+ <location filename="../playlist.cpp" line="250"/>
<source>By Title</source>
<translation>Nach Titel</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="219"/>
- <location filename="../playlist.cpp" line="253"/>
+ <location filename="../playlist.cpp" line="220"/>
+ <location filename="../playlist.cpp" line="254"/>
<source>By Album</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="223"/>
- <location filename="../playlist.cpp" line="257"/>
+ <location filename="../playlist.cpp" line="224"/>
+ <location filename="../playlist.cpp" line="258"/>
<source>By Artist</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="227"/>
- <location filename="../playlist.cpp" line="261"/>
+ <location filename="../playlist.cpp" line="228"/>
+ <location filename="../playlist.cpp" line="262"/>
<source>By Filename</source>
<translation>Nach Dateinamen</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="231"/>
- <location filename="../playlist.cpp" line="265"/>
+ <location filename="../playlist.cpp" line="232"/>
+ <location filename="../playlist.cpp" line="266"/>
<source>By Path + Filename</source>
<translation>Nach Pfad + Dateinamen</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="235"/>
- <location filename="../playlist.cpp" line="269"/>
+ <location filename="../playlist.cpp" line="236"/>
+ <location filename="../playlist.cpp" line="270"/>
<source>By Date</source>
<translation>Nach Datum</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="247"/>
+ <location filename="../playlist.cpp" line="248"/>
<source>Sort Selection</source>
<translation>Auswahl sortieren</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="282"/>
+ <location filename="../playlist.cpp" line="283"/>
<source>Randomize List</source>
<translation>Wiedergabeliste mischen</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="283"/>
+ <location filename="../playlist.cpp" line="284"/>
<source>Reverse List</source>
<translation>Wiedergabeliste umkehren</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="295"/>
+ <location filename="../playlist.cpp" line="296"/>
<source>Invert Selection</source>
<translation>Auswahl umkehren</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="301"/>
+ <location filename="../playlist.cpp" line="302"/>
<source>&amp;Select None</source>
<translation>&amp;Auswahl aufheben</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="302"/>
+ <location filename="../playlist.cpp" line="303"/>
<source>Shift+A</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="307"/>
+ <location filename="../playlist.cpp" line="308"/>
<source>&amp;Select All</source>
<translation>Alle aus&amp;wählen</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="308"/>
+ <location filename="../playlist.cpp" line="309"/>
<source>Ctrl+A</source>
<translation>Strg+A</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="314"/>
+ <location filename="../playlist.cpp" line="315"/>
<source>&amp;New List</source>
<translation>&amp;Neue Wiedergabeliste</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="315"/>
- <source>Shift+N</source>
- <translation>Umschalt+N</translation>
+ <location filename="../playlist.cpp" line="316"/>
+ <source>Ctrl+T</source>
+ <translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="319"/>
- <source>&amp;Delete List</source>
+ <location filename="../playlist.cpp" line="321"/>
+ <source>Ctrl+W</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="340"/>
+ <source>&amp;Select Next Playlist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="341"/>
+ <source>Ctrl+PgDown</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="346"/>
+ <source>&amp;Select Previous Playlist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="347"/>
+ <source>Ctrl+PgUp</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="352"/>
+ <source>&amp;Show Playlists</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="353"/>
+ <source>P</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../playlist.cpp" line="320"/>
- <source>Shift+D</source>
+ <source>&amp;Delete List</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="326"/>
+ <location filename="../playlist.cpp" line="327"/>
<source>&amp;Load List</source>
<translation>Wiedergabeliste &amp;laden</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="327"/>
+ <location filename="../playlist.cpp" line="328"/>
<source>O</source>
<translation>O</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="332"/>
+ <location filename="../playlist.cpp" line="333"/>
<source>&amp;Save List</source>
<translation>Wiedergabeliste &amp;speichern</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="333"/>
+ <location filename="../playlist.cpp" line="334"/>
<source>Shift+S</source>
<translation>Umschalt+S</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="176"/>
+ <location filename="../playlist.cpp" line="177"/>
<source>&amp;Add Url</source>
<translation>&amp;URL hinzufügen</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="177"/>
+ <location filename="../playlist.cpp" line="178"/>
<source>U</source>
<translation>U</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="239"/>
- <location filename="../playlist.cpp" line="273"/>
+ <location filename="../playlist.cpp" line="240"/>
+ <location filename="../playlist.cpp" line="274"/>
<source>By Track Number</source>
<translation>Nach Titelnummer</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="291"/>
+ <location filename="../playlist.cpp" line="292"/>
<source>&amp;Queue</source>
<translation>&amp;Warteschlange</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="291"/>
+ <location filename="../playlist.cpp" line="292"/>
<source>Q</source>
<translation>Q</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="288"/>
+ <location filename="../playlist.cpp" line="289"/>
<source>Actions</source>
<translation>Aktionen</translation>
</message>
</context>
<context>
+ <name>PlayListBrowser</name>
+ <message>
+ <location filename="../forms/playlistbrowser.ui" line="14"/>
+ <source>Playlist Browser</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/playlistbrowser.ui" line="45"/>
+ <source>New</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/playlistbrowser.ui" line="52"/>
+ <location filename="../playlistbrowser.cpp" line="36"/>
+ <source>Delete</source>
+ <translation type="unfinished">Löschen</translation>
+ </message>
+ <message>
+ <location filename="../playlistbrowser.cpp" line="35"/>
+ <source>Rename</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>PresetEditor</name>
<message>
<location filename="../forms/preseteditor.ui" line="13"/>
diff --git a/src/ui/translations/qmmp_it.ts b/src/ui/translations/qmmp_it.ts
index 2448f7930..f79360629 100644
--- a/src/ui/translations/qmmp_it.ts
+++ b/src/ui/translations/qmmp_it.ts
@@ -851,168 +851,168 @@
<context>
<name>MainWindow</name>
<message>
- <location filename="../mainwindow.cpp" line="266"/>
+ <location filename="../mainwindow.cpp" line="262"/>
<source>Choose a directory</source>
<translation>Scegliere una cartella</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="277"/>
+ <location filename="../mainwindow.cpp" line="273"/>
<source>Select one or more files to open</source>
<translation>Seleziona uno o più brani da aprire</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="391"/>
+ <location filename="../mainwindow.cpp" line="387"/>
<source>&amp;Play</source>
<translation>&amp;Esegui</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="391"/>
+ <location filename="../mainwindow.cpp" line="387"/>
<source>X</source>
<translation>X</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="392"/>
+ <location filename="../mainwindow.cpp" line="388"/>
<source>&amp;Pause</source>
<translation>&amp;Pausa</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="392"/>
+ <location filename="../mainwindow.cpp" line="388"/>
<source>C</source>
<translation>C</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="393"/>
+ <location filename="../mainwindow.cpp" line="389"/>
<source>&amp;Stop</source>
<translation>&amp;Arresta</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="393"/>
+ <location filename="../mainwindow.cpp" line="389"/>
<source>V</source>
<translation>V</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="394"/>
+ <location filename="../mainwindow.cpp" line="390"/>
<source>&amp;Previous</source>
<translation>&amp;Precedente</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="394"/>
+ <location filename="../mainwindow.cpp" line="390"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="395"/>
+ <location filename="../mainwindow.cpp" line="391"/>
<source>&amp;Next</source>
<translation>&amp;Successivo</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="395"/>
+ <location filename="../mainwindow.cpp" line="391"/>
<source>B</source>
<translation>B</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="414"/>
+ <location filename="../mainwindow.cpp" line="410"/>
<source>&amp;Jump To File</source>
<translation>&amp;Vai al brano</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="414"/>
+ <location filename="../mainwindow.cpp" line="410"/>
<source>J</source>
<translation>J</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="420"/>
+ <location filename="../mainwindow.cpp" line="416"/>
<source>&amp;Settings</source>
<translation>&amp;Configurazione</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="420"/>
+ <location filename="../mainwindow.cpp" line="416"/>
<source>Ctrl+P</source>
<translation>Ctrl+P</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="426"/>
+ <location filename="../mainwindow.cpp" line="422"/>
<source>&amp;Exit</source>
<translation>&amp;Esci</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="426"/>
+ <location filename="../mainwindow.cpp" line="422"/>
<source>Ctrl+Q</source>
<translation>Ctrl+Q</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="462"/>
+ <location filename="../mainwindow.cpp" line="458"/>
<source>Open Playlist</source>
<translation>Apri lista di brani</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="487"/>
+ <location filename="../mainwindow.cpp" line="483"/>
<source>Save Playlist</source>
<translation>Salva lista di brani</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="422"/>
+ <location filename="../mainwindow.cpp" line="418"/>
<source>&amp;About</source>
<translation>&amp;Informazioni</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="460"/>
- <location filename="../mainwindow.cpp" line="486"/>
+ <location filename="../mainwindow.cpp" line="456"/>
+ <location filename="../mainwindow.cpp" line="482"/>
<source>Playlist Files</source>
<translation>Brani della lista</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="396"/>
+ <location filename="../mainwindow.cpp" line="392"/>
<source>Space</source>
<translation>Spazio</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="423"/>
+ <location filename="../mainwindow.cpp" line="419"/>
<source>&amp;About Qt</source>
<translation>&amp;Informazioni su Qt</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="396"/>
+ <location filename="../mainwindow.cpp" line="392"/>
<source>&amp;Play/Pause</source>
<translation>&amp;Esegui / Pausa</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="272"/>
+ <location filename="../mainwindow.cpp" line="268"/>
<source>All Supported Bitstreams</source>
<translation>Elenco di tutti i tipi di flusso accettati</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="399"/>
+ <location filename="../mainwindow.cpp" line="395"/>
<source>&amp;Repeat Track</source>
<translation>&amp;Ripeti brano</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="400"/>
+ <location filename="../mainwindow.cpp" line="396"/>
<source>&amp;Shuffle</source>
<translation>&amp;Ordine casuale</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="404"/>
+ <location filename="../mainwindow.cpp" line="400"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="405"/>
+ <location filename="../mainwindow.cpp" line="401"/>
<source>Ctrl+R</source>
<translation>Ctrl+R</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="406"/>
+ <location filename="../mainwindow.cpp" line="402"/>
<source>S</source>
<translation>S</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="398"/>
+ <location filename="../mainwindow.cpp" line="394"/>
<source>&amp;Repeat Playlist</source>
<translation>&amp;Ripeti lista brani</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="418"/>
+ <location filename="../mainwindow.cpp" line="414"/>
<source>Tools</source>
<translation>Strumenti</translation>
</message>
@@ -1020,214 +1020,268 @@
<context>
<name>PlayList</name>
<message>
- <location filename="../playlist.cpp" line="165"/>
+ <location filename="../playlist.cpp" line="166"/>
<source>F</source>
<translation>F</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="171"/>
+ <location filename="../playlist.cpp" line="172"/>
<source>D</source>
<translation>D</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="204"/>
+ <location filename="../playlist.cpp" line="205"/>
<source>Alt+I</source>
<translation>Alt+I</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="308"/>
+ <location filename="../playlist.cpp" line="309"/>
<source>Ctrl+A</source>
<translation>Ctrl+A</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="327"/>
+ <location filename="../playlist.cpp" line="316"/>
+ <source>Ctrl+T</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="321"/>
+ <source>Ctrl+W</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="328"/>
<source>O</source>
<translation>O</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="164"/>
+ <location filename="../playlist.cpp" line="165"/>
<source>&amp;Add File</source>
<translation>&amp;Aggiungi brani</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="170"/>
+ <location filename="../playlist.cpp" line="171"/>
<source>&amp;Add Directory</source>
<translation>&amp;Aggiungi cartelle</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="183"/>
+ <location filename="../playlist.cpp" line="184"/>
<source>&amp;Remove Selected</source>
<translation>&amp;Elimina la selezione</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="189"/>
+ <location filename="../playlist.cpp" line="190"/>
<source>&amp;Remove All</source>
<translation>&amp;Elimina tutto</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="195"/>
+ <location filename="../playlist.cpp" line="196"/>
<source>&amp;Remove Unselected</source>
<translation>&amp;Elimina i non selezionati</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="200"/>
+ <location filename="../playlist.cpp" line="201"/>
<source>Remove unavailable files</source>
<translation>Rimuovi files non disponibili</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="203"/>
+ <location filename="../playlist.cpp" line="204"/>
<source>&amp;View Track Details</source>
<translation>&amp;Dettagli della traccia</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="212"/>
+ <location filename="../playlist.cpp" line="213"/>
<source>Sort List</source>
<translation>Riordina la lista</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="215"/>
- <location filename="../playlist.cpp" line="249"/>
+ <location filename="../playlist.cpp" line="216"/>
+ <location filename="../playlist.cpp" line="250"/>
<source>By Title</source>
<translation>Per titolo</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="219"/>
- <location filename="../playlist.cpp" line="253"/>
+ <location filename="../playlist.cpp" line="220"/>
+ <location filename="../playlist.cpp" line="254"/>
<source>By Album</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="223"/>
- <location filename="../playlist.cpp" line="257"/>
+ <location filename="../playlist.cpp" line="224"/>
+ <location filename="../playlist.cpp" line="258"/>
<source>By Artist</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="227"/>
- <location filename="../playlist.cpp" line="261"/>
+ <location filename="../playlist.cpp" line="228"/>
+ <location filename="../playlist.cpp" line="262"/>
<source>By Filename</source>
<translation>Per titolo del brano</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="231"/>
- <location filename="../playlist.cpp" line="265"/>
+ <location filename="../playlist.cpp" line="232"/>
+ <location filename="../playlist.cpp" line="266"/>
<source>By Path + Filename</source>
<translation>per percorso più titolo del brano</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="235"/>
- <location filename="../playlist.cpp" line="269"/>
+ <location filename="../playlist.cpp" line="236"/>
+ <location filename="../playlist.cpp" line="270"/>
<source>By Date</source>
<translation>Per data</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="247"/>
+ <location filename="../playlist.cpp" line="248"/>
<source>Sort Selection</source>
<translation>Riordina la selezione</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="282"/>
+ <location filename="../playlist.cpp" line="283"/>
<source>Randomize List</source>
<translation>Mescola i brnai della lista</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="283"/>
+ <location filename="../playlist.cpp" line="284"/>
<source>Reverse List</source>
<translation>Inverti la lista</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="295"/>
+ <location filename="../playlist.cpp" line="296"/>
<source>Invert Selection</source>
<translation>Inverti la selezione</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="301"/>
+ <location filename="../playlist.cpp" line="302"/>
<source>&amp;Select None</source>
<translation>&amp;Non scegliere alcun brano</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="302"/>
+ <location filename="../playlist.cpp" line="303"/>
<source>Shift+A</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="307"/>
+ <location filename="../playlist.cpp" line="308"/>
<source>&amp;Select All</source>
<translation>&amp;Seleziona tutto</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="314"/>
+ <location filename="../playlist.cpp" line="315"/>
<source>&amp;New List</source>
<translation>&amp;Nuova lista</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="315"/>
- <source>Shift+N</source>
- <translation>Shift+N</translation>
+ <location filename="../playlist.cpp" line="340"/>
+ <source>&amp;Select Next Playlist</source>
+ <translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="319"/>
- <source>&amp;Delete List</source>
+ <location filename="../playlist.cpp" line="341"/>
+ <source>Ctrl+PgDown</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="346"/>
+ <source>&amp;Select Previous Playlist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="347"/>
+ <source>Ctrl+PgUp</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="352"/>
+ <source>&amp;Show Playlists</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="353"/>
+ <source>P</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../playlist.cpp" line="320"/>
- <source>Shift+D</source>
+ <source>&amp;Delete List</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="326"/>
+ <location filename="../playlist.cpp" line="327"/>
<source>&amp;Load List</source>
<translation>&amp;Carica lista</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="332"/>
+ <location filename="../playlist.cpp" line="333"/>
<source>&amp;Save List</source>
<translation>&amp;Salva lista</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="333"/>
+ <location filename="../playlist.cpp" line="334"/>
<source>Shift+S</source>
<translation>Shift+S</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="184"/>
+ <location filename="../playlist.cpp" line="185"/>
<source>Del</source>
<translation>Canc</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="176"/>
+ <location filename="../playlist.cpp" line="177"/>
<source>&amp;Add Url</source>
<translation>&amp;Aggiungi URL</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="177"/>
+ <location filename="../playlist.cpp" line="178"/>
<source>U</source>
<translation>U</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="239"/>
- <location filename="../playlist.cpp" line="273"/>
+ <location filename="../playlist.cpp" line="240"/>
+ <location filename="../playlist.cpp" line="274"/>
<source>By Track Number</source>
<translation>Per numero di traccia</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="291"/>
+ <location filename="../playlist.cpp" line="292"/>
<source>&amp;Queue</source>
<translation>&amp;Metti in coda</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="291"/>
+ <location filename="../playlist.cpp" line="292"/>
<source>Q</source>
<translation>Q</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="288"/>
+ <location filename="../playlist.cpp" line="289"/>
<source>Actions</source>
<translation>Azioni</translation>
</message>
</context>
<context>
+ <name>PlayListBrowser</name>
+ <message>
+ <location filename="../forms/playlistbrowser.ui" line="14"/>
+ <source>Playlist Browser</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/playlistbrowser.ui" line="45"/>
+ <source>New</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/playlistbrowser.ui" line="52"/>
+ <location filename="../playlistbrowser.cpp" line="36"/>
+ <source>Delete</source>
+ <translation type="unfinished">Elimina</translation>
+ </message>
+ <message>
+ <location filename="../playlistbrowser.cpp" line="35"/>
+ <source>Rename</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>PresetEditor</name>
<message>
<location filename="../forms/preseteditor.ui" line="13"/>
diff --git a/src/ui/translations/qmmp_lt.ts b/src/ui/translations/qmmp_lt.ts
index 7414278b4..324c1f656 100644
--- a/src/ui/translations/qmmp_lt.ts
+++ b/src/ui/translations/qmmp_lt.ts
@@ -851,168 +851,168 @@
<context>
<name>MainWindow</name>
<message>
- <location filename="../mainwindow.cpp" line="266"/>
+ <location filename="../mainwindow.cpp" line="262"/>
<source>Choose a directory</source>
<translation>Pasirinkite aplanką</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="277"/>
+ <location filename="../mainwindow.cpp" line="273"/>
<source>Select one or more files to open</source>
<translation>Pasirinkite vieną ar kelias bylas atvėrimui</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="391"/>
+ <location filename="../mainwindow.cpp" line="387"/>
<source>&amp;Play</source>
<translation>&amp;Groti</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="391"/>
+ <location filename="../mainwindow.cpp" line="387"/>
<source>X</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="392"/>
+ <location filename="../mainwindow.cpp" line="388"/>
<source>&amp;Pause</source>
<translation>&amp;Pristabdyti</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="392"/>
+ <location filename="../mainwindow.cpp" line="388"/>
<source>C</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="393"/>
+ <location filename="../mainwindow.cpp" line="389"/>
<source>&amp;Stop</source>
<translation>&amp;Sustabdyti</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="393"/>
+ <location filename="../mainwindow.cpp" line="389"/>
<source>V</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="394"/>
+ <location filename="../mainwindow.cpp" line="390"/>
<source>&amp;Previous</source>
<translation>&amp;Ankstesnis</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="394"/>
+ <location filename="../mainwindow.cpp" line="390"/>
<source>Z</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="395"/>
+ <location filename="../mainwindow.cpp" line="391"/>
<source>&amp;Next</source>
<translation>&amp;Sekantis</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="395"/>
+ <location filename="../mainwindow.cpp" line="391"/>
<source>B</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="414"/>
+ <location filename="../mainwindow.cpp" line="410"/>
<source>&amp;Jump To File</source>
<translation>&amp;Pereiti prie bylos</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="414"/>
+ <location filename="../mainwindow.cpp" line="410"/>
<source>J</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="420"/>
+ <location filename="../mainwindow.cpp" line="416"/>
<source>&amp;Settings</source>
<translation>&amp;Nustatymai</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="420"/>
+ <location filename="../mainwindow.cpp" line="416"/>
<source>Ctrl+P</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="426"/>
+ <location filename="../mainwindow.cpp" line="422"/>
<source>&amp;Exit</source>
<translation>&amp;Išeiti</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="426"/>
+ <location filename="../mainwindow.cpp" line="422"/>
<source>Ctrl+Q</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="462"/>
+ <location filename="../mainwindow.cpp" line="458"/>
<source>Open Playlist</source>
<translation>Atverti grojaraštį</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="487"/>
+ <location filename="../mainwindow.cpp" line="483"/>
<source>Save Playlist</source>
<translation>Išsaugoti grojaraštį</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="422"/>
+ <location filename="../mainwindow.cpp" line="418"/>
<source>&amp;About</source>
<translation>&amp;Apie</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="460"/>
- <location filename="../mainwindow.cpp" line="486"/>
+ <location filename="../mainwindow.cpp" line="456"/>
+ <location filename="../mainwindow.cpp" line="482"/>
<source>Playlist Files</source>
<translation>Grojaraščio bylos</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="396"/>
+ <location filename="../mainwindow.cpp" line="392"/>
<source>Space</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="423"/>
+ <location filename="../mainwindow.cpp" line="419"/>
<source>&amp;About Qt</source>
<translation>&amp;Apie Qt</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="396"/>
+ <location filename="../mainwindow.cpp" line="392"/>
<source>&amp;Play/Pause</source>
<translation>&amp;Groti/Pristabdyti</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="272"/>
+ <location filename="../mainwindow.cpp" line="268"/>
<source>All Supported Bitstreams</source>
<translation>Palaikomi bylų tipai</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="399"/>
+ <location filename="../mainwindow.cpp" line="395"/>
<source>&amp;Repeat Track</source>
<translation>&amp;Kartoti takelį</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="400"/>
+ <location filename="../mainwindow.cpp" line="396"/>
<source>&amp;Shuffle</source>
<translation>&amp;Atsitiktine tvarka</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="404"/>
+ <location filename="../mainwindow.cpp" line="400"/>
<source>R</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="405"/>
+ <location filename="../mainwindow.cpp" line="401"/>
<source>Ctrl+R</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="406"/>
+ <location filename="../mainwindow.cpp" line="402"/>
<source>S</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="398"/>
+ <location filename="../mainwindow.cpp" line="394"/>
<source>&amp;Repeat Playlist</source>
<translation>&amp;Kartoti grojaraštį</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="418"/>
+ <location filename="../mainwindow.cpp" line="414"/>
<source>Tools</source>
<translation>Įrankiai</translation>
</message>
@@ -1020,214 +1020,268 @@
<context>
<name>PlayList</name>
<message>
- <location filename="../playlist.cpp" line="165"/>
+ <location filename="../playlist.cpp" line="166"/>
<source>F</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="171"/>
+ <location filename="../playlist.cpp" line="172"/>
<source>D</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="204"/>
+ <location filename="../playlist.cpp" line="205"/>
<source>Alt+I</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="308"/>
+ <location filename="../playlist.cpp" line="309"/>
<source>Ctrl+A</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="327"/>
+ <location filename="../playlist.cpp" line="316"/>
+ <source>Ctrl+T</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="321"/>
+ <source>Ctrl+W</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="328"/>
<source>O</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="164"/>
+ <location filename="../playlist.cpp" line="165"/>
<source>&amp;Add File</source>
<translation>&amp;Pridėti bylą</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="170"/>
+ <location filename="../playlist.cpp" line="171"/>
<source>&amp;Add Directory</source>
<translation>&amp;Pridėti aplanką</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="183"/>
+ <location filename="../playlist.cpp" line="184"/>
<source>&amp;Remove Selected</source>
<translation>&amp;Pašalinti pasirinktus</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="189"/>
+ <location filename="../playlist.cpp" line="190"/>
<source>&amp;Remove All</source>
<translation>&amp;Pašalinti visus</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="195"/>
+ <location filename="../playlist.cpp" line="196"/>
<source>&amp;Remove Unselected</source>
<translation>&amp;Pašalinti NEpasirinktus</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="200"/>
+ <location filename="../playlist.cpp" line="201"/>
<source>Remove unavailable files</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="203"/>
+ <location filename="../playlist.cpp" line="204"/>
<source>&amp;View Track Details</source>
<translation>&amp;Takelio informacija</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="212"/>
+ <location filename="../playlist.cpp" line="213"/>
<source>Sort List</source>
<translation>Rūšiuoti</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="215"/>
- <location filename="../playlist.cpp" line="249"/>
+ <location filename="../playlist.cpp" line="216"/>
+ <location filename="../playlist.cpp" line="250"/>
<source>By Title</source>
<translation>Pagal dainos pavadinimą</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="219"/>
- <location filename="../playlist.cpp" line="253"/>
+ <location filename="../playlist.cpp" line="220"/>
+ <location filename="../playlist.cpp" line="254"/>
<source>By Album</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="223"/>
- <location filename="../playlist.cpp" line="257"/>
+ <location filename="../playlist.cpp" line="224"/>
+ <location filename="../playlist.cpp" line="258"/>
<source>By Artist</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="227"/>
- <location filename="../playlist.cpp" line="261"/>
+ <location filename="../playlist.cpp" line="228"/>
+ <location filename="../playlist.cpp" line="262"/>
<source>By Filename</source>
<translation>Pagal bylos pavadinimą</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="231"/>
- <location filename="../playlist.cpp" line="265"/>
+ <location filename="../playlist.cpp" line="232"/>
+ <location filename="../playlist.cpp" line="266"/>
<source>By Path + Filename</source>
<translation>Pagal kelią iki bylos</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="235"/>
- <location filename="../playlist.cpp" line="269"/>
+ <location filename="../playlist.cpp" line="236"/>
+ <location filename="../playlist.cpp" line="270"/>
<source>By Date</source>
<translation>Pagal datą</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="247"/>
+ <location filename="../playlist.cpp" line="248"/>
<source>Sort Selection</source>
<translation>Rūšiuoti pasirinktus</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="282"/>
+ <location filename="../playlist.cpp" line="283"/>
<source>Randomize List</source>
<translation>Sumaišyti sąrašą</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="283"/>
+ <location filename="../playlist.cpp" line="284"/>
<source>Reverse List</source>
<translation>Apversti</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="295"/>
+ <location filename="../playlist.cpp" line="296"/>
<source>Invert Selection</source>
<translation type="unfinished">Atšaukti pasirinkimą</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="301"/>
+ <location filename="../playlist.cpp" line="302"/>
<source>&amp;Select None</source>
<translation>&amp;Nepasirinkti nei vieno</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="302"/>
+ <location filename="../playlist.cpp" line="303"/>
<source>Shift+A</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="307"/>
+ <location filename="../playlist.cpp" line="308"/>
<source>&amp;Select All</source>
<translation>&amp;Pasirinkti visus</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="314"/>
+ <location filename="../playlist.cpp" line="315"/>
<source>&amp;New List</source>
<translation>&amp;Naujas sąrašas</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="315"/>
- <source>Shift+N</source>
+ <location filename="../playlist.cpp" line="340"/>
+ <source>&amp;Select Next Playlist</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="319"/>
- <source>&amp;Delete List</source>
+ <location filename="../playlist.cpp" line="341"/>
+ <source>Ctrl+PgDown</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="346"/>
+ <source>&amp;Select Previous Playlist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="347"/>
+ <source>Ctrl+PgUp</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="352"/>
+ <source>&amp;Show Playlists</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="353"/>
+ <source>P</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../playlist.cpp" line="320"/>
- <source>Shift+D</source>
+ <source>&amp;Delete List</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="326"/>
+ <location filename="../playlist.cpp" line="327"/>
<source>&amp;Load List</source>
<translation type="unfinished">&amp;Įkelti sąrašą</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="332"/>
+ <location filename="../playlist.cpp" line="333"/>
<source>&amp;Save List</source>
<translation>&amp;Išsaugoti sąrašą</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="333"/>
+ <location filename="../playlist.cpp" line="334"/>
<source>Shift+S</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="184"/>
+ <location filename="../playlist.cpp" line="185"/>
<source>Del</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="176"/>
+ <location filename="../playlist.cpp" line="177"/>
<source>&amp;Add Url</source>
<translation>&amp;Pridėti interneto adresą</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="177"/>
+ <location filename="../playlist.cpp" line="178"/>
<source>U</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="239"/>
- <location filename="../playlist.cpp" line="273"/>
+ <location filename="../playlist.cpp" line="240"/>
+ <location filename="../playlist.cpp" line="274"/>
<source>By Track Number</source>
<translation>Pagal takelio numerį</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="291"/>
+ <location filename="../playlist.cpp" line="292"/>
<source>&amp;Queue</source>
<translation>&amp;Į eilę</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="291"/>
+ <location filename="../playlist.cpp" line="292"/>
<source>Q</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="288"/>
+ <location filename="../playlist.cpp" line="289"/>
<source>Actions</source>
<translation>Veiksmai</translation>
</message>
</context>
<context>
+ <name>PlayListBrowser</name>
+ <message>
+ <location filename="../forms/playlistbrowser.ui" line="14"/>
+ <source>Playlist Browser</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/playlistbrowser.ui" line="45"/>
+ <source>New</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/playlistbrowser.ui" line="52"/>
+ <location filename="../playlistbrowser.cpp" line="36"/>
+ <source>Delete</source>
+ <translation type="unfinished">Ištrinti</translation>
+ </message>
+ <message>
+ <location filename="../playlistbrowser.cpp" line="35"/>
+ <source>Rename</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>PresetEditor</name>
<message>
<location filename="../forms/preseteditor.ui" line="13"/>
diff --git a/src/ui/translations/qmmp_pl_PL.ts b/src/ui/translations/qmmp_pl_PL.ts
index a8c1791b8..f2b45c237 100644
--- a/src/ui/translations/qmmp_pl_PL.ts
+++ b/src/ui/translations/qmmp_pl_PL.ts
@@ -851,168 +851,168 @@
<context>
<name>MainWindow</name>
<message>
- <location filename="../mainwindow.cpp" line="266"/>
+ <location filename="../mainwindow.cpp" line="262"/>
<source>Choose a directory</source>
<translation>Wybierz katalog</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="277"/>
+ <location filename="../mainwindow.cpp" line="273"/>
<source>Select one or more files to open</source>
<translation>Wybierz jeden lub więcej plików do otwarcia</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="391"/>
+ <location filename="../mainwindow.cpp" line="387"/>
<source>&amp;Play</source>
<translation>&amp;Odtwarzaj</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="391"/>
+ <location filename="../mainwindow.cpp" line="387"/>
<source>X</source>
<translation>X</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="392"/>
+ <location filename="../mainwindow.cpp" line="388"/>
<source>&amp;Pause</source>
<translation>&amp;Wstrzymaj</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="392"/>
+ <location filename="../mainwindow.cpp" line="388"/>
<source>C</source>
<translation>C</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="393"/>
+ <location filename="../mainwindow.cpp" line="389"/>
<source>&amp;Stop</source>
<translation>&amp;Zatrzymaj</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="393"/>
+ <location filename="../mainwindow.cpp" line="389"/>
<source>V</source>
<translation>V</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="394"/>
+ <location filename="../mainwindow.cpp" line="390"/>
<source>&amp;Previous</source>
<translation>&amp;Poprzedni</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="394"/>
+ <location filename="../mainwindow.cpp" line="390"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="395"/>
+ <location filename="../mainwindow.cpp" line="391"/>
<source>&amp;Next</source>
<translation>&amp;Następny</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="395"/>
+ <location filename="../mainwindow.cpp" line="391"/>
<source>B</source>
<translation>B</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="414"/>
+ <location filename="../mainwindow.cpp" line="410"/>
<source>&amp;Jump To File</source>
<translation>&amp;Skocz do pliku</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="414"/>
+ <location filename="../mainwindow.cpp" line="410"/>
<source>J</source>
<translation>J</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="420"/>
+ <location filename="../mainwindow.cpp" line="416"/>
<source>&amp;Settings</source>
<translation>&amp;Ustawienia</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="420"/>
+ <location filename="../mainwindow.cpp" line="416"/>
<source>Ctrl+P</source>
<translation>Ctrl+P</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="426"/>
+ <location filename="../mainwindow.cpp" line="422"/>
<source>&amp;Exit</source>
<translation>&amp;Wyjście</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="426"/>
+ <location filename="../mainwindow.cpp" line="422"/>
<source>Ctrl+Q</source>
<translation>Ctrl+Q</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="462"/>
+ <location filename="../mainwindow.cpp" line="458"/>
<source>Open Playlist</source>
<translation>Otwórz listę odtwarzania</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="487"/>
+ <location filename="../mainwindow.cpp" line="483"/>
<source>Save Playlist</source>
<translation>Zapisz listę odtwarzania</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="422"/>
+ <location filename="../mainwindow.cpp" line="418"/>
<source>&amp;About</source>
<translation>&amp;O programie</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="460"/>
- <location filename="../mainwindow.cpp" line="486"/>
+ <location filename="../mainwindow.cpp" line="456"/>
+ <location filename="../mainwindow.cpp" line="482"/>
<source>Playlist Files</source>
<translation>Pliki listy odtwarzania</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="396"/>
+ <location filename="../mainwindow.cpp" line="392"/>
<source>Space</source>
<translation></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="423"/>
+ <location filename="../mainwindow.cpp" line="419"/>
<source>&amp;About Qt</source>
<translation>&amp;O Qt</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="396"/>
+ <location filename="../mainwindow.cpp" line="392"/>
<source>&amp;Play/Pause</source>
<translation>&amp;Odtwarzaj/Wstrzymaj</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="272"/>
+ <location filename="../mainwindow.cpp" line="268"/>
<source>All Supported Bitstreams</source>
<translation>Wszystkie wspierane formaty</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="399"/>
+ <location filename="../mainwindow.cpp" line="395"/>
<source>&amp;Repeat Track</source>
<translation>&amp;Powtórz utwór</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="400"/>
+ <location filename="../mainwindow.cpp" line="396"/>
<source>&amp;Shuffle</source>
<translation>&amp;Losowo</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="404"/>
+ <location filename="../mainwindow.cpp" line="400"/>
<source>R</source>
<translation></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="405"/>
+ <location filename="../mainwindow.cpp" line="401"/>
<source>Ctrl+R</source>
<translation></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="406"/>
+ <location filename="../mainwindow.cpp" line="402"/>
<source>S</source>
<translation></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="398"/>
+ <location filename="../mainwindow.cpp" line="394"/>
<source>&amp;Repeat Playlist</source>
<translation>Powtó&amp;rz listę odtwarzania</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="418"/>
+ <location filename="../mainwindow.cpp" line="414"/>
<source>Tools</source>
<translation>Narzędzia</translation>
</message>
@@ -1020,214 +1020,268 @@
<context>
<name>PlayList</name>
<message>
- <location filename="../playlist.cpp" line="165"/>
+ <location filename="../playlist.cpp" line="166"/>
<source>F</source>
<translation>F</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="171"/>
+ <location filename="../playlist.cpp" line="172"/>
<source>D</source>
<translation>D</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="204"/>
+ <location filename="../playlist.cpp" line="205"/>
<source>Alt+I</source>
<translation>Alt+I</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="308"/>
+ <location filename="../playlist.cpp" line="309"/>
<source>Ctrl+A</source>
<translation>Ctrl+A</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="327"/>
+ <location filename="../playlist.cpp" line="316"/>
+ <source>Ctrl+T</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="321"/>
+ <source>Ctrl+W</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="328"/>
<source>O</source>
<translation>O</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="164"/>
+ <location filename="../playlist.cpp" line="165"/>
<source>&amp;Add File</source>
<translation>&amp;Dodaj plik</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="170"/>
+ <location filename="../playlist.cpp" line="171"/>
<source>&amp;Add Directory</source>
<translation>Dodaj &amp;katalog</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="183"/>
+ <location filename="../playlist.cpp" line="184"/>
<source>&amp;Remove Selected</source>
<translation>&amp;Usuń zaznaczone</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="189"/>
+ <location filename="../playlist.cpp" line="190"/>
<source>&amp;Remove All</source>
<translation>Usuń &amp;wszystkie</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="195"/>
+ <location filename="../playlist.cpp" line="196"/>
<source>&amp;Remove Unselected</source>
<translation>Usuń &amp;niezaznaczone</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="200"/>
+ <location filename="../playlist.cpp" line="201"/>
<source>Remove unavailable files</source>
<translation>Usuń niedostępne pliki</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="203"/>
+ <location filename="../playlist.cpp" line="204"/>
<source>&amp;View Track Details</source>
<translation>&amp;Pokaż informacje o pliku</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="212"/>
+ <location filename="../playlist.cpp" line="213"/>
<source>Sort List</source>
<translation>Sortuj listę</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="215"/>
- <location filename="../playlist.cpp" line="249"/>
+ <location filename="../playlist.cpp" line="216"/>
+ <location filename="../playlist.cpp" line="250"/>
<source>By Title</source>
<translation>Według nazwy</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="219"/>
- <location filename="../playlist.cpp" line="253"/>
+ <location filename="../playlist.cpp" line="220"/>
+ <location filename="../playlist.cpp" line="254"/>
<source>By Album</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="223"/>
- <location filename="../playlist.cpp" line="257"/>
+ <location filename="../playlist.cpp" line="224"/>
+ <location filename="../playlist.cpp" line="258"/>
<source>By Artist</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="227"/>
- <location filename="../playlist.cpp" line="261"/>
+ <location filename="../playlist.cpp" line="228"/>
+ <location filename="../playlist.cpp" line="262"/>
<source>By Filename</source>
<translation>Według nazwy pliku</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="231"/>
- <location filename="../playlist.cpp" line="265"/>
+ <location filename="../playlist.cpp" line="232"/>
+ <location filename="../playlist.cpp" line="266"/>
<source>By Path + Filename</source>
<translation>Według Ścieżki + Nazwy pliku</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="235"/>
- <location filename="../playlist.cpp" line="269"/>
+ <location filename="../playlist.cpp" line="236"/>
+ <location filename="../playlist.cpp" line="270"/>
<source>By Date</source>
<translation>Wg Daty</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="247"/>
+ <location filename="../playlist.cpp" line="248"/>
<source>Sort Selection</source>
<translation>Sortuj zaznaczone</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="282"/>
+ <location filename="../playlist.cpp" line="283"/>
<source>Randomize List</source>
<translation>Tasuj listę</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="283"/>
+ <location filename="../playlist.cpp" line="284"/>
<source>Reverse List</source>
<translation>Odwróć listę</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="295"/>
+ <location filename="../playlist.cpp" line="296"/>
<source>Invert Selection</source>
<translation>Odwróć zaznaczenie</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="301"/>
+ <location filename="../playlist.cpp" line="302"/>
<source>&amp;Select None</source>
<translation>&amp;Odznacz wszystkie</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="302"/>
+ <location filename="../playlist.cpp" line="303"/>
<source>Shift+A</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="307"/>
+ <location filename="../playlist.cpp" line="308"/>
<source>&amp;Select All</source>
<translation>&amp;Zaznacz wszystkie</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="314"/>
+ <location filename="../playlist.cpp" line="315"/>
<source>&amp;New List</source>
<translation>&amp;Nowa lista</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="315"/>
- <source>Shift+N</source>
- <translation>Shift+N</translation>
+ <location filename="../playlist.cpp" line="340"/>
+ <source>&amp;Select Next Playlist</source>
+ <translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="319"/>
- <source>&amp;Delete List</source>
+ <location filename="../playlist.cpp" line="341"/>
+ <source>Ctrl+PgDown</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="346"/>
+ <source>&amp;Select Previous Playlist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="347"/>
+ <source>Ctrl+PgUp</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="352"/>
+ <source>&amp;Show Playlists</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="353"/>
+ <source>P</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../playlist.cpp" line="320"/>
- <source>Shift+D</source>
+ <source>&amp;Delete List</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="326"/>
+ <location filename="../playlist.cpp" line="327"/>
<source>&amp;Load List</source>
<translation>&amp;Ładuj listę</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="332"/>
+ <location filename="../playlist.cpp" line="333"/>
<source>&amp;Save List</source>
<translation>&amp;Zapisz listę</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="333"/>
+ <location filename="../playlist.cpp" line="334"/>
<source>Shift+S</source>
<translation>Shift+S</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="184"/>
+ <location filename="../playlist.cpp" line="185"/>
<source>Del</source>
<translation>Del</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="176"/>
+ <location filename="../playlist.cpp" line="177"/>
<source>&amp;Add Url</source>
<translation>Dod&amp;aj Url</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="177"/>
+ <location filename="../playlist.cpp" line="178"/>
<source>U</source>
<translation>U</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="239"/>
- <location filename="../playlist.cpp" line="273"/>
+ <location filename="../playlist.cpp" line="240"/>
+ <location filename="../playlist.cpp" line="274"/>
<source>By Track Number</source>
<translation>Wg numeru utworu</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="291"/>
+ <location filename="../playlist.cpp" line="292"/>
<source>&amp;Queue</source>
<translation>&amp;Kolejkuj</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="291"/>
+ <location filename="../playlist.cpp" line="292"/>
<source>Q</source>
<translation>Q</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="288"/>
+ <location filename="../playlist.cpp" line="289"/>
<source>Actions</source>
<translation>Akcje</translation>
</message>
</context>
<context>
+ <name>PlayListBrowser</name>
+ <message>
+ <location filename="../forms/playlistbrowser.ui" line="14"/>
+ <source>Playlist Browser</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/playlistbrowser.ui" line="45"/>
+ <source>New</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/playlistbrowser.ui" line="52"/>
+ <location filename="../playlistbrowser.cpp" line="36"/>
+ <source>Delete</source>
+ <translation type="unfinished">Usuń</translation>
+ </message>
+ <message>
+ <location filename="../playlistbrowser.cpp" line="35"/>
+ <source>Rename</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>PresetEditor</name>
<message>
<location filename="../forms/preseteditor.ui" line="13"/>
diff --git a/src/ui/translations/qmmp_pt_BR.ts b/src/ui/translations/qmmp_pt_BR.ts
index b0585a8ce..abf862f4f 100644
--- a/src/ui/translations/qmmp_pt_BR.ts
+++ b/src/ui/translations/qmmp_pt_BR.ts
@@ -851,168 +851,168 @@
<context>
<name>MainWindow</name>
<message>
- <location filename="../mainwindow.cpp" line="266"/>
+ <location filename="../mainwindow.cpp" line="262"/>
<source>Choose a directory</source>
<translation type="unfinished">Escolher o diretorio</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="277"/>
+ <location filename="../mainwindow.cpp" line="273"/>
<source>Select one or more files to open</source>
<translation type="unfinished">Selecionar um ou mais arquivos</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="391"/>
+ <location filename="../mainwindow.cpp" line="387"/>
<source>&amp;Play</source>
<translation type="unfinished">Tocar</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="391"/>
+ <location filename="../mainwindow.cpp" line="387"/>
<source>X</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="392"/>
+ <location filename="../mainwindow.cpp" line="388"/>
<source>&amp;Pause</source>
<translation type="unfinished">Pausar</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="392"/>
+ <location filename="../mainwindow.cpp" line="388"/>
<source>C</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="393"/>
+ <location filename="../mainwindow.cpp" line="389"/>
<source>&amp;Stop</source>
<translation type="unfinished">Parar</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="393"/>
+ <location filename="../mainwindow.cpp" line="389"/>
<source>V</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="394"/>
+ <location filename="../mainwindow.cpp" line="390"/>
<source>&amp;Previous</source>
<translation type="unfinished">Anterior</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="394"/>
+ <location filename="../mainwindow.cpp" line="390"/>
<source>Z</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="395"/>
+ <location filename="../mainwindow.cpp" line="391"/>
<source>&amp;Next</source>
<translation type="unfinished">Próximo</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="395"/>
+ <location filename="../mainwindow.cpp" line="391"/>
<source>B</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="414"/>
+ <location filename="../mainwindow.cpp" line="410"/>
<source>&amp;Jump To File</source>
<translation type="unfinished">Pular para arquivo</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="414"/>
+ <location filename="../mainwindow.cpp" line="410"/>
<source>J</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="420"/>
+ <location filename="../mainwindow.cpp" line="416"/>
<source>&amp;Settings</source>
<translation type="unfinished">Configurações</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="420"/>
+ <location filename="../mainwindow.cpp" line="416"/>
<source>Ctrl+P</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="426"/>
+ <location filename="../mainwindow.cpp" line="422"/>
<source>&amp;Exit</source>
<translation type="unfinished">Sair</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="426"/>
+ <location filename="../mainwindow.cpp" line="422"/>
<source>Ctrl+Q</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="462"/>
+ <location filename="../mainwindow.cpp" line="458"/>
<source>Open Playlist</source>
<translation type="unfinished">Abrir Playlist</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="487"/>
+ <location filename="../mainwindow.cpp" line="483"/>
<source>Save Playlist</source>
<translation type="unfinished">Salvar Playlist</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="422"/>
+ <location filename="../mainwindow.cpp" line="418"/>
<source>&amp;About</source>
<translation type="unfinished">&amp;Sobre</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="460"/>
- <location filename="../mainwindow.cpp" line="486"/>
+ <location filename="../mainwindow.cpp" line="456"/>
+ <location filename="../mainwindow.cpp" line="482"/>
<source>Playlist Files</source>
<translation type="unfinished">ФArquivos de lista de músicas</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="396"/>
+ <location filename="../mainwindow.cpp" line="392"/>
<source>Space</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="423"/>
+ <location filename="../mainwindow.cpp" line="419"/>
<source>&amp;About Qt</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="396"/>
+ <location filename="../mainwindow.cpp" line="392"/>
<source>&amp;Play/Pause</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="272"/>
+ <location filename="../mainwindow.cpp" line="268"/>
<source>All Supported Bitstreams</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="399"/>
+ <location filename="../mainwindow.cpp" line="395"/>
<source>&amp;Repeat Track</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="400"/>
+ <location filename="../mainwindow.cpp" line="396"/>
<source>&amp;Shuffle</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="404"/>
+ <location filename="../mainwindow.cpp" line="400"/>
<source>R</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="405"/>
+ <location filename="../mainwindow.cpp" line="401"/>
<source>Ctrl+R</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="406"/>
+ <location filename="../mainwindow.cpp" line="402"/>
<source>S</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="398"/>
+ <location filename="../mainwindow.cpp" line="394"/>
<source>&amp;Repeat Playlist</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="418"/>
+ <location filename="../mainwindow.cpp" line="414"/>
<source>Tools</source>
<translation type="unfinished"></translation>
</message>
@@ -1020,214 +1020,268 @@
<context>
<name>PlayList</name>
<message>
- <location filename="../playlist.cpp" line="165"/>
+ <location filename="../playlist.cpp" line="166"/>
<source>F</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="171"/>
+ <location filename="../playlist.cpp" line="172"/>
<source>D</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="204"/>
+ <location filename="../playlist.cpp" line="205"/>
<source>Alt+I</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="308"/>
+ <location filename="../playlist.cpp" line="309"/>
<source>Ctrl+A</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="327"/>
+ <location filename="../playlist.cpp" line="316"/>
+ <source>Ctrl+T</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="321"/>
+ <source>Ctrl+W</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="328"/>
<source>O</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="164"/>
+ <location filename="../playlist.cpp" line="165"/>
<source>&amp;Add File</source>
<translation type="unfinished">&amp;Adicionar arquivo</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="170"/>
+ <location filename="../playlist.cpp" line="171"/>
<source>&amp;Add Directory</source>
<translation type="unfinished">&amp;Adicionar Diretorio</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="183"/>
+ <location filename="../playlist.cpp" line="184"/>
<source>&amp;Remove Selected</source>
<translation type="unfinished">&amp;Remover selecionadas</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="189"/>
+ <location filename="../playlist.cpp" line="190"/>
<source>&amp;Remove All</source>
<translation type="unfinished">&amp;Remover tudo</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="195"/>
+ <location filename="../playlist.cpp" line="196"/>
<source>&amp;Remove Unselected</source>
<translation type="unfinished">&amp;Remover não selecionadas</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="200"/>
+ <location filename="../playlist.cpp" line="201"/>
<source>Remove unavailable files</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="203"/>
+ <location filename="../playlist.cpp" line="204"/>
<source>&amp;View Track Details</source>
<translation type="unfinished">&amp;Ver detalhes da Faixa</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="212"/>
+ <location filename="../playlist.cpp" line="213"/>
<source>Sort List</source>
<translation type="unfinished">Classificar lista</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="215"/>
- <location filename="../playlist.cpp" line="249"/>
+ <location filename="../playlist.cpp" line="216"/>
+ <location filename="../playlist.cpp" line="250"/>
<source>By Title</source>
<translation type="unfinished">Por Título</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="219"/>
- <location filename="../playlist.cpp" line="253"/>
+ <location filename="../playlist.cpp" line="220"/>
+ <location filename="../playlist.cpp" line="254"/>
<source>By Album</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="223"/>
- <location filename="../playlist.cpp" line="257"/>
+ <location filename="../playlist.cpp" line="224"/>
+ <location filename="../playlist.cpp" line="258"/>
<source>By Artist</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="227"/>
- <location filename="../playlist.cpp" line="261"/>
+ <location filename="../playlist.cpp" line="228"/>
+ <location filename="../playlist.cpp" line="262"/>
<source>By Filename</source>
<translation type="unfinished">Por Nome</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="231"/>
- <location filename="../playlist.cpp" line="265"/>
+ <location filename="../playlist.cpp" line="232"/>
+ <location filename="../playlist.cpp" line="266"/>
<source>By Path + Filename</source>
<translation type="unfinished">Por Dirertório + Nome</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="235"/>
- <location filename="../playlist.cpp" line="269"/>
+ <location filename="../playlist.cpp" line="236"/>
+ <location filename="../playlist.cpp" line="270"/>
<source>By Date</source>
<translation type="unfinished">Por Data</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="247"/>
+ <location filename="../playlist.cpp" line="248"/>
<source>Sort Selection</source>
<translation type="unfinished">Classificar por Seleção</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="282"/>
+ <location filename="../playlist.cpp" line="283"/>
<source>Randomize List</source>
<translation type="unfinished">Lista Eleatória</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="283"/>
+ <location filename="../playlist.cpp" line="284"/>
<source>Reverse List</source>
<translation type="unfinished">Lista Revertida</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="295"/>
+ <location filename="../playlist.cpp" line="296"/>
<source>Invert Selection</source>
<translation type="unfinished">Inverter Seleção</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="301"/>
+ <location filename="../playlist.cpp" line="302"/>
<source>&amp;Select None</source>
<translation type="unfinished">&amp;Nenhum selecionado</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="302"/>
+ <location filename="../playlist.cpp" line="303"/>
<source>Shift+A</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="307"/>
+ <location filename="../playlist.cpp" line="308"/>
<source>&amp;Select All</source>
<translation type="unfinished">&amp;Selecionar tudo</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="314"/>
+ <location filename="../playlist.cpp" line="315"/>
<source>&amp;New List</source>
<translation type="unfinished">&amp;Nova lista</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="315"/>
- <source>Shift+N</source>
+ <location filename="../playlist.cpp" line="340"/>
+ <source>&amp;Select Next Playlist</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="319"/>
- <source>&amp;Delete List</source>
+ <location filename="../playlist.cpp" line="341"/>
+ <source>Ctrl+PgDown</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="346"/>
+ <source>&amp;Select Previous Playlist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="347"/>
+ <source>Ctrl+PgUp</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="352"/>
+ <source>&amp;Show Playlists</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="353"/>
+ <source>P</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../playlist.cpp" line="320"/>
- <source>Shift+D</source>
+ <source>&amp;Delete List</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="326"/>
+ <location filename="../playlist.cpp" line="327"/>
<source>&amp;Load List</source>
<translation type="unfinished">&amp;Carregar lista</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="332"/>
+ <location filename="../playlist.cpp" line="333"/>
<source>&amp;Save List</source>
<translation type="unfinished">&amp;Salvar lista</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="333"/>
+ <location filename="../playlist.cpp" line="334"/>
<source>Shift+S</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="184"/>
+ <location filename="../playlist.cpp" line="185"/>
<source>Del</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="176"/>
+ <location filename="../playlist.cpp" line="177"/>
<source>&amp;Add Url</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="177"/>
+ <location filename="../playlist.cpp" line="178"/>
<source>U</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="239"/>
- <location filename="../playlist.cpp" line="273"/>
+ <location filename="../playlist.cpp" line="240"/>
+ <location filename="../playlist.cpp" line="274"/>
<source>By Track Number</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="291"/>
+ <location filename="../playlist.cpp" line="292"/>
<source>&amp;Queue</source>
<translation type="unfinished">Na fila</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="291"/>
+ <location filename="../playlist.cpp" line="292"/>
<source>Q</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="288"/>
+ <location filename="../playlist.cpp" line="289"/>
<source>Actions</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
+ <name>PlayListBrowser</name>
+ <message>
+ <location filename="../forms/playlistbrowser.ui" line="14"/>
+ <source>Playlist Browser</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/playlistbrowser.ui" line="45"/>
+ <source>New</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/playlistbrowser.ui" line="52"/>
+ <location filename="../playlistbrowser.cpp" line="36"/>
+ <source>Delete</source>
+ <translation type="unfinished">Remover</translation>
+ </message>
+ <message>
+ <location filename="../playlistbrowser.cpp" line="35"/>
+ <source>Rename</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>PresetEditor</name>
<message>
<location filename="../forms/preseteditor.ui" line="13"/>
diff --git a/src/ui/translations/qmmp_ru.ts b/src/ui/translations/qmmp_ru.ts
index ac3bcbd2f..95aa5730a 100644
--- a/src/ui/translations/qmmp_ru.ts
+++ b/src/ui/translations/qmmp_ru.ts
@@ -851,168 +851,168 @@
<context>
<name>MainWindow</name>
<message>
- <location filename="../mainwindow.cpp" line="266"/>
+ <location filename="../mainwindow.cpp" line="262"/>
<source>Choose a directory</source>
<translation>Выберите директорию</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="277"/>
+ <location filename="../mainwindow.cpp" line="273"/>
<source>Select one or more files to open</source>
<translation>Выберите один или несколько файлов</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="391"/>
+ <location filename="../mainwindow.cpp" line="387"/>
<source>&amp;Play</source>
<translation>&amp;Воспроизвести</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="391"/>
+ <location filename="../mainwindow.cpp" line="387"/>
<source>X</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="392"/>
+ <location filename="../mainwindow.cpp" line="388"/>
<source>&amp;Pause</source>
<translation>&amp;Приостановить</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="392"/>
+ <location filename="../mainwindow.cpp" line="388"/>
<source>C</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="393"/>
+ <location filename="../mainwindow.cpp" line="389"/>
<source>&amp;Stop</source>
<translation>&amp;Стоп</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="393"/>
+ <location filename="../mainwindow.cpp" line="389"/>
<source>V</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="394"/>
+ <location filename="../mainwindow.cpp" line="390"/>
<source>&amp;Previous</source>
<translation>&amp;Предыдущий фрагмент</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="394"/>
+ <location filename="../mainwindow.cpp" line="390"/>
<source>Z</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="395"/>
+ <location filename="../mainwindow.cpp" line="391"/>
<source>&amp;Next</source>
<translation>&amp;Следующий фрагмент</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="395"/>
+ <location filename="../mainwindow.cpp" line="391"/>
<source>B</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="414"/>
+ <location filename="../mainwindow.cpp" line="410"/>
<source>&amp;Jump To File</source>
<translation>&amp;Перейти к файлу</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="414"/>
+ <location filename="../mainwindow.cpp" line="410"/>
<source>J</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="420"/>
+ <location filename="../mainwindow.cpp" line="416"/>
<source>&amp;Settings</source>
<translation>&amp;Настройки</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="420"/>
+ <location filename="../mainwindow.cpp" line="416"/>
<source>Ctrl+P</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="426"/>
+ <location filename="../mainwindow.cpp" line="422"/>
<source>&amp;Exit</source>
<translation>&amp;Выход</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="426"/>
+ <location filename="../mainwindow.cpp" line="422"/>
<source>Ctrl+Q</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="462"/>
+ <location filename="../mainwindow.cpp" line="458"/>
<source>Open Playlist</source>
<translation>Открыть список</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="487"/>
+ <location filename="../mainwindow.cpp" line="483"/>
<source>Save Playlist</source>
<translation>Сохранить список</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="422"/>
+ <location filename="../mainwindow.cpp" line="418"/>
<source>&amp;About</source>
<translation>&amp;О программе</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="460"/>
- <location filename="../mainwindow.cpp" line="486"/>
+ <location filename="../mainwindow.cpp" line="456"/>
+ <location filename="../mainwindow.cpp" line="482"/>
<source>Playlist Files</source>
<translation>Файлы списков</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="396"/>
+ <location filename="../mainwindow.cpp" line="392"/>
<source>Space</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="423"/>
+ <location filename="../mainwindow.cpp" line="419"/>
<source>&amp;About Qt</source>
<translation>&amp;О библиотеке Qt</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="396"/>
+ <location filename="../mainwindow.cpp" line="392"/>
<source>&amp;Play/Pause</source>
<translation>&amp;Воспр/приост</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="272"/>
+ <location filename="../mainwindow.cpp" line="268"/>
<source>All Supported Bitstreams</source>
<translation>Все форматы</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="399"/>
+ <location filename="../mainwindow.cpp" line="395"/>
<source>&amp;Repeat Track</source>
<translation>&amp;Повторять трек</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="400"/>
+ <location filename="../mainwindow.cpp" line="396"/>
<source>&amp;Shuffle</source>
<translation>&amp;В случайном порядке</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="404"/>
+ <location filename="../mainwindow.cpp" line="400"/>
<source>R</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="405"/>
+ <location filename="../mainwindow.cpp" line="401"/>
<source>Ctrl+R</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="406"/>
+ <location filename="../mainwindow.cpp" line="402"/>
<source>S</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="398"/>
+ <location filename="../mainwindow.cpp" line="394"/>
<source>&amp;Repeat Playlist</source>
<translation>&amp;Повторять список</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="418"/>
+ <location filename="../mainwindow.cpp" line="414"/>
<source>Tools</source>
<translation>Сервис</translation>
</message>
@@ -1020,214 +1020,268 @@
<context>
<name>PlayList</name>
<message>
- <location filename="../playlist.cpp" line="165"/>
+ <location filename="../playlist.cpp" line="166"/>
<source>F</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="171"/>
+ <location filename="../playlist.cpp" line="172"/>
<source>D</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="204"/>
+ <location filename="../playlist.cpp" line="205"/>
<source>Alt+I</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="308"/>
+ <location filename="../playlist.cpp" line="309"/>
<source>Ctrl+A</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="327"/>
+ <location filename="../playlist.cpp" line="316"/>
+ <source>Ctrl+T</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="321"/>
+ <source>Ctrl+W</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="328"/>
<source>O</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="164"/>
+ <location filename="../playlist.cpp" line="165"/>
<source>&amp;Add File</source>
<translation>&amp;Добавить файл</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="170"/>
+ <location filename="../playlist.cpp" line="171"/>
<source>&amp;Add Directory</source>
<translation>&amp;Добавить директорию</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="183"/>
+ <location filename="../playlist.cpp" line="184"/>
<source>&amp;Remove Selected</source>
<translation>&amp;Удалить выделенное</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="189"/>
+ <location filename="../playlist.cpp" line="190"/>
<source>&amp;Remove All</source>
<translation>&amp;Удалить всё</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="195"/>
+ <location filename="../playlist.cpp" line="196"/>
<source>&amp;Remove Unselected</source>
<translation>&amp;Удалить невыделенное</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="200"/>
+ <location filename="../playlist.cpp" line="201"/>
<source>Remove unavailable files</source>
<translation>Удалить недоступные файлы</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="203"/>
+ <location filename="../playlist.cpp" line="204"/>
<source>&amp;View Track Details</source>
<translation>&amp;Информация</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="212"/>
+ <location filename="../playlist.cpp" line="213"/>
<source>Sort List</source>
<translation>Сортировать</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="215"/>
- <location filename="../playlist.cpp" line="249"/>
+ <location filename="../playlist.cpp" line="216"/>
+ <location filename="../playlist.cpp" line="250"/>
<source>By Title</source>
<translation>По названию</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="219"/>
- <location filename="../playlist.cpp" line="253"/>
+ <location filename="../playlist.cpp" line="220"/>
+ <location filename="../playlist.cpp" line="254"/>
<source>By Album</source>
<translation>По альбому</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="223"/>
- <location filename="../playlist.cpp" line="257"/>
+ <location filename="../playlist.cpp" line="224"/>
+ <location filename="../playlist.cpp" line="258"/>
<source>By Artist</source>
<translation>По исполнителю</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="227"/>
- <location filename="../playlist.cpp" line="261"/>
+ <location filename="../playlist.cpp" line="228"/>
+ <location filename="../playlist.cpp" line="262"/>
<source>By Filename</source>
<translation>По имени файла</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="231"/>
- <location filename="../playlist.cpp" line="265"/>
+ <location filename="../playlist.cpp" line="232"/>
+ <location filename="../playlist.cpp" line="266"/>
<source>By Path + Filename</source>
<translation>По пути и файлу</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="235"/>
- <location filename="../playlist.cpp" line="269"/>
+ <location filename="../playlist.cpp" line="236"/>
+ <location filename="../playlist.cpp" line="270"/>
<source>By Date</source>
<translation>По дате</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="247"/>
+ <location filename="../playlist.cpp" line="248"/>
<source>Sort Selection</source>
<translation>Сортировать выделенное</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="282"/>
+ <location filename="../playlist.cpp" line="283"/>
<source>Randomize List</source>
<translation>Перемешать</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="283"/>
+ <location filename="../playlist.cpp" line="284"/>
<source>Reverse List</source>
<translation>Перевернуть</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="295"/>
+ <location filename="../playlist.cpp" line="296"/>
<source>Invert Selection</source>
<translation>Инвертировать выделение</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="301"/>
+ <location filename="../playlist.cpp" line="302"/>
<source>&amp;Select None</source>
<translation>&amp;Снять выделение</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="302"/>
+ <location filename="../playlist.cpp" line="303"/>
<source>Shift+A</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="307"/>
+ <location filename="../playlist.cpp" line="308"/>
<source>&amp;Select All</source>
<translation>&amp;Выделить всё</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="314"/>
+ <location filename="../playlist.cpp" line="315"/>
<source>&amp;New List</source>
<translation>&amp;Новый лист</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="315"/>
- <source>Shift+N</source>
+ <location filename="../playlist.cpp" line="340"/>
+ <source>&amp;Select Next Playlist</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="319"/>
- <source>&amp;Delete List</source>
+ <location filename="../playlist.cpp" line="341"/>
+ <source>Ctrl+PgDown</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="346"/>
+ <source>&amp;Select Previous Playlist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="347"/>
+ <source>Ctrl+PgUp</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="352"/>
+ <source>&amp;Show Playlists</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="353"/>
+ <source>P</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../playlist.cpp" line="320"/>
- <source>Shift+D</source>
+ <source>&amp;Delete List</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="326"/>
+ <location filename="../playlist.cpp" line="327"/>
<source>&amp;Load List</source>
<translation>&amp;Загрузить лист</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="332"/>
+ <location filename="../playlist.cpp" line="333"/>
<source>&amp;Save List</source>
<translation>&amp;Сохранить лист</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="333"/>
+ <location filename="../playlist.cpp" line="334"/>
<source>Shift+S</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="184"/>
+ <location filename="../playlist.cpp" line="185"/>
<source>Del</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="176"/>
+ <location filename="../playlist.cpp" line="177"/>
<source>&amp;Add Url</source>
<translation>&amp;Добавить URL</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="177"/>
+ <location filename="../playlist.cpp" line="178"/>
<source>U</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="239"/>
- <location filename="../playlist.cpp" line="273"/>
+ <location filename="../playlist.cpp" line="240"/>
+ <location filename="../playlist.cpp" line="274"/>
<source>By Track Number</source>
<translation>По номеру трека</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="291"/>
+ <location filename="../playlist.cpp" line="292"/>
<source>&amp;Queue</source>
<translation>&amp;В очередь</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="291"/>
+ <location filename="../playlist.cpp" line="292"/>
<source>Q</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="288"/>
+ <location filename="../playlist.cpp" line="289"/>
<source>Actions</source>
<translation>Действия</translation>
</message>
</context>
<context>
+ <name>PlayListBrowser</name>
+ <message>
+ <location filename="../forms/playlistbrowser.ui" line="14"/>
+ <source>Playlist Browser</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/playlistbrowser.ui" line="45"/>
+ <source>New</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/playlistbrowser.ui" line="52"/>
+ <location filename="../playlistbrowser.cpp" line="36"/>
+ <source>Delete</source>
+ <translation type="unfinished">Удалить</translation>
+ </message>
+ <message>
+ <location filename="../playlistbrowser.cpp" line="35"/>
+ <source>Rename</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>PresetEditor</name>
<message>
<location filename="../forms/preseteditor.ui" line="13"/>
diff --git a/src/ui/translations/qmmp_tr.ts b/src/ui/translations/qmmp_tr.ts
index 58cfdc258..774e63ab3 100644
--- a/src/ui/translations/qmmp_tr.ts
+++ b/src/ui/translations/qmmp_tr.ts
@@ -851,168 +851,168 @@
<context>
<name>MainWindow</name>
<message>
- <location filename="../mainwindow.cpp" line="266"/>
+ <location filename="../mainwindow.cpp" line="262"/>
<source>Choose a directory</source>
<translation>Bir dizin seçin</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="277"/>
+ <location filename="../mainwindow.cpp" line="273"/>
<source>Select one or more files to open</source>
<translation>Açmak için bir yada daha çok dosya seçin</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="391"/>
+ <location filename="../mainwindow.cpp" line="387"/>
<source>&amp;Play</source>
<translation>&amp;Çal</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="391"/>
+ <location filename="../mainwindow.cpp" line="387"/>
<source>X</source>
<translation>X</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="392"/>
+ <location filename="../mainwindow.cpp" line="388"/>
<source>&amp;Pause</source>
<translation>&amp;Duraklat</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="392"/>
+ <location filename="../mainwindow.cpp" line="388"/>
<source>C</source>
<translation>C</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="393"/>
+ <location filename="../mainwindow.cpp" line="389"/>
<source>&amp;Stop</source>
<translation>&amp;Durdur</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="393"/>
+ <location filename="../mainwindow.cpp" line="389"/>
<source>V</source>
<translation>V</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="394"/>
+ <location filename="../mainwindow.cpp" line="390"/>
<source>&amp;Previous</source>
<translation>&amp;Önceki</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="394"/>
+ <location filename="../mainwindow.cpp" line="390"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="395"/>
+ <location filename="../mainwindow.cpp" line="391"/>
<source>&amp;Next</source>
<translation>&amp;Sonraki</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="395"/>
+ <location filename="../mainwindow.cpp" line="391"/>
<source>B</source>
<translation>B</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="414"/>
+ <location filename="../mainwindow.cpp" line="410"/>
<source>&amp;Jump To File</source>
<translation>&amp;Parçaya Git</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="414"/>
+ <location filename="../mainwindow.cpp" line="410"/>
<source>J</source>
<translation>J</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="420"/>
+ <location filename="../mainwindow.cpp" line="416"/>
<source>&amp;Settings</source>
<translation>&amp;Ayarlar</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="420"/>
+ <location filename="../mainwindow.cpp" line="416"/>
<source>Ctrl+P</source>
<translation>Ctrl+P</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="426"/>
+ <location filename="../mainwindow.cpp" line="422"/>
<source>&amp;Exit</source>
<translation>&amp;Çıkış</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="426"/>
+ <location filename="../mainwindow.cpp" line="422"/>
<source>Ctrl+Q</source>
<translation>Ctrl+Q</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="462"/>
+ <location filename="../mainwindow.cpp" line="458"/>
<source>Open Playlist</source>
<translation>Çalma Listesini Aç</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="487"/>
+ <location filename="../mainwindow.cpp" line="483"/>
<source>Save Playlist</source>
<translation>Çalma Listesini Kaydet</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="422"/>
+ <location filename="../mainwindow.cpp" line="418"/>
<source>&amp;About</source>
<translation>&amp;Hakkında</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="460"/>
- <location filename="../mainwindow.cpp" line="486"/>
+ <location filename="../mainwindow.cpp" line="456"/>
+ <location filename="../mainwindow.cpp" line="482"/>
<source>Playlist Files</source>
<translation>Çalma Listesi Dosyaları</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="396"/>
+ <location filename="../mainwindow.cpp" line="392"/>
<source>Space</source>
<translation>Boşluk</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="423"/>
+ <location filename="../mainwindow.cpp" line="419"/>
<source>&amp;About Qt</source>
<translation>&amp;Qt Hakkında</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="396"/>
+ <location filename="../mainwindow.cpp" line="392"/>
<source>&amp;Play/Pause</source>
<translation>&amp;Oynat/Duraklat</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="272"/>
+ <location filename="../mainwindow.cpp" line="268"/>
<source>All Supported Bitstreams</source>
<translation>Tüm Desteklenen Bitstreamler</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="399"/>
+ <location filename="../mainwindow.cpp" line="395"/>
<source>&amp;Repeat Track</source>
<translation>&amp;Parçayı Yinele</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="400"/>
+ <location filename="../mainwindow.cpp" line="396"/>
<source>&amp;Shuffle</source>
<translation>&amp;Rastgele</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="404"/>
+ <location filename="../mainwindow.cpp" line="400"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="405"/>
+ <location filename="../mainwindow.cpp" line="401"/>
<source>Ctrl+R</source>
<translation>Ctrl+R</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="406"/>
+ <location filename="../mainwindow.cpp" line="402"/>
<source>S</source>
<translation>S</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="398"/>
+ <location filename="../mainwindow.cpp" line="394"/>
<source>&amp;Repeat Playlist</source>
<translation>&amp;Çalma Listesini Yinele</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="418"/>
+ <location filename="../mainwindow.cpp" line="414"/>
<source>Tools</source>
<translation>Araçlar</translation>
</message>
@@ -1020,214 +1020,268 @@
<context>
<name>PlayList</name>
<message>
- <location filename="../playlist.cpp" line="165"/>
+ <location filename="../playlist.cpp" line="166"/>
<source>F</source>
<translation>F</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="171"/>
+ <location filename="../playlist.cpp" line="172"/>
<source>D</source>
<translation>D</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="204"/>
+ <location filename="../playlist.cpp" line="205"/>
<source>Alt+I</source>
<translation>Alt+I</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="308"/>
+ <location filename="../playlist.cpp" line="309"/>
<source>Ctrl+A</source>
<translation>Ctrl+A</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="327"/>
+ <location filename="../playlist.cpp" line="316"/>
+ <source>Ctrl+T</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="321"/>
+ <source>Ctrl+W</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="328"/>
<source>O</source>
<translation>O</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="164"/>
+ <location filename="../playlist.cpp" line="165"/>
<source>&amp;Add File</source>
<translation>&amp;Dosya Ekle</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="170"/>
+ <location filename="../playlist.cpp" line="171"/>
<source>&amp;Add Directory</source>
<translation>&amp;Dizin Ekle</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="183"/>
+ <location filename="../playlist.cpp" line="184"/>
<source>&amp;Remove Selected</source>
<translation>&amp;Seçileni Kaldır</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="189"/>
+ <location filename="../playlist.cpp" line="190"/>
<source>&amp;Remove All</source>
<translation>&amp;Hepsini Kaldır</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="195"/>
+ <location filename="../playlist.cpp" line="196"/>
<source>&amp;Remove Unselected</source>
<translation>&amp;Seçilmemişleri Kaldır</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="200"/>
+ <location filename="../playlist.cpp" line="201"/>
<source>Remove unavailable files</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="203"/>
+ <location filename="../playlist.cpp" line="204"/>
<source>&amp;View Track Details</source>
<translation>&amp;Parça Detaylarını Göster</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="212"/>
+ <location filename="../playlist.cpp" line="213"/>
<source>Sort List</source>
<translation>Listeyi Sınıflandır</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="215"/>
- <location filename="../playlist.cpp" line="249"/>
+ <location filename="../playlist.cpp" line="216"/>
+ <location filename="../playlist.cpp" line="250"/>
<source>By Title</source>
<translation>Başlığa Göre</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="219"/>
- <location filename="../playlist.cpp" line="253"/>
+ <location filename="../playlist.cpp" line="220"/>
+ <location filename="../playlist.cpp" line="254"/>
<source>By Album</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="223"/>
- <location filename="../playlist.cpp" line="257"/>
+ <location filename="../playlist.cpp" line="224"/>
+ <location filename="../playlist.cpp" line="258"/>
<source>By Artist</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="227"/>
- <location filename="../playlist.cpp" line="261"/>
+ <location filename="../playlist.cpp" line="228"/>
+ <location filename="../playlist.cpp" line="262"/>
<source>By Filename</source>
<translation>Dosya Adına Göre</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="231"/>
- <location filename="../playlist.cpp" line="265"/>
+ <location filename="../playlist.cpp" line="232"/>
+ <location filename="../playlist.cpp" line="266"/>
<source>By Path + Filename</source>
<translation>Dosya Yolu + Dosya Adına Göre</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="235"/>
- <location filename="../playlist.cpp" line="269"/>
+ <location filename="../playlist.cpp" line="236"/>
+ <location filename="../playlist.cpp" line="270"/>
<source>By Date</source>
<translation>Tarihe Göre</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="247"/>
+ <location filename="../playlist.cpp" line="248"/>
<source>Sort Selection</source>
<translation>Seçilenleri Sınıflandır</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="282"/>
+ <location filename="../playlist.cpp" line="283"/>
<source>Randomize List</source>
<translation>Rastgele Listele</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="283"/>
+ <location filename="../playlist.cpp" line="284"/>
<source>Reverse List</source>
<translation>Listeyi Ters Çevir</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="295"/>
+ <location filename="../playlist.cpp" line="296"/>
<source>Invert Selection</source>
<translation>Seçimi Tersine Çevir</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="301"/>
+ <location filename="../playlist.cpp" line="302"/>
<source>&amp;Select None</source>
<translation>&amp;Hiçbirini Seçme</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="302"/>
+ <location filename="../playlist.cpp" line="303"/>
<source>Shift+A</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="307"/>
+ <location filename="../playlist.cpp" line="308"/>
<source>&amp;Select All</source>
<translation>&amp;Tümünü Seç</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="314"/>
+ <location filename="../playlist.cpp" line="315"/>
<source>&amp;New List</source>
<translation>&amp;Yeni Liste</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="315"/>
- <source>Shift+N</source>
- <translation>Shift+N</translation>
+ <location filename="../playlist.cpp" line="340"/>
+ <source>&amp;Select Next Playlist</source>
+ <translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="319"/>
- <source>&amp;Delete List</source>
+ <location filename="../playlist.cpp" line="341"/>
+ <source>Ctrl+PgDown</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="346"/>
+ <source>&amp;Select Previous Playlist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="347"/>
+ <source>Ctrl+PgUp</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="352"/>
+ <source>&amp;Show Playlists</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="353"/>
+ <source>P</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../playlist.cpp" line="320"/>
- <source>Shift+D</source>
+ <source>&amp;Delete List</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="326"/>
+ <location filename="../playlist.cpp" line="327"/>
<source>&amp;Load List</source>
<translation>&amp;Liste Yükle</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="332"/>
+ <location filename="../playlist.cpp" line="333"/>
<source>&amp;Save List</source>
<translation>&amp;Listeyi Kaydet</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="333"/>
+ <location filename="../playlist.cpp" line="334"/>
<source>Shift+S</source>
<translation>Shift+S</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="184"/>
+ <location filename="../playlist.cpp" line="185"/>
<source>Del</source>
<translation>Del</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="176"/>
+ <location filename="../playlist.cpp" line="177"/>
<source>&amp;Add Url</source>
<translation>&amp;Url Ekle</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="177"/>
+ <location filename="../playlist.cpp" line="178"/>
<source>U</source>
<translation>U</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="239"/>
- <location filename="../playlist.cpp" line="273"/>
+ <location filename="../playlist.cpp" line="240"/>
+ <location filename="../playlist.cpp" line="274"/>
<source>By Track Number</source>
<translation>Parça Numarasına Göre</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="291"/>
+ <location filename="../playlist.cpp" line="292"/>
<source>&amp;Queue</source>
<translation>&amp;Kuyruğa ekle</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="291"/>
+ <location filename="../playlist.cpp" line="292"/>
<source>Q</source>
<translation>Q</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="288"/>
+ <location filename="../playlist.cpp" line="289"/>
<source>Actions</source>
<translation>Eylemler</translation>
</message>
</context>
<context>
+ <name>PlayListBrowser</name>
+ <message>
+ <location filename="../forms/playlistbrowser.ui" line="14"/>
+ <source>Playlist Browser</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/playlistbrowser.ui" line="45"/>
+ <source>New</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/playlistbrowser.ui" line="52"/>
+ <location filename="../playlistbrowser.cpp" line="36"/>
+ <source>Delete</source>
+ <translation type="unfinished">Sil</translation>
+ </message>
+ <message>
+ <location filename="../playlistbrowser.cpp" line="35"/>
+ <source>Rename</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>PresetEditor</name>
<message>
<location filename="../forms/preseteditor.ui" line="13"/>
diff --git a/src/ui/translations/qmmp_uk_UA.ts b/src/ui/translations/qmmp_uk_UA.ts
index fbc46944e..4b2e6e7c7 100644
--- a/src/ui/translations/qmmp_uk_UA.ts
+++ b/src/ui/translations/qmmp_uk_UA.ts
@@ -851,168 +851,168 @@
<context>
<name>MainWindow</name>
<message>
- <location filename="../mainwindow.cpp" line="266"/>
+ <location filename="../mainwindow.cpp" line="262"/>
<source>Choose a directory</source>
<translation>Виберіть теку</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="277"/>
+ <location filename="../mainwindow.cpp" line="273"/>
<source>Select one or more files to open</source>
<translation>Виберіть один чи кілька файлів</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="391"/>
+ <location filename="../mainwindow.cpp" line="387"/>
<source>&amp;Play</source>
<translation>&amp;Відтворити</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="391"/>
+ <location filename="../mainwindow.cpp" line="387"/>
<source>X</source>
<translation></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="392"/>
+ <location filename="../mainwindow.cpp" line="388"/>
<source>&amp;Pause</source>
<translation>&amp;Пауза</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="392"/>
+ <location filename="../mainwindow.cpp" line="388"/>
<source>C</source>
<translation></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="393"/>
+ <location filename="../mainwindow.cpp" line="389"/>
<source>&amp;Stop</source>
<translation>&amp;Стоп</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="393"/>
+ <location filename="../mainwindow.cpp" line="389"/>
<source>V</source>
<translation></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="394"/>
+ <location filename="../mainwindow.cpp" line="390"/>
<source>&amp;Previous</source>
<translation>&amp;Назад</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="394"/>
+ <location filename="../mainwindow.cpp" line="390"/>
<source>Z</source>
<translation></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="395"/>
+ <location filename="../mainwindow.cpp" line="391"/>
<source>&amp;Next</source>
<translation>&amp;Вперед</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="395"/>
+ <location filename="../mainwindow.cpp" line="391"/>
<source>B</source>
<translation></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="414"/>
+ <location filename="../mainwindow.cpp" line="410"/>
<source>&amp;Jump To File</source>
<translation>&amp;Перейти до файлу</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="414"/>
+ <location filename="../mainwindow.cpp" line="410"/>
<source>J</source>
<translation></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="420"/>
+ <location filename="../mainwindow.cpp" line="416"/>
<source>&amp;Settings</source>
<translation>&amp;Налаштування</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="420"/>
+ <location filename="../mainwindow.cpp" line="416"/>
<source>Ctrl+P</source>
<translation></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="426"/>
+ <location filename="../mainwindow.cpp" line="422"/>
<source>&amp;Exit</source>
<translation>&amp;Вихід</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="426"/>
+ <location filename="../mainwindow.cpp" line="422"/>
<source>Ctrl+Q</source>
<translation></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="462"/>
+ <location filename="../mainwindow.cpp" line="458"/>
<source>Open Playlist</source>
<translation>Відкрити список</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="487"/>
+ <location filename="../mainwindow.cpp" line="483"/>
<source>Save Playlist</source>
<translation>Зберегти список</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="422"/>
+ <location filename="../mainwindow.cpp" line="418"/>
<source>&amp;About</source>
<translation>&amp;Про програму</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="460"/>
- <location filename="../mainwindow.cpp" line="486"/>
+ <location filename="../mainwindow.cpp" line="456"/>
+ <location filename="../mainwindow.cpp" line="482"/>
<source>Playlist Files</source>
<translation>Файли списків</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="396"/>
+ <location filename="../mainwindow.cpp" line="392"/>
<source>Space</source>
<translation></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="423"/>
+ <location filename="../mainwindow.cpp" line="419"/>
<source>&amp;About Qt</source>
<translation>&amp;Про Qt</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="396"/>
+ <location filename="../mainwindow.cpp" line="392"/>
<source>&amp;Play/Pause</source>
<translation>&amp;Грати/Пауза</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="272"/>
+ <location filename="../mainwindow.cpp" line="268"/>
<source>All Supported Bitstreams</source>
<translation>Усі формати</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="399"/>
+ <location filename="../mainwindow.cpp" line="395"/>
<source>&amp;Repeat Track</source>
<translation>&amp;Повторити трек</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="400"/>
+ <location filename="../mainwindow.cpp" line="396"/>
<source>&amp;Shuffle</source>
<translation>&amp;Перемішати</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="404"/>
+ <location filename="../mainwindow.cpp" line="400"/>
<source>R</source>
<translation></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="405"/>
+ <location filename="../mainwindow.cpp" line="401"/>
<source>Ctrl+R</source>
<translation></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="406"/>
+ <location filename="../mainwindow.cpp" line="402"/>
<source>S</source>
<translation></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="398"/>
+ <location filename="../mainwindow.cpp" line="394"/>
<source>&amp;Repeat Playlist</source>
<translation>&amp;Повторити список</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="418"/>
+ <location filename="../mainwindow.cpp" line="414"/>
<source>Tools</source>
<translation>Утиліти</translation>
</message>
@@ -1020,214 +1020,268 @@
<context>
<name>PlayList</name>
<message>
- <location filename="../playlist.cpp" line="165"/>
+ <location filename="../playlist.cpp" line="166"/>
<source>F</source>
<translation></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="171"/>
+ <location filename="../playlist.cpp" line="172"/>
<source>D</source>
<translation></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="204"/>
+ <location filename="../playlist.cpp" line="205"/>
<source>Alt+I</source>
<translation></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="308"/>
+ <location filename="../playlist.cpp" line="309"/>
<source>Ctrl+A</source>
<translation></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="327"/>
+ <location filename="../playlist.cpp" line="316"/>
+ <source>Ctrl+T</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="321"/>
+ <source>Ctrl+W</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="328"/>
<source>O</source>
<translation></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="164"/>
+ <location filename="../playlist.cpp" line="165"/>
<source>&amp;Add File</source>
<translation>&amp;Додати файл</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="170"/>
+ <location filename="../playlist.cpp" line="171"/>
<source>&amp;Add Directory</source>
<translation>&amp;Додати теку</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="183"/>
+ <location filename="../playlist.cpp" line="184"/>
<source>&amp;Remove Selected</source>
<translation>&amp;Видалити вибране</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="189"/>
+ <location filename="../playlist.cpp" line="190"/>
<source>&amp;Remove All</source>
<translation>&amp;Видалити все</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="195"/>
+ <location filename="../playlist.cpp" line="196"/>
<source>&amp;Remove Unselected</source>
<translation>&amp;Видалити не вибране</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="200"/>
+ <location filename="../playlist.cpp" line="201"/>
<source>Remove unavailable files</source>
<translation>Видалити недоступні файли</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="203"/>
+ <location filename="../playlist.cpp" line="204"/>
<source>&amp;View Track Details</source>
<translation>&amp;Інформація</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="212"/>
+ <location filename="../playlist.cpp" line="213"/>
<source>Sort List</source>
<translation>Сортувати</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="215"/>
- <location filename="../playlist.cpp" line="249"/>
+ <location filename="../playlist.cpp" line="216"/>
+ <location filename="../playlist.cpp" line="250"/>
<source>By Title</source>
<translation>За назвою</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="219"/>
- <location filename="../playlist.cpp" line="253"/>
+ <location filename="../playlist.cpp" line="220"/>
+ <location filename="../playlist.cpp" line="254"/>
<source>By Album</source>
<translation>За альбомом</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="223"/>
- <location filename="../playlist.cpp" line="257"/>
+ <location filename="../playlist.cpp" line="224"/>
+ <location filename="../playlist.cpp" line="258"/>
<source>By Artist</source>
<translation>За артистом</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="227"/>
- <location filename="../playlist.cpp" line="261"/>
+ <location filename="../playlist.cpp" line="228"/>
+ <location filename="../playlist.cpp" line="262"/>
<source>By Filename</source>
<translation>За ім&apos;ям файлу</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="231"/>
- <location filename="../playlist.cpp" line="265"/>
+ <location filename="../playlist.cpp" line="232"/>
+ <location filename="../playlist.cpp" line="266"/>
<source>By Path + Filename</source>
<translation>За шляхом та файлом</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="235"/>
- <location filename="../playlist.cpp" line="269"/>
+ <location filename="../playlist.cpp" line="236"/>
+ <location filename="../playlist.cpp" line="270"/>
<source>By Date</source>
<translation>За датою</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="247"/>
+ <location filename="../playlist.cpp" line="248"/>
<source>Sort Selection</source>
<translation>Сортувати вибране</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="282"/>
+ <location filename="../playlist.cpp" line="283"/>
<source>Randomize List</source>
<translation>Перемішати</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="283"/>
+ <location filename="../playlist.cpp" line="284"/>
<source>Reverse List</source>
<translation>Перевернути</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="295"/>
+ <location filename="../playlist.cpp" line="296"/>
<source>Invert Selection</source>
<translation>Інвертувати вибране</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="301"/>
+ <location filename="../playlist.cpp" line="302"/>
<source>&amp;Select None</source>
<translation>&amp;Зняти виділення</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="302"/>
+ <location filename="../playlist.cpp" line="303"/>
<source>Shift+A</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="307"/>
+ <location filename="../playlist.cpp" line="308"/>
<source>&amp;Select All</source>
<translation>&amp;Вибрати все</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="314"/>
+ <location filename="../playlist.cpp" line="315"/>
<source>&amp;New List</source>
<translation>&amp;Новий список</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="315"/>
- <source>Shift+N</source>
- <translation></translation>
+ <location filename="../playlist.cpp" line="340"/>
+ <source>&amp;Select Next Playlist</source>
+ <translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="319"/>
- <source>&amp;Delete List</source>
+ <location filename="../playlist.cpp" line="341"/>
+ <source>Ctrl+PgDown</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="346"/>
+ <source>&amp;Select Previous Playlist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="347"/>
+ <source>Ctrl+PgUp</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="352"/>
+ <source>&amp;Show Playlists</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="353"/>
+ <source>P</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../playlist.cpp" line="320"/>
- <source>Shift+D</source>
+ <source>&amp;Delete List</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="326"/>
+ <location filename="../playlist.cpp" line="327"/>
<source>&amp;Load List</source>
<translation>&amp;Завантажити список</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="332"/>
+ <location filename="../playlist.cpp" line="333"/>
<source>&amp;Save List</source>
<translation>&amp;Зберегти список</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="333"/>
+ <location filename="../playlist.cpp" line="334"/>
<source>Shift+S</source>
<translation></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="184"/>
+ <location filename="../playlist.cpp" line="185"/>
<source>Del</source>
<translation></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="176"/>
+ <location filename="../playlist.cpp" line="177"/>
<source>&amp;Add Url</source>
<translation>&amp;Додати адресу</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="177"/>
+ <location filename="../playlist.cpp" line="178"/>
<source>U</source>
<translation></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="239"/>
- <location filename="../playlist.cpp" line="273"/>
+ <location filename="../playlist.cpp" line="240"/>
+ <location filename="../playlist.cpp" line="274"/>
<source>By Track Number</source>
<translation></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="291"/>
+ <location filename="../playlist.cpp" line="292"/>
<source>&amp;Queue</source>
<translation>&amp;В чергу</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="291"/>
+ <location filename="../playlist.cpp" line="292"/>
<source>Q</source>
<translation></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="288"/>
+ <location filename="../playlist.cpp" line="289"/>
<source>Actions</source>
<translation>Дії</translation>
</message>
</context>
<context>
+ <name>PlayListBrowser</name>
+ <message>
+ <location filename="../forms/playlistbrowser.ui" line="14"/>
+ <source>Playlist Browser</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/playlistbrowser.ui" line="45"/>
+ <source>New</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/playlistbrowser.ui" line="52"/>
+ <location filename="../playlistbrowser.cpp" line="36"/>
+ <source>Delete</source>
+ <translation type="unfinished">Видалити</translation>
+ </message>
+ <message>
+ <location filename="../playlistbrowser.cpp" line="35"/>
+ <source>Rename</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>PresetEditor</name>
<message>
<location filename="../forms/preseteditor.ui" line="13"/>
diff --git a/src/ui/translations/qmmp_zh_CN.ts b/src/ui/translations/qmmp_zh_CN.ts
index 44fd0082a..3b2b3a3e8 100644
--- a/src/ui/translations/qmmp_zh_CN.ts
+++ b/src/ui/translations/qmmp_zh_CN.ts
@@ -851,168 +851,168 @@
<context>
<name>MainWindow</name>
<message>
- <location filename="../mainwindow.cpp" line="266"/>
+ <location filename="../mainwindow.cpp" line="262"/>
<source>Choose a directory</source>
<translation>选择一个目录</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="277"/>
+ <location filename="../mainwindow.cpp" line="273"/>
<source>Select one or more files to open</source>
<translation>选择打开一个或更多文件</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="391"/>
+ <location filename="../mainwindow.cpp" line="387"/>
<source>&amp;Play</source>
<translation>播放(&amp;P)</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="391"/>
+ <location filename="../mainwindow.cpp" line="387"/>
<source>X</source>
<translation>X</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="392"/>
+ <location filename="../mainwindow.cpp" line="388"/>
<source>&amp;Pause</source>
<translation>暂停(&amp;P)</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="392"/>
+ <location filename="../mainwindow.cpp" line="388"/>
<source>C</source>
<translation>C</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="393"/>
+ <location filename="../mainwindow.cpp" line="389"/>
<source>&amp;Stop</source>
<translation>停止(&amp;S)</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="393"/>
+ <location filename="../mainwindow.cpp" line="389"/>
<source>V</source>
<translation>V</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="394"/>
+ <location filename="../mainwindow.cpp" line="390"/>
<source>&amp;Previous</source>
<translation>上一曲(&amp;P)</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="394"/>
+ <location filename="../mainwindow.cpp" line="390"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="395"/>
+ <location filename="../mainwindow.cpp" line="391"/>
<source>&amp;Next</source>
<translation>下一曲(&amp;N)</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="395"/>
+ <location filename="../mainwindow.cpp" line="391"/>
<source>B</source>
<translation>B</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="414"/>
+ <location filename="../mainwindow.cpp" line="410"/>
<source>&amp;Jump To File</source>
<translation>跳到文件(&amp;J)</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="414"/>
+ <location filename="../mainwindow.cpp" line="410"/>
<source>J</source>
<translation>J</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="420"/>
+ <location filename="../mainwindow.cpp" line="416"/>
<source>&amp;Settings</source>
<translation>设置(&amp;S)</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="420"/>
+ <location filename="../mainwindow.cpp" line="416"/>
<source>Ctrl+P</source>
<translation>Ctrl+P</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="426"/>
+ <location filename="../mainwindow.cpp" line="422"/>
<source>&amp;Exit</source>
<translation>退出(&amp;E)</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="426"/>
+ <location filename="../mainwindow.cpp" line="422"/>
<source>Ctrl+Q</source>
<translation>Ctrl+Q</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="462"/>
+ <location filename="../mainwindow.cpp" line="458"/>
<source>Open Playlist</source>
<translation>打开播放列表</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="487"/>
+ <location filename="../mainwindow.cpp" line="483"/>
<source>Save Playlist</source>
<translation>保存播放列表</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="422"/>
+ <location filename="../mainwindow.cpp" line="418"/>
<source>&amp;About</source>
<translation>关于(&amp;A)</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="460"/>
- <location filename="../mainwindow.cpp" line="486"/>
+ <location filename="../mainwindow.cpp" line="456"/>
+ <location filename="../mainwindow.cpp" line="482"/>
<source>Playlist Files</source>
<translation>播放列表文件</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="396"/>
+ <location filename="../mainwindow.cpp" line="392"/>
<source>Space</source>
<translation>空格</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="423"/>
+ <location filename="../mainwindow.cpp" line="419"/>
<source>&amp;About Qt</source>
<translation>关于 Qt (&amp;A)</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="396"/>
+ <location filename="../mainwindow.cpp" line="392"/>
<source>&amp;Play/Pause</source>
<translation>播放/暂停(&amp;P)</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="272"/>
+ <location filename="../mainwindow.cpp" line="268"/>
<source>All Supported Bitstreams</source>
<translation>支持的全部文件</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="399"/>
+ <location filename="../mainwindow.cpp" line="395"/>
<source>&amp;Repeat Track</source>
<translation>重复音轨(&amp;R)</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="400"/>
+ <location filename="../mainwindow.cpp" line="396"/>
<source>&amp;Shuffle</source>
<translation>乱序(&amp;S)</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="404"/>
+ <location filename="../mainwindow.cpp" line="400"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="405"/>
+ <location filename="../mainwindow.cpp" line="401"/>
<source>Ctrl+R</source>
<translation>Ctrl+R</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="406"/>
+ <location filename="../mainwindow.cpp" line="402"/>
<source>S</source>
<translation>S</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="398"/>
+ <location filename="../mainwindow.cpp" line="394"/>
<source>&amp;Repeat Playlist</source>
<translation>重复播放列表(&amp;R)</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="418"/>
+ <location filename="../mainwindow.cpp" line="414"/>
<source>Tools</source>
<translation>工具</translation>
</message>
@@ -1020,214 +1020,268 @@
<context>
<name>PlayList</name>
<message>
- <location filename="../playlist.cpp" line="165"/>
+ <location filename="../playlist.cpp" line="166"/>
<source>F</source>
<translation>F</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="171"/>
+ <location filename="../playlist.cpp" line="172"/>
<source>D</source>
<translation>D</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="204"/>
+ <location filename="../playlist.cpp" line="205"/>
<source>Alt+I</source>
<translation>Alt+I</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="308"/>
+ <location filename="../playlist.cpp" line="309"/>
<source>Ctrl+A</source>
<translation>Ctrl+A</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="327"/>
+ <location filename="../playlist.cpp" line="316"/>
+ <source>Ctrl+T</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="321"/>
+ <source>Ctrl+W</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="328"/>
<source>O</source>
<translation>O</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="164"/>
+ <location filename="../playlist.cpp" line="165"/>
<source>&amp;Add File</source>
<translation>添加文件(&amp;A)</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="170"/>
+ <location filename="../playlist.cpp" line="171"/>
<source>&amp;Add Directory</source>
<translation>添加文件夹(&amp;A)</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="183"/>
+ <location filename="../playlist.cpp" line="184"/>
<source>&amp;Remove Selected</source>
<translation>删除所选(&amp;R)</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="189"/>
+ <location filename="../playlist.cpp" line="190"/>
<source>&amp;Remove All</source>
<translation>删除全部(&amp;R)</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="195"/>
+ <location filename="../playlist.cpp" line="196"/>
<source>&amp;Remove Unselected</source>
<translation>删除未选(&amp;R)</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="200"/>
+ <location filename="../playlist.cpp" line="201"/>
<source>Remove unavailable files</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="203"/>
+ <location filename="../playlist.cpp" line="204"/>
<source>&amp;View Track Details</source>
<translation>查看音轨详细信息(&amp;V)</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="212"/>
+ <location filename="../playlist.cpp" line="213"/>
<source>Sort List</source>
<translation>列表排序</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="215"/>
- <location filename="../playlist.cpp" line="249"/>
+ <location filename="../playlist.cpp" line="216"/>
+ <location filename="../playlist.cpp" line="250"/>
<source>By Title</source>
<translation>按标题</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="219"/>
- <location filename="../playlist.cpp" line="253"/>
+ <location filename="../playlist.cpp" line="220"/>
+ <location filename="../playlist.cpp" line="254"/>
<source>By Album</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="223"/>
- <location filename="../playlist.cpp" line="257"/>
+ <location filename="../playlist.cpp" line="224"/>
+ <location filename="../playlist.cpp" line="258"/>
<source>By Artist</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="227"/>
- <location filename="../playlist.cpp" line="261"/>
+ <location filename="../playlist.cpp" line="228"/>
+ <location filename="../playlist.cpp" line="262"/>
<source>By Filename</source>
<translation>按文件名</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="231"/>
- <location filename="../playlist.cpp" line="265"/>
+ <location filename="../playlist.cpp" line="232"/>
+ <location filename="../playlist.cpp" line="266"/>
<source>By Path + Filename</source>
<translation>按路径+文件名</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="235"/>
- <location filename="../playlist.cpp" line="269"/>
+ <location filename="../playlist.cpp" line="236"/>
+ <location filename="../playlist.cpp" line="270"/>
<source>By Date</source>
<translation>按日期</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="247"/>
+ <location filename="../playlist.cpp" line="248"/>
<source>Sort Selection</source>
<translation>选择排序</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="282"/>
+ <location filename="../playlist.cpp" line="283"/>
<source>Randomize List</source>
<translation>随机产生列表</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="283"/>
+ <location filename="../playlist.cpp" line="284"/>
<source>Reverse List</source>
<translation>逆序列表</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="295"/>
+ <location filename="../playlist.cpp" line="296"/>
<source>Invert Selection</source>
<translation>反选</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="301"/>
+ <location filename="../playlist.cpp" line="302"/>
<source>&amp;Select None</source>
<translation>无选择(&amp;S)</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="302"/>
+ <location filename="../playlist.cpp" line="303"/>
<source>Shift+A</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="307"/>
+ <location filename="../playlist.cpp" line="308"/>
<source>&amp;Select All</source>
<translation>选择全部(&amp;S)</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="314"/>
+ <location filename="../playlist.cpp" line="315"/>
<source>&amp;New List</source>
<translation>新建列表(&amp;N)</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="315"/>
- <source>Shift+N</source>
- <translation>Shift+N</translation>
+ <location filename="../playlist.cpp" line="340"/>
+ <source>&amp;Select Next Playlist</source>
+ <translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="319"/>
- <source>&amp;Delete List</source>
+ <location filename="../playlist.cpp" line="341"/>
+ <source>Ctrl+PgDown</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="346"/>
+ <source>&amp;Select Previous Playlist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="347"/>
+ <source>Ctrl+PgUp</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="352"/>
+ <source>&amp;Show Playlists</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="353"/>
+ <source>P</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../playlist.cpp" line="320"/>
- <source>Shift+D</source>
+ <source>&amp;Delete List</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="326"/>
+ <location filename="../playlist.cpp" line="327"/>
<source>&amp;Load List</source>
<translation>载入列表(&amp;L)</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="332"/>
+ <location filename="../playlist.cpp" line="333"/>
<source>&amp;Save List</source>
<translation>保存列表(&amp;S)</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="333"/>
+ <location filename="../playlist.cpp" line="334"/>
<source>Shift+S</source>
<translation>Shift+S</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="184"/>
+ <location filename="../playlist.cpp" line="185"/>
<source>Del</source>
<translation>Del</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="176"/>
+ <location filename="../playlist.cpp" line="177"/>
<source>&amp;Add Url</source>
<translation>添加 URL (&amp;A)</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="177"/>
+ <location filename="../playlist.cpp" line="178"/>
<source>U</source>
<translation>U</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="239"/>
- <location filename="../playlist.cpp" line="273"/>
+ <location filename="../playlist.cpp" line="240"/>
+ <location filename="../playlist.cpp" line="274"/>
<source>By Track Number</source>
<translation>按音轨</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="291"/>
+ <location filename="../playlist.cpp" line="292"/>
<source>&amp;Queue</source>
<translation>队列(&amp;Q)</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="291"/>
+ <location filename="../playlist.cpp" line="292"/>
<source>Q</source>
<translation>Q</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="288"/>
+ <location filename="../playlist.cpp" line="289"/>
<source>Actions</source>
<translation>动作</translation>
</message>
</context>
<context>
+ <name>PlayListBrowser</name>
+ <message>
+ <location filename="../forms/playlistbrowser.ui" line="14"/>
+ <source>Playlist Browser</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/playlistbrowser.ui" line="45"/>
+ <source>New</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/playlistbrowser.ui" line="52"/>
+ <location filename="../playlistbrowser.cpp" line="36"/>
+ <source>Delete</source>
+ <translation type="unfinished">删除</translation>
+ </message>
+ <message>
+ <location filename="../playlistbrowser.cpp" line="35"/>
+ <source>Rename</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>PresetEditor</name>
<message>
<location filename="../forms/preseteditor.ui" line="13"/>
diff --git a/src/ui/translations/qmmp_zh_TW.ts b/src/ui/translations/qmmp_zh_TW.ts
index 89a1e7abd..97fe6fbf2 100644
--- a/src/ui/translations/qmmp_zh_TW.ts
+++ b/src/ui/translations/qmmp_zh_TW.ts
@@ -851,168 +851,168 @@
<context>
<name>MainWindow</name>
<message>
- <location filename="../mainwindow.cpp" line="266"/>
+ <location filename="../mainwindow.cpp" line="262"/>
<source>Choose a directory</source>
<translation>選取一個目錄</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="277"/>
+ <location filename="../mainwindow.cpp" line="273"/>
<source>Select one or more files to open</source>
<translation>選取開啟一個或更多檔案</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="391"/>
+ <location filename="../mainwindow.cpp" line="387"/>
<source>&amp;Play</source>
<translation>播放(&amp;P)</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="391"/>
+ <location filename="../mainwindow.cpp" line="387"/>
<source>X</source>
<translation>X</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="392"/>
+ <location filename="../mainwindow.cpp" line="388"/>
<source>&amp;Pause</source>
<translation>暫停(&amp;P)</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="392"/>
+ <location filename="../mainwindow.cpp" line="388"/>
<source>C</source>
<translation>C</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="393"/>
+ <location filename="../mainwindow.cpp" line="389"/>
<source>&amp;Stop</source>
<translation>停止(&amp;S)</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="393"/>
+ <location filename="../mainwindow.cpp" line="389"/>
<source>V</source>
<translation>V</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="394"/>
+ <location filename="../mainwindow.cpp" line="390"/>
<source>&amp;Previous</source>
<translation>上一曲(&amp;P)</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="394"/>
+ <location filename="../mainwindow.cpp" line="390"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="395"/>
+ <location filename="../mainwindow.cpp" line="391"/>
<source>&amp;Next</source>
<translation>下一曲(&amp;N)</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="395"/>
+ <location filename="../mainwindow.cpp" line="391"/>
<source>B</source>
<translation>B</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="414"/>
+ <location filename="../mainwindow.cpp" line="410"/>
<source>&amp;Jump To File</source>
<translation>跳到檔案(&amp;J)</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="414"/>
+ <location filename="../mainwindow.cpp" line="410"/>
<source>J</source>
<translation>J</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="420"/>
+ <location filename="../mainwindow.cpp" line="416"/>
<source>&amp;Settings</source>
<translation>設定(&amp;S)</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="420"/>
+ <location filename="../mainwindow.cpp" line="416"/>
<source>Ctrl+P</source>
<translation>Ctrl+P</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="426"/>
+ <location filename="../mainwindow.cpp" line="422"/>
<source>&amp;Exit</source>
<translation>結束(&amp;E)</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="426"/>
+ <location filename="../mainwindow.cpp" line="422"/>
<source>Ctrl+Q</source>
<translation>Ctrl+Q</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="462"/>
+ <location filename="../mainwindow.cpp" line="458"/>
<source>Open Playlist</source>
<translation>開啟播放清單</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="487"/>
+ <location filename="../mainwindow.cpp" line="483"/>
<source>Save Playlist</source>
<translation>儲存播放清單</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="422"/>
+ <location filename="../mainwindow.cpp" line="418"/>
<source>&amp;About</source>
<translation>關於(&amp;A)</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="460"/>
- <location filename="../mainwindow.cpp" line="486"/>
+ <location filename="../mainwindow.cpp" line="456"/>
+ <location filename="../mainwindow.cpp" line="482"/>
<source>Playlist Files</source>
<translation>播放清單檔案</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="396"/>
+ <location filename="../mainwindow.cpp" line="392"/>
<source>Space</source>
<translation>空格</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="423"/>
+ <location filename="../mainwindow.cpp" line="419"/>
<source>&amp;About Qt</source>
<translation>關於 Qt (&amp;A)</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="396"/>
+ <location filename="../mainwindow.cpp" line="392"/>
<source>&amp;Play/Pause</source>
<translation>播放/暫停(&amp;P)</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="272"/>
+ <location filename="../mainwindow.cpp" line="268"/>
<source>All Supported Bitstreams</source>
<translation>支援的全部檔案</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="399"/>
+ <location filename="../mainwindow.cpp" line="395"/>
<source>&amp;Repeat Track</source>
<translation>重復音軌(&amp;R)</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="400"/>
+ <location filename="../mainwindow.cpp" line="396"/>
<source>&amp;Shuffle</source>
<translation>亂序(&amp;S)</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="404"/>
+ <location filename="../mainwindow.cpp" line="400"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="405"/>
+ <location filename="../mainwindow.cpp" line="401"/>
<source>Ctrl+R</source>
<translation>Ctrl+R</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="406"/>
+ <location filename="../mainwindow.cpp" line="402"/>
<source>S</source>
<translation>S</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="398"/>
+ <location filename="../mainwindow.cpp" line="394"/>
<source>&amp;Repeat Playlist</source>
<translation>重復播放清單(&amp;R)</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="418"/>
+ <location filename="../mainwindow.cpp" line="414"/>
<source>Tools</source>
<translation>工具</translation>
</message>
@@ -1020,214 +1020,268 @@
<context>
<name>PlayList</name>
<message>
- <location filename="../playlist.cpp" line="165"/>
+ <location filename="../playlist.cpp" line="166"/>
<source>F</source>
<translation>F</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="171"/>
+ <location filename="../playlist.cpp" line="172"/>
<source>D</source>
<translation>D</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="204"/>
+ <location filename="../playlist.cpp" line="205"/>
<source>Alt+I</source>
<translation>Alt+I</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="308"/>
+ <location filename="../playlist.cpp" line="309"/>
<source>Ctrl+A</source>
<translation>Ctrl+A</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="327"/>
+ <location filename="../playlist.cpp" line="316"/>
+ <source>Ctrl+T</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="321"/>
+ <source>Ctrl+W</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="328"/>
<source>O</source>
<translation>O</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="164"/>
+ <location filename="../playlist.cpp" line="165"/>
<source>&amp;Add File</source>
<translation>添加檔案(&amp;A)</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="170"/>
+ <location filename="../playlist.cpp" line="171"/>
<source>&amp;Add Directory</source>
<translation>添加檔案夾(&amp;A)</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="183"/>
+ <location filename="../playlist.cpp" line="184"/>
<source>&amp;Remove Selected</source>
<translation>移除所選(&amp;R)</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="189"/>
+ <location filename="../playlist.cpp" line="190"/>
<source>&amp;Remove All</source>
<translation>移除全部(&amp;R)</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="195"/>
+ <location filename="../playlist.cpp" line="196"/>
<source>&amp;Remove Unselected</source>
<translation>移除未選(&amp;R)</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="200"/>
+ <location filename="../playlist.cpp" line="201"/>
<source>Remove unavailable files</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="203"/>
+ <location filename="../playlist.cpp" line="204"/>
<source>&amp;View Track Details</source>
<translation>檢視音軌詳細資訊(&amp;V)</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="212"/>
+ <location filename="../playlist.cpp" line="213"/>
<source>Sort List</source>
<translation>清單排序</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="215"/>
- <location filename="../playlist.cpp" line="249"/>
+ <location filename="../playlist.cpp" line="216"/>
+ <location filename="../playlist.cpp" line="250"/>
<source>By Title</source>
<translation>按標題</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="219"/>
- <location filename="../playlist.cpp" line="253"/>
+ <location filename="../playlist.cpp" line="220"/>
+ <location filename="../playlist.cpp" line="254"/>
<source>By Album</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="223"/>
- <location filename="../playlist.cpp" line="257"/>
+ <location filename="../playlist.cpp" line="224"/>
+ <location filename="../playlist.cpp" line="258"/>
<source>By Artist</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="227"/>
- <location filename="../playlist.cpp" line="261"/>
+ <location filename="../playlist.cpp" line="228"/>
+ <location filename="../playlist.cpp" line="262"/>
<source>By Filename</source>
<translation>按檔名</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="231"/>
- <location filename="../playlist.cpp" line="265"/>
+ <location filename="../playlist.cpp" line="232"/>
+ <location filename="../playlist.cpp" line="266"/>
<source>By Path + Filename</source>
<translation>按路徑+檔名</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="235"/>
- <location filename="../playlist.cpp" line="269"/>
+ <location filename="../playlist.cpp" line="236"/>
+ <location filename="../playlist.cpp" line="270"/>
<source>By Date</source>
<translation>按日期</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="247"/>
+ <location filename="../playlist.cpp" line="248"/>
<source>Sort Selection</source>
<translation>選取排序</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="282"/>
+ <location filename="../playlist.cpp" line="283"/>
<source>Randomize List</source>
<translation>隨機產生清單</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="283"/>
+ <location filename="../playlist.cpp" line="284"/>
<source>Reverse List</source>
<translation>逆串列表</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="295"/>
+ <location filename="../playlist.cpp" line="296"/>
<source>Invert Selection</source>
<translation>反選</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="301"/>
+ <location filename="../playlist.cpp" line="302"/>
<source>&amp;Select None</source>
<translation>無選取(&amp;S)</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="302"/>
+ <location filename="../playlist.cpp" line="303"/>
<source>Shift+A</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="307"/>
+ <location filename="../playlist.cpp" line="308"/>
<source>&amp;Select All</source>
<translation>選取全部(&amp;S)</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="314"/>
+ <location filename="../playlist.cpp" line="315"/>
<source>&amp;New List</source>
<translation>新建清單(&amp;N)</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="315"/>
- <source>Shift+N</source>
- <translation>Shift+N</translation>
+ <location filename="../playlist.cpp" line="340"/>
+ <source>&amp;Select Next Playlist</source>
+ <translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="319"/>
- <source>&amp;Delete List</source>
+ <location filename="../playlist.cpp" line="341"/>
+ <source>Ctrl+PgDown</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="346"/>
+ <source>&amp;Select Previous Playlist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="347"/>
+ <source>Ctrl+PgUp</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="352"/>
+ <source>&amp;Show Playlists</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../playlist.cpp" line="353"/>
+ <source>P</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../playlist.cpp" line="320"/>
- <source>Shift+D</source>
+ <source>&amp;Delete List</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="326"/>
+ <location filename="../playlist.cpp" line="327"/>
<source>&amp;Load List</source>
<translation>載入清單(&amp;L)</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="332"/>
+ <location filename="../playlist.cpp" line="333"/>
<source>&amp;Save List</source>
<translation>儲存清單(&amp;S)</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="333"/>
+ <location filename="../playlist.cpp" line="334"/>
<source>Shift+S</source>
<translation>Shift+S</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="184"/>
+ <location filename="../playlist.cpp" line="185"/>
<source>Del</source>
<translation>Del</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="176"/>
+ <location filename="../playlist.cpp" line="177"/>
<source>&amp;Add Url</source>
<translation>添加 URL (&amp;A)</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="177"/>
+ <location filename="../playlist.cpp" line="178"/>
<source>U</source>
<translation>U</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="239"/>
- <location filename="../playlist.cpp" line="273"/>
+ <location filename="../playlist.cpp" line="240"/>
+ <location filename="../playlist.cpp" line="274"/>
<source>By Track Number</source>
<translation>按音軌</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="291"/>
+ <location filename="../playlist.cpp" line="292"/>
<source>&amp;Queue</source>
<translation>佇列(&amp;Q)</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="291"/>
+ <location filename="../playlist.cpp" line="292"/>
<source>Q</source>
<translation>Q</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="288"/>
+ <location filename="../playlist.cpp" line="289"/>
<source>Actions</source>
<translation>動作</translation>
</message>
</context>
<context>
+ <name>PlayListBrowser</name>
+ <message>
+ <location filename="../forms/playlistbrowser.ui" line="14"/>
+ <source>Playlist Browser</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/playlistbrowser.ui" line="45"/>
+ <source>New</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/playlistbrowser.ui" line="52"/>
+ <location filename="../playlistbrowser.cpp" line="36"/>
+ <source>Delete</source>
+ <translation type="unfinished">移除</translation>
+ </message>
+ <message>
+ <location filename="../playlistbrowser.cpp" line="35"/>
+ <source>Rename</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>PresetEditor</name>
<message>
<location filename="../forms/preseteditor.ui" line="13"/>
diff --git a/src/ui/ui.pro b/src/ui/ui.pro
index d5ff02cb8..68644a7db 100644
--- a/src/ui/ui.pro
+++ b/src/ui/ui.pro
@@ -7,7 +7,8 @@ FORMS += ./forms/configdialog.ui \
./forms/preseteditor.ui \
./forms/jumptotrackdialog.ui \
./forms/aboutdialog.ui \
- ./forms/addurldialog.ui
+ ./forms/addurldialog.ui \
+ ./forms/playlistbrowser.ui
HEADERS += mainwindow.h \
button.h \
display.h \
@@ -53,7 +54,8 @@ HEADERS += mainwindow.h \
shadedvisual.h \
shadedbar.h \
builtincommandlineoption.h \
- cursorimage.h
+ cursorimage.h \
+ playlistbrowser.h
SOURCES += mainwindow.cpp \
mp3player.cpp \
button.cpp \
@@ -99,7 +101,8 @@ SOURCES += mainwindow.cpp \
shadedvisual.cpp \
shadedbar.cpp \
builtincommandlineoption.cpp \
- cursorimage.cpp
+ cursorimage.cpp \
+ playlistbrowser.cpp
win32:HEADERS += ../qmmp/visual.h
unix {
HEADERS += unixdomainsocket.h