Commit df30d7e4 authored by Dmitry Kazakov's avatar Dmitry Kazakov

Add Shift+R selection mode when multiple layers can be selected by just dragging on the canvas

parent 8f7603cc
[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,49 +17,50 @@ name=Krita Default
version=3
[Pan Canvas]
0={4;1;[];0;0;0}
1={3;1;[];0;0;0}
2={2;1;[];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;[];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;[];0;0;0}
5={3;1;[];0;0;0}
6={4;1;[];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}
0={1;2;[1000020,52];1;0;0}
1={0;2;[52];1;0;0}
[Show Popup Palette]
0={0;2;[];2;0;0}
[Switch Time]
0={1;1;[1000012];0;0;0}
1={0;1;[1000014];0;0;0}
0={0;1;[1000014];0;0;0}
1={1;1;[1000012];0;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}
4={3;2;[56];1;0;0}
3={1;1;[1000004];0;0;0}
4={2;1;[1000000];0;0;0}
[Zoom Canvas]
0={6;1;[33];0;0;0}
1={1;2;[1000021,1000023,20];1;0;0}
10={5;1;[32];0;0;0}
11={2;1;[2b];0;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={0;2;[1000021,20];1;0;0}
9={0;4;[];0;0;1}
0={0;4;[];0;0;1}
1={0;2;[1000021,20];1;0;0}
10={1;2;[1000021,1000023,20];1;0;0}
11={6;1;[33];0;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={2;1;[2b];0;0;0}
9={5;1;[32];0;0;0}
......@@ -37,6 +37,8 @@
class KisSelectLayerAction::Private
{
public:
Private() : multipleMode(false) {}
bool multipleMode;
};
KisSelectLayerAction::KisSelectLayerAction()
......@@ -48,6 +50,7 @@ KisSelectLayerAction::KisSelectLayerAction()
QHash<QString, int> shortcuts;
shortcuts.insert(i18n("Select Layer Mode"), SelectLayerModeShortcut);
shortcuts.insert(i18n("Select Multiple Layer Mode"), SelectMultipleLayerModeShortcut);
setShortcutIndexes(shortcuts);
}
......@@ -78,23 +81,37 @@ void KisSelectLayerAction::begin(int shortcut, QEvent *event)
KisAbstractInputAction::begin(shortcut, event);
switch (shortcut) {
case SelectLayerModeShortcut:
inputEvent(event);
break;
case SelectMultipleLayerModeShortcut:
case SelectLayerModeShortcut:
d->multipleMode = shortcut == SelectMultipleLayerModeShortcut;
inputEvent(event);
break;
}
}
void KisSelectLayerAction::inputEvent(QEvent *event)
{
if (event && (event->type() == QEvent::MouseMove || event->type() == QEvent::TabletMove)) {
if (event &&
(event->type() == QEvent::MouseMove || event->type() == QEvent::TabletMove ||
event->type() == QEvent::MouseButtonPress || event->type() == QEvent::TabletPress)) {
QPoint pos =
inputManager()->canvas()->
coordinatesConverter()->widgetToImage(eventPosF(event)).toPoint();
KisNodeSP node = KisToolUtils::findNode(inputManager()->canvas()->image()->root(), pos, false);
if (node) {
inputManager()->canvas()->viewManager()->nodeManager()->slotNonUiActivatedNode(node);
if (!node) return;
KisNodeManager *nodeManager = inputManager()->canvas()->viewManager()->nodeManager();
if (!d->multipleMode) {
nodeManager->slotNonUiActivatedNode(node);
} else {
KisNodeList nodes = nodeManager->selectedNodes();
if (!nodes.contains(node)) {
nodes.append(node);
}
nodeManager->slotImageRequestNodeReselection(node, nodes);
}
}
}
......@@ -31,6 +31,7 @@ class KisSelectLayerAction : public KisAbstractInputAction
public:
enum Shortcut {
SelectLayerModeShortcut, ///< Toggle the layer select mode.
SelectMultipleLayerModeShortcut, ///< Toggle the multiple layer select mode.
};
explicit KisSelectLayerAction();
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment