From 6ede3f1a28482517e39af7f079a9cc6ca0091562 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kai=20K=C3=B6hne?= Date: Mon, 22 Aug 2022 14:59:48 +0200 Subject: Make order of sections in .qhp file deterministic (take 2) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Reviewed-by: Topi Reiniƶ (cherry picked from commit 8241d7482cacf851e33b5703a49cabf4e61038d4) Reviewed-by: Qt Cherry-pick Bot --- src/qdoc/helpprojectwriter.cpp | 10 ++++++---- 1 file 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(node); // Ensure that we don't visit nodes more than once. - QSet 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(child)->isOverload()) continue; - childSet << child; + if (!childSet.contains(child)) + childSet << child; } } for (const auto *child : qAsConst(childSet)) -- cgit v1.2.1