Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_input_profile.cpp
Go to the documentation of this file.
1/*
2 * This file is part of the KDE project
3 * SPDX-FileCopyrightText: 2013 Arjen Hiemstra <ahiemstra@heimr.nl>
4 *
5 * SPDX-License-Identifier: GPL-2.0-or-later
6 */
7
8#include "kis_input_profile.h"
9
10#include <QMultiHash>
11
14
16{
17public:
18 Private() { }
20 {
21 qDeleteAll(shortcuts);
22 }
23
24 QString name;
25 QMultiHash<KisAbstractInputAction *, KisShortcutConfiguration *> shortcuts;
26};
27
29 : QObject(parent), d(new Private())
30{
31
32}
33
38
39QString KisInputProfile::name() const
40{
41 return d->name;
42}
43void KisInputProfile::setName(const QString &name)
44{
45 if (d->name != name) {
46 d->name = name;
47 Q_EMIT nameChanged();
48 }
49}
50
55
57{
58 for (auto it = d->shortcuts.begin(); it != d->shortcuts.end(); ++it) {
59 if (it.key()->id() == id) {
60 return it.key();
61 }
62 }
63 return nullptr;
64}
65
67{
68 if (d->shortcuts.contains(action)) {
69 return d->shortcuts.values(action);
70 }
71
73}
74
76{
77 Q_ASSERT(shortcut);
78 Q_ASSERT(shortcut->action());
79 d->shortcuts.insert(shortcut->action(), shortcut);
80}
81
83{
84 Q_ASSERT(shortcut);
85 Q_ASSERT(shortcut->action());
86 d->shortcuts.remove(shortcut->action(), shortcut);
87}
Abstract base class for input actions.
QMultiHash< KisAbstractInputAction *, KisShortcutConfiguration * > shortcuts
KisInputProfile(QObject *parent=0)
QList< KisShortcutConfiguration * > allShortcuts() const
Private *const d
KisAbstractInputAction * actionForId(const QString &id) const
QList< KisShortcutConfiguration * > shortcutsForAction(KisAbstractInputAction *action) const
void addShortcut(KisShortcutConfiguration *shortcut)
~KisInputProfile() override
QString name() const
void setName(const QString &name)
void removeShortcut(KisShortcutConfiguration *shortcut)
A class encapsulating all settings for a single shortcut.
KisAbstractInputAction * action() const