summaryrefslogtreecommitdiffstats
path: root/src/tools/qdoc/tree.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools/qdoc/tree.cpp')
-rw-r--r--src/tools/qdoc/tree.cpp33
1 files changed, 18 insertions, 15 deletions
diff --git a/src/tools/qdoc/tree.cpp b/src/tools/qdoc/tree.cpp
index 147abe21af..e689227bf1 100644
--- a/src/tools/qdoc/tree.cpp
+++ b/src/tools/qdoc/tree.cpp
@@ -563,20 +563,6 @@ Node* Tree::findNodeByNameAndType(const QStringList& path, Node::Type type) cons
{
return findNodeRecursive(path, 0, root(), type);
}
-#if 0
-/*!
- Find the node with the specified \a path name that is of
- the specified \a type and \a subtype. Begin the search at
- the \a start node. If the \a start node is 0, begin the
- search at the tree root. \a subtype is not used unless
- \a type is \c{Document}.
- */
-Node* Tree::findHtmlFileNode(const QStringList& path) const
-{
- return findNodeRecursive(path, 0, root());
-}
-#endif
-/* internal members */
/*!
Recursive search for a node identified by \a path. Each
@@ -624,7 +610,7 @@ Node* Tree::findNodeRecursive(const QStringList& path,
}
else if (n->name() == name) {
if (pathIndex+1 >= path.size()) {
- if (n->type() == type)
+ if ((n->type() == type) || (type == Node::NoType))
return n;
continue;
}
@@ -816,6 +802,23 @@ void Tree::insertTarget(const QString& name, TargetRec::Type type, Node* node, i
}
/*!
+ Searches this tree for a node named \a target and returns
+ a pointer to it if found. The \a start node is the starting
+ point, but it only makes sense if \a start is in this tree.
+ If \a start is not in this tree, \a start is set to 0 before
+ beginning the search to ensure that the search starts at the
+ root.
+ */
+const Node* Tree::resolveTarget(const QString& target, const Node* start)
+{
+ QStringList path = target.split("::");
+ int flags = SearchBaseClasses | SearchEnumValues | NonFunction;
+ if (start && start->tree() != this)
+ start = 0;
+ return findNode(path, start, flags);
+}
+
+/*!
*/
void Tree::resolveTargets(InnerNode* root)
{