diff options
author | Martin Smith <martin.smith@digia.com> | 2012-09-24 09:54:42 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2012-09-26 10:12:04 +0200 |
commit | 4b21631f595b80a692d30e3f8960ff8d6fcc5c4a (patch) | |
tree | 65e7add82fe800a14dc6847bce8bde58249eb640 /src/tools/qdoc/tree.h | |
parent | d8cebcdf67ddebb3bce89a08c7ffab4cc9bf4107 (diff) |
qdoc: retrying More refactoring of qdoc data structures
This commit is the second phase of a significant
overhaul of qdoc. Two new classes, QDocIndexFiles,
and QDocTagFiles, are added to encapsulate the
creation and use of the qdoc index files, and the
creation of the qdoc tag file.
Change-Id: I94651b10628e535ea7b26bd8256037cd819ccea7
Reviewed-by: Martin Smith <martin.smith@digia.com>
Diffstat (limited to 'src/tools/qdoc/tree.h')
-rw-r--r-- | src/tools/qdoc/tree.h | 58 |
1 files changed, 23 insertions, 35 deletions
diff --git a/src/tools/qdoc/tree.h b/src/tools/qdoc/tree.h index df7fa332d4..2066def091 100644 --- a/src/tools/qdoc/tree.h +++ b/src/tools/qdoc/tree.h @@ -47,14 +47,10 @@ #define TREE_H #include "node.h" -#include <qdom.h> -#include <qxmlstream.h> QT_BEGIN_NAMESPACE -class Generator; class QStringList; -class TreePrivate; class QDocDatabase; class Tree @@ -62,9 +58,25 @@ class Tree private: friend class QDocDatabase; - enum FindFlag { SearchBaseClasses = 0x1, - SearchEnumValues = 0x2, - NonFunction = 0x4 }; + typedef QMap<PropertyNode::FunctionRole, QString> RoleMap; + typedef QMap<PropertyNode*, RoleMap> PropertyMap; + + struct InheritanceBound + { + Node::Access access; + QStringList basePath; + QString dataTypeWithTemplateArgs; + InnerNode* parent; + + InheritanceBound() : access(Node::Public) { } + InheritanceBound(Node::Access access0, + const QStringList& basePath0, + const QString& dataTypeWithTemplateArgs0, + InnerNode* parent) + : access(access0), basePath(basePath0), + dataTypeWithTemplateArgs(dataTypeWithTemplateArgs0), + parent(parent) { } + }; Tree(QDocDatabase* qdb); ~Tree(); @@ -125,12 +137,9 @@ class Tree void resolveInheritance(NamespaceNode *rootNode = 0); void resolveProperties(); void resolveGroups(); - void resolveTargets(InnerNode* root); void resolveCppToQmlLinks(); void fixInheritance(NamespaceNode *rootNode = 0); - void setVersion(const QString &version) { vers = version; } NamespaceNode *root() { return &root_; } - QString version() const { return vers; } const FunctionNode *findFunctionNode(const QStringList &path, const Node *relative = 0, @@ -139,42 +148,21 @@ class Tree const FunctionNode *clone, const Node *relative = 0, int findFlags = 0) const; - const DocNode *findDocNodeByTitle(const QString &title, const Node* relative = 0) const; - const Node *findUnambiguousTarget(const QString &target, Atom *&atom, const Node* relative) const; - Atom *findTarget(const QString &target, const Node *node) const; const NamespaceNode *root() const { return &root_; } - void readIndexes(const QStringList &indexFiles); - bool generateIndexSection(QXmlStreamWriter& writer, Node* node, bool generateInternalNodes = false); - void generateIndexSections(QXmlStreamWriter& writer, Node* node, bool generateInternalNodes = false); - void generateIndex(const QString &fileName, - const QString &url, - const QString &title, - Generator* g, - bool generateInternalNodes = false); - void generateTagFileCompounds(QXmlStreamWriter &writer, - const InnerNode *inner); - void generateTagFileMembers(QXmlStreamWriter &writer, - const InnerNode *inner); - void generateTagFile(const QString &fileName); - void addExternalLink(const QString &url, const Node *relative); void resolveInheritance(int pass, ClassNode *classe); FunctionNode *findVirtualFunctionInBaseClasses(ClassNode *classe, FunctionNode *clone); void fixPropertyUsingBaseClasses(ClassNode *classe, PropertyNode *property); NodeList allBaseClasses(const ClassNode *classe) const; - void readIndexFile(const QString &path); - void readIndexSection(const QDomElement &element, InnerNode *parent, - const QString &indexUrl); - QString readIndexText(const QDomElement &element); - void resolveIndex(); private: QDocDatabase* qdb_; NamespaceNode root_; - QString vers; - Generator* gen_; - TreePrivate *priv; + QMap<ClassNode* , QList<InheritanceBound> > unresolvedInheritanceMap; + PropertyMap unresolvedPropertyMap; + NodeMultiMap groupMap; + QMultiMap<QString, QString> publicGroupMap; }; QT_END_NAMESPACE |