void ProfileNode::setTreeVisible(ProfileNode* node, bool visible) { ProfileNode* nodeParent = node->parent(); ProfileNode* nodeSibling = node->nextSibling(); node->setParent(0); node->setNextSibling(0); for (ProfileNode* currentNode = node; currentNode; currentNode = currentNode->traverseNextNodePreOrder()) currentNode->setVisible(visible); node->setParent(nodeParent); node->setNextSibling(nodeSibling); }
bool ProfileNode::focus(const CallIdentifier& callIdentifier) { if (!m_visible) return false; if (m_callIdentifier != callIdentifier) { m_visible = false; return true; } for (ProfileNode* currentParent = m_parent; currentParent; currentParent = currentParent->parent()) currentParent->setVisible(true); return false; }