summaryrefslogtreecommitdiffstats
path: root/src/tools/qdoc
diff options
context:
space:
mode:
authorMartin Smith <martin.smith@digia.com>2013-10-22 12:02:36 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-11-01 14:52:47 +0100
commite9fe369321939a6c1cb0ba822272875481dc038e (patch)
treea109079295863ee7a596bffd2b721ccc7eb59853 /src/tools/qdoc
parent6893a0d656f8e08d93b44794e78c9b980a2937d5 (diff)
qdoc: Corrected error in QDocDatabase::findQmlType()
It was still using the QML module version number as part of the search key. e.g. it tried to find the type node for QtQuick.Controls::Button using QtQuick.Controls2.Button, but now it searches without the 2. Task-number: QTBUG-34173 Change-Id: Ibc8b6d9ef4ceebb20c1be00ec3bc9190c51bcdf3 Reviewed-by: Topi Reiniƶ <topi.reinio@digia.com> Reviewed-by: Jerome Pasion <jerome.pasion@digia.com> Reviewed-by: Nico Vertriest <nico.vertriest@digia.com>
Diffstat (limited to 'src/tools/qdoc')
-rw-r--r--src/tools/qdoc/qdocdatabase.cpp35
-rw-r--r--src/tools/qdoc/qmlvisitor.cpp36
-rw-r--r--src/tools/qdoc/qmlvisitor.h4
3 files changed, 16 insertions, 59 deletions
diff --git a/src/tools/qdoc/qdocdatabase.cpp b/src/tools/qdoc/qdocdatabase.cpp
index e371d448c6..f2ecb02a2f 100644
--- a/src/tools/qdoc/qdocdatabase.cpp
+++ b/src/tools/qdoc/qdocdatabase.cpp
@@ -357,23 +357,10 @@ QmlClassNode* QDocDatabase::findQmlType(const ImportRec& import, const QString&
else
qmName = import.importUri_;
for (int i=0; i<dotSplit.size(); ++i) {
- QString qmid = qmName + import.version_;
- QString qualifiedName = qmid + "::" + dotSplit[i];
+ QString qualifiedName = qmName + "::" + dotSplit[i];
QmlClassNode* qcn = qmlTypeMap_.value(qualifiedName);
- if (qcn) {
+ if (qcn)
return qcn;
- }
- if (import.version_.size() > 1) {
- int dot = import.version_.lastIndexOf(QChar('.'));
- if (dot > 0) {
- qmid = import.name_ + import.version_.left(dot);
- qualifiedName = qmid + "::" + dotSplit[i];
- qcn = qmlTypeMap_.value(qualifiedName);
- if (qcn) {
- return qcn;
- }
- }
- }
}
}
return 0;
@@ -1000,24 +987,6 @@ void QDocDatabase::resolveQmlInheritance(InnerNode* root)
}
}
-#if 0
-void QDocDatabase::resolveQmlInheritance(InnerNode* root)
-{
- // Dop we need recursion?
- foreach (Node* child, root->childNodes()) {
- if (child->type() == Node::Document && child->subType() == Node::QmlClass) {
- QmlClassNode* qcn = static_cast<QmlClassNode*>(child);
- if ((qcn->qmlBaseNode() == 0) && !qcn->qmlBaseName().isEmpty()) {
- QmlClassNode* bqcn = findQmlType(QString(), qcn->qmlBaseName());
- if (bqcn) {
- qcn->setQmlBaseNode(bqcn);
- }
- }
- }
- }
-}
-#endif
-
/*!
*/
void QDocDatabase::resolveTargets(InnerNode* root)
diff --git a/src/tools/qdoc/qmlvisitor.cpp b/src/tools/qdoc/qmlvisitor.cpp
index fb90dcd59a..ec1ef41256 100644
--- a/src/tools/qdoc/qmlvisitor.cpp
+++ b/src/tools/qdoc/qmlvisitor.cpp
@@ -464,6 +464,7 @@ bool QmlDocVisitor::visit(QQmlJS::AST::UiObjectDefinition *definition)
QmlClassNode *component = new QmlClassNode(current, name);
component->setTitle(name);
component->setImportList(importList);
+ importList.clear();
if (applyDocumentation(definition->firstSourceLocation(), component)) {
QmlClassNode::addInheritedBy(type, component);
component->setQmlBaseName(type);
@@ -488,34 +489,21 @@ void QmlDocVisitor::endVisit(QQmlJS::AST::UiObjectDefinition *definition)
lastEndOffset = definition->lastSourceLocation().end();
}
-/*!
- Note that the imports list can be traversed by iteration to obtain
- all the imports in the document at once, having found just one:
-
- *it = imports; it; it = it->next
-
- */
-bool QmlDocVisitor::visit(QQmlJS::AST::UiImportList *imports)
+bool QmlDocVisitor::visit(QQmlJS::AST::UiImport *import)
{
- while (imports != 0) {
- QQmlJS::AST::UiImport* imp = imports->import;
-
- QString name = document.mid(imp->fileNameToken.offset, imp->fileNameToken.length);
- if (name[0] == '\"')
- name = name.mid(1, name.length()-2);
- QString version = document.mid(imp->versionToken.offset, imp->versionToken.length);
- QString importId = document.mid(imp->importIdToken.offset, imp->importIdToken.length);
- QString importUri = getFullyQualifiedId(imp->importUri);
- importList.append(ImportRec(name, version, importId, importUri));
- imports = imports->next;
- }
+ QString name = document.mid(import->fileNameToken.offset, import->fileNameToken.length);
+ if (name[0] == '\"')
+ name = name.mid(1, name.length()-2);
+ QString version = document.mid(import->versionToken.offset, import->versionToken.length);
+ QString importId = document.mid(import->importIdToken.offset, import->importIdToken.length);
+ QString importUri = getFullyQualifiedId(import->importUri);
+ QString reconstructed = importUri + QString(" ") + version;
+ importList.append(ImportRec(name, version, importId, importUri));
+
return true;
}
-/*!
- End the visit of the imports list.
- */
-void QmlDocVisitor::endVisit(QQmlJS::AST::UiImportList *definition)
+void QmlDocVisitor::endVisit(QQmlJS::AST::UiImport *definition)
{
lastEndOffset = definition->lastSourceLocation().end();
}
diff --git a/src/tools/qdoc/qmlvisitor.h b/src/tools/qdoc/qmlvisitor.h
index cdb7ae7391..feeeb13497 100644
--- a/src/tools/qdoc/qmlvisitor.h
+++ b/src/tools/qdoc/qmlvisitor.h
@@ -75,8 +75,8 @@ public:
const QSet<QString> &topics);
virtual ~QmlDocVisitor();
- bool visit(QQmlJS::AST::UiImportList *imports);
- void endVisit(QQmlJS::AST::UiImportList *definition);
+ bool visit(QQmlJS::AST::UiImport *import);
+ void endVisit(QQmlJS::AST::UiImport *definition);
bool visit(QQmlJS::AST::UiObjectDefinition *definition);
void endVisit(QQmlJS::AST::UiObjectDefinition *definition);