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 <hjk@qt.io>
This commit is contained in:
Christian Stenger
2020-03-25 12:55:21 +01:00
parent 05a0b33146
commit 0b7c4520cd
2 changed files with 8 additions and 5 deletions

View File

@@ -107,12 +107,14 @@ ProjectTestSettingsWidget::ProjectTestSettingsWidget(ProjectExplorer::Project *p
void ProjectTestSettingsWidget::populateFrameworks(const QMap<ITestFramework *, bool> &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());
}
}

View File

@@ -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