aboutsummaryrefslogtreecommitdiff
path: root/src/qmmpui/uihelper.cpp
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2018-09-26 18:42:42 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2018-09-26 18:42:42 +0000
commita65bebd9b402963f429afb78b3e4d943cb9bb979 (patch)
tree2b3d4ae04d91dff3ec05d0f1ca3881e5ce5815de /src/qmmpui/uihelper.cpp
parent4bb84c0877c7d1d7b6661bf55edfe681ab8c22f9 (diff)
downloadqmmp-a65bebd9b402963f429afb78b3e4d943cb9bb979.tar.gz
qmmp-a65bebd9b402963f429afb78b3e4d943cb9bb979.tar.bz2
qmmp-a65bebd9b402963f429afb78b3e4d943cb9bb979.zip
moved stream browser and removable volumes to the add menu
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@8380 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/qmmpui/uihelper.cpp')
-rw-r--r--src/qmmpui/uihelper.cpp77
1 files changed, 32 insertions, 45 deletions
diff --git a/src/qmmpui/uihelper.cpp b/src/qmmpui/uihelper.cpp
index 4a6bd6bc2..1d965a9b6 100644
--- a/src/qmmpui/uihelper.cpp
+++ b/src/qmmpui/uihelper.cpp
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2008-2017 by Ilya Kotov *
+ * Copyright (C) 2008-2018 by Ilya Kotov *
* forkotov02@ya.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -44,8 +44,6 @@ UiHelper::UiHelper(QObject *parent)
: QObject(parent)
{
m_instance = this;
- m_toolsMenu = 0;
- m_playlistMenu = 0;
m_jumpDialog = 0;
m_model = 0;
General::create(parent);
@@ -73,64 +71,53 @@ bool UiHelper::visibilityControl()
void UiHelper::addAction(QAction *action, MenuType type)
{
connect(action, SIGNAL(destroyed (QObject *)), SLOT(removeAction(QObject*)));
- switch ((int) type)
+
+ if(!m_menus[type].actions.contains(action))
+ m_menus[type].actions.append(action);
+ if(m_menus[type].menu && !m_menus[type].menu->actions().contains(action))
{
- 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);
+ if(m_menus[type].before)
+ m_menus[type].menu->insertAction(m_menus[type].before, action);
+ else
+ m_menus[type].menu->addAction(action);
}
}
void UiHelper::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);
+ foreach(MenuType type, m_menus.keys())
+ {
+ m_menus[type].actions.removeAll(action);
+ if(m_menus[type].menu)
+ m_menus[type].menu->removeAction(action);
+ }
}
QList<QAction *> UiHelper::actions(MenuType type)
{
- if (type == TOOLS_MENU)
- return m_toolsActions;
- else
- return m_playlistActions;
+ return m_menus[type].actions;
}
QMenu *UiHelper::createMenu(MenuType type, const QString &title, QWidget *parent)
{
- switch ((int) type)
+ if(m_menus[type].menu)
{
- 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;
- case PLAYLIST_MENU:
- if (!m_playlistMenu)
- {
- m_playlistMenu = new QMenu(title, parent);
- m_playlistMenu->addActions(m_playlistActions);
- }
- else
- m_playlistMenu->setTitle(title);
- return m_playlistMenu;
+ m_menus[type].menu->setTitle(title);
+ return m_menus[type].menu;
}
- return 0;
+ m_menus[type].menu = new QMenu(title, parent);
+ m_menus[type].menu->addActions(m_menus[type].actions);
+ return m_menus[type].menu;
+}
+
+void UiHelper::registerMenu(UiHelper::MenuType type, QMenu *menu, QAction *before)
+{
+ m_menus[type].menu = menu;
+ m_menus[type].before = before;
+ if(before)
+ m_menus[type].menu->insertActions(before, m_menus[type].actions);
+ else
+ m_menus[type].menu->addActions(m_menus[type].actions);
}
void UiHelper::addFiles(QWidget *parent, PlayListModel *model)