summaryrefslogtreecommitdiffstats
path: root/src/tools/qdoc/tree.h
diff options
context:
space:
mode:
authorMartin Smith <martin.smith@nokia.com>2012-09-13 11:38:45 +0200
committerQt by Nokia <qt-info@nokia.com>2012-09-14 15:23:15 +0200
commit14f7eb86ca2275d91f284279af5f77205d4ae3c0 (patch)
treeed4e91d6422dd814ac3e81739ad4a3b55bf050c7 /src/tools/qdoc/tree.h
parent817a4474676b30a964de476d26bd70ddba3d379a (diff)
qdoc: Refactoring of qdoc data structures
This commit is the beginning of a significant overhaul of qdoc. A new class, QDocDatabase, is added, which will eventually encapsulate all the data structures used by qdoc. In this commit, the Tree class is made private and only accessible from QDocDatabase. Several maps structures are also moved into QDocDatabase from other classes. Much dead code and unused parameters were removed. Further simplification will follow. Change-Id: I237411c50f3ced0d2fc8d3b0fbfdf4e55880f8e9 Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org> Reviewed-by: Lars Knoll <lars.knoll@nokia.com> Reviewed-by: Jerome Pasion <jerome.pasion@nokia.com>
Diffstat (limited to 'src/tools/qdoc/tree.h')
-rw-r--r--src/tools/qdoc/tree.h27
1 files changed, 13 insertions, 14 deletions
diff --git a/src/tools/qdoc/tree.h b/src/tools/qdoc/tree.h
index 0684364f10..c201a31cd5 100644
--- a/src/tools/qdoc/tree.h
+++ b/src/tools/qdoc/tree.h
@@ -55,21 +55,24 @@ QT_BEGIN_NAMESPACE
class Generator;
class QStringList;
class TreePrivate;
+class QDocDatabase;
class Tree
{
-public:
+ private:
+ friend class QDocDatabase;
+
enum FindFlag { SearchBaseClasses = 0x1,
SearchEnumValues = 0x2,
NonFunction = 0x4 };
- Tree();
+ Tree(QDocDatabase* qdb);
~Tree();
EnumNode* findEnumNode(const QStringList& path, Node* start = 0);
ClassNode* findClassNode(const QStringList& path, Node* start = 0);
- QmlClassNode* findQmlClassNode(const QStringList& path, Node* start = 0);
- NamespaceNode* findNamespaceNode(const QStringList& path, Node* start = 0);
+ QmlClassNode* findQmlTypeNode(const QStringList& path);
+ NamespaceNode* findNamespaceNode(const QStringList& path);
DocNode* findGroupNode(const QStringList& path, Node* start = 0);
DocNode* findQmlModuleNode(const QStringList& path, Node* start = 0);
@@ -91,15 +94,12 @@ public:
int findFlags = 0,
const Node* self=0) const;
- private:
const Node* findNode(const QStringList& path,
const Node* start,
int findFlags,
const Node* self,
bool qml) const;
- public:
- QmlClassNode* findQmlClassNode(const QString& module, const QString& name);
NameCollisionNode* checkForCollision(const QString& name) const;
NameCollisionNode* findCollisionNode(const QString& name) const;
FunctionNode *findFunctionNode(const QStringList &path,
@@ -113,14 +113,14 @@ public:
Node::Access access,
const QStringList &basePath,
const QString &dataTypeWithTemplateArgs,
- InnerNode *parent = 0);
+ InnerNode *parent);
void addPropertyFunction(PropertyNode *property,
const QString &funcName,
PropertyNode::FunctionRole funcRole);
void addToGroup(Node *node, const QString &group);
void addToPublicGroup(Node *node, const QString &group);
void addToQmlModule(Node* node);
- NodeMultiMap groups() const;
+ const NodeMultiMap& groups() const;
QMultiMap<QString,QString> publicGroups() const;
void resolveInheritance(NamespaceNode *rootNode = 0);
void resolveProperties();
@@ -129,7 +129,7 @@ public:
void resolveCppToQmlLinks();
void fixInheritance(NamespaceNode *rootNode = 0);
void setVersion(const QString &version) { vers = version; }
- NamespaceNode *root() { return &roo; }
+ NamespaceNode *root() { return &root_; }
QString version() const { return vers; }
const FunctionNode *findFunctionNode(const QStringList &path,
@@ -142,7 +142,7 @@ public:
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 &roo; }
+ 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);
@@ -157,9 +157,7 @@ public:
const InnerNode *inner);
void generateTagFile(const QString &fileName);
void addExternalLink(const QString &url, const Node *relative);
- void resolveQmlInheritance();
-private:
void resolveInheritance(int pass, ClassNode *classe);
FunctionNode *findVirtualFunctionInBaseClasses(ClassNode *classe,
FunctionNode *clone);
@@ -172,7 +170,8 @@ private:
void resolveIndex();
private:
- NamespaceNode roo;
+ QDocDatabase* qdb_;
+ NamespaceNode root_;
QString vers;
Generator* gen_;
TreePrivate *priv;