aboutsummaryrefslogtreecommitdiff
path: root/src/ui/playlist.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/playlist.cpp')
-rw-r--r--src/ui/playlist.cpp184
1 files changed, 51 insertions, 133 deletions
diff --git a/src/ui/playlist.cpp b/src/ui/playlist.cpp
index 984b75e3b..5162ac884 100644
--- a/src/ui/playlist.cpp
+++ b/src/ui/playlist.cpp
@@ -25,13 +25,16 @@
#include <QSignalMapper>
#include <QHBoxLayout>
#include <QCloseEvent>
-
+#include <qmmpui/playlistitem.h>
+#include <qmmpui/playlistmodel.h>
+#include <qmmpui/playlistmanager.h>
+#include <qmmpui/fileloader.h>
+#include <qmmpui/generalhandler.h>
+#include <qmmp/soundcore.h>
#include "dock.h"
-#include "playlist.h"
#include "skin.h"
#include "listwidget.h"
#include "button.h"
-
#include "playlisttitlebar.h"
#include "playlistslider.h"
#include "pixmapwidget.h"
@@ -41,12 +44,8 @@
#include "playlistbrowser.h"
#include "playlistselector.h"
#include "windowsystem.h"
-#include <qmmpui/playlistitem.h>
-#include <qmmpui/playlistmodel.h>
-#include <qmmpui/playlistmanager.h>
-#include <qmmpui/fileloader.h>
-#include <qmmpui/generalhandler.h>
-#include <qmmp/soundcore.h>
+#include "actionmanager.h"
+#include "playlist.h"
PlayList::PlayList (PlayListManager *manager, QWidget *parent)
: QWidget (parent)
@@ -184,55 +183,22 @@ void PlayList::createMenus()
void PlayList::createActions()
{
//add menu
- QAction *addFileAct = new QAction (QIcon::fromTheme("audio-x-generic"), tr("&Add File"), this);
- addFileAct->setShortcut (tr ("F"));
- m_addMenu->addAction (addFileAct);
- connect (addFileAct, SIGNAL (triggered()), parent(), SLOT (addFile ()));
- m_actions << addFileAct;
-
- QAction *addDirAct = new QAction (QIcon::fromTheme("folder"), tr("&Add Directory"),this);
- addDirAct->setShortcut (tr ("D"));
- m_addMenu->addAction (addDirAct);
- connect (addDirAct, SIGNAL (triggered()), parent(), SLOT (addDir ()));
- m_actions << addDirAct;
-
- QAction *addUrlAct = new QAction (QIcon::fromTheme("network-server"), tr("&Add Url"),this);
- addUrlAct->setShortcut (tr ("U"));
- m_addMenu->addAction (addUrlAct);
- connect (addUrlAct, SIGNAL (triggered()), parent(), SLOT (addUrl ()));
- m_actions << addUrlAct;
-
- //remove menu
- QAction *remSelAct = new QAction (QIcon::fromTheme("edit-delete"), tr("&Remove Selected"),this);
- remSelAct->setShortcut (tr ("Del"));
- m_subMenu->addAction (remSelAct);
- connect (remSelAct, SIGNAL (triggered()), m_pl_manager, SLOT (removeSelected ()));
- addAction (remSelAct);
-
- QAction *remAllAct = new QAction (QIcon::fromTheme("edit-clear"), tr("&Remove All"),this);
- //remAllAct->setShortcut(tr("D")); FIXME: add correct shortcat
- m_subMenu->addAction (remAllAct);
- connect (remAllAct, SIGNAL (triggered()), m_pl_manager, SLOT (clear ()));
- m_actions << remAllAct;
-
- QAction *remUnselAct = new QAction (QIcon::fromTheme("edit-delete"), tr("&Remove Unselected"),this);
- m_subMenu->addAction (remUnselAct);
- connect (remUnselAct, SIGNAL (triggered()), m_pl_manager, SLOT (removeUnselected ()));
-
+ m_addMenu->addAction(ACTION(ActionManager::PL_ADD_FILE, parent(), SLOT(addFile())));
+ m_addMenu->addAction(ACTION(ActionManager::PL_ADD_DIRECTORY, parent(), SLOT(addDir())));
+ m_addMenu->addAction(ACTION(ActionManager::PL_ADD_URL, parent(), SLOT(addUrl())));
+ //sub menu
+ m_subMenu->addAction(ACTION(ActionManager::PL_REMOVE_SELECTED, m_pl_manager, SLOT(removeSelected())));
+ m_subMenu->addAction(ACTION(ActionManager::PL_REMOVE_ALL, m_pl_manager, SLOT(clear())));
+ m_subMenu->addAction(ACTION(ActionManager::PL_REMOVE_UNSELECTED, m_pl_manager,
+ SLOT(removeUnselected())));
m_subMenu->addSeparator();
- m_subMenu->addAction (QIcon::fromTheme("dialog-error"), tr("Remove unavailable files"),
- m_pl_manager, SLOT(removeInvalidItems()));
- m_subMenu->addAction (tr("Remove duplicates"), m_pl_manager, SLOT(removeDuplicates()));
-
- //listwidget menu
- QAction *detailsAct = new QAction (QIcon::fromTheme("dialog-information"),
- tr("&View Track Details"),this);
- detailsAct->setShortcut (tr ("Alt+I"));
- m_listWidget->menu()->addAction (detailsAct);
- connect (detailsAct, SIGNAL (triggered()), m_pl_manager, SLOT (showDetails ()));
-
- // sort menu
- m_sortMenu->addAction (detailsAct);
+ m_subMenu->addAction(ACTION(ActionManager::PL_REMOVE_INVALID, m_pl_manager,
+ SLOT(removeInvalidItems())));
+ m_subMenu->addAction(ACTION(ActionManager::PL_REMOVE_DUPLICATES, m_pl_manager,
+ SLOT(removeDuplicates())));
+ //sort menu
+ m_sortMenu->addAction(ACTION(ActionManager::PL_SHOW_INFO, m_pl_manager, SLOT (showDetails ())));
+ m_sortMenu->addAction (ActionManager::instance()->action(ActionManager::PL_SHOW_INFO));
m_sortMenu->addSeparator();
QMenu* sort_mode_menu = new QMenu (tr("Sort List"), m_sortMenu);
@@ -304,92 +270,44 @@ void PlayList::createActions()
connect (signalMapper, SIGNAL (mapped (int)), m_pl_manager, SLOT (sortSelection (int)));
m_sortMenu->addMenu (sort_mode_menu);
-
m_sortMenu->addSeparator();
m_sortMenu->addAction (QIcon::fromTheme("media-playlist-shuffle"), tr("Randomize List"),
m_pl_manager, SLOT(randomizeList()));
m_sortMenu->addAction (QIcon::fromTheme("view-sort-descending"), tr("Reverse List"),
m_pl_manager, SLOT(reverseList()));
-
-
+ //playlist context menu
+ m_listWidget->menu()->addAction(ActionManager::instance()->action(ActionManager::PL_SHOW_INFO));
m_listWidget->menu()->addSeparator();
m_listWidget->menu()->addActions (m_subMenu->actions().mid(0,3)); //use 3 first 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_pl_manager, SLOT(addToQueue()), tr("Q"));
- m_actions << m_listWidget->menu()->actions();
-
+ m_listWidget->menu()->addAction(ACTION(ActionManager::PL_ENQUEUE, m_pl_manager, SLOT(addToQueue())));
//select menu
- QAction *invSelAct = new QAction (tr ("Invert Selection"),this);
- m_selectMenu->addAction (invSelAct);
- connect (invSelAct, SIGNAL (triggered()), m_pl_manager, SLOT (invertSelection ()));
-
+ m_selectMenu->addAction(ACTION(ActionManager::PL_INVERT_SELECTION, m_pl_manager,
+ SLOT(invertSelection ())));
m_selectMenu->addSeparator();
-
- QAction *selNoneAct = new QAction (tr ("&Select None"),this);
- selNoneAct->setShortcut(tr("Shift+A"));
- m_selectMenu->addAction (selNoneAct);
- connect (selNoneAct, SIGNAL (triggered()), m_pl_manager, SLOT (clearSelection ()));
- this->addAction (selNoneAct);
-
- QAction *selAllAct = new QAction (QIcon::fromTheme("edit-select-all"), tr ("&Select All"),this);
- selAllAct->setShortcut (tr ("Ctrl+A"));
- m_actions << selAllAct;
- m_selectMenu->addAction (selAllAct);
- connect (selAllAct, SIGNAL (triggered()), m_pl_manager, SLOT (selectAll ()));
-
- // Playlist Menu
- QAction *newListAct = new QAction (QIcon::fromTheme("document-new"), tr("&New List"), this);
- newListAct->setShortcut (tr ("Ctrl+T"));
- m_actions << newListAct;
- m_playlistMenu->addAction (newListAct);
- connect (newListAct, SIGNAL (triggered()), m_pl_manager, SLOT (createPlayList()));
- QAction *deleteListAct = new QAction (QIcon::fromTheme("window-close"), tr ("&Delete List"),this);
- deleteListAct->setShortcut (tr ("Ctrl+W"));
- m_actions << deleteListAct;
- m_playlistMenu->addAction (deleteListAct);
- connect (deleteListAct, SIGNAL (triggered()), SLOT (deletePlaylist()));
+ m_selectMenu->addAction(ACTION(ActionManager::PL_CLEAR_SELECTION, m_pl_manager,
+ SLOT(clearSelection ())));
+ m_selectMenu->addAction(ACTION(ActionManager::PL_SELECT_ALL, m_pl_manager, SLOT(selectAll())));
+ //Playlist Menu
+ m_playlistMenu->addAction(ACTION(ActionManager::PL_NEW, m_pl_manager, SLOT(createPlayList())));
+ m_playlistMenu->addAction(ACTION(ActionManager::PL_CLOSE, this, SLOT(deletePlaylist())));
m_playlistMenu->addSeparator();
-
- QAction *loadListAct = new QAction (QIcon::fromTheme("document-open"), tr("&Load List"), this);
- loadListAct->setShortcut (tr ("O"));
- m_actions << loadListAct;
- m_playlistMenu->addAction (loadListAct);
- connect (loadListAct, SIGNAL (triggered()), this, SIGNAL (loadPlaylist()));
-
- QAction *saveListAct = new QAction (QIcon::fromTheme("document-save-as"), tr("&Save List"), this);
- saveListAct->setShortcut (tr ("Shift+S"));
- m_actions << saveListAct;
- m_playlistMenu->addAction (saveListAct);
- connect (saveListAct, SIGNAL (triggered()), this, SIGNAL (savePlaylist()));
-
+ m_playlistMenu->addAction(ACTION(ActionManager::PL_LOAD, this, SIGNAL(loadPlaylist())));
+ m_playlistMenu->addAction(ACTION(ActionManager::PL_SAVE, this, SIGNAL(savePlaylist())));
m_playlistMenu->addSeparator();
- QAction *nextListAct = new QAction (QIcon::fromTheme("go-next"),
- tr("&Select Next Playlist"), this);
- nextListAct->setShortcut (tr ("Ctrl+PgDown"));
- m_actions << nextListAct;
- m_playlistMenu->addAction (nextListAct);
- connect (nextListAct, SIGNAL (triggered()), m_pl_manager, SLOT (selectNextPlayList()));
-
- QAction *previousListAct = new QAction (QIcon::fromTheme("go-previous"),
- tr("&Select Previous Playlist"),this);
- previousListAct->setShortcut (tr ("Ctrl+PgUp"));
- m_actions << previousListAct;
- m_playlistMenu->addAction (previousListAct);
- connect (previousListAct, SIGNAL (triggered()), m_pl_manager, SLOT (selectPreviousPlayList()));
-
- QAction *browseListsAct = new QAction (QIcon::fromTheme("view-list-details"),
- tr("&Show Playlists"), this);
- browseListsAct->setShortcut (tr ("P"));
- m_actions << browseListsAct;
- m_playlistMenu->addAction (browseListsAct);
- connect (browseListsAct, SIGNAL (triggered()), SLOT (showPlayLists()));
-
- Dock::instance()->addActions (m_actions);
+ m_playlistMenu->addAction(ACTION(ActionManager::PL_SELECT_NEXT, m_pl_manager,
+ SLOT(selectNextPlayList())));
+ m_playlistMenu->addAction(ACTION(ActionManager::PL_SELECT_PREVIOUS, m_pl_manager,
+ SLOT(selectPreviousPlayList())));
+ m_playlistMenu->addAction(ACTION(ActionManager::PL_SHOW_MANAGER, this, SLOT(showPlayLists())));
+ Dock::instance()->addActions (m_addMenu->actions());
+ Dock::instance()->addActions (m_subMenu->actions());
+ Dock::instance()->addActions (m_sortMenu->actions());
+ Dock::instance()->addActions (m_listWidget->menu()->actions());
+ Dock::instance()->addActions (m_selectMenu->actions());
+ Dock::instance()->addActions (m_playlistMenu->actions());
}
void PlayList::closeEvent (QCloseEvent *e)
@@ -449,12 +367,12 @@ void PlayList::mouseMoveEvent (QMouseEvent *e)
#ifdef Q_OS_WIN32
int sx = (width()-275) /25;
int sy = (height()-116) /29;
- if(width() < e->x() - 14)
+ if(width() < e->x() - 14)
sx++;
- else if(width() > e->x() + 14)
+ else if(width() > e->x() + 14)
sx--;
if(height() < e->y() - 14)
- sy++;
+ sy++;
else if(height() > e->y() + 14)
sy--;
resize (275+25*sx,116+29*sy);
@@ -629,7 +547,7 @@ void PlayList::generateCopySelectedMenu()
QAction* action = m_copySelectedMenu->addAction (tr ("&New PlayList"));
action->setIcon(QIcon::fromTheme("document-new"));
m_copySelectedMenu->addSeparator();
-
+
foreach(QString name, m_pl_manager->playListNames())
{
action = m_copySelectedMenu->addAction("&"+name.replace("&", "&&"));