From 8058ab57581dcae569188c2c3dbc8667c34dd106 Mon Sep 17 00:00:00 2001 From: Topi Reinio Date: Wed, 30 Sep 2015 15:40:02 +0200 Subject: [PATCH] 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 --- src/tools/qdoc/qdocdatabase.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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(n); + ns->markSeen(); break; } }