diff options
Diffstat (limited to 'src/tools/qdoc/qdocdatabase.h')
-rw-r--r-- | src/tools/qdoc/qdocdatabase.h | 84 |
1 files changed, 47 insertions, 37 deletions
diff --git a/src/tools/qdoc/qdocdatabase.h b/src/tools/qdoc/qdocdatabase.h index 99d1c46ca2..495db11511 100644 --- a/src/tools/qdoc/qdocdatabase.h +++ b/src/tools/qdoc/qdocdatabase.h @@ -88,9 +88,12 @@ class QDocForest const QVector<Tree*>& indexSearchOrder(); void setSearchOrder(); - const Node* findNode(const QStringList& path, const Node* relative, int findFlags) { + const Node* findNode(const QStringList& path, + const Node* relative, + int findFlags, + Node::Genus genus) { foreach (Tree* t, searchOrder()) { - const Node* n = t->findNode(path, relative, findFlags); + const Node* n = t->findNode(path, relative, findFlags, genus); if (n) return n; relative = 0; @@ -116,43 +119,48 @@ class QDocForest return 0; } - InnerNode* findRelatesNode(const QStringList& path) { + Node* findNodeForInclude(const QStringList& path) { foreach (Tree* t, searchOrder()) { - InnerNode* n = t->findRelatesNode(path); + Node* n = t->findNodeForInclude(path); if (n) return n; } return 0; } - const Node* resolveFunctionTarget(const QString& target, const Node* relative) { + InnerNode* findRelatesNode(const QStringList& path) { foreach (Tree* t, searchOrder()) { - const Node* n = t->resolveFunctionTarget(target, relative); + InnerNode* n = t->findRelatesNode(path); if (n) return n; - relative = 0; } return 0; } - const Node* resolveTarget(const QString& target, const Node* relative); - const Node* resolveType(const QStringList& path, const Node* relative) - { + const Node* findFunctionNode(const QString& target, + const Node* relative, + Node::Genus genus) { foreach (Tree* t, searchOrder()) { - const Node* n = resolveTypeHelper(path, relative, t); + const Node* n = t->findFunctionNode(target, relative, genus); if (n) return n; relative = 0; } return 0; } + const Node* findNodeForTarget(QStringList& targetPath, + const Node* relative, + Node::Genus genus, + QString& ref); - const Node* findUnambiguousTarget(const QString& target, QString& ref) + const Node* findTypeNode(const QStringList& path, const Node* relative) { foreach (Tree* t, searchOrder()) { - const Node* n = t->findUnambiguousTarget(target, ref); + int flags = SearchBaseClasses | SearchEnumValues | NonFunction; + const Node* n = t->findNode(path, relative, flags, Node::DontCare); if (n) return n; + relative = 0; } return 0; } @@ -189,7 +197,6 @@ class QDocForest private: void newPrimaryTree(const QString& module); NamespaceNode* newIndexTree(const QString& module); - const Node* resolveTypeHelper(const QStringList& path, const Node* relative, Tree* t); private: QDocDatabase* qdb_; @@ -281,8 +288,12 @@ class QDocDatabase void resolveTargets() { primaryTree()->resolveTargets(primaryTreeRoot()); } - void insertTarget(const QString& name, TargetRec::Type type, Node* node, int priority) { - primaryTree()->insertTarget(name, type, node, priority); + void insertTarget(const QString& name, + const QString& title, + TargetRec::Type type, + Node* node, + int priority) { + primaryTree()->insertTarget(name, title, type, node, priority); } /******************************************************************* @@ -293,10 +304,7 @@ class QDocDatabase } FunctionNode* findNodeInOpenNamespace(const QStringList& parentPath, const FunctionNode* clone); Node* findNodeInOpenNamespace(QStringList& path, Node::Type type); - NameCollisionNode* findCollisionNode(const QString& name) { - return primaryTree()->findCollisionNode(name); - } - NameCollisionNode* checkForCollision(const QString& name) { + const Node* checkForCollision(const QString& name) { return primaryTree()->checkForCollision(name); } /*******************************************************************/ @@ -304,38 +312,37 @@ class QDocDatabase /******************************************************************* The functions declared below handle the parameters in '[' ']'. ********************************************************************/ - Node* findNode(const Atom* atom); - const Node* findNode(const Atom* atom, const Node* relative, QString& ref); - const DocNode* findDocNodeByTitle(const Atom* atom); + const Node* findNodeForAtom(const Atom* atom, const Node* relative, QString& ref); /*******************************************************************/ /******************************************************************* The functions declared below are called for all trees. ********************************************************************/ ClassNode* findClassNode(const QStringList& path) { return forest_.findClassNode(path); } + Node* findNodeForInclude(const QStringList& path) { return forest_.findNodeForInclude(path); } InnerNode* findRelatesNode(const QStringList& path) { return forest_.findRelatesNode(path); } - const Node* resolveTarget(const QString& target, const Node* relative) { - return forest_.resolveTarget(target, relative); + const Node* findFunctionNode(const QString& target, const Node* relative, Node::Genus genus) { + return forest_.findFunctionNode(target, relative, genus); } - const Node* resolveFunctionTarget(const QString& target, const Node* relative) { - return forest_.resolveFunctionTarget(target, relative); - } - const Node* resolveType(const QString& type, const Node* relative); + const Node* findTypeNode(const QString& type, const Node* relative); const Node* findNodeForTarget(const QString& target, const Node* relative); const DocNode* findDocNodeByTitle(const QString& title) { return forest_.findDocNodeByTitle(title); } - const Node* findUnambiguousTarget(const QString& target, QString& ref) { - return forest_.findUnambiguousTarget(target, ref); - } Node* findNodeByNameAndType(const QStringList& path, Node::Type type) { return forest_.findNodeByNameAndType(path, type); } - /*******************************************************************/ - QString findTarget(const QString& target, const Node* node) { - return node->root()->tree()->findTarget(target, node); + private: + const Node* findNodeForTarget(QStringList& targetPath, + const Node* relative, + Node::Genus genus, + QString& ref) { + return forest_.findNodeForTarget(targetPath, relative, genus, ref); } + + /*******************************************************************/ + public: void addPropertyFunction(PropertyNode* property, const QString& funcName, PropertyNode::FunctionRole funcRole) { @@ -371,8 +378,11 @@ class QDocDatabase friend class QDocIndexFiles; friend class QDocTagFiles; - const Node* findNode(const QStringList& path, const Node* relative, int findFlags) { - return forest_.findNode(path, relative, findFlags); + const Node* findNode(const QStringList& path, + const Node* relative, + int findFlags, + Node::Genus genus) { + return forest_.findNode(path, relative, findFlags, genus); } void processForest(void (QDocDatabase::*) (InnerNode*)); static void initializeDB(); |