aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2009-01-12 19:02:25 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2009-01-12 19:02:25 +0000
commit903b18a193ea4a647b0ac2eaf8698e5c6b3bff7a (patch)
tree976de1e4031a232700d9c38fb24aec7288825f47
parent3cc0b2fa0f81e2ee09c3ae3d92d31c88ac5b9b6b (diff)
downloadqmmp-903b18a193ea4a647b0ac2eaf8698e5c6b3bff7a.tar.gz
qmmp-903b18a193ea4a647b0ac2eaf8698e5c6b3bff7a.tar.bz2
qmmp-903b18a193ea4a647b0ac2eaf8698e5c6b3bff7a.zip
menu support
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@741 90c681e8-e032-0410-971d-27865f9a5e38
-rw-r--r--src/qmmpui/generalhandler.cpp91
-rw-r--r--src/qmmpui/generalhandler.h24
-rw-r--r--src/ui/mainwindow.cpp1
-rw-r--r--src/ui/playlist.cpp4
-rw-r--r--src/ui/translations/qmmp_cs.ts96
-rw-r--r--src/ui/translations/qmmp_de.ts96
-rw-r--r--src/ui/translations/qmmp_pl_PL.ts96
-rw-r--r--src/ui/translations/qmmp_pt_BR.ts96
-rw-r--r--src/ui/translations/qmmp_ru.ts97
-rw-r--r--src/ui/translations/qmmp_tr.ts96
-rw-r--r--src/ui/translations/qmmp_uk_UA.ts96
-rw-r--r--src/ui/translations/qmmp_zh_CN.ts96
-rw-r--r--src/ui/translations/qmmp_zh_TW.ts96
13 files changed, 576 insertions, 409 deletions
diff --git a/src/qmmpui/generalhandler.cpp b/src/qmmpui/generalhandler.cpp
index b371b8253..a7876173e 100644
--- a/src/qmmpui/generalhandler.cpp
+++ b/src/qmmpui/generalhandler.cpp
@@ -19,6 +19,10 @@
***************************************************************************/
#include <QDialog>
+#include <QMenu>
+#include <QWidget>
+#include <QAction>
+
#include "general.h"
#include "generalfactory.h"
#include "commandlinemanager.h"
@@ -31,15 +35,9 @@ GeneralHandler::GeneralHandler(QObject *parent)
: QObject(parent)
{
m_instance = this;
- /*m_left = 0;
- m_right = 0;
- m_time = 0;
- m_state = General::Stopped;*/
+ m_toolsMenu = 0;
+ m_playlistMenu = 0;
GeneralFactory* factory;
- //m_control = new Control(this);
- /*connect(m_control, SIGNAL(commandCalled(uint)), SLOT(processCommand(uint)));
- connect(m_control, SIGNAL(seekCalled(int)), SIGNAL(seekCalled(int)));
- connect(m_control, SIGNAL(volumeChanged(int, int)), SIGNAL(volumeChanged(int, int)));*/
foreach(factory, *General::generalFactories())
{
if (General::isEnabled(factory))
@@ -67,13 +65,6 @@ void GeneralHandler::setEnabled(GeneralFactory* factory, bool enable)
connect (general, SIGNAL(toggleVisibilityCalled()), SIGNAL(toggleVisibilityCalled()));
connect (general, SIGNAL(exitCalled()), SIGNAL(exitCalled()));
m_generals.insert(factory, general);
- //general->setVolume(m_left, m_right);
- /*if (m_state != General::Stopped)
- {
- general->setState(m_state);
- general->setSongInfo(m_songInfo);
- general->setTime(m_time);
- }*/
}
else
{
@@ -96,12 +87,6 @@ void GeneralHandler::showSettings(GeneralFactory* factory, QWidget* parentWidget
connect (general, SIGNAL(toggleVisibilityCalled()), SIGNAL(toggleVisibilityCalled()));
connect (general, SIGNAL(exitCalled()), SIGNAL(exitCalled()));
m_generals[factory] = general;
- /*general->setVolume(m_left, m_right);
- if (m_state != General::Stopped)
- {
- general->setState(m_state);
- general->setSongInfo(m_songInfo);
- }*/
}
dialog->deleteLater();
}
@@ -119,10 +104,72 @@ bool GeneralHandler::visibilityControl()
void GeneralHandler::executeCommand(const QString &opt_str)
{
- if(CommandLineManager::hasOption(opt_str))
+ if (CommandLineManager::hasOption(opt_str))
m_commandLineManager->executeCommand(opt_str);
}
+void GeneralHandler::addAction(QAction *action, MenuType type)
+{
+ switch ((int) type)
+ {
+ case TOOLS_MENU:
+ if (!m_toolsActions.contains(action))
+ m_toolsActions.append(action);
+ if (m_toolsMenu && !m_toolsMenu->actions ().contains(action))
+ m_toolsMenu->addAction(action);
+ break;
+ case PLAYLIST_MENU:
+ if (!m_playlistActions.contains(action))
+ m_playlistActions.append(action);
+ if (m_playlistMenu && !m_playlistMenu->actions ().contains(action))
+ m_playlistMenu->addAction(action);
+ }
+}
+
+void GeneralHandler::removeAction(QAction *action)
+{
+ m_toolsActions.removeAll(action);
+ if (m_toolsMenu)
+ m_toolsMenu->removeAction(action);
+ m_playlistActions.removeAll(action);
+ if (m_playlistMenu)
+ m_playlistMenu->removeAction(action);
+}
+
+QList<QAction *> GeneralHandler::actions(MenuType type)
+{
+ if (type == TOOLS_MENU)
+ return m_toolsActions;
+ else
+ return m_playlistActions;
+}
+
+QMenu *GeneralHandler::createMenu(MenuType type, const QString &title, QWidget *parent)
+{
+ switch ((int) type)
+ {
+ case TOOLS_MENU:
+ if (!m_toolsMenu)
+ {
+ m_toolsMenu = new QMenu(title, parent);
+ m_toolsMenu->addActions(m_toolsActions);
+ }
+ else
+ m_toolsMenu->setTitle(title);
+ return m_toolsMenu.data();
+ case PLAYLIST_MENU:
+ if (!m_playlistMenu)
+ {
+ m_playlistMenu = new QMenu(title, parent);
+ m_playlistMenu->addActions(m_toolsActions);
+ }
+ else
+ m_playlistMenu->setTitle(title);
+ return m_playlistMenu.data();
+ }
+ return 0;
+}
+
GeneralHandler* GeneralHandler::instance()
{
return m_instance;
diff --git a/src/qmmpui/generalhandler.h b/src/qmmpui/generalhandler.h
index 689170fce..73386ac0a 100644
--- a/src/qmmpui/generalhandler.h
+++ b/src/qmmpui/generalhandler.h
@@ -22,6 +22,12 @@
#include <QObject>
#include <QMap>
+#include <QList>
+#include <QPointer>
+
+class QAction;
+class QMenu;
+class QWidget;
class General;
class Control;
@@ -31,6 +37,8 @@ class CommandLineManager;
/**
@author Ilya Kotov <forkotov02@hotmail.ru>
*/
+
+//TODO add documentation
class GeneralHandler : public QObject
{
Q_OBJECT
@@ -39,10 +47,22 @@ public:
~GeneralHandler();
+ enum MenuType
+ {
+ TOOLS_MENU = 0,
+ PLAYLIST_MENU
+ };
+
void setEnabled(GeneralFactory* factory, bool enable);
void showSettings(GeneralFactory* factory, QWidget* parentWidget);
bool visibilityControl();
void executeCommand(const QString &opt_str);
+ //actions
+ void addAction(QAction *action, MenuType type = TOOLS_MENU);
+ void removeAction(QAction *action);
+ QList<QAction *> actions(MenuType type = TOOLS_MENU);
+ QMenu *createMenu(MenuType type, const QString &title = QString(), QWidget *parent = 0);
+
static GeneralHandler* instance();
signals:
@@ -52,6 +72,10 @@ signals:
private:
QMap <GeneralFactory*, General*> m_generals;
CommandLineManager *m_commandLineManager;
+ QList <QAction*> m_toolsActions;
+ QList <QAction*> m_playlistActions;
+ QPointer<QMenu> m_toolsMenu;
+ QPointer<QMenu> m_playlistMenu;
static GeneralHandler* m_instance;
};
diff --git a/src/ui/mainwindow.cpp b/src/ui/mainwindow.cpp
index faf8b1dda..4986d8712 100644
--- a/src/ui/mainwindow.cpp
+++ b/src/ui/mainwindow.cpp
@@ -440,6 +440,7 @@ void MainWindow::createActions()
m_mainMenu->addSeparator();
m_visMenu = new VisualMenu(this);
m_mainMenu->addMenu(m_visMenu);
+ m_mainMenu->addMenu(m_generalHandler->createMenu(GeneralHandler::TOOLS_MENU, tr("Tools"), this));
m_mainMenu->addSeparator();
m_mainMenu->addAction(tr("&Settings"), this, SLOT(showSettings()), tr("Ctrl+P"));
m_mainMenu->addSeparator();
diff --git a/src/ui/playlist.cpp b/src/ui/playlist.cpp
index 866fdcf33..8913b58c1 100644
--- a/src/ui/playlist.cpp
+++ b/src/ui/playlist.cpp
@@ -42,6 +42,7 @@
#include <qmmpui/playlistitem.h>
#include <qmmpui/playlistmodel.h>
#include <qmmpui/fileloader.h>
+#include <qmmpui/generalhandler.h>
#include <qmmp/soundcore.h>
PlayList::PlayList (QWidget *parent)
@@ -239,6 +240,9 @@ void PlayList::createActions()
m_listWidget->menu()->addSeparator();
m_listWidget->menu()->addActions (m_subMenu->actions());
+ m_listWidget->menu()->addMenu(GeneralHandler::instance()->createMenu(GeneralHandler::PLAYLIST_MENU,
+ tr("Actions"), this));
+
m_listWidget->menu()->addSeparator();
m_listWidget->menu()->addAction(tr("&Queue"),m_playListModel, SLOT(addToQueue()), tr("Q"));
m_actions << m_listWidget->menu()->actions();
diff --git a/src/ui/translations/qmmp_cs.ts b/src/ui/translations/qmmp_cs.ts
index f47851fcf..76dcc9342 100644
--- a/src/ui/translations/qmmp_cs.ts
+++ b/src/ui/translations/qmmp_cs.ts
@@ -709,7 +709,7 @@
<context>
<name>MainWindow</name>
<message>
- <location filename="../mainwindow.cpp" line="478"/>
+ <location filename="../mainwindow.cpp" line="479"/>
<source>Default</source>
<translation>Seznam</translation>
</message>
@@ -784,42 +784,42 @@
<translation>J</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="444"/>
+ <location filename="../mainwindow.cpp" line="445"/>
<source>&amp;Settings</source>
<translation>&amp;Nastavení</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="444"/>
+ <location filename="../mainwindow.cpp" line="445"/>
<source>Ctrl+P</source>
<translation>Ctrl+P</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="446"/>
+ <location filename="../mainwindow.cpp" line="447"/>
<source>&amp;About</source>
<translation>O &amp;aplikaci</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="450"/>
+ <location filename="../mainwindow.cpp" line="451"/>
<source>&amp;Exit</source>
<translation>U&amp;končit</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="450"/>
+ <location filename="../mainwindow.cpp" line="451"/>
<source>Ctrl+Q</source>
<translation>Ctrl+Q</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="516"/>
+ <location filename="../mainwindow.cpp" line="517"/>
<source>Playlist Files</source>
<translation>Seznamy skladeb</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="492"/>
+ <location filename="../mainwindow.cpp" line="493"/>
<source>Open Playlist</source>
<translation>Načíst seznam skladeb</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="517"/>
+ <location filename="../mainwindow.cpp" line="518"/>
<source>Save Playlist</source>
<translation>Uložit seznam skladeb</translation>
</message>
@@ -829,7 +829,7 @@
<translation>Mezerník</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="447"/>
+ <location filename="../mainwindow.cpp" line="448"/>
<source>&amp;About Qt</source>
<translation>O knihovně &amp;Qt</translation>
</message>
@@ -873,174 +873,184 @@
<source>&amp;Repeat Playlist</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location filename="../mainwindow.cpp" line="443"/>
+ <source>Tools</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>PlayList</name>
<message>
- <location filename="../playlist.cpp" line="134"/>
+ <location filename="../playlist.cpp" line="135"/>
<source>&amp;Add File</source>
<translation>Přidat &amp;soubor</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="135"/>
+ <location filename="../playlist.cpp" line="136"/>
<source>F</source>
<translation>F</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="140"/>
+ <location filename="../playlist.cpp" line="141"/>
<source>&amp;Add Directory</source>
<translation>Přidat &amp;adresář</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="141"/>
+ <location filename="../playlist.cpp" line="142"/>
<source>D</source>
<translation>D</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="153"/>
+ <location filename="../playlist.cpp" line="154"/>
<source>&amp;Remove Selected</source>
<translation>&amp;Odstranit vybrané</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="154"/>
+ <location filename="../playlist.cpp" line="155"/>
<source>Del</source>
<translation>Del</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="160"/>
+ <location filename="../playlist.cpp" line="161"/>
<source>&amp;Remove All</source>
<translation>Odstranit &amp;vše</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="166"/>
+ <location filename="../playlist.cpp" line="167"/>
<source>&amp;Remove Unselected</source>
<translation>Odstranit &amp;nevybrané</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="172"/>
+ <location filename="../playlist.cpp" line="173"/>
<source>&amp;View Track Details</source>
<translation>Zobrazit &amp;informace o skladbě</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="173"/>
+ <location filename="../playlist.cpp" line="174"/>
<source>Alt+I</source>
<translation>Alt+I</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="181"/>
+ <location filename="../playlist.cpp" line="182"/>
<source>Sort List</source>
<translation>Seřadit seznam</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="211"/>
+ <location filename="../playlist.cpp" line="212"/>
<source>By Title</source>
<translation>Podle názvu skladby</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="215"/>
+ <location filename="../playlist.cpp" line="216"/>
<source>By Filename</source>
<translation>Podle názvu souboru</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="219"/>
+ <location filename="../playlist.cpp" line="220"/>
<source>By Path + Filename</source>
<translation>Podle cesty a názvu souboru</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="223"/>
+ <location filename="../playlist.cpp" line="224"/>
<source>By Date</source>
<translation>Podle data</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="209"/>
+ <location filename="../playlist.cpp" line="210"/>
<source>Sort Selection</source>
<translation>Seřadit výběr</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="237"/>
+ <location filename="../playlist.cpp" line="238"/>
<source>Randomize List</source>
<translation>Zamíchat seznam</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="238"/>
+ <location filename="../playlist.cpp" line="239"/>
<source>Reverse List</source>
<translation>Obrátit pořadí seznamu</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="247"/>
+ <location filename="../playlist.cpp" line="251"/>
<source>Invert Selection</source>
<translation>Invertovat výběr</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="254"/>
+ <location filename="../playlist.cpp" line="258"/>
<source>&amp;Select None</source>
<translation>&amp;Zrušit výběr</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="261"/>
+ <location filename="../playlist.cpp" line="265"/>
<source>&amp;Select All</source>
<translation>&amp;Vybrat vše</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="262"/>
+ <location filename="../playlist.cpp" line="266"/>
<source>Ctrl+A</source>
<translation>Ctrl+A</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="269"/>
+ <location filename="../playlist.cpp" line="273"/>
<source>&amp;New List</source>
<translation>&amp;Nový seznam</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="270"/>
+ <location filename="../playlist.cpp" line="274"/>
<source>Shift+N</source>
<translation>Shift+N</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="276"/>
+ <location filename="../playlist.cpp" line="280"/>
<source>&amp;Load List</source>
<translation>Načíst &amp;seznam</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="277"/>
+ <location filename="../playlist.cpp" line="281"/>
<source>O</source>
<translation>O</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="281"/>
+ <location filename="../playlist.cpp" line="285"/>
<source>&amp;Save List</source>
<translation>&amp;Uložit seznam</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="282"/>
+ <location filename="../playlist.cpp" line="286"/>
<source>Shift+S</source>
<translation>Shift+S</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="146"/>
+ <location filename="../playlist.cpp" line="147"/>
<source>&amp;Add Url</source>
<translation>Přidat &amp;URL</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="147"/>
+ <location filename="../playlist.cpp" line="148"/>
<source>U</source>
<translation>U</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="227"/>
+ <location filename="../playlist.cpp" line="228"/>
<source>By Track Number</source>
<translation>Podle čísla skladby</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="243"/>
+ <location filename="../playlist.cpp" line="247"/>
<source>&amp;Queue</source>
<translation>&amp;Fronta</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="243"/>
+ <location filename="../playlist.cpp" line="247"/>
<source>Q</source>
<translation>Q</translation>
</message>
+ <message>
+ <location filename="../playlist.cpp" line="244"/>
+ <source>Actions</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>PresetEditor</name>
diff --git a/src/ui/translations/qmmp_de.ts b/src/ui/translations/qmmp_de.ts
index fc32a2aff..e8b9012ed 100644
--- a/src/ui/translations/qmmp_de.ts
+++ b/src/ui/translations/qmmp_de.ts
@@ -709,7 +709,7 @@
<context>
<name>MainWindow</name>
<message>
- <location filename="../mainwindow.cpp" line="478"/>
+ <location filename="../mainwindow.cpp" line="479"/>
<source>Default</source>
<translation>Standard</translation>
</message>
@@ -784,42 +784,42 @@
<translation>J</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="444"/>
+ <location filename="../mainwindow.cpp" line="445"/>
<source>&amp;Settings</source>
<translation>&amp;Einstellungen</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="444"/>
+ <location filename="../mainwindow.cpp" line="445"/>
<source>Ctrl+P</source>
<translation>Strg+P</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="446"/>
+ <location filename="../mainwindow.cpp" line="447"/>
<source>&amp;About</source>
<translation>Ü&amp;ber</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="450"/>
+ <location filename="../mainwindow.cpp" line="451"/>
<source>&amp;Exit</source>
<translation>&amp;Beenden</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="450"/>
+ <location filename="../mainwindow.cpp" line="451"/>
<source>Ctrl+Q</source>
<translation>Strg+Q</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="516"/>
+ <location filename="../mainwindow.cpp" line="517"/>
<source>Playlist Files</source>
<translation>Wiedergabelisten</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="492"/>
+ <location filename="../mainwindow.cpp" line="493"/>
<source>Open Playlist</source>
<translation>Wiedergabeliste öffnen</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="517"/>
+ <location filename="../mainwindow.cpp" line="518"/>
<source>Save Playlist</source>
<translation>Wiedergabeliste speichern</translation>
</message>
@@ -829,7 +829,7 @@
<translation>Leertaste</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="447"/>
+ <location filename="../mainwindow.cpp" line="448"/>
<source>&amp;About Qt</source>
<translation>Übe&amp;r Qt</translation>
</message>
@@ -873,174 +873,184 @@
<source>&amp;Repeat Playlist</source>
<translation>W&amp;iedergabeliste wiederholen</translation>
</message>
+ <message>
+ <location filename="../mainwindow.cpp" line="443"/>
+ <source>Tools</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>PlayList</name>
<message>
- <location filename="../playlist.cpp" line="134"/>
+ <location filename="../playlist.cpp" line="135"/>
<source>&amp;Add File</source>
<translation>&amp;Datei hinzufügen</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="135"/>
+ <location filename="../playlist.cpp" line="136"/>
<source>F</source>
<translation>F</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="140"/>
+ <location filename="../playlist.cpp" line="141"/>
<source>&amp;Add Directory</source>
<translation>&amp;Verzeichnis hinzufügen</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="141"/>
+ <location filename="../playlist.cpp" line="142"/>
<source>D</source>
<translation>D</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="153"/>
+ <location filename="../playlist.cpp" line="154"/>
<source>&amp;Remove Selected</source>
<translation>&amp;Ausgewählte entfernen</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="154"/>
+ <location filename="../playlist.cpp" line="155"/>
<source>Del</source>
<translation>Entf</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="160"/>
+ <location filename="../playlist.cpp" line="161"/>
<source>&amp;Remove All</source>
<translation>Alle &amp;entfernen</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="166"/>
+ <location filename="../playlist.cpp" line="167"/>
<source>&amp;Remove Unselected</source>
<translation>&amp;Nicht ausgewählte entfernen</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="172"/>
+ <location filename="../playlist.cpp" line="173"/>
<source>&amp;View Track Details</source>
<translation>&amp;Titeldetails anzeigen</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="173"/>
+ <location filename="../playlist.cpp" line="174"/>
<source>Alt+I</source>
<translation>Alt+I</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="181"/>
+ <location filename="../playlist.cpp" line="182"/>
<source>Sort List</source>
<translation>Wiedergabeliste sortieren</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="211"/>
+ <location filename="../playlist.cpp" line="212"/>
<source>By Title</source>
<translation>Nach Titel</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="215"/>
+ <location filename="../playlist.cpp" line="216"/>
<source>By Filename</source>
<translation>Nach Dateinamen</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="219"/>
+ <location filename="../playlist.cpp" line="220"/>
<source>By Path + Filename</source>
<translation>Nach Pfad + Dateinamen</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="223"/>
+ <location filename="../playlist.cpp" line="224"/>
<source>By Date</source>
<translation>Nach Datum</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="209"/>
+ <location filename="../playlist.cpp" line="210"/>
<source>Sort Selection</source>
<translation>Auswahl sortieren</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="237"/>
+ <location filename="../playlist.cpp" line="238"/>
<source>Randomize List</source>
<translation>Wiedergabeliste mischen</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="238"/>
+ <location filename="../playlist.cpp" line="239"/>
<source>Reverse List</source>
<translation>Wiedergabeliste umkehren</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="247"/>
+ <location filename="../playlist.cpp" line="251"/>
<source>Invert Selection</source>
<translation>Auswahl umkehren</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="254"/>
+ <location filename="../playlist.cpp" line="258"/>
<source>&amp;Select None</source>
<translation>&amp;Auswahl aufheben</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="261"/>
+ <location filename="../playlist.cpp" line="265"/>
<source>&amp;Select All</source>
<translation>Alle aus&amp;wählen</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="262"/>
+ <location filename="../playlist.cpp" line="266"/>
<source>Ctrl+A</source>
<translation>Strg+A</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="269"/>
+ <location filename="../playlist.cpp" line="273"/>
<source>&amp;New List</source>
<translation>&amp;Neue Wiedergabeliste</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="270"/>
+ <location filename="../playlist.cpp" line="274"/>
<source>Shift+N</source>
<translation>Umschalt+N</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="276"/>
+ <location filename="../playlist.cpp" line="280"/>
<source>&amp;Load List</source>
<translation>Wiedergabeliste &amp;laden</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="277"/>
+ <location filename="../playlist.cpp" line="281"/>
<source>O</source>
<translation>O</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="281"/>
+ <location filename="../playlist.cpp" line="285"/>
<source>&amp;Save List</source>
<translation>Wiedergabeliste &amp;speichern</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="282"/>
+ <location filename="../playlist.cpp" line="286"/>
<source>Shift+S</source>
<translation>Umschalt+S</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="146"/>
+ <location filename="../playlist.cpp" line="147"/>
<source>&amp;Add Url</source>
<translation>&amp;URL hinzufügen</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="147"/>
+ <location filename="../playlist.cpp" line="148"/>
<source>U</source>
<translation>U</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="227"/>
+ <location filename="../playlist.cpp" line="228"/>
<source>By Track Number</source>
<translation>Nach Titelnummer</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="243"/>
+ <location filename="../playlist.cpp" line="247"/>
<source>&amp;Queue</source>
<translation>&amp;Warteschlange</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="243"/>
+ <location filename="../playlist.cpp" line="247"/>
<source>Q</source>
<translation>Q</translation>
</message>
+ <message>
+ <location filename="../playlist.cpp" line="244"/>
+ <source>Actions</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>PresetEditor</name>
diff --git a/src/ui/translations/qmmp_pl_PL.ts b/src/ui/translations/qmmp_pl_PL.ts
index 0636ec955..7f8cd2469 100644
--- a/src/ui/translations/qmmp_pl_PL.ts
+++ b/src/ui/translations/qmmp_pl_PL.ts
@@ -709,7 +709,7 @@
<context>
<name>MainWindow</name>
<message>
- <location filename="../mainwindow.cpp" line="478"/>
+ <location filename="../mainwindow.cpp" line="479"/>
<source>Default</source>
<translation>Domyślne</translation>
</message>
@@ -784,42 +784,42 @@
<translation>J</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="444"/>
+ <location filename="../mainwindow.cpp" line="445"/>
<source>&amp;Settings</source>
<translation>&amp;Ustawienia</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="444"/>
+ <location filename="../mainwindow.cpp" line="445"/>
<source>Ctrl+P</source>
<translation>Ctrl+P</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="450"/>
+ <location filename="../mainwindow.cpp" line="451"/>
<source>&amp;Exit</source>
<translation>&amp;Wyjście</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="450"/>
+ <location filename="../mainwindow.cpp" line="451"/>
<source>Ctrl+Q</source>
<translation>Ctrl+Q</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="492"/>
+ <location filename="../mainwindow.cpp" line="493"/>
<source>Open Playlist</source>
<translation>Otwórz listę odtwarzania</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="517"/>
+ <location filename="../mainwindow.cpp" line="518"/>
<source>Save Playlist</source>
<translation>Zapisz listę odtwarzania</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="446"/>
+ <location filename="../mainwindow.cpp" line="447"/>
<source>&amp;About</source>
<translation>&amp;O</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="516"/>
+ <location filename="../mainwindow.cpp" line="517"/>
<source>Playlist Files</source>
<translation>Pliki listy odtwarzania</translation>
</message>
@@ -829,7 +829,7 @@
<translation></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="447"/>
+ <location filename="../mainwindow.cpp" line="448"/>
<source>&amp;About Qt</source>
<translation>&amp;O Qt</translation>
</message>
@@ -873,174 +873,184 @@
<source>&amp;Repeat Playlist</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location filename="../mainwindow.cpp" line="443"/>
+ <source>Tools</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>PlayList</name>
<message>
- <location filename="../playlist.cpp" line="135"/>
+ <location filename="../playlist.cpp" line="136"/>
<source>F</source>
<translation>F</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="141"/>
+ <location filename="../playlist.cpp" line="142"/>
<source>D</source>
<translation>D</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="173"/>
+ <location filename="../playlist.cpp" line="174"/>
<source>Alt+I</source>
<translation>Alt+I</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="262"/>
+ <location filename="../playlist.cpp" line="266"/>
<source>Ctrl+A</source>
<translation>Ctrl+A</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="277"/>
+ <location filename="../playlist.cpp" line="281"/>
<source>O</source>
<translation>O</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="134"/>
+ <location filename="../playlist.cpp" line="135"/>
<source>&amp;Add File</source>
<translation>&amp;Dodaj plik</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="140"/>
+ <location filename="../playlist.cpp" line="141"/>
<source>&amp;Add Directory</source>
<translation>Dodaj &amp;katalog</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="153"/>
+ <location filename="../playlist.cpp" line="154"/>
<source>&amp;Remove Selected</source>
<translation>&amp;Usuń zaznaczone</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="160"/>
+ <location filename="../playlist.cpp" line="161"/>
<source>&amp;Remove All</source>
<translation>Usuń &amp;wszystkie</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="166"/>
+ <location filename="../playlist.cpp" line="167"/>
<source>&amp;Remove Unselected</source>
<translation>Usuń &amp;niezaznaczone</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="172"/>
+ <location filename="../playlist.cpp" line="173"/>
<source>&amp;View Track Details</source>
<translation>&amp;Pokaż informacje o pliku</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="181"/>
+ <location filename="../playlist.cpp" line="182"/>
<source>Sort List</source>
<translation>Sortuj listę</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="211"/>
+ <location filename="../playlist.cpp" line="212"/>
<source>By Title</source>
<translation>Według nazwy</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="215"/>
+ <location filename="../playlist.cpp" line="216"/>
<source>By Filename</source>
<translation>Według nazwy pliku</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="219"/>
+ <location filename="../playlist.cpp" line="220"/>
<source>By Path + Filename</source>
<translation>Według Ścieżki + Nazwy pliku</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="223"/>
+ <location filename="../playlist.cpp" line="224"/>
<source>By Date</source>
<translation>Wg Daty</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="209"/>
+ <location filename="../playlist.cpp" line="210"/>
<source>Sort Selection</source>
<translation>Sortuj zaznaczone</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="237"/>
+ <location filename="../playlist.cpp" line="238"/>
<source>Randomize List</source>
<translation>Tasuj listę</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="238"/>
+ <location filename="../playlist.cpp" line="239"/>
<source>Reverse List</source>
<translation>Odwróć listę</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="247"/>
+ <location filename="../playlist.cpp" line="251"/>
<source>Invert Selection</source>
<translation>Odwróć zaznaczenie</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="254"/>
+ <location filename="../playlist.cpp" line="258"/>
<source>&amp;Select None</source>
<translation>&amp;Odznacz wszystkie</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="261"/>
+ <location filename="../playlist.cpp" line="265"/>
<source>&amp;Select All</source>
<translation>&amp;Zaznacz wszystkie</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="269"/>
+ <location filename="../playlist.cpp" line="273"/>
<source>&amp;New List</source>
<translation>&amp;Nowa lista</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="270"/>
+ <location filename="../playlist.cpp" line="274"/>
<source>Shift+N</source>
<translation>Shift+N</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="276"/>
+ <location filename="../playlist.cpp" line="280"/>
<source>&amp;Load List</source>
<translation>&amp;Ładuj listę</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="281"/>
+ <location filename="../playlist.cpp" line="285"/>
<source>&amp;Save List</source>
<translation>&amp;Zapisz listę</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="282"/>
+ <location filename="../playlist.cpp" line="286"/>
<source>Shift+S</source>
<translation>Shift+S</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="154"/>
+ <location filename="../playlist.cpp" line="155"/>
<source>Del</source>
<translation>Del</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="146"/>
+ <location filename="../playlist.cpp" line="147"/>
<source>&amp;Add Url</source>
<translation>Dod&amp;aj Url</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="147"/>
+ <location filename="../playlist.cpp" line="148"/>
<source>U</source>
<translation>U</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="227"/>
+ <location filename="../playlist.cpp" line="228"/>
<source>By Track Number</source>
<translation>Wg numeru utworu</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="243"/>
+ <location filename="../playlist.cpp" line="247"/>
<source>&amp;Queue</source>
<translation>&amp;Kolejkuj</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="243"/>
+ <location filename="../playlist.cpp" line="247"/>
<source>Q</source>
<translation>Q</translation>
</message>
+ <message>
+ <location filename="../playlist.cpp" line="244"/>
+ <source>Actions</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>PresetEditor</name>
diff --git a/src/ui/translations/qmmp_pt_BR.ts b/src/ui/translations/qmmp_pt_BR.ts
index a7c51e08d..360341d66 100644
--- a/src/ui/translations/qmmp_pt_BR.ts
+++ b/src/ui/translations/qmmp_pt_BR.ts
@@ -709,7 +709,7 @@
<context>
<name>MainWindow</name>
<message>
- <location filename="../mainwindow.cpp" line="478"/>
+ <location filename="../mainwindow.cpp" line="479"/>
<source>Default</source>
<translation type="unfinished">Padrão</translation>
</message>
@@ -784,42 +784,42 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="444"/>
+ <location filename="../mainwindow.cpp" line="445"/>
<source>&amp;Settings</source>
<translation type="unfinished">Configurações</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="444"/>
+ <location filename="../mainwindow.cpp" line="445"/>
<source>Ctrl+P</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="450"/>
+ <location filename="../mainwindow.cpp" line="451"/>
<source>&amp;Exit</source>
<translation type="unfinished">Sair</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="450"/>
+ <location filename="../mainwindow.cpp" line="451"/>
<source>Ctrl+Q</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="492"/>
+ <location filename="../mainwindow.cpp" line="493"/>
<source>Open Playlist</source>
<translation type="unfinished">Abrir Playlist</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="517"/>
+ <location filename="../mainwindow.cpp" line="518"/>
<source>Save Playlist</source>
<translation type="unfinished">Salvar Playlist</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="446"/>
+ <location filename="../mainwindow.cpp" line="447"/>
<source>&amp;About</source>
<translation type="unfinished">&amp;Sobre</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="516"/>
+ <location filename="../mainwindow.cpp" line="517"/>
<source>Playlist Files</source>
<translation type="unfinished">ФArquivos de lista de músicas</translation>
</message>
@@ -829,7 +829,7 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="447"/>
+ <location filename="../mainwindow.cpp" line="448"/>
<source>&amp;About Qt</source>
<translation type="unfinished"></translation>
</message>
@@ -873,174 +873,184 @@
<source>&amp;Repeat Playlist</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location filename="../mainwindow.cpp" line="443"/>
+ <source>Tools</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>PlayList</name>
<message>
- <location filename="../playlist.cpp" line="135"/>
+ <location filename="../playlist.cpp" line="136"/>
<source>F</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="141"/>
+ <location filename="../playlist.cpp" line="142"/>
<source>D</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="173"/>
+ <location filename="../playlist.cpp" line="174"/>
<source>Alt+I</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="262"/>
+ <location filename="../playlist.cpp" line="266"/>
<source>Ctrl+A</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="277"/>
+ <location filename="../playlist.cpp" line="281"/>
<source>O</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="134"/>
+ <location filename="../playlist.cpp" line="135"/>
<source>&amp;Add File</source>
<translation type="unfinished">&amp;Adicionar arquivo</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="140"/>
+ <location filename="../playlist.cpp" line="141"/>
<source>&amp;Add Directory</source>
<translation type="unfinished">&amp;Adicionar Diretorio</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="153"/>
+ <location filename="../playlist.cpp" line="154"/>
<source>&amp;Remove Selected</source>
<translation type="unfinished">&amp;Remover selecionadas</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="160"/>
+ <location filename="../playlist.cpp" line="161"/>
<source>&amp;Remove All</source>
<translation type="unfinished">&amp;Remover tudo</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="166"/>
+ <location filename="../playlist.cpp" line="167"/>
<source>&amp;Remove Unselected</source>
<translation type="unfinished">&amp;Remover não selecionadas</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="172"/>
+ <location filename="../playlist.cpp" line="173"/>
<source>&amp;View Track Details</source>
<translation type="unfinished">&amp;Ver detalhes da Faixa</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="181"/>
+ <location filename="../playlist.cpp" line="182"/>
<source>Sort List</source>
<translation type="unfinished">Classificar lista</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="211"/>
+ <location filename="../playlist.cpp" line="212"/>
<source>By Title</source>
<translation type="unfinished">Por Título</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="215"/>
+ <location filename="../playlist.cpp" line="216"/>
<source>By Filename</source>
<translation type="unfinished">Por Nome</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="219"/>
+ <location filename="../playlist.cpp" line="220"/>
<source>By Path + Filename</source>
<translation type="unfinished">Por Dirertório + Nome</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="223"/>
+ <location filename="../playlist.cpp" line="224"/>
<source>By Date</source>
<translation type="unfinished">Por Data</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="209"/>
+ <location filename="../playlist.cpp" line="210"/>
<source>Sort Selection</source>
<translation type="unfinished">Classificar por Seleção</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="237"/>
+ <location filename="../playlist.cpp" line="238"/>
<source>Randomize List</source>
<translation type="unfinished">Lista Eleatória</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="238"/>
+ <location filename="../playlist.cpp" line="239"/>
<source>Reverse List</source>
<translation type="unfinished">Lista Revertida</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="247"/>
+ <location filename="../playlist.cpp" line="251"/>
<source>Invert Selection</source>
<translation type="unfinished">Inverter Seleção</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="254"/>
+ <location filename="../playlist.cpp" line="258"/>
<source>&amp;Select None</source>
<translation type="unfinished">&amp;Nenhum selecionado</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="261"/>
+ <location filename="../playlist.cpp" line="265"/>
<source>&amp;Select All</source>
<translation type="unfinished">&amp;Selecionar tudo</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="269"/>
+ <location filename="../playlist.cpp" line="273"/>
<source>&amp;New List</source>
<translation type="unfinished">&amp;Nova lista</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="270"/>
+ <location filename="../playlist.cpp" line="274"/>
<source>Shift+N</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="276"/>
+ <location filename="../playlist.cpp" line="280"/>
<source>&amp;Load List</source>
<translation type="unfinished">&amp;Carregar lista</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="281"/>
+ <location filename="../playlist.cpp" line="285"/>
<source>&amp;Save List</source>
<translation type="unfinished">&amp;Salvar lista</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="282"/>
+ <location filename="../playlist.cpp" line="286"/>
<source>Shift+S</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="154"/>
+ <location filename="../playlist.cpp" line="155"/>
<source>Del</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="146"/>
+ <location filename="../playlist.cpp" line="147"/>
<source>&amp;Add Url</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="147"/>
+ <location filename="../playlist.cpp" line="148"/>
<source>U</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="227"/>
+ <location filename="../playlist.cpp" line="228"/>
<source>By Track Number</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="243"/>
+ <location filename="../playlist.cpp" line="247"/>
<source>&amp;Queue</source>
<translation type="unfinished">Na fila</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="243"/>
+ <location filename="../playlist.cpp" line="247"/>
<source>Q</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location filename="../playlist.cpp" line="244"/>
+ <source>Actions</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>PresetEditor</name>
diff --git a/src/ui/translations/qmmp_ru.ts b/src/ui/translations/qmmp_ru.ts
index 2ac82e1bc..3d77384d7 100644
--- a/src/ui/translations/qmmp_ru.ts
+++ b/src/ui/translations/qmmp_ru.ts
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS><TS version="1.1" language="ru_RU">
+<defaultcodec></defaultcodec>
<context>
<name>AboutDialog</name>
<message>
@@ -709,7 +710,7 @@
<context>
<name>MainWindow</name>
<message>
- <location filename="../mainwindow.cpp" line="478"/>
+ <location filename="../mainwindow.cpp" line="479"/>
<source>Default</source>
<translation type="unfinished"></translation>
</message>
@@ -784,42 +785,42 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="444"/>
+ <location filename="../mainwindow.cpp" line="445"/>
<source>&amp;Settings</source>
<translation>&amp;Настройки</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="444"/>
+ <location filename="../mainwindow.cpp" line="445"/>
<source>Ctrl+P</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="450"/>
+ <location filename="../mainwindow.cpp" line="451"/>
<source>&amp;Exit</source>
<translation>&amp;Выход</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="450"/>
+ <location filename="../mainwindow.cpp" line="451"/>
<source>Ctrl+Q</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="492"/>
+ <location filename="../mainwindow.cpp" line="493"/>
<source>Open Playlist</source>
<translation>Открыть список</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="517"/>
+ <location filename="../mainwindow.cpp" line="518"/>
<source>Save Playlist</source>
<translation>Сохранить список</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="446"/>
+ <location filename="../mainwindow.cpp" line="447"/>
<source>&amp;About</source>
<translation>&amp;О программе</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="516"/>
+ <location filename="../mainwindow.cpp" line="517"/>
<source>Playlist Files</source>
<translation>Файлы списков</translation>
</message>
@@ -829,7 +830,7 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="447"/>
+ <location filename="../mainwindow.cpp" line="448"/>
<source>&amp;About Qt</source>
<translation>&amp;О библиотеке Qt</translation>
</message>
@@ -873,174 +874,184 @@
<source>&amp;Repeat Playlist</source>
<translation>&amp;Повторять лист</translation>
</message>
+ <message>
+ <location filename="../mainwindow.cpp" line="443"/>
+ <source>Tools</source>
+ <translation>Сервис</translation>
+ </message>
</context>
<context>
<name>PlayList</name>
<message>
- <location filename="../playlist.cpp" line="135"/>
+ <location filename="../playlist.cpp" line="136"/>
<source>F</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="141"/>
+ <location filename="../playlist.cpp" line="142"/>
<source>D</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="173"/>
+ <location filename="../playlist.cpp" line="174"/>
<source>Alt+I</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="262"/>
+ <location filename="../playlist.cpp" line="266"/>
<source>Ctrl+A</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="277"/>
+ <location filename="../playlist.cpp" line="281"/>
<source>O</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="134"/>
+ <location filename="../playlist.cpp" line="135"/>
<source>&amp;Add File</source>
<translation>&amp;Добавить файл</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="140"/>
+ <location filename="../playlist.cpp" line="141"/>
<source>&amp;Add Directory</source>
<translation>&amp;Добавить директорию</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="153"/>
+ <location filename="../playlist.cpp" line="154"/>
<source>&amp;Remove Selected</source>
<translation>&amp;Удалить выделенное</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="160"/>
+ <location filename="../playlist.cpp" line="161"/>
<source>&amp;Remove All</source>
<translation>&amp;Удалить всё</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="166"/>
+ <location filename="../playlist.cpp" line="167"/>
<source>&amp;Remove Unselected</source>
<translation>&amp;Удалить невыделенное</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="172"/>
+ <location filename="../playlist.cpp" line="173"/>
<source>&amp;View Track Details</source>
<translation>&amp;Информация</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="181"/>
+ <location filename="../playlist.cpp" line="182"/>
<source>Sort List</source>
<translation>Сортировать</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="211"/>
+ <location filename="../playlist.cpp" line="212"/>
<source>By Title</source>
<translation>По названию</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="215"/>
+ <location filename="../playlist.cpp" line="216"/>
<source>By Filename</source>
<translation>По имени файла</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="219"/>
+ <location filename="../playlist.cpp" line="220"/>
<source>By Path + Filename</source>
<translation>По пути и файлу</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="223"/>
+ <location filename="../playlist.cpp" line="224"/>
<source>By Date</source>
<translation>По дате</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="209"/>
+ <location filename="../playlist.cpp" line="210"/>
<source>Sort Selection</source>
<translation>Сортировать выделенное</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="237"/>
+ <location filename="../playlist.cpp" line="238"/>
<source>Randomize List</source>
<translation>Перемешать</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="238"/>
+ <location filename="../playlist.cpp" line="239"/>
<source>Reverse List</source>
<translation>Перевернуть</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="247"/>
+ <location filename="../playlist.cpp" line="251"/>
<source>Invert Selection</source>
<translation>Инвертировать выделение</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="254"/>
+ <location filename="../playlist.cpp" line="258"/>
<source>&amp;Select None</source>
<translation>&amp;Снять выделение</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="261"/>
+ <location filename="../playlist.cpp" line="265"/>
<source>&amp;Select All</source>
<translation>&amp;Выделить всё</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="269"/>
+ <location filename="../playlist.cpp" line="273"/>
<source>&amp;New List</source>
<translation>&amp;Новый лист</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="270"/>
+ <location filename="../playlist.cpp" line="274"/>
<source>Shift+N</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="276"/>
+ <location filename="../playlist.cpp" line="280"/>
<source>&amp;Load List</source>
<translation>&amp;Загрузить лист</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="281"/>
+ <location filename="../playlist.cpp" line="285"/>
<source>&amp;Save List</source>
<translation>&amp;Сохранить лист</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="282"/>
+ <location filename="../playlist.cpp" line="286"/>
<source>Shift+S</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="154"/>
+ <location filename="../playlist.cpp" line="155"/>
<source>Del</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="146"/>
+ <location filename="../playlist.cpp" line="147"/>
<source>&amp;Add Url</source>
<translation>&amp;Добавить URL</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="147"/>
+ <location filename="../playlist.cpp" line="148"/>
<source>U</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="227"/>
+ <location filename="../playlist.cpp" line="228"/>
<source>By Track Number</source>
<translation>По номеру трека</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="243"/>
+ <location filename="../playlist.cpp" line="247"/>
<source>&amp;Queue</source>
<translation>&amp;В очередь</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="243"/>
+ <location filename="../playlist.cpp" line="247"/>
<source>Q</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location filename="../playlist.cpp" line="244"/>
+ <source>Actions</source>
+ <translation>Действия</translation>
+ </message>
</context>
<context>
<name>PresetEditor</name>
diff --git a/src/ui/translations/qmmp_tr.ts b/src/ui/translations/qmmp_tr.ts
index fe6be9842..f5cb03a7f 100644
--- a/src/ui/translations/qmmp_tr.ts
+++ b/src/ui/translations/qmmp_tr.ts
@@ -709,7 +709,7 @@
<context>
<name>MainWindow</name>
<message>
- <location filename="../mainwindow.cpp" line="478"/>
+ <location filename="../mainwindow.cpp" line="479"/>
<source>Default</source>
<translation>Öntanımlı</translation>
</message>
@@ -784,42 +784,42 @@
<translation>J</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="444"/>
+ <location filename="../mainwindow.cpp" line="445"/>
<source>&amp;Settings</source>
<translation>&amp;Ayarlar</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="444"/>
+ <location filename="../mainwindow.cpp" line="445"/>
<source>Ctrl+P</source>
<translation>Ctrl+P</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="450"/>
+ <location filename="../mainwindow.cpp" line="451"/>
<source>&amp;Exit</source>
<translation>&amp;Çıkış</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="450"/>
+ <location filename="../mainwindow.cpp" line="451"/>
<source>Ctrl+Q</source>
<translation>Ctrl+Q</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="492"/>
+ <location filename="../mainwindow.cpp" line="493"/>
<source>Open Playlist</source>
<translation>Çalma Listesini Aç</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="517"/>
+ <location filename="../mainwindow.cpp" line="518"/>
<source>Save Playlist</source>
<translation>Çalma Listesini Kaydet</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="446"/>
+ <location filename="../mainwindow.cpp" line="447"/>
<source>&amp;About</source>
<translation>&amp;Hakkında</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="516"/>
+ <location filename="../mainwindow.cpp" line="517"/>
<source>Playlist Files</source>
<translation>Çalma Listesi Dosyaları</translation>
</message>
@@ -829,7 +829,7 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="447"/>
+ <location filename="../mainwindow.cpp" line="448"/>
<source>&amp;About Qt</source>
<translation type="unfinished"></translation>
</message>
@@ -873,174 +873,184 @@
<source>&amp;Repeat Playlist</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location filename="../mainwindow.cpp" line="443"/>
+ <source>Tools</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>PlayList</name>
<message>
- <location filename="../playlist.cpp" line="135"/>
+ <location filename="../playlist.cpp" line="136"/>
<source>F</source>
<translation>F</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="141"/>
+ <location filename="../playlist.cpp" line="142"/>
<source>D</source>
<translation>D</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="173"/>
+ <location filename="../playlist.cpp" line="174"/>
<source>Alt+I</source>
<translation>Alt+I</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="262"/>
+ <location filename="../playlist.cpp" line="266"/>
<source>Ctrl+A</source>
<translation>Ctrl+A</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="277"/>
+ <location filename="../playlist.cpp" line="281"/>
<source>O</source>
<translation>O</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="134"/>
+ <location filename="../playlist.cpp" line="135"/>
<source>&amp;Add File</source>
<translation>&amp;Dosya Ekle</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="140"/>
+ <location filename="../playlist.cpp" line="141"/>
<source>&amp;Add Directory</source>
<translation>&amp;Dizin Ekle</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="153"/>
+ <location filename="../playlist.cpp" line="154"/>
<source>&amp;Remove Selected</source>
<translation>&amp;Seçileni Kaldır</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="160"/>
+ <location filename="../playlist.cpp" line="161"/>
<source>&amp;Remove All</source>
<translation>&amp;Hepsini Kaldır</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="166"/>
+ <location filename="../playlist.cpp" line="167"/>
<source>&amp;Remove Unselected</source>
<translation>&amp;Seçilmemişleri Kaldır</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="172"/>
+ <location filename="../playlist.cpp" line="173"/>
<source>&amp;View Track Details</source>
<translation>&amp;Parça Detaylarını Göster</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="181"/>
+ <location filename="../playlist.cpp" line="182"/>
<source>Sort List</source>
<translation>Listeyi Sınıflandır</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="211"/>
+ <location filename="../playlist.cpp" line="212"/>
<source>By Title</source>
<translation>Başlığa Göre</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="215"/>
+ <location filename="../playlist.cpp" line="216"/>
<source>By Filename</source>
<translation>Dosya Adına Göre</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="219"/>
+ <location filename="../playlist.cpp" line="220"/>
<source>By Path + Filename</source>
<translation>Dosya Yolu + Dosya Adına Göre</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="223"/>
+ <location filename="../playlist.cpp" line="224"/>
<source>By Date</source>
<translation>Tarihe Göre</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="209"/>
+ <location filename="../playlist.cpp" line="210"/>
<source>Sort Selection</source>
<translation>Seçilenleri Sınıflandır</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="237"/>
+ <location filename="../playlist.cpp" line="238"/>
<source>Randomize List</source>
<translation>Rastgele Listele</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="238"/>
+ <location filename="../playlist.cpp" line="239"/>
<source>Reverse List</source>
<translation>Listeyi Ters Çevir</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="247"/>
+ <location filename="../playlist.cpp" line="251"/>
<source>Invert Selection</source>
<translation>Seçimi Tersine Çevir</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="254"/>
+ <location filename="../playlist.cpp" line="258"/>
<source>&amp;Select None</source>
<translation>&amp;Hiçbirini Seçme</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="261"/>
+ <location filename="../playlist.cpp" line="265"/>
<source>&amp;Select All</source>
<translation>&amp;Tümünü Seç</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="269"/>
+ <location filename="../playlist.cpp" line="273"/>
<source>&amp;New List</source>
<translation>&amp;Yeni Liste</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="270"/>
+ <location filename="../playlist.cpp" line="274"/>
<source>Shift+N</source>
<translation>Shift+N</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="276"/>
+ <location filename="../playlist.cpp" line="280"/>
<source>&amp;Load List</source>
<translation>&amp;Liste Yükle</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="281"/>
+ <location filename="../playlist.cpp" line="285"/>
<source>&amp;Save List</source>
<translation>&amp;Listeyi Kaydet</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="282"/>
+ <location filename="../playlist.cpp" line="286"/>
<source>Shift+S</source>
<translation>Shift+S</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="154"/>
+ <location filename="../playlist.cpp" line="155"/>
<source>Del</source>
<translation>Del</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="146"/>
+ <location filename="../playlist.cpp" line="147"/>
<source>&amp;Add Url</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="147"/>
+ <location filename="../playlist.cpp" line="148"/>
<source>U</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="227"/>
+ <location filename="../playlist.cpp" line="228"/>
<source>By Track Number</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="243"/>
+ <location filename="../playlist.cpp" line="247"/>
<source>&amp;Queue</source>
<translation type="unfinished">&amp;Kuyruğa ekle</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="243"/>
+ <location filename="../playlist.cpp" line="247"/>
<source>Q</source>
<translation type="unfinished">Q</translation>
</message>
+ <message>
+ <location filename="../playlist.cpp" line="244"/>
+ <source>Actions</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>PresetEditor</name>
diff --git a/src/ui/translations/qmmp_uk_UA.ts b/src/ui/translations/qmmp_uk_UA.ts
index 54f567a67..c9f4df2e6 100644
--- a/src/ui/translations/qmmp_uk_UA.ts
+++ b/src/ui/translations/qmmp_uk_UA.ts
@@ -709,7 +709,7 @@
<context>
<name>MainWindow</name>
<message>
- <location filename="../mainwindow.cpp" line="478"/>
+ <location filename="../mainwindow.cpp" line="479"/>
<source>Default</source>
<translation>За умовчанням</translation>
</message>
@@ -784,42 +784,42 @@
<translation></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="444"/>
+ <location filename="../mainwindow.cpp" line="445"/>
<source>&amp;Settings</source>
<translation>&amp;Налаштування</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="444"/>
+ <location filename="../mainwindow.cpp" line="445"/>
<source>Ctrl+P</source>
<translation></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="450"/>
+ <location filename="../mainwindow.cpp" line="451"/>
<source>&amp;Exit</source>
<translation>&amp;Вихід</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="450"/>
+ <location filename="../mainwindow.cpp" line="451"/>
<source>Ctrl+Q</source>
<translation></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="492"/>
+ <location filename="../mainwindow.cpp" line="493"/>
<source>Open Playlist</source>
<translation>Відкрити список</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="517"/>
+ <location filename="../mainwindow.cpp" line="518"/>
<source>Save Playlist</source>
<translation>Зберегти список</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="446"/>
+ <location filename="../mainwindow.cpp" line="447"/>
<source>&amp;About</source>
<translation>&amp;Про програму</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="516"/>
+ <location filename="../mainwindow.cpp" line="517"/>
<source>Playlist Files</source>
<translation>Файли списків</translation>
</message>
@@ -829,7 +829,7 @@
<translation></translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="447"/>
+ <location filename="../mainwindow.cpp" line="448"/>
<source>&amp;About Qt</source>
<translation>&amp;Про Qt</translation>
</message>
@@ -873,174 +873,184 @@
<source>&amp;Repeat Playlist</source>
<translation>&amp;Повторити список</translation>
</message>
+ <message>
+ <location filename="../mainwindow.cpp" line="443"/>
+ <source>Tools</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>PlayList</name>
<message>
- <location filename="../playlist.cpp" line="135"/>
+ <location filename="../playlist.cpp" line="136"/>
<source>F</source>
<translation></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="141"/>
+ <location filename="../playlist.cpp" line="142"/>
<source>D</source>
<translation></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="173"/>
+ <location filename="../playlist.cpp" line="174"/>
<source>Alt+I</source>
<translation></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="262"/>
+ <location filename="../playlist.cpp" line="266"/>
<source>Ctrl+A</source>
<translation></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="277"/>
+ <location filename="../playlist.cpp" line="281"/>
<source>O</source>
<translation></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="134"/>
+ <location filename="../playlist.cpp" line="135"/>
<source>&amp;Add File</source>
<translation>&amp;Додати файл</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="140"/>
+ <location filename="../playlist.cpp" line="141"/>
<source>&amp;Add Directory</source>
<translation>&amp;Додати теку</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="153"/>
+ <location filename="../playlist.cpp" line="154"/>
<source>&amp;Remove Selected</source>
<translation>&amp;Видалити вибране</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="160"/>
+ <location filename="../playlist.cpp" line="161"/>
<source>&amp;Remove All</source>
<translation>&amp;Видалити все</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="166"/>
+ <location filename="../playlist.cpp" line="167"/>
<source>&amp;Remove Unselected</source>
<translation>&amp;Видалити не вибране</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="172"/>
+ <location filename="../playlist.cpp" line="173"/>
<source>&amp;View Track Details</source>
<translation>&amp;Інформація</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="181"/>
+ <location filename="../playlist.cpp" line="182"/>
<source>Sort List</source>
<translation>Сортувати</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="211"/>
+ <location filename="../playlist.cpp" line="212"/>
<source>By Title</source>
<translation>За назвою</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="215"/>
+ <location filename="../playlist.cpp" line="216"/>
<source>By Filename</source>
<translation>За ім&apos;ям файлу</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="219"/>
+ <location filename="../playlist.cpp" line="220"/>
<source>By Path + Filename</source>
<translation>За шляхом та файлом</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="223"/>
+ <location filename="../playlist.cpp" line="224"/>
<source>By Date</source>
<translation>За датою</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="209"/>
+ <location filename="../playlist.cpp" line="210"/>
<source>Sort Selection</source>
<translation>Сортувати вибране</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="237"/>
+ <location filename="../playlist.cpp" line="238"/>
<source>Randomize List</source>
<translation>Перемішати</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="238"/>
+ <location filename="../playlist.cpp" line="239"/>
<source>Reverse List</source>
<translation>Перевернути</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="247"/>
+ <location filename="../playlist.cpp" line="251"/>
<source>Invert Selection</source>
<translation>Інвертувати вибране</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="254"/>
+ <location filename="../playlist.cpp" line="258"/>
<source>&amp;Select None</source>
<translation>&amp;Зняти виділення</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="261"/>
+ <location filename="../playlist.cpp" line="265"/>
<source>&amp;Select All</source>
<translation>&amp;Вибрати все</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="269"/>
+ <location filename="../playlist.cpp" line="273"/>
<source>&amp;New List</source>
<translation>&amp;Новий список</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="270"/>
+ <location filename="../playlist.cpp" line="274"/>
<source>Shift+N</source>
<translation></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="276"/>
+ <location filename="../playlist.cpp" line="280"/>
<source>&amp;Load List</source>
<translation>&amp;Завантажити список</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="281"/>
+ <location filename="../playlist.cpp" line="285"/>
<source>&amp;Save List</source>
<translation>&amp;Зберегти список</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="282"/>
+ <location filename="../playlist.cpp" line="286"/>
<source>Shift+S</source>
<translation></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="154"/>
+ <location filename="../playlist.cpp" line="155"/>
<source>Del</source>
<translation></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="146"/>
+ <location filename="../playlist.cpp" line="147"/>
<source>&amp;Add Url</source>
<translation>&amp;Додати адресу</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="147"/>
+ <location filename="../playlist.cpp" line="148"/>
<source>U</source>
<translation></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="227"/>
+ <location filename="../playlist.cpp" line="228"/>
<source>By Track Number</source>
<translation></translation>
</message>
<message>
- <location filename="../playlist.cpp" line="243"/>
+ <location filename="../playlist.cpp" line="247"/>
<source>&amp;Queue</source>
<translation>&amp;В чергу</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="243"/>
+ <location filename="../playlist.cpp" line="247"/>
<source>Q</source>
<translation></translation>
</message>
+ <message>
+ <location filename="../playlist.cpp" line="244"/>
+ <source>Actions</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>PresetEditor</name>
diff --git a/src/ui/translations/qmmp_zh_CN.ts b/src/ui/translations/qmmp_zh_CN.ts
index b7d9688b5..9b64685ad 100644
--- a/src/ui/translations/qmmp_zh_CN.ts
+++ b/src/ui/translations/qmmp_zh_CN.ts
@@ -709,7 +709,7 @@
<context>
<name>MainWindow</name>
<message>
- <location filename="../mainwindow.cpp" line="478"/>
+ <location filename="../mainwindow.cpp" line="479"/>
<source>Default</source>
<translation>默认</translation>
</message>
@@ -784,42 +784,42 @@
<translation>J</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="444"/>
+ <location filename="../mainwindow.cpp" line="445"/>
<source>&amp;Settings</source>
<translation>设置(&amp;S)</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="444"/>
+ <location filename="../mainwindow.cpp" line="445"/>
<source>Ctrl+P</source>
<translation>Ctrl+P</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="450"/>
+ <location filename="../mainwindow.cpp" line="451"/>
<source>&amp;Exit</source>
<translation>退出(&amp;E)</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="450"/>
+ <location filename="../mainwindow.cpp" line="451"/>
<source>Ctrl+Q</source>
<translation>Ctrl+Q</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="492"/>
+ <location filename="../mainwindow.cpp" line="493"/>
<source>Open Playlist</source>
<translation>打开播放列表</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="517"/>
+ <location filename="../mainwindow.cpp" line="518"/>
<source>Save Playlist</source>
<translation>保存播放列表</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="446"/>
+ <location filename="../mainwindow.cpp" line="447"/>
<source>&amp;About</source>
<translation>关于(&amp;A)</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="516"/>
+ <location filename="../mainwindow.cpp" line="517"/>
<source>Playlist Files</source>
<translation>播放列表文件</translation>
</message>
@@ -829,7 +829,7 @@
<translation>空格</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="447"/>
+ <location filename="../mainwindow.cpp" line="448"/>
<source>&amp;About Qt</source>
<translation>关于 Qt (&amp;A)</translation>
</message>
@@ -873,174 +873,184 @@
<source>&amp;Repeat Playlist</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location filename="../mainwindow.cpp" line="443"/>
+ <source>Tools</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>PlayList</name>
<message>
- <location filename="../playlist.cpp" line="135"/>
+ <location filename="../playlist.cpp" line="136"/>
<source>F</source>
<translation>F</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="141"/>
+ <location filename="../playlist.cpp" line="142"/>
<source>D</source>
<translation>D</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="173"/>
+ <location filename="../playlist.cpp" line="174"/>
<source>Alt+I</source>
<translation>Alt+I</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="262"/>
+ <location filename="../playlist.cpp" line="266"/>
<source>Ctrl+A</source>
<translation>Ctrl+A</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="277"/>
+ <location filename="../playlist.cpp" line="281"/>
<source>O</source>
<translation>O</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="134"/>
+ <location filename="../playlist.cpp" line="135"/>
<source>&amp;Add File</source>
<translation>添加文件(&amp;A)</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="140"/>
+ <location filename="../playlist.cpp" line="141"/>
<source>&amp;Add Directory</source>
<translation>添加文件夹(&amp;A)</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="153"/>
+ <location filename="../playlist.cpp" line="154"/>
<source>&amp;Remove Selected</source>
<translation>删除所选(&amp;R)</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="160"/>
+ <location filename="../playlist.cpp" line="161"/>
<source>&amp;Remove All</source>
<translation>删除全部(&amp;R)</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="166"/>
+ <location filename="../playlist.cpp" line="167"/>
<source>&amp;Remove Unselected</source>
<translation>删除未选(&amp;R)</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="172"/>
+ <location filename="../playlist.cpp" line="173"/>
<source>&amp;View Track Details</source>
<translation>查看音轨详细信息(&amp;V)</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="181"/>
+ <location filename="../playlist.cpp" line="182"/>
<source>Sort List</source>
<translation>列表排序</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="211"/>
+ <location filename="../playlist.cpp" line="212"/>
<source>By Title</source>
<translation>按标题</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="215"/>
+ <location filename="../playlist.cpp" line="216"/>
<source>By Filename</source>
<translation>按文件名</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="219"/>
+ <location filename="../playlist.cpp" line="220"/>
<source>By Path + Filename</source>
<translation>按路径+文件名</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="223"/>
+ <location filename="../playlist.cpp" line="224"/>
<source>By Date</source>
<translation>按日期</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="209"/>
+ <location filename="../playlist.cpp" line="210"/>
<source>Sort Selection</source>
<translation>选择排序</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="237"/>
+ <location filename="../playlist.cpp" line="238"/>
<source>Randomize List</source>
<translation>随机产生列表</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="238"/>
+ <location filename="../playlist.cpp" line="239"/>
<source>Reverse List</source>
<translation>逆序列表</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="247"/>
+ <location filename="../playlist.cpp" line="251"/>
<source>Invert Selection</source>
<translation>反选</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="254"/>
+ <location filename="../playlist.cpp" line="258"/>
<source>&amp;Select None</source>
<translation>无选择(&amp;S)</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="261"/>
+ <location filename="../playlist.cpp" line="265"/>
<source>&amp;Select All</source>
<translation>选择全部(&amp;S)</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="269"/>
+ <location filename="../playlist.cpp" line="273"/>
<source>&amp;New List</source>
<translation>新建列表(&amp;N)</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="270"/>
+ <location filename="../playlist.cpp" line="274"/>
<source>Shift+N</source>
<translation>Shift+N</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="276"/>
+ <location filename="../playlist.cpp" line="280"/>
<source>&amp;Load List</source>
<translation>载入列表(&amp;L)</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="281"/>
+ <location filename="../playlist.cpp" line="285"/>
<source>&amp;Save List</source>
<translation>保存列表(&amp;S)</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="282"/>
+ <location filename="../playlist.cpp" line="286"/>
<source>Shift+S</source>
<translation>Shift+S</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="154"/>
+ <location filename="../playlist.cpp" line="155"/>
<source>Del</source>
<translation>Del</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="146"/>
+ <location filename="../playlist.cpp" line="147"/>
<source>&amp;Add Url</source>
<translation>添加 URL (&amp;A)</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="147"/>
+ <location filename="../playlist.cpp" line="148"/>
<source>U</source>
<translation>U</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="227"/>
+ <location filename="../playlist.cpp" line="228"/>
<source>By Track Number</source>
<translation>按音轨</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="243"/>
+ <location filename="../playlist.cpp" line="247"/>
<source>&amp;Queue</source>
<translation>队列(&amp;Q)</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="243"/>
+ <location filename="../playlist.cpp" line="247"/>
<source>Q</source>
<translation>Q</translation>
</message>
+ <message>
+ <location filename="../playlist.cpp" line="244"/>
+ <source>Actions</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>PresetEditor</name>
diff --git a/src/ui/translations/qmmp_zh_TW.ts b/src/ui/translations/qmmp_zh_TW.ts
index 96354f91e..2b8930d97 100644
--- a/src/ui/translations/qmmp_zh_TW.ts
+++ b/src/ui/translations/qmmp_zh_TW.ts
@@ -709,7 +709,7 @@
<context>
<name>MainWindow</name>
<message>
- <location filename="../mainwindow.cpp" line="478"/>
+ <location filename="../mainwindow.cpp" line="479"/>
<source>Default</source>
<translation>預設</translation>
</message>
@@ -784,42 +784,42 @@
<translation>J</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="444"/>
+ <location filename="../mainwindow.cpp" line="445"/>
<source>&amp;Settings</source>
<translation>設定(&amp;S)</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="444"/>
+ <location filename="../mainwindow.cpp" line="445"/>
<source>Ctrl+P</source>
<translation>Ctrl+P</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="450"/>
+ <location filename="../mainwindow.cpp" line="451"/>
<source>&amp;Exit</source>
<translation>結束(&amp;E)</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="450"/>
+ <location filename="../mainwindow.cpp" line="451"/>
<source>Ctrl+Q</source>
<translation>Ctrl+Q</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="492"/>
+ <location filename="../mainwindow.cpp" line="493"/>
<source>Open Playlist</source>
<translation>開啟播放清單</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="517"/>
+ <location filename="../mainwindow.cpp" line="518"/>
<source>Save Playlist</source>
<translation>儲存播放清單</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="446"/>
+ <location filename="../mainwindow.cpp" line="447"/>
<source>&amp;About</source>
<translation>關於(&amp;A)</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="516"/>
+ <location filename="../mainwindow.cpp" line="517"/>
<source>Playlist Files</source>
<translation>播放清單檔案</translation>
</message>
@@ -829,7 +829,7 @@
<translation>空格</translation>
</message>
<message>
- <location filename="../mainwindow.cpp" line="447"/>
+ <location filename="../mainwindow.cpp" line="448"/>
<source>&amp;About Qt</source>
<translation>關於 Qt (&amp;A)</translation>
</message>
@@ -873,174 +873,184 @@
<source>&amp;Repeat Playlist</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location filename="../mainwindow.cpp" line="443"/>
+ <source>Tools</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>PlayList</name>
<message>
- <location filename="../playlist.cpp" line="135"/>
+ <location filename="../playlist.cpp" line="136"/>
<source>F</source>
<translation>F</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="141"/>
+ <location filename="../playlist.cpp" line="142"/>
<source>D</source>
<translation>D</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="173"/>
+ <location filename="../playlist.cpp" line="174"/>
<source>Alt+I</source>
<translation>Alt+I</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="262"/>
+ <location filename="../playlist.cpp" line="266"/>
<source>Ctrl+A</source>
<translation>Ctrl+A</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="277"/>
+ <location filename="../playlist.cpp" line="281"/>
<source>O</source>
<translation>O</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="134"/>
+ <location filename="../playlist.cpp" line="135"/>
<source>&amp;Add File</source>
<translation>添加檔案(&amp;A)</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="140"/>
+ <location filename="../playlist.cpp" line="141"/>
<source>&amp;Add Directory</source>
<translation>添加檔案夾(&amp;A)</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="153"/>
+ <location filename="../playlist.cpp" line="154"/>
<source>&amp;Remove Selected</source>
<translation>移除所選(&amp;R)</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="160"/>
+ <location filename="../playlist.cpp" line="161"/>
<source>&amp;Remove All</source>
<translation>移除全部(&amp;R)</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="166"/>
+ <location filename="../playlist.cpp" line="167"/>
<source>&amp;Remove Unselected</source>
<translation>移除未選(&amp;R)</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="172"/>
+ <location filename="../playlist.cpp" line="173"/>
<source>&amp;View Track Details</source>
<translation>檢視音軌詳細資訊(&amp;V)</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="181"/>
+ <location filename="../playlist.cpp" line="182"/>
<source>Sort List</source>
<translation>清單排序</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="211"/>
+ <location filename="../playlist.cpp" line="212"/>
<source>By Title</source>
<translation>按標題</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="215"/>
+ <location filename="../playlist.cpp" line="216"/>
<source>By Filename</source>
<translation>按檔名</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="219"/>
+ <location filename="../playlist.cpp" line="220"/>
<source>By Path + Filename</source>
<translation>按路徑+檔名</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="223"/>
+ <location filename="../playlist.cpp" line="224"/>
<source>By Date</source>
<translation>按日期</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="209"/>
+ <location filename="../playlist.cpp" line="210"/>
<source>Sort Selection</source>
<translation>選取排序</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="237"/>
+ <location filename="../playlist.cpp" line="238"/>
<source>Randomize List</source>
<translation>隨機產生清單</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="238"/>
+ <location filename="../playlist.cpp" line="239"/>
<source>Reverse List</source>
<translation>逆串列表</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="247"/>
+ <location filename="../playlist.cpp" line="251"/>
<source>Invert Selection</source>
<translation>反選</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="254"/>
+ <location filename="../playlist.cpp" line="258"/>
<source>&amp;Select None</source>
<translation>無選取(&amp;S)</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="261"/>
+ <location filename="../playlist.cpp" line="265"/>
<source>&amp;Select All</source>
<translation>選取全部(&amp;S)</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="269"/>
+ <location filename="../playlist.cpp" line="273"/>
<source>&amp;New List</source>
<translation>新建清單(&amp;N)</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="270"/>
+ <location filename="../playlist.cpp" line="274"/>
<source>Shift+N</source>
<translation>Shift+N</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="276"/>
+ <location filename="../playlist.cpp" line="280"/>
<source>&amp;Load List</source>
<translation>載入清單(&amp;L)</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="281"/>
+ <location filename="../playlist.cpp" line="285"/>
<source>&amp;Save List</source>
<translation>儲存清單(&amp;S)</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="282"/>
+ <location filename="../playlist.cpp" line="286"/>
<source>Shift+S</source>
<translation>Shift+S</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="154"/>
+ <location filename="../playlist.cpp" line="155"/>
<source>Del</source>
<translation>Del</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="146"/>
+ <location filename="../playlist.cpp" line="147"/>
<source>&amp;Add Url</source>
<translation>添加 URL (&amp;A)</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="147"/>
+ <location filename="../playlist.cpp" line="148"/>
<source>U</source>
<translation>U</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="227"/>
+ <location filename="../playlist.cpp" line="228"/>
<source>By Track Number</source>
<translation>按音軌</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="243"/>
+ <location filename="../playlist.cpp" line="247"/>
<source>&amp;Queue</source>
<translation>佇列(&amp;Q)</translation>
</message>
<message>
- <location filename="../playlist.cpp" line="243"/>
+ <location filename="../playlist.cpp" line="247"/>
<source>Q</source>
<translation>Q</translation>
</message>
+ <message>
+ <location filename="../playlist.cpp" line="244"/>
+ <source>Actions</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>PresetEditor</name>