From 0b7c4520cdf7b0cdc2dbff938e18475265224c20 Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Wed, 25 Mar 2020 12:55:21 +0100 Subject: [PATCH] AutoTest: Fix regression in frameworks order Latest refactorings resulted in possible different orders for the tree model as well as for the frameworks inside the project wide settings. Fix this by sorting explicitly and iterating over the list. Change-Id: I9b673770b03732820f0ea4f902f3586abd07d51a Reviewed-by: hjk --- src/plugins/autotest/projectsettingswidget.cpp | 12 +++++++----- src/plugins/autotest/testtreemodel.cpp | 1 + 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/plugins/autotest/projectsettingswidget.cpp b/src/plugins/autotest/projectsettingswidget.cpp index dd3a80ee89d..f5021e5c3ca 100644 --- a/src/plugins/autotest/projectsettingswidget.cpp +++ b/src/plugins/autotest/projectsettingswidget.cpp @@ -107,12 +107,14 @@ ProjectTestSettingsWidget::ProjectTestSettingsWidget(ProjectExplorer::Project *p void ProjectTestSettingsWidget::populateFrameworks(const QMap &frameworks) { - auto end = frameworks.cend(); - for (auto it = frameworks.cbegin(); it != end; ++it) { - auto item = new QTreeWidgetItem(m_activeFrameworks, QStringList(QLatin1String(it.key()->name()))); + TestFrameworks sortedFrameworks = frameworks.keys(); + Utils::sort(sortedFrameworks, &ITestFramework::priority); + + for (ITestFramework *framework : sortedFrameworks) { + auto item = new QTreeWidgetItem(m_activeFrameworks, QStringList(QLatin1String(framework->name()))); item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsUserCheckable); - item->setCheckState(0, it.value() ? Qt::Checked : Qt::Unchecked); - item->setData(0, FrameworkIdRole, it.key()->id().toSetting()); + item->setCheckState(0, frameworks.value(framework) ? Qt::Checked : Qt::Unchecked); + item->setData(0, FrameworkIdRole, framework->id().toSetting()); } } diff --git a/src/plugins/autotest/testtreemodel.cpp b/src/plugins/autotest/testtreemodel.cpp index 2b792774933..d610a92a295 100644 --- a/src/plugins/autotest/testtreemodel.cpp +++ b/src/plugins/autotest/testtreemodel.cpp @@ -222,6 +222,7 @@ void TestTreeModel::synchronizeTestFrameworks() sorted = Utils::filtered(active.keys(), [active](ITestFramework *framework) { return active.value(framework); }); + Utils::sort(sorted, &ITestFramework::priority); } // pre-check to avoid further processing when frameworks are unchanged