void TreeTable::_GetPathForNode(TreeTableNode* node, TreeTablePath& _path) const { if (node == fRootNode) { _path.Clear(); return; } _GetPathForNode(node->Parent(), _path); _path.AddComponent(node->Parent()->IndexOf(node)); }
bool VariablesView::VariableTableModel::_GetTreePath(ModelNode* node, TreeTablePath& _path) const { // recurse, if the node has a parent if (ModelNode* parent = node->Parent()) { if (!_GetTreePath(parent, _path)) return false; if (node->IsHidden()) return true; return _path.AddComponent(parent->IndexOf(node)); } // no parent -- get the index and start the path int32 index = fNodes.IndexOf(node); _path.Clear(); return index >= 0 && _path.AddComponent(index); }
bool GetFunctionPath(FunctionInstance* function, TreeTablePath& _path) { int32 index = -1; for (int32 i = 0; i < fFunctionCount; i++) { if (fFunctions[i] == function) { index = i; break; } } if (index < 0) return false; int32 sourceIndex = fSourceFileCount - 1; while (fSourceFileIndices[sourceIndex] > index) sourceIndex--; _path.Clear(); return _path.AddComponent(sourceIndex) && _path.AddComponent(index - fSourceFileIndices[sourceIndex]); }