aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Ui/qsui/actionmanager.cpp
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2021-04-29 20:20:25 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2021-04-29 20:20:25 +0000
commitd99670565b2c12994d0e4382b19498ee85be6aad (patch)
tree0eb53a1616fc6ecb618b5fd88e84471a96fff918 /src/plugins/Ui/qsui/actionmanager.cpp
parent691b4aa68e88082d00d53b3201707ad08c490471 (diff)
downloadqmmp-d99670565b2c12994d0e4382b19498ee85be6aad.tar.gz
qmmp-d99670565b2c12994d0e4382b19498ee85be6aad.tar.bz2
qmmp-d99670565b2c12994d0e4382b19498ee85be6aad.zip
qsui: added feature to change dock widget shortcuts
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@9868 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/Ui/qsui/actionmanager.cpp')
-rw-r--r--src/plugins/Ui/qsui/actionmanager.cpp47
1 files changed, 45 insertions, 2 deletions
diff --git a/src/plugins/Ui/qsui/actionmanager.cpp b/src/plugins/Ui/qsui/actionmanager.cpp
index dedbd11f1..bedccf3b5 100644
--- a/src/plugins/Ui/qsui/actionmanager.cpp
+++ b/src/plugins/Ui/qsui/actionmanager.cpp
@@ -25,6 +25,7 @@
#include <QApplication>
#include <QStyle>
#include <QWidgetAction>
+#include <QDockWidget>
#include <qmmp/qmmp.h>
#include "actionmanager.h"
@@ -127,11 +128,21 @@ QAction *ActionManager::use(int type, const QObject *receiver, const char *membe
return act;
}
-QList<QAction *> ActionManager::actions()
+QList<QAction *> ActionManager::actions() const
{
return m_actions.values();
}
+QList<QDockWidget *> ActionManager::dockWidgtes() const
+{
+ return m_dockWidgets.keys();
+}
+
+bool ActionManager::hasDockWidgets() const
+{
+ return !m_dockWidgets.isEmpty();
+}
+
ActionManager* ActionManager::instance()
{
return m_instance;
@@ -191,10 +202,21 @@ void ActionManager::saveStates()
void ActionManager::saveActions()
{
QSettings settings(Qmmp::configFile(), QSettings::IniFormat);
+ settings.beginGroup("SimpleUiShortcuts");
+
for(const QAction *action : m_actions.values())
{
- settings.setValue(QString("SimpleUiShortcuts/")+action->objectName(), action->shortcut());
+ settings.setValue(action->objectName(), action->shortcut());
+ }
+
+ auto it = m_dockWidgets.cbegin();
+ while(it != m_dockWidgets.cend())
+ {
+ settings.setValue(it.value().first, it.key()->toggleViewAction()->shortcut());
+ ++it;
}
+
+ settings.endGroup();
}
void ActionManager::resetShortcuts()
@@ -203,6 +225,13 @@ void ActionManager::resetShortcuts()
{
action->setShortcut(action->property("defaultShortcut").toString());
}
+
+ auto it = m_dockWidgets.cbegin();
+ while(it != m_dockWidgets.cend())
+ {
+ it.key()->toggleViewAction()->setShortcut(it.value().second);
+ ++it;
+ }
}
void ActionManager::registerAction(int id, QAction *action, const QString &confKey, const QString &key)
@@ -233,6 +262,20 @@ void ActionManager::registerWidget(int id, QWidget *w, const QString &text, cons
m_actions[id] = action;
}
+void ActionManager::registerDockWidget(QDockWidget *w, const QString &confKey, const QString &key)
+{
+ QSettings settings(Qmmp::configFile(), QSettings::IniFormat);
+ settings.beginGroup("SimpleUiShortcuts");
+ w->toggleViewAction()->setShortcut(settings.value(confKey, key).toString());
+ settings.endGroup();
+ m_dockWidgets.insert(w, qMakePair<QString, QString>(confKey, key));
+}
+
+void ActionManager::removeDockWidget(QDockWidget *w)
+{
+ m_dockWidgets.remove(w);
+}
+
QToolBar *ActionManager::createToolBar(const ToolBarInfo &info, QWidget *parent)
{
QToolBar *toolBar = new QToolBar(info.title, parent);