summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKai Köhne <kai.koehne@qt.io>2022-08-22 14:59:48 +0200
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2022-08-29 12:51:05 +0000
commit6ede3f1a28482517e39af7f079a9cc6ca0091562 (patch)
tree7e9d91f0b589fdadfeeb9ec98df204be98275256
parente24042be0fd018e40b8746d8d8f311fab034df3e (diff)
Make order of sections in .qhp file deterministic (take 2)
This amends 9aa6307ccee1. It doesn't help to sort the input list, if the filtered result is then stored in a QSet. Fixes: QTBUG-105987 Change-Id: Id187b8ce974b4d9f4bffc3431ecb96077af9bb8c Reviewed-by: Luca Di Sera <luca.disera@qt.io> Reviewed-by: Topi Reiniö <topi.reinio@qt.io> (cherry picked from commit 8241d7482cacf851e33b5703a49cabf4e61038d4) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r--src/qdoc/helpprojectwriter.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/qdoc/helpprojectwriter.cpp b/src/qdoc/helpprojectwriter.cpp
index 7f0a70f64..b58ee5292 100644
--- a/src/qdoc/helpprojectwriter.cpp
+++ b/src/qdoc/helpprojectwriter.cpp
@@ -454,23 +454,25 @@ void HelpProjectWriter::generateSections(HelpProject &project, QXmlStreamWriter
const auto *aggregate = static_cast<const Aggregate *>(node);
// Ensure that we don't visit nodes more than once.
- QSet<const Node *> childSet;
+ NodeList childSet;
NodeList children = aggregate->childNodes();
std::sort(children.begin(), children.end(), Node::nodeNameLessThan);
- for (const auto *child : children) {
+ for (auto *child : children) {
// Skip related non-members adopted by some other aggregate
if (child->parent() != aggregate)
continue;
if (child->isIndexNode() || child->isPrivate())
continue;
if (child->isTextPageNode()) {
- childSet << child;
+ if (!childSet.contains(child))
+ childSet << child;
} else {
// Store member status of children
project.m_memberStatus[node].insert(child->status());
if (child->isFunction() && static_cast<const FunctionNode *>(child)->isOverload())
continue;
- childSet << child;
+ if (!childSet.contains(child))
+ childSet << child;
}
}
for (const auto *child : qAsConst(childSet))