void RuleTreeAdapter::addToTree(const Root& rule, CEGUI::TreeItem* parent, bool addRecursive) { CEGUI::TreeItem* item = ColouredTreeItem::create(rule->getId()); item->toggleIsOpen(); if (!parent) { mTreeWidget.addItem(item); } else { parent->addItem(item); } if (addRecursive) { std::list<std::string> children; extractChildren(rule, children); for (auto& child : children) { const auto& childData = getRule(child); if (childData.isValid()) { addToTree(childData, item, addRecursive); } } } }