diff --git a/horizontal_layout_node.h b/horizontal_layout_node.h index d1643cf44..eeafa600c 100644 --- a/horizontal_layout_node.h +++ b/horizontal_layout_node.h @@ -17,7 +17,7 @@ public: } int numberOfChildren() const override { return m_numberOfChildren; } - void incrementNumberOfChildren() { m_numberOfChildren++; } + void incrementNumberOfChildren() override { m_numberOfChildren++; } void moveCursorLeft(LayoutCursor * cursor, bool * shouldRecomputeLayout) override { if (this == cursor->layoutReference().node()) { @@ -85,11 +85,6 @@ public: addChild(l2); addChild(l1); } - - virtual void addChild(LayoutRef l) override { - LayoutReference::addChild(l); - node()->incrementNumberOfChildren(); - } }; #endif diff --git a/layout_reference.h b/layout_reference.h index 29c5d7f2d..31760fcfb 100644 --- a/layout_reference.h +++ b/layout_reference.h @@ -20,10 +20,6 @@ public: LayoutCursor cursor() const; - virtual void addChild(LayoutReference l) { - TreeReference::addChild(l); - } - LayoutReference childAtIndex(int i) { TreeReference treeRefChild = TreeReference::treeChildAtIndex(i); return LayoutReference(treeRefChild.node()); diff --git a/tree_node.h b/tree_node.h index dbd06fed5..5cddb5fa4 100644 --- a/tree_node.h +++ b/tree_node.h @@ -38,6 +38,7 @@ public: TreeNode * parentTree() const; TreeNode * editableRootTree(); virtual int numberOfChildren() const = 0; + virtual void incrementNumberOfChildren() {} //TODO Put an assert false int numberOfDescendants(bool includeSelf) const; TreeNode * childTreeAtIndex(int i) const; int indexOfChildByIdentifier(int childID) const; diff --git a/tree_reference.h b/tree_reference.h index cc5ae1571..cbe4631d4 100644 --- a/tree_reference.h +++ b/tree_reference.h @@ -81,6 +81,7 @@ public: void addChild(TreeReference t) { t.node()->retain(); TreePool::sharedPool()->move(t.node(), node()->next()); + node()->incrementNumberOfChildren(); } void removeChild(TreeReference t) {