summaryrefslogtreecommitdiffstats
path: root/src/tools/qdoc/node.h
diff options
context:
space:
mode:
authorMartin Smith <martin.smith@digia.com>2013-02-20 12:03:32 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-02-20 17:22:26 +0100
commit2cb22c6cc01627700ebfb8d2528ab4f700917a9b (patch)
tree2a90f9db61cf7ee292f58975a52cff1738487db0 /src/tools/qdoc/node.h
parentdacc222d5a3327fb27d69e57d99111cdf9084304 (diff)
qdoc: QML Inheritance is not resolved correctly.
This change adds some QML property, signal, and method data to the .index file. It also provides more robust resolving of QML inheritance for qml types. Task-number: QTBUG-29778 Change-Id: Iaefd64227913a19f427b21e904ca5e32c82d7b29 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Diffstat (limited to 'src/tools/qdoc/node.h')
-rw-r--r--src/tools/qdoc/node.h30
1 files changed, 25 insertions, 5 deletions
diff --git a/src/tools/qdoc/node.h b/src/tools/qdoc/node.h
index ecb3c5771e..f76b115416 100644
--- a/src/tools/qdoc/node.h
+++ b/src/tools/qdoc/node.h
@@ -65,7 +65,6 @@ typedef QList<Node*> NodeList;
typedef QMap<QString, Node*> NodeMap;
typedef QMultiMap<QString, Node*> NodeMultiMap;
typedef QMultiMap<QString, const ExampleNode*> ExampleNodeMap;
-typedef QList<QPair<QString,QString> > ImportList;
class Node
{
@@ -206,7 +205,7 @@ public:
virtual bool hasProperty(const QString& ) const { return false; }
virtual void getMemberNamespaces(NodeMap& ) { }
virtual void getMemberClasses(NodeMap& ) { }
- bool isInternal() const;
+ virtual bool isInternal() const;
bool isIndexNode() const { return indexNodeFlag_; }
bool wasSeen() const { return seen_; }
Type type() const { return nodeType_; }
@@ -530,6 +529,26 @@ private:
QString imageFileName_;
};
+struct ImportRec {
+ QString name_; // module name
+ QString version_; // <major> . <minor>
+ QString importId_; // "as" name
+ QString importUri_; // subdirectory of module directory
+
+ ImportRec(const QString& name,
+ const QString& version,
+ const QString& importId,
+ const QString& importUri)
+ : name_(name), version_(version), importId_(importId), importUri_(importUri) { }
+ QString& name() { return name_; }
+ QString& version() { return version_; }
+ QString& importId() { return importId_; }
+ QString& importUri() { return importUri_; }
+ bool isEmpty() const { return name_.isEmpty(); }
+};
+
+typedef QList<ImportRec> ImportList;
+
class QmlClassNode : public DocNode
{
public:
@@ -543,12 +562,13 @@ public:
virtual void clearCurrentChild();
virtual bool isAbstract() const { return abstract_; }
virtual void setAbstract(bool b) { abstract_ = b; }
+ virtual bool isInternal() const { return (status() == Internal); }
const ImportList& importList() const { return importList_; }
void setImportList(const ImportList& il) { importList_ = il; }
const QString& qmlBaseName() const { return baseName_; }
void setQmlBaseName(const QString& name) { baseName_ = name; }
- const DocNode* qmlBaseNode() const { return baseNode_; }
- void setQmlBaseNode(DocNode* b) { baseNode_ = b; }
+ const QmlClassNode* qmlBaseNode() const { return baseNode_; }
+ void setQmlBaseNode(QmlClassNode* b) { baseNode_ = b; }
void requireCppClass() { cnodeRequired_ = true; }
bool cppClassRequired() const { return cnodeRequired_; }
static void addInheritedBy(const QString& base, Node* sub);
@@ -564,7 +584,7 @@ private:
bool cnodeRequired_;
ClassNode* cnode_;
QString baseName_;
- DocNode* baseNode_;
+ QmlClassNode* baseNode_;
ImportList importList_;
};