void KisNodeFacadeTest::testCreation() { TestGraphListener graphListener; KisNodeSP node = new TestNodeA(); QVERIFY(node->graphListener() == 0); KisNodeFacade facade(node); QVERIFY(facade.root() == node); node->setGraphListener(&graphListener); QVERIFY(node->graphListener() != 0); // Test contract for initial state QVERIFY(node->parent() == 0); QVERIFY(node->firstChild() == 0); QVERIFY(node->lastChild() == 0); QVERIFY(node->prevSibling() == 0); QVERIFY(node->nextSibling() == 0); QVERIFY(node->childCount() == 0); QVERIFY(node->at(0) == 0); QVERIFY(node->at(UINT_MAX) == 0); QVERIFY(node->index(0) == -1); }
bool KisNodeFacade::moveNode(KisNodeSP node, KisNodeSP parent, quint32 newIndex) { dbgImage << "moveNode " << node << " " << parent << " " << newIndex; int oldIndex = node->parent()->index(node); if (node->graphListener()) node->graphListener()->aboutToMoveNode(node.data(), oldIndex, newIndex); KisNodeSP aboveThis = parent->at(newIndex - 1); if (aboveThis == node) return false; if (node->parent()) { if (!node->parent()->remove(node)) return false; } dbgImage << "moving node to " << newIndex; bool success = addNode(node, parent, aboveThis); if (node->graphListener()) node->graphListener()->nodeHasBeenMoved(node.data(), oldIndex, newIndex); return success; }