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 }