[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-kimageshop
Subject: [krita/kazakov/lazy-brush-remastered] /: Bind Primary and Secondary alternate modes to show key stro
From: Dmitry Kazakov <null () kde ! org>
Date: 2017-11-17 17:19:23
Message-ID: E1eFkIV-0007LD-74 () code ! kde ! org
[Download RAW message or body]
Git commit 57720072703d7463d4d18fd22beac4d341e38f2a by Dmitry Kazakov.
Committed on 17/11/2017 at 17:19.
Pushed by dkazakov into branch 'kazakov/lazy-brush-remastered'.
Bind Primary and Secondary alternate modes to show key strokes and coloring
Ctrl+Shift -> Show Key Strokes (you can paint in this mode)
Alt+Shift -> Show Coloring (you can paint in this mode)
Enter -> Update the mask
CC:kimageshop@kde.org
M +4 -0 libs/ui/input/kis_alternate_invocation_action.cpp
M +1 -0 libs/ui/input/kis_alternate_invocation_action.h
M +93 -0 plugins/tools/tool_lazybrush/kis_tool_lazy_brush.cpp
M +7 -0 plugins/tools/tool_lazybrush/kis_tool_lazy_brush.h
https://commits.kde.org/krita/57720072703d7463d4d18fd22beac4d341e38f2a
diff --git a/libs/ui/input/kis_alternate_invocation_action.cpp \
b/libs/ui/input/kis_alternate_invocation_action.cpp index 4f83c349b4a..0cb11249c35 \
100644
--- a/libs/ui/input/kis_alternate_invocation_action.cpp
+++ b/libs/ui/input/kis_alternate_invocation_action.cpp
@@ -41,6 +41,7 @@ KisAlternateInvocationAction::KisAlternateInvocationAction()
QHash<QString, int> shortcuts;
shortcuts.insert(i18n("Primary Mode"), PrimaryAlternateModeShortcut);
shortcuts.insert(i18n("Secondary Mode"), SecondaryAlternateModeShortcut);
+ shortcuts.insert(i18n("Tertiary Mode"), TertiaryAlternateModeShortcut);
shortcuts.insert(i18n("Pick Foreground Color from Current Layer"), \
PickColorFgLayerModeShortcut); @@ -79,6 +80,9 @@ KisTool::ToolAction \
KisAlternateInvocationAction::shortcutToToolAction(int short case \
SecondaryAlternateModeShortcut: action = KisTool::AlternateThird;
break;
+ case TertiaryAlternateModeShortcut:
+ action = KisTool::AlternateFourth;
+ break;
}
return action;
diff --git a/libs/ui/input/kis_alternate_invocation_action.h \
b/libs/ui/input/kis_alternate_invocation_action.h index dd8e5fdeb5b..35032fe91bc \
100644
--- a/libs/ui/input/kis_alternate_invocation_action.h
+++ b/libs/ui/input/kis_alternate_invocation_action.h
@@ -39,6 +39,7 @@ public:
enum Shortcut {
PrimaryAlternateModeShortcut, ///< Toggle Primary mode.
SecondaryAlternateModeShortcut, ///< Toggle Secondary mode.
+ TertiaryAlternateModeShortcut, ///< Toggle Tertiary mode.
PickColorFgLayerModeShortcut,
PickColorBgLayerModeShortcut,
PickColorFgImageModeShortcut,
diff --git a/plugins/tools/tool_lazybrush/kis_tool_lazy_brush.cpp \
b/plugins/tools/tool_lazybrush/kis_tool_lazy_brush.cpp index b5b4a0bfdc3..9daf9831ff8 \
100644
--- a/plugins/tools/tool_lazybrush/kis_tool_lazy_brush.cpp
+++ b/plugins/tools/tool_lazybrush/kis_tool_lazy_brush.cpp
@@ -41,6 +41,8 @@
struct KisToolLazyBrush::Private
{
bool activateMaskMode = false;
+ bool oldShowKeyStrokesValue = false;
+ bool oldShowColoringValue = false;
};
@@ -149,6 +151,97 @@ void KisToolLazyBrush::endPrimaryAction(KoPointerEvent *event)
KisToolFreehand::endPrimaryAction(event);
}
+void KisToolLazyBrush::activateAlternateAction(KisTool::AlternateAction action)
+{
+ if (action == KisTool::Secondary && !m_d->activateMaskMode) {
+ KisNodeSP node = currentNode();
+ if (!node) return;
+
+ m_d->oldShowKeyStrokesValue =
+ KisLayerPropertiesIcons::nodeProperty(node,
+ \
KisLayerPropertiesIcons::colorizeEditKeyStrokes, + \
true).toBool(); +
+ KisLayerPropertiesIcons::setNodeProperty(node,
+ \
KisLayerPropertiesIcons::colorizeEditKeyStrokes, + \
!m_d->oldShowKeyStrokesValue, image()); +
+ KisToolFreehand::activatePrimaryAction();
+
+ } else if (action == KisTool::Third && !m_d->activateMaskMode) {
+ KisNodeSP node = currentNode();
+ if (!node) return;
+
+ m_d->oldShowColoringValue =
+ KisLayerPropertiesIcons::nodeProperty(node,
+ \
KisLayerPropertiesIcons::colorizeShowColoring, + \
true).toBool(); +
+ KisLayerPropertiesIcons::setNodeProperty(node,
+ \
KisLayerPropertiesIcons::colorizeShowColoring, + \
!m_d->oldShowColoringValue, image()); +
+ KisToolFreehand::activatePrimaryAction();
+
+ } else {
+ KisToolFreehand::activateAlternateAction(action);
+ }
+}
+
+void KisToolLazyBrush::deactivateAlternateAction(KisTool::AlternateAction action)
+{
+ if (action == KisTool::Secondary && !m_d->activateMaskMode) {
+ KisNodeSP node = currentNode();
+ if (!node) return;
+
+ KisLayerPropertiesIcons::setNodeProperty(node,
+ \
KisLayerPropertiesIcons::colorizeEditKeyStrokes, + \
m_d->oldShowKeyStrokesValue, image()); +
+ KisToolFreehand::deactivatePrimaryAction();
+
+ } else if (action == KisTool::Third && !m_d->activateMaskMode) {
+ KisNodeSP node = currentNode();
+ if (!node) return;
+
+ KisLayerPropertiesIcons::setNodeProperty(node,
+ \
KisLayerPropertiesIcons::colorizeShowColoring, + \
m_d->oldShowColoringValue, image()); +
+ KisToolFreehand::deactivatePrimaryAction();
+
+ } else {
+ KisToolFreehand::deactivateAlternateAction(action);
+ }
+}
+
+void KisToolLazyBrush::beginAlternateAction(KoPointerEvent *event, \
KisTool::AlternateAction action) +{
+ if (!m_d->activateMaskMode && (action == KisTool::Secondary || action == \
KisTool::Third)) { + beginPrimaryAction(event);
+ } else {
+ KisToolFreehand::beginAlternateAction(event, action);
+ }
+}
+
+void KisToolLazyBrush::continueAlternateAction(KoPointerEvent *event, \
KisTool::AlternateAction action) +{
+ if (!m_d->activateMaskMode && (action == KisTool::Secondary || action == \
KisTool::Third)) { + continuePrimaryAction(event);
+ } else {
+ KisToolFreehand::continueAlternateAction(event, action);
+ }
+}
+
+void KisToolLazyBrush::endAlternateAction(KoPointerEvent *event, \
KisTool::AlternateAction action) +{
+ if (!m_d->activateMaskMode && (action == KisTool::Secondary || action == \
KisTool::Third)) { + endPrimaryAction(event);
+ } else {
+ KisToolFreehand::endAlternateAction(event, action);
+ }
+}
+
void KisToolLazyBrush::explicitUserStrokeEndRequest()
{
if (m_d->activateMaskMode) {
diff --git a/plugins/tools/tool_lazybrush/kis_tool_lazy_brush.h \
b/plugins/tools/tool_lazybrush/kis_tool_lazy_brush.h index fe4c532d44b..a5368274835 \
100644
--- a/plugins/tools/tool_lazybrush/kis_tool_lazy_brush.h
+++ b/plugins/tools/tool_lazybrush/kis_tool_lazy_brush.h
@@ -51,6 +51,13 @@ public:
void continuePrimaryAction(KoPointerEvent *event) override;
void endPrimaryAction(KoPointerEvent *event) override;
+ void activateAlternateAction(AlternateAction action) override;
+ void deactivateAlternateAction(AlternateAction action) override;
+
+ void beginAlternateAction(KoPointerEvent *event, AlternateAction action) \
override; + void continueAlternateAction(KoPointerEvent *event, AlternateAction \
action) override; + void endAlternateAction(KoPointerEvent *event, AlternateAction \
action) override; +
void explicitUserStrokeEndRequest() override;
protected Q_SLOTS:
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic