summaryrefslogtreecommitdiffstats
path: root/src/tools
diff options
context:
space:
mode:
authorTopi Reinio <topi.reinio@digia.com>2015-09-30 15:40:02 +0200
committerTopi Reiniƶ <topi.reinio@digia.com>2015-10-02 10:13:54 +0000
commit8058ab57581dcae569188c2c3dbc8667c34dd106 (patch)
treee0318d5e2317d891ef4ecc0990a58bf17bebb452 /src/tools
parentbbb2c95d7ad329a05a8f74d80ac69b3ca5851db1 (diff)
qdoc: Resolve namespaces declared in index trees
QDoc never called resolveNamespaces() unless running in single-exec mode. This commit fixes that, and causes public namespaces documented in other modules to be treated as 'seen', i.e, as if they were declared locally. Change-Id: Id1dda7aaea6c9bd38bbeb5992121575a1876cbf7 Task-number: QTBUG-48523 Reviewed-by: Martin Smith <martin.smith@digia.com>
Diffstat (limited to 'src/tools')
-rw-r--r--src/tools/qdoc/qdocdatabase.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/tools/qdoc/qdocdatabase.cpp b/src/tools/qdoc/qdocdatabase.cpp
index 6312deacbf..acd11ff20b 100644
--- a/src/tools/qdoc/qdocdatabase.cpp
+++ b/src/tools/qdoc/qdocdatabase.cpp
@@ -1296,6 +1296,8 @@ void QDocDatabase::resolveIssues() {
QDocIndexFiles::qdocIndexFiles()->resolveRelates();
QDocIndexFiles::destroyQDocIndexFiles();
}
+ if (Generator::generating())
+ resolveNamespaces();
}
void QDocDatabase::resolveStuff()
@@ -1326,8 +1328,10 @@ void QDocDatabase::resolveNamespaces()
int count = nmm_.remove(s);
if (count > 1) {
foreach (Node* n, nodes) {
- if (n->isNamespace() && n->wasSeen()) {
+ // Treat public namespaces from index trees as 'seen'
+ if (n->isNamespace() && (n->wasSeen() || (n->isIndexNode() && n->access() == Node::Public))) {
ns = static_cast<NamespaceNode*>(n);
+ ns->markSeen();
break;
}
}