summaryrefslogtreecommitdiff
path: root/src/tools/qdoc/qdocdatabase.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools/qdoc/qdocdatabase.cpp')
-rw-r--r--src/tools/qdoc/qdocdatabase.cpp31
1 files changed, 18 insertions, 13 deletions
diff --git a/src/tools/qdoc/qdocdatabase.cpp b/src/tools/qdoc/qdocdatabase.cpp
index 256bc62dd2..191da5caf8 100644
--- a/src/tools/qdoc/qdocdatabase.cpp
+++ b/src/tools/qdoc/qdocdatabase.cpp
@@ -291,29 +291,29 @@ DocNode* QDocDatabase::addToModule(const QString& name, Node* node)
*/
DocNode* QDocDatabase::addToQmlModule(const QString& name, Node* node)
{
- QString longQmid, shortQmid;
+ QStringList qmid;
QStringList dotSplit;
QStringList blankSplit = name.split(QLatin1Char(' '));
+ qmid.append(blankSplit[0]);
if (blankSplit.size() > 1) {
- longQmid = blankSplit[0] + blankSplit[1];
+ qmid.append(blankSplit[0] + blankSplit[1]);
dotSplit = blankSplit[1].split(QLatin1Char('.'));
- shortQmid = blankSplit[0] + dotSplit[0];
+ qmid.append(blankSplit[0] + dotSplit[0]);
}
DocNode* dn = findQmlModule(name);
dn->addMember(node);
node->setQmlModuleInfo(name);
if (node->subType() == Node::QmlClass) {
QmlClassNode* n = static_cast<QmlClassNode*>(node);
- QString key = longQmid + "::" + node->name();
- for (int i=0; i<2; ++i) {
+ for (int i=0; i<qmid.size(); ++i) {
+ QString key = qmid[i] + "::" + node->name();
if (!qmlTypeMap_.contains(key))
qmlTypeMap_.insert(key,n);
if (!masterMap_.contains(key))
masterMap_.insert(key,node);
- if (!masterMap_.contains(node->name(),node))
- masterMap_.insert(node->name(),node);
- key = shortQmid + "::" + node->name();
}
+ if (!masterMap_.contains(node->name(),node))
+ masterMap_.insert(node->name(),node);
}
return dn;
}
@@ -886,11 +886,16 @@ void QDocDatabase::resolveQmlInheritance(InnerNode* root)
QmlClassNode* qcn = static_cast<QmlClassNode*>(child);
if ((qcn->qmlBaseNode() == 0) && !qcn->qmlBaseName().isEmpty()) {
QmlClassNode* bqcn = 0;
- const ImportList& imports = qcn->importList();
- for (int i=0; i<imports.size(); ++i) {
- bqcn = findQmlType(imports[i], qcn->qmlBaseName());
- if (bqcn)
- break;
+ if (qcn->qmlBaseName().contains("::")) {
+ bqcn = qmlTypeMap_.value(qcn->qmlBaseName());
+ }
+ else {
+ const ImportList& imports = qcn->importList();
+ for (int i=0; i<imports.size(); ++i) {
+ bqcn = findQmlType(imports[i], qcn->qmlBaseName());
+ if (bqcn)
+ break;
+ }
}
if (bqcn == 0) {
bqcn = findQmlType(QString(), qcn->qmlBaseName());