Krita Source Code Documentation
Loading...
Searching...
No Matches
KisNodeSelectionRecipe.cpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2020 Dmitry Kazakov <dimula73@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
8
9#include "kis_layer_utils.h"
10#include "kis_tool_utils.h"
11#include "kis_lod_transform.h"
12#include "kis_node.h"
13
15 : selectedNodes(_selectedNodes),
16 mode(SelectedLayer)
17{
18}
19
21 : selectedNodes(_selectedNodes),
22 mode(_mode),
23 pickPoint(_pickPoint)
24{
25}
26
29{
30 KisLodTransform t(levelOfDetail);
31 pickPoint = t.map(rhs.pickPoint);
32}
33
35{
36 if (selectedNodes.isEmpty() || mode == SelectedLayer) {
37 return selectedNodes;
38 }
39
41 const bool wholeGroup = mode == Group;
42
43 KisNodeList result;
44
45 if (!activeRoot) {
46 activeRoot = KisLayerUtils::findRoot(selectedNodes.first());
47 }
48
49 KisNodeSP node = KisToolUtils::findNode(activeRoot, pickPoint, wholeGroup);
50 if (node) {
51 result = {node};
52 }
53
54 return result;
55}
KisPaintInformation map(KisPaintInformation pi) const
KisNodeSelectionRecipe(KisNodeList _selectedNodes)
KisNodeList selectNodesToProcess() const
KisNodeSP findIsolationRoot(KisNodeSP node)
KisNodeSP findRoot(KisNodeSP node)
KisNodeSP findNode(KisNodeSP node, const QPoint &point, bool wholeGroup, bool editableOnly)