forked from qt-creator/qt-creator
AutoTest: Introduce active state for test frameworks
Change-Id: I0fddce91a239c0a51352a25e34a221fd8880b733 Reviewed-by: David Schulz <david.schulz@theqtcompany.com> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
This commit is contained in:
@@ -24,6 +24,7 @@
|
||||
****************************************************************************/
|
||||
|
||||
#include "autotestconstants.h"
|
||||
#include "testframeworkmanager.h"
|
||||
#include "testsettingspage.h"
|
||||
#include "testsettings.h"
|
||||
#include "testtreemodel.h"
|
||||
@@ -79,6 +80,7 @@ void TestSettingsWidget::setSettings(const TestSettings &settings)
|
||||
default:
|
||||
m_ui.walltimeRB->setChecked(true);
|
||||
}
|
||||
populateFrameworksListWidget(settings.frameworks);
|
||||
}
|
||||
|
||||
TestSettings TestSettingsWidget::settings() const
|
||||
@@ -107,9 +109,38 @@ TestSettings TestSettingsWidget::settings() const
|
||||
else if (m_ui.perfRB->isChecked())
|
||||
result.metrics = MetricsType::Perf;
|
||||
|
||||
result.frameworks = frameworks();
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
void TestSettingsWidget::populateFrameworksListWidget(const QHash<Core::Id, bool> &frameworks)
|
||||
{
|
||||
TestFrameworkManager *frameworkManager = TestFrameworkManager::instance();
|
||||
const QList<Core::Id> ®istered = frameworkManager->sortedRegisteredFrameworkIds();
|
||||
m_ui.frameworkListWidget->clear();
|
||||
for (const Core::Id &id : registered) {
|
||||
QListWidgetItem *item = new QListWidgetItem(frameworkManager->frameworkNameForId(id),
|
||||
m_ui.frameworkListWidget);
|
||||
item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsUserCheckable);
|
||||
item->setCheckState(frameworks.value(id) ? Qt::Checked : Qt::Unchecked);
|
||||
item->setData(Qt::UserRole, id.toSetting());
|
||||
}
|
||||
}
|
||||
|
||||
QHash<Core::Id, bool> TestSettingsWidget::frameworks() const
|
||||
{
|
||||
const int itemCount = m_ui.frameworkListWidget->count();
|
||||
QHash<Core::Id, bool> frameworks;
|
||||
for (int row = 0; row < itemCount; ++row) {
|
||||
if (QListWidgetItem *item = m_ui.frameworkListWidget->item(row)) {
|
||||
frameworks.insert(Core::Id::fromSetting(item->data(Qt::UserRole)),
|
||||
item->checkState() == Qt::Checked);
|
||||
}
|
||||
}
|
||||
return frameworks;
|
||||
}
|
||||
|
||||
TestSettingsPage::TestSettingsPage(const QSharedPointer<TestSettings> &settings)
|
||||
: m_settings(settings), m_widget(0)
|
||||
{
|
||||
@@ -139,12 +170,16 @@ void TestSettingsPage::apply()
|
||||
return;
|
||||
const TestSettings newSettings = m_widget->settings();
|
||||
if (newSettings != *m_settings) {
|
||||
bool frameworkSyncNecessary = newSettings.frameworks != m_settings->frameworks;
|
||||
*m_settings = newSettings;
|
||||
m_settings->toSettings(Core::ICore::settings());
|
||||
if (m_settings->alwaysParse)
|
||||
TestTreeModel::instance()->enableParsingFromSettings();
|
||||
else
|
||||
TestTreeModel::instance()->disableParsingFromSettings();
|
||||
TestFrameworkManager::instance()->activateFrameworksFromSettings(m_settings);
|
||||
if (frameworkSyncNecessary)
|
||||
TestTreeModel::instance()->syncTestFrameworks();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user