Krita Source Code Documentation
Loading...
Searching...
No Matches
KisTouchGestureAction.cpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2022 Sharaf Zaman <shzam@sdf.org>
3 *
4 * SPDX-License-Identifier: LGPL-2.0-or-later
5 */
6
8#include <KisMainWindow.h>
9#include <KisPart.h>
10#include <QAction>
11#include <kactioncollection.h>
12#include <kis_debug.h>
13
15 : KisAbstractInputAction("Touch Gestures")
16{
17 setName(i18n("Touch Gestures"));
18 setDescription(i18n("The Touch Gestures actions launch a single action for the specified gesture"));
19
20 QHash<QString, int> shortcuts;
21 shortcuts.insert(i18n("Undo"), UndoActionShortcut);
22 shortcuts.insert(i18n("Redo"), RedoActionShortcut);
23 shortcuts.insert(i18n("Toggle Canvas Only Mode"), ToggleCanvasOnlyShortcut);
24 shortcuts.insert(i18n("Toggle Eraser"), ToggleEraserMode);
25 shortcuts.insert(i18n("Toggle Eraser Preset"), ToggleEraserPreset);
26 shortcuts.insert(i18n("Reset Display"), ResetDisplay);
27 shortcuts.insert(i18n("Toggle Previous Brush Preset"), PreviousPresetShortcut);
28 shortcuts.insert(i18n("Color Sampler"), ColorSampler);
29 shortcuts.insert(i18n("Deselect"), Deselect);
30 shortcuts.insert(i18n("Activate Next Layer"), NextLayer);
31 shortcuts.insert(i18n("Activate Previous Layer"), PreviousLayer);
32 shortcuts.insert(i18n("Activate Freehand Brush Tool"), FreehandBrush);
33 shortcuts.insert(i18n("Freehand Selection Tool"), KisToolSelectContiguous);
34 shortcuts.insert(i18n("Activate Move Tool"), KisToolMove);
35 shortcuts.insert(i18n("Activate Transform Tool"), KisToolTransform);
36 setShortcutIndexes(shortcuts);
37}
38
39void KisTouchGestureAction::begin(int shortcut, QEvent *event)
40{
41 Q_UNUSED(event)
42 m_shortcut = shortcut;
43}
44
45void KisTouchGestureAction::end(QEvent *event)
46{
47 Q_UNUSED(event)
48
49 QString actionName;
50 switch (m_shortcut) {
52 actionName = QStringLiteral("edit_undo");
53 break;
55 actionName = QStringLiteral("edit_redo");
56 break;
58 actionName = QStringLiteral("view_show_canvas_only");
59 break;
61 actionName = QStringLiteral("erase_action");
62 break;
63 case ResetDisplay:
64 actionName = QStringLiteral("reset_display");
65 break;
67 actionName = QStringLiteral("previous_preset");
68 break;
69 case ColorSampler:
70 actionName = QStringLiteral("KritaSelected/KisToolColorSampler");
71 break;
72 case Deselect:
73 actionName = QStringLiteral("deselect");
74 break;
75 case NextLayer:
76 actionName = QStringLiteral("activateNextLayer");
77 break;
78 case PreviousLayer:
79 actionName = QStringLiteral("activatePreviousLayer");
80 break;
81 case FreehandBrush:
82 actionName = QStringLiteral("KritaShape/KisToolBrush");
83 break;
85 actionName = QStringLiteral("KisToolSelectOutline");
86 break;
87 case KisToolMove:
88 actionName = QStringLiteral("KritaTransform/KisToolMove");
89 break;
91 actionName = QStringLiteral("KisToolTransform");
92 break;
94 actionName = QStringLiteral("eraser_preset_action");
95 break;
96 }
97
98 if (actionName.isEmpty()) {
99 qWarning("KisTouchGestureAction: Unhandled shortcut %d", m_shortcut);
100 } else {
102 QAction *action = actionCollection->action(actionName);
103 if (action) {
104 action->trigger();
105 } else {
106 qWarning("KisTouchGestureAction: unable to find action '%s' for shortcut %d",
107 qUtf8Printable(actionName),
108 m_shortcut);
109 }
110 }
111}
112
114{
115 return 6;
116}
Abstract base class for input actions.
void setShortcutIndexes(const QHash< QString, int > &indexes)
void setName(const QString &name)
void setDescription(const QString &description)
A container for a set of QAction objects.
QAction * action(int index) const
virtual KisKActionCollection * actionCollection() const
static KisPart * instance()
Definition KisPart.cpp:131
KisMainWindow * currentMainwindow() const
Definition KisPart.cpp:459
void end(QEvent *event) override
int priority() const override
void begin(int shortcut, QEvent *event) override