aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/qtsupport/exampleslistmodel.cpp
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@qt.io>2023-07-21 09:21:20 +0200
committerEike Ziller <eike.ziller@qt.io>2023-07-24 11:02:18 +0000
commit08bbe885b49d6782178f0bc7b19c1bb162633666 (patch)
treefc3d4314a2e24dd02fcc838f37bd9f8090b5f3c5 /src/plugins/qtsupport/exampleslistmodel.cpp
parent5af88f570211f3e8b992371308b6d29acfaf6352 (diff)
Examples: Support manifest-defined category order
Reads a separate sorted list of categories from the manifest files. The first of these lists that is found in the manifest files is used. For example the Qt documentation defines the list in the manifest file for qtdoc. Change-Id: I57c2779862a5ebfc27707b53d43d4ed9e7e8c5f9 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Diffstat (limited to 'src/plugins/qtsupport/exampleslistmodel.cpp')
-rw-r--r--src/plugins/qtsupport/exampleslistmodel.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/plugins/qtsupport/exampleslistmodel.cpp b/src/plugins/qtsupport/exampleslistmodel.cpp
index a35015d6aa..6835ec6000 100644
--- a/src/plugins/qtsupport/exampleslistmodel.cpp
+++ b/src/plugins/qtsupport/exampleslistmodel.cpp
@@ -355,13 +355,14 @@ void ExamplesViewController::updateExamples()
&qtVersion);
m_view->clear();
+ QStringList categoryOrder;
QList<ExampleItem *> items;
for (const QString &exampleSource : sources) {
const auto manifest = FilePath::fromUserInput(exampleSource);
qCDebug(log) << QString::fromLatin1("Reading file \"%1\"...")
.arg(manifest.absoluteFilePath().toUserOutput());
- const expected_str<QList<ExampleItem *>> result
+ const expected_str<ParsedExamples> result
= parseExamples(manifest,
FilePath::fromUserInput(examplesInstallPath),
FilePath::fromUserInput(demosInstallPath),
@@ -371,7 +372,9 @@ void ExamplesViewController::updateExamples()
<< result.error();
continue;
}
- items += filtered(*result, isValidExampleOrDemo);
+ items += filtered(result->items, isValidExampleOrDemo);
+ if (categoryOrder.isEmpty())
+ categoryOrder = result->categoryOrder;
}
if (m_isExamples) {
@@ -386,7 +389,8 @@ void ExamplesViewController::updateExamples()
}
const bool sortIntoCategories = !m_isExamples || qtVersion >= *minQtVersionForCategories;
- const QStringList order = m_isExamples ? *defaultOrder : QStringList();
+ const QStringList order = categoryOrder.isEmpty() && m_isExamples ? *defaultOrder
+ : categoryOrder;
const QList<std::pair<Section, QList<ExampleItem *>>> sections
= getCategories(items, sortIntoCategories, order, m_isExamples);
for (int i = 0; i < sections.size(); ++i) {