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 shortcuts.insert(i18n("Mirror View"), MirrorView);
37 setShortcutIndexes(shortcuts);
38}
39
40void KisTouchGestureAction::begin(int shortcut, QEvent *event)
41{
42 Q_UNUSED(event)
43 m_shortcut = shortcut;
44}
45
46void KisTouchGestureAction::end(QEvent *event)
47{
48 Q_UNUSED(event)
49
50 QString actionName;
51 switch (m_shortcut) {
53 actionName = QStringLiteral("edit_undo");
54 break;
56 actionName = QStringLiteral("edit_redo");
57 break;
59 actionName = QStringLiteral("view_show_canvas_only");
60 break;
62 actionName = QStringLiteral("erase_action");
63 break;
64 case ResetDisplay:
65 actionName = QStringLiteral("reset_display");
66 break;
68 actionName = QStringLiteral("previous_preset");
69 break;
70 case ColorSampler:
71 actionName = QStringLiteral("KritaSelected/KisToolColorSampler");
72 break;
73 case Deselect:
74 actionName = QStringLiteral("deselect");
75 break;
76 case NextLayer:
77 actionName = QStringLiteral("activateNextLayer");
78 break;
79 case PreviousLayer:
80 actionName = QStringLiteral("activatePreviousLayer");
81 break;
82 case FreehandBrush:
83 actionName = QStringLiteral("KritaShape/KisToolBrush");
84 break;
86 actionName = QStringLiteral("KisToolSelectOutline");
87 break;
88 case KisToolMove:
89 actionName = QStringLiteral("KritaTransform/KisToolMove");
90 break;
92 actionName = QStringLiteral("KisToolTransform");
93 break;
95 actionName = QStringLiteral("eraser_preset_action");
96 break;
97 case MirrorView:
98 actionName = QStringLiteral("mirror_canvas");
99 break;
100 }
101
102 if (actionName.isEmpty()) {
103 qWarning("KisTouchGestureAction: Unhandled shortcut %d", m_shortcut);
104 } else {
106 QAction *action = actionCollection->action(actionName);
107 if (action) {
108 action->trigger();
109 } else {
110 qWarning("KisTouchGestureAction: unable to find action '%s' for shortcut %d",
111 qUtf8Printable(actionName),
112 m_shortcut);
113 }
114 }
115}
116
118{
119 return 6;
120}
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:130
KisMainWindow * currentMainwindow() const
Definition KisPart.cpp:457
void end(QEvent *event) override
int priority() const override
void begin(int shortcut, QEvent *event) override