Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_node_shapes_graph.cpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2011 Dmitry Kazakov <dimula73@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
8
9#include "kis_node_shape.h"
10
11
13{
14 KisNodeDummy *parentDummy = 0;
15 KisNodeDummy *aboveThisDummy = 0;
16
17 KisNodeShape *parentShape = 0;
18
19 if(parent) {
20 parentDummy = nodeToDummy(parent);
21 parentShape = parentDummy->nodeShape();
22 }
23
24 if(aboveThis) {
25 aboveThisDummy = nodeToDummy(aboveThis);
26 }
27
28 KisNodeShape *newShape = new KisNodeShape(node);
29 ((KoShapeLayer*)newShape)->setParent(parentShape);
30
31 KisNodeDummy *newDummy = new KisNodeDummy(newShape, newShape->node());
32
33 m_dummiesGraph.addNode(newDummy, parentDummy, aboveThisDummy);
34 return newShape;
35}
36
38{
39 KisNodeDummy *nodeDummy = nodeToDummy(node);
40 KisNodeDummy *parentDummy = parent ? nodeToDummy(parent) : 0;
41 KisNodeDummy *aboveThisDummy = aboveThis ? nodeToDummy(aboveThis) : 0;
42
43 m_dummiesGraph.moveNode(nodeDummy, parentDummy, aboveThisDummy);
44}
45
47{
48 KisNodeDummy *nodeDummy = nodeToDummy(node);
49
50 m_dummiesGraph.removeNode(nodeDummy);
51
56 KisNodeShape *tempShape = nodeDummy->nodeShape();
57 ((KoShapeLayer*)tempShape)->setParent(0);
58
59 delete nodeDummy;
60 delete tempShape;
61}
62
67
72
74{
75 KisNodeDummy *dummy = nodeToDummy(node);
76 if (dummy) {
77 return dummy->nodeShape();
78 }
79 return 0;
80}
81
86
void removeNode(KisNodeDummy *node)
void addNode(KisNodeDummy *node, KisNodeDummy *parent, KisNodeDummy *aboveThis)
KisNodeDummy * nodeToDummy(KisNodeSP node)
void moveNode(KisNodeDummy *node, KisNodeDummy *parent, KisNodeDummy *aboveThis)
KisNodeDummy * rootDummy() const
bool containsNode(KisNodeSP node) const
KisNodeShape * nodeShape() const
KisNodeSP node()
bool containsNode(KisNodeSP node) const
KisNodeDummy * nodeToDummy(KisNodeSP node)
KisNodeDummiesGraph m_dummiesGraph
KisNodeDummy * rootDummy() const
KisNodeShape * addNode(KisNodeSP node, KisNodeSP parent, KisNodeSP aboveThis)
KisNodeShape * nodeToShape(KisNodeSP node)
void moveNode(KisNodeSP node, KisNodeSP parent, KisNodeSP aboveThis)
void removeNode(KisNodeSP node)
void setParent(KoShapeContainer *parent)
Definition KoShape.cpp:535