diff options
author | Martin Smith <martin.smith@digia.com> | 2014-03-12 10:09:49 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-03-31 21:05:16 +0200 |
commit | 900c150a07f627c20ad68ec59253196d9960b034 (patch) | |
tree | 92fd5ab004e08c5e98f15fcafa940a6d5e948ef1 /src/tools/qdoc/cppcodemarker.cpp | |
parent | c55d437d29a6fd014a1d47e1d2d05069879bf259 (diff) |
qdoc: fix inheritance information for some QML types
This update fixes a bug introduced by the extensive changes
for QTBUG-35377. For a QML base type loaded from an index file,
its QML base type was not being resolved. This resulted in the
"All members" page for some QML types to be incomplete because
the pointer to the base type was 0 when it should have been set.
This change also introduces the concept of "just in time"
resolution for base type pointers, which appears to speed up
qdoc a little.
Task-number: QTBUG-37326
Change-Id: I5f09336ec70ba84029b44b245c56f7f8fe349757
Reviewed-by: Martin Smith <martin.smith@digia.com>
Diffstat (limited to 'src/tools/qdoc/cppcodemarker.cpp')
-rw-r--r-- | src/tools/qdoc/cppcodemarker.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/tools/qdoc/cppcodemarker.cpp b/src/tools/qdoc/cppcodemarker.cpp index 58fbd45453..4690f6b212 100644 --- a/src/tools/qdoc/cppcodemarker.cpp +++ b/src/tools/qdoc/cppcodemarker.cpp @@ -1068,7 +1068,7 @@ QString CppCodeMarker::addMarkUp(const QString &in, the list of documentation sections for the children of the \a qmlClassNode. */ -QList<Section> CppCodeMarker::qmlSections(const QmlClassNode* qmlClassNode, SynopsisStyle style) +QList<Section> CppCodeMarker::qmlSections(QmlClassNode* qmlClassNode, SynopsisStyle style) { QList<Section> sections; if (qmlClassNode) { @@ -1109,7 +1109,7 @@ QList<Section> CppCodeMarker::qmlSections(const QmlClassNode* qmlClassNode, Syno "method", "methods"); - const QmlClassNode* qcn = qmlClassNode; + QmlClassNode* qcn = qmlClassNode; while (qcn != 0) { NodeList::ConstIterator c = qcn->childNodes().constBegin(); while (c != qcn->childNodes().constEnd()) { @@ -1148,7 +1148,7 @@ QList<Section> CppCodeMarker::qmlSections(const QmlClassNode* qmlClassNode, Syno ++c; } if (qcn->qmlBaseNode() != 0) { - qcn = static_cast<const QmlClassNode*>(qcn->qmlBaseNode()); + qcn = static_cast<QmlClassNode*>(qcn->qmlBaseNode()); if (!qcn->isAbstract()) qcn = 0; } @@ -1174,7 +1174,7 @@ QList<Section> CppCodeMarker::qmlSections(const QmlClassNode* qmlClassNode, Syno FastSection qmlmethods(qmlClassNode,"Method Documentation","qmlmeth","member","members"); FastSection qmlattachedmethods(qmlClassNode,"Attached Method Documentation","qmlattmeth", "member","members"); - const QmlClassNode* qcn = qmlClassNode; + QmlClassNode* qcn = qmlClassNode; while (qcn != 0) { NodeList::ConstIterator c = qcn->childNodes().constBegin(); while (c != qcn->childNodes().constEnd()) { @@ -1212,7 +1212,7 @@ QList<Section> CppCodeMarker::qmlSections(const QmlClassNode* qmlClassNode, Syno ++c; } if (qcn->qmlBaseNode() != 0) { - qcn = static_cast<const QmlClassNode*>(qcn->qmlBaseNode()); + qcn = static_cast<QmlClassNode*>(qcn->qmlBaseNode()); if (!qcn->isAbstract()) qcn = 0; } @@ -1234,7 +1234,7 @@ QList<Section> CppCodeMarker::qmlSections(const QmlClassNode* qmlClassNode, Syno */ ClassMap* classMap = 0; FastSection all(qmlClassNode,QString(),QString(),"member","members"); - const QmlClassNode* current = qmlClassNode; + QmlClassNode* current = qmlClassNode; while (current != 0) { /* If the QML type is abstract, do not create |