From kde-kimageshop Tue Jul 01 11:01:48 2014 From: Dmitry Kazakov Date: Tue, 01 Jul 2014 11:01:48 +0000 To: kde-kimageshop Subject: [calligra] krita: [FEATURE] Temporary switch to Line Tool with 'V' key Message-Id: X-MARC-Message: https://marc.info/?l=kde-kimageshop&m=140421252717706 Git commit d814b81c6ac019afeaabf865ae404d418f14b23a by Dmitry Kazakov. Committed on 01/07/2014 at 10:52. Pushed by dkazakov into branch 'master'. [FEATURE] Temporary switch to Line Tool with 'V' key 1) Hold 'V' and paint --- then the Line Tool will be available temporarily 2) Press and release 'V' --- Line Tool will be activated permanently WARNING: Please reset your input configuration config to get this option working! Or just set it manually in Tool Invocation group CCMAIL:kimageshop@kde.org M +34 -33 krita/data/input/kritadefault.profile M +22 -2 krita/ui/input/kis_tool_invocation_action.cpp M +2 -1 krita/ui/input/kis_tool_invocation_action.h http://commits.kde.org/calligra/d814b81c6ac019afeaabf865ae404d418f14b23a diff --git a/krita/data/input/kritadefault.profile b/krita/data/input/kritadefault.profile index 9e819ea..86b9904 100644 --- a/krita/data/input/kritadefault.profile +++ b/krita/data/input/kritadefault.profile @@ -1,10 +1,10 @@ [Alternate Invocation] -0={4;2;[1000021];1;0;0} -1={2;2;[1000023,1000021];1;0;0} -2={3;2;[1000021,1000023];2;0;0} -3={5;2;[1000021];2;0;0} -4={0;2;[1000021,1000020];1;0;0} -5={1;2;[1000023,1000020];1;0;0} +0={1;2;[1000023,1000020];1;0;0} +1={0;2;[1000021,1000020];1;0;0} +2={5;2;[1000021];2;0;0} +3={3;2;[1000021,1000023];2;0;0} +4={2;2;[1000023,1000021];1;0;0} +5={4;2;[1000021];1;0;0} [Change Primary Setting] 0={0;2;[1000020];1;0;0} @@ -17,21 +17,21 @@ name=Krita Default version=2 [Pan Canvas] -0={4;1;[1000015];0;0;0} -1={3;1;[1000013];0;0;0} -2={2;1;[1000014];0;0;0} +0={0;4;[];0;0;2} +1={0;2;[20];1;0;0} +2={0;2;[];4;0;0} 3={1;1;[1000012];0;0;0} -4={0;2;[];4;0;0} -5={0;2;[20];1;0;0} -6={0;4;[];0;0;2} +4={2;1;[1000014];0;0;0} +5={3;1;[1000013];0;0;0} +6={4;1;[1000015];0;0;0} [Rotate Canvas] -0={3;1;[36];0;0;0} -1={4;1;[35];0;0;0} -2={2;1;[34];0;0;0} -3={0;2;[1000020];4;0;0} -4={1;2;[1000020,1000023,20];1;0;0} -5={0;2;[1000020,20];1;0;0} +0={0;2;[1000020,20];1;0;0} +1={1;2;[1000020,1000023,20];1;0;0} +2={0;2;[1000020];4;0;0} +3={2;1;[34];0;0;0} +4={4;1;[35];0;0;0} +5={3;1;[36];0;0;0} [Select Layer] 0={0;2;[52];1;0;0} @@ -40,21 +40,22 @@ version=2 0={0;2;[];2;0;0} [Tool Invocation] -0={2;1;[1000000];0;0;0} -1={1;1;[1000004];0;0;0} +0={3;2;[56];1;0;0} +1={1;1;[1000005];0;0;0} 2={0;2;[];1;0;0} -3={1;1;[1000005];0;0;0} +3={1;1;[1000004];0;0;0} +4={2;1;[1000000];0;0;0} [Zoom Canvas] -0={0;2;[1000021,20];1;0;0} -1={0;4;[];0;0;1} -10={6;1;[33];0;0;0} -11={1;2;[1000021,1000023,20];1;0;0} -2={4;1;[31];0;0;0} -3={3;1;[2d];0;0;0} -4={2;1;[3d];0;0;0} -5={3;3;[];0;2;0} -6={2;3;[];0;1;0} -7={0;2;[1000021];4;0;0} -8={5;1;[32];0;0;0} -9={2;1;[2b];0;0;0} +0={2;1;[2b];0;0;0} +1={5;1;[32];0;0;0} +10={0;4;[];0;0;1} +11={0;2;[1000021,20];1;0;0} +2={0;2;[1000021];4;0;0} +3={2;3;[];0;1;0} +4={3;3;[];0;2;0} +5={2;1;[3d];0;0;0} +6={3;1;[2d];0;0;0} +7={4;1;[31];0;0;0} +8={1;2;[1000021,1000023,20];1;0;0} +9={6;1;[33];0;0;0} diff --git a/krita/ui/input/kis_tool_invocation_action.cpp b/krita/ui/input/kis_tool_invocation_action.cpp index 806755e..bba8173 100644 --- a/krita/ui/input/kis_tool_invocation_action.cpp +++ b/krita/ui/input/kis_tool_invocation_action.cpp @@ -33,9 +33,10 @@ class KisToolInvocationAction::Private { public: - Private() : active(false) { } + Private() : active(false), havePaintedAtLeastOnce(false) { } bool active; + bool havePaintedAtLeastOnce; }; KisToolInvocationAction::KisToolInvocationAction() @@ -49,6 +50,7 @@ KisToolInvocationAction::KisToolInvocationAction() indexes.insert(i18n("Activate"), ActivateShortcut); indexes.insert(i18n("Confirm"), ConfirmShortcut); indexes.insert(i18n("Cancel"), CancelShortcut); + indexes.insert(i18n("Activate Line Tool"), LineToolShortcut); setShortcutIndexes(indexes); } @@ -61,6 +63,11 @@ void KisToolInvocationAction::activate(int shortcut) { Q_UNUSED(shortcut); if (!inputManager()) return; + + if (shortcut == LineToolShortcut) { + KoToolManager::instance()->switchToolTemporaryRequested("KritaShape/KisToolLine"); + } + inputManager()->toolProxy()->activateToolAction(KisTool::Primary); } @@ -68,7 +75,19 @@ void KisToolInvocationAction::deactivate(int shortcut) { Q_UNUSED(shortcut); if (!inputManager()) return; + inputManager()->toolProxy()->deactivateToolAction(KisTool::Primary); + + if (shortcut == LineToolShortcut) { + if (d->havePaintedAtLeastOnce) { + KoToolManager::instance()->switchBackRequested(); + } else { + KoToolManager::instance()->switchBackRequested(); + KoToolManager::instance()->switchToolRequested("KritaShape/KisToolLine"); + } + } else { + d->havePaintedAtLeastOnce = false; + } } int KisToolInvocationAction::priority() const @@ -83,13 +102,14 @@ bool KisToolInvocationAction::canIgnoreModifiers() const void KisToolInvocationAction::begin(int shortcut, QEvent *event) { - if (shortcut == ActivateShortcut) { + if (shortcut == ActivateShortcut || shortcut == LineToolShortcut) { QPoint workaround = inputManager()->canvas()->canvasWidget()->mapToGlobal(QPoint(0, 0)); d->active = inputManager()->toolProxy()->forwardEvent( KisToolProxy::BEGIN, KisTool::Primary, event, event, inputManager()->lastTabletEvent(), workaround); + d->havePaintedAtLeastOnce = true; } else if (shortcut == ConfirmShortcut) { QKeyEvent pressEvent(QEvent::KeyPress, Qt::Key_Return, 0); inputManager()->toolProxy()->keyPressEvent(&pressEvent); diff --git a/krita/ui/input/kis_tool_invocation_action.h b/krita/ui/input/kis_tool_invocation_action.h index 5fcbbc9..131c6f7 100644 --- a/krita/ui/input/kis_tool_invocation_action.h +++ b/krita/ui/input/kis_tool_invocation_action.h @@ -33,7 +33,8 @@ public: enum Shortcut { ActivateShortcut, ConfirmShortcut, - CancelShortcut + CancelShortcut, + LineToolShortcut }; explicit KisToolInvocationAction(); virtual ~KisToolInvocationAction(); _______________________________________________ Krita mailing list kimageshop@kde.org https://mail.kde.org/mailman/listinfo/kimageshop