44 dbgImage <<
"moveNode " << node <<
" " << parent <<
" " << aboveThis;
46 dbgImage <<
"cannot move null node";
return false;
49 dbgImage <<
"cannot move to null parent";
return false;
52 dbgImage <<
"cannot move self inside self";
return false;
54 if (node == aboveThis) {
55 dbgImage <<
"cannot move self above self";
return false;
57 if (parent == aboveThis) {
58 dbgImage <<
"cannot move above parent";
return false;
61 dbgImage <<
"node does not have a parent";
return false;
64 if (aboveThis && aboveThis->
parent() != parent) {
65 dbgImage <<
"above this parent is not the parent";
return false;
68 int newIndex = aboveThis ? parent->index(aboveThis) + 1 : 0;
69 return moveNode(node, parent, newIndex);
74 dbgImage <<
"moveNode " << node <<
" " << parent <<
" " << newIndex;
79 KisNodeSP aboveThis = parent->at(newIndex - 1);
80 if (aboveThis == node)
return false;
84 dbgImage <<
"moving node to " << newIndex;
85 bool success =
addNode(node, parent, aboveThis);
94 dbgImage <<
"Add node " << node <<
" to " << parent;
95 if (!node)
return false;
96 if (!parent && !
m_d->root)
return false;
99 return parent->add(node, parent->lastChild(), flags);
106 if (!node)
return false;
107 if (!parent)
return false;
109 return parent->add(node, aboveThis, flags);
114 if (!node)
return false;
115 if (!parent)
return false;
117 if (index == parent->childCount())
118 return parent->add(node, parent->lastChild(), flags);
120 return parent->add(node, parent->at(index), flags);
122 return parent->add(node, 0, flags);
127 if (!node)
return false;
128 if (!node->
parent())
return false;
bool addNode(KisNodeSP node, KisNodeSP parent=KisNodeSP(), KisNodeAdditionFlags flags=KisNodeAdditionFlag::None)
void setRoot(KisNodeSP root)
bool moveNode(KisNodeSP node, KisNodeSP parent, KisNodeSP aboveThis)
QScopedPointer< Private > m_d
bool removeNode(KisNodeSP node)
virtual void aboutToMoveNode(KisNode *node, int oldIndex, int newIndex)
virtual void nodeHasBeenMoved(KisNode *node, int oldIndex, int newIndex)
bool remove(quint32 index)
int index(const KisNodeSP node) const
KisNodeSP lastChild() const
KisNodeGraphListener * graphListener