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>
bb10
Topi Reinio 2015-09-30 15:40:02 +02:00 committed by Topi Reiniö
parent bbb2c95d7a
commit 8058ab5758
1 changed files with 5 additions and 1 deletions

View File

@ -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;
}
}