File indexing completed on 2024-06-09 04:24:36

0001 /*
0002  * SPDX-FileCopyrightText: 2022 Sharaf Zaman <shzam@sdf.org>
0003  *
0004  * SPDX-License-Identifier: LGPL-2.0-or-later
0005  */
0006 
0007 #include "KisTouchGestureAction.h"
0008 #include <KisMainWindow.h>
0009 #include <KisPart.h>
0010 #include <QAction>
0011 #include <kactioncollection.h>
0012 #include <kis_debug.h>
0013 
0014 KisTouchGestureAction::KisTouchGestureAction()
0015     : KisAbstractInputAction("Touch Gestures")
0016 {
0017     setName(i18n("Touch Gestures"));
0018     setDescription(i18n("The Touch Gestures actions launch a single action for the specified gesture"));
0019 
0020     QHash<QString, int> shortcuts;
0021     shortcuts.insert(i18n("Undo"), UndoActionShortcut);
0022     shortcuts.insert(i18n("Redo"), RedoActionShortcut);
0023     shortcuts.insert(i18n("Toggle Canvas Only Mode"), ToggleCanvasOnlyShortcut);
0024     shortcuts.insert(i18n("Toggle Eraser"), ToggleEraserMode);
0025     shortcuts.insert(i18n("Reset Display"), ResetDisplay);
0026     shortcuts.insert(i18n("Toggle Previous Brush Preset"), PreviousPresetShortcut);
0027     shortcuts.insert(i18n("Color Sampler"), ColorSampler);
0028     shortcuts.insert(i18n("Deselect"), Deselect);
0029     shortcuts.insert(i18n("Activate Next Layer"), NextLayer);
0030     shortcuts.insert(i18n("Activate Previous Layer"), PreviousLayer);
0031     shortcuts.insert(i18n("Activate Freehand Brush Tool"), FreehandBrush);
0032     shortcuts.insert(i18n("Freehand Selection Tool"), KisToolSelectContiguous);
0033     shortcuts.insert(i18n("Activate Move Tool"), KisToolMove);
0034     shortcuts.insert(i18n("Activate Transform Tool"), KisToolTransform);
0035     setShortcutIndexes(shortcuts);
0036 }
0037 
0038 void KisTouchGestureAction::begin(int shortcut, QEvent *event)
0039 {
0040     Q_UNUSED(event)
0041     m_shortcut = shortcut;
0042 }
0043 
0044 void KisTouchGestureAction::end(QEvent *event)
0045 {
0046     Q_UNUSED(event)
0047     KisKActionCollection *actionCollection = KisPart::instance()->currentMainwindow()->actionCollection();
0048     switch (m_shortcut) {
0049     case UndoActionShortcut: {
0050         QAction *action = actionCollection->action("edit_undo");
0051         if (action) {
0052             action->trigger();
0053         }
0054         break;
0055     }
0056     case RedoActionShortcut: {
0057         QAction *action = actionCollection->action("edit_redo");
0058         if (action) {
0059             action->trigger();
0060         }
0061         break;
0062     }
0063     case ToggleCanvasOnlyShortcut: {
0064         QAction *action = actionCollection->action("view_show_canvas_only");
0065         if (action) {
0066             action->trigger();
0067         }
0068         break;
0069     }
0070     case ToggleEraserMode: {
0071         QAction *action = actionCollection->action("erase_action");
0072         if (action) {
0073             action->trigger();
0074         }
0075         break;
0076     }
0077      case ResetDisplay: {
0078         QAction *action = actionCollection->action("reset_display");
0079         if (action) {
0080             action->trigger();
0081         }
0082         break;
0083     }
0084     case PreviousPresetShortcut: {
0085         QAction *action = actionCollection->action("previous_preset");
0086         if (action) {
0087             action->trigger();
0088         }
0089         break;
0090     }
0091     case ColorSampler: {
0092         QAction *action = actionCollection->action("KisToolColorSampler");
0093         if (action) {
0094             action->trigger();
0095         }
0096         break;
0097     }
0098     case Deselect: {
0099         QAction *action = actionCollection->action("deselect");
0100         if (action) {
0101             action->trigger();
0102         }
0103         break;
0104     }
0105     case NextLayer: {
0106         QAction *action = actionCollection->action("activateNextLayer");
0107         if (action) {
0108             action->trigger();
0109         }
0110         break;
0111     }
0112     case PreviousLayer: {
0113         QAction *action = actionCollection->action("activatePreviousLayer");
0114         if (action) {
0115             action->trigger();
0116         }
0117         break;
0118     }
0119     case FreehandBrush: {
0120         QAction *action = actionCollection->action("FreehandBrush");
0121         if (action) {
0122             action->trigger();
0123         }
0124         break;
0125     }
0126     case KisToolSelectContiguous: {
0127         QAction *action = actionCollection->action("KisToolSelectContiguous");
0128         if (action) {
0129             action->trigger();
0130         }
0131         break;
0132     }
0133     case KisToolMove: {
0134         QAction *action = actionCollection->action("KisToolMove");
0135         if (action) {
0136             action->trigger();
0137         }
0138         break;
0139     }
0140     case KisToolTransform: {
0141         QAction *action = actionCollection->action("KisToolTransform");
0142         if (action) {
0143             action->trigger();
0144         }
0145         break;
0146     }
0147     default:
0148         break;
0149     }
0150 }
0151 
0152 int KisTouchGestureAction::priority() const
0153 {
0154     return 6;
0155 }