aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/autotest
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2020-01-10 10:33:27 +0100
committerhjk <hjk@qt.io>2020-01-15 10:52:16 +0000
commitd86fba3ee1904446442881e77515d019e8618f73 (patch)
tree1c8dfe48ad69fa46a283f130e722655cf0e8a5b7 /src/plugins/autotest
parent7c0678d9a45704ddae76604d41ec4eac5fbac4f5 (diff)
Autotest: use new settings page convenience for Settings
Change-Id: I2e51b176b0874dc63370a0ddbd07c04b976da747 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Diffstat (limited to 'src/plugins/autotest')
-rw-r--r--src/plugins/autotest/boost/boosttestsettingspage.cpp86
-rw-r--r--src/plugins/autotest/boost/boosttestsettingspage.h29
-rw-r--r--src/plugins/autotest/gtest/gtestsettingspage.cpp106
-rw-r--r--src/plugins/autotest/gtest/gtestsettingspage.h31
-rw-r--r--src/plugins/autotest/qtest/qttestsettingspage.cpp79
-rw-r--r--src/plugins/autotest/qtest/qttestsettingspage.h30
6 files changed, 136 insertions, 225 deletions
diff --git a/src/plugins/autotest/boost/boosttestsettingspage.cpp b/src/plugins/autotest/boost/boosttestsettingspage.cpp
index 99d13a51da2..b6a1c5c0ccf 100644
--- a/src/plugins/autotest/boost/boosttestsettingspage.cpp
+++ b/src/plugins/autotest/boost/boosttestsettingspage.cpp
@@ -27,43 +27,59 @@
#include "boosttestconstants.h"
#include "boosttestsettings.h"
#include "../testframeworkmanager.h"
+#include "ui_boosttestsettingspage.h"
#include <coreplugin/icore.h>
namespace Autotest {
namespace Internal {
-BoostTestSettingsWidget::BoostTestSettingsWidget(QWidget *parent) :
- QWidget(parent)
+class BoostTestSettingsWidget : public Core::IOptionsPageWidget
+{
+ QT_DECLARE_DEPRECATED_TR_FUNCTIONS(Autotest::Internal::BoostTestSettingsWidget)
+
+public:
+ explicit BoostTestSettingsWidget(QSharedPointer<BoostTestSettings> settings);
+
+ void apply() final;
+ void finish() final {}
+
+ void setSettings(const BoostTestSettings &settings);
+ BoostTestSettings settings() const;
+
+private:
+ void fillComboBoxes();
+ Ui::BoostSettingsPage m_ui;
+ QSharedPointer<BoostTestSettings> m_settings;
+};
+
+BoostTestSettingsWidget::BoostTestSettingsWidget(QSharedPointer<BoostTestSettings> settings)
+ : m_settings(settings)
{
m_ui.setupUi(this);
fillComboBoxes();
connect(m_ui.randomizeCB, &QCheckBox::toggled, m_ui.seedSB, &QSpinBox::setEnabled);
-}
-void BoostTestSettingsWidget::setSettings(const BoostTestSettings &settings)
-{
- m_ui.logFormatCB->setCurrentIndex(int(settings.logLevel));
- m_ui.reportLevelCB->setCurrentIndex(int(settings.reportLevel));
- m_ui.randomizeCB->setChecked(settings.randomize);
- m_ui.seedSB->setValue(settings.seed);
- m_ui.systemErrorCB->setChecked(settings.systemErrors);
- m_ui.fpExceptions->setChecked(settings.fpExceptions);
- m_ui.memoryLeakCB->setChecked(settings.memLeaks);
+ m_ui.logFormatCB->setCurrentIndex(int(m_settings->logLevel));
+ m_ui.reportLevelCB->setCurrentIndex(int(m_settings->reportLevel));
+ m_ui.randomizeCB->setChecked(m_settings->randomize);
+ m_ui.seedSB->setValue(m_settings->seed);
+ m_ui.systemErrorCB->setChecked(m_settings->systemErrors);
+ m_ui.fpExceptions->setChecked(m_settings->fpExceptions);
+ m_ui.memoryLeakCB->setChecked(m_settings->memLeaks);
}
-BoostTestSettings BoostTestSettingsWidget::settings() const
+void BoostTestSettingsWidget::apply()
{
- BoostTestSettings result;
-
- result.logLevel = LogLevel(m_ui.logFormatCB->currentData().toInt());
- result.reportLevel = ReportLevel(m_ui.reportLevelCB->currentData().toInt());
- result.randomize = m_ui.randomizeCB->isChecked();
- result.seed = m_ui.seedSB->value();
- result.systemErrors = m_ui.systemErrorCB->isChecked();
- result.fpExceptions = m_ui.fpExceptions->isChecked();
- result.memLeaks = m_ui.memoryLeakCB->isChecked();
- return result;
+ m_settings->logLevel = LogLevel(m_ui.logFormatCB->currentData().toInt());
+ m_settings->reportLevel = ReportLevel(m_ui.reportLevelCB->currentData().toInt());
+ m_settings->randomize = m_ui.randomizeCB->isChecked();
+ m_settings->seed = m_ui.seedSB->value();
+ m_settings->systemErrors = m_ui.systemErrorCB->isChecked();
+ m_settings->fpExceptions = m_ui.fpExceptions->isChecked();
+ m_settings->memLeaks = m_ui.memoryLeakCB->isChecked();
+
+ m_settings->toSettings(Core::ICore::settings());
}
void BoostTestSettingsWidget::fillComboBoxes()
@@ -88,29 +104,13 @@ void BoostTestSettingsWidget::fillComboBoxes()
BoostTestSettingsPage::BoostTestSettingsPage(QSharedPointer<IFrameworkSettings> settings,
const ITestFramework *framework)
- : ITestSettingsPage(framework),
- m_settings(qSharedPointerCast<BoostTestSettings>(settings))
+ : ITestSettingsPage(framework)
{
setDisplayName(QCoreApplication::translate("BoostTestFramework",
BoostTest::Constants::FRAMEWORK_SETTINGS_CATEGORY));
-}
-
-QWidget *BoostTestSettingsPage::widget()
-{
- if (!m_widget) {
- m_widget = new BoostTestSettingsWidget;
- m_widget->setSettings(*m_settings);
- }
- return m_widget;
-}
-
-void BoostTestSettingsPage::apply()
-{
- if (!m_widget) // page was not shown at all
- return;
-
- *m_settings = m_widget->settings();
- m_settings->toSettings(Core::ICore::settings());
+ setWidgetCreator([settings] {
+ return new BoostTestSettingsWidget(qSharedPointerCast<BoostTestSettings>(settings));
+ });
}
} // Internal
diff --git a/src/plugins/autotest/boost/boosttestsettingspage.h b/src/plugins/autotest/boost/boosttestsettingspage.h
index 609bcf0b71b..3b9e4e3ec89 100644
--- a/src/plugins/autotest/boost/boosttestsettingspage.h
+++ b/src/plugins/autotest/boost/boosttestsettingspage.h
@@ -25,46 +25,19 @@
#pragma once
-#include "ui_boosttestsettingspage.h"
#include "../itestsettingspage.h"
-#include <QPointer>
-
namespace Autotest {
class IFrameworkSettings;
namespace Internal {
-class BoostTestSettings;
-
-class BoostTestSettingsWidget : public QWidget
-{
- Q_OBJECT
-
-public:
- explicit BoostTestSettingsWidget(QWidget *parent = nullptr);
-
- void setSettings(const BoostTestSettings &settings);
- BoostTestSettings settings() const;
-private:
- void fillComboBoxes();
- Ui::BoostSettingsPage m_ui;
-};
-
-class BoostTestSettingsPage : public ITestSettingsPage
+class BoostTestSettingsPage final : public ITestSettingsPage
{
- Q_OBJECT
public:
BoostTestSettingsPage(QSharedPointer<IFrameworkSettings> settings,
const ITestFramework *framework);
-
- QWidget *widget() override;
- void apply() override;
-
-private:
- QSharedPointer<BoostTestSettings> m_settings;
- QPointer<BoostTestSettingsWidget> m_widget;
};
} // Internal
diff --git a/src/plugins/autotest/gtest/gtestsettingspage.cpp b/src/plugins/autotest/gtest/gtestsettingspage.cpp
index f1d4d2a8271..af57736c542 100644
--- a/src/plugins/autotest/gtest/gtestsettingspage.cpp
+++ b/src/plugins/autotest/gtest/gtestsettingspage.cpp
@@ -30,6 +30,7 @@
#include "../autotestconstants.h"
#include "../testframeworkmanager.h"
+#include "ui_gtestsettingspage.h"
#include <coreplugin/icore.h>
namespace Autotest {
@@ -40,7 +41,24 @@ static bool validateFilter(Utils::FancyLineEdit *edit, QString * /*error*/)
return edit && GTestUtils::isValidGTestFilter(edit->text());
}
-GTestSettingsWidget::GTestSettingsWidget()
+class GTestSettingsWidget final : public Core::IOptionsPageWidget
+{
+ Q_DECLARE_TR_FUNCTIONS(Autotest::Internal::GTestSettingsWidget)
+
+public:
+ explicit GTestSettingsWidget(const QSharedPointer<GTestSettings> &settings);
+
+private:
+ void apply() final;
+ void finish() final {}
+
+ Ui::GTestSettingsPage m_ui;
+ QString m_currentGTestFilter;
+ QSharedPointer<GTestSettings> m_settings;
+};
+
+GTestSettingsWidget::GTestSettingsWidget(const QSharedPointer<GTestSettings> &settings)
+ : m_settings(settings)
{
m_ui.setupUi(this);
m_ui.filterLineEdit->setValidationFunction(&validateFilter);
@@ -52,67 +70,38 @@ GTestSettingsWidget::GTestSettingsWidget()
});
connect(m_ui.repeatGTestsCB, &QCheckBox::toggled, m_ui.repetitionSpin, &QSpinBox::setEnabled);
connect(m_ui.shuffleGTestsCB, &QCheckBox::toggled, m_ui.seedSpin, &QSpinBox::setEnabled);
-}
-void GTestSettingsWidget::setSettings(const GTestSettings &settings)
-{
- m_ui.runDisabledGTestsCB->setChecked(settings.runDisabled);
- m_ui.repeatGTestsCB->setChecked(settings.repeat);
- m_ui.shuffleGTestsCB->setChecked(settings.shuffle);
- m_ui.repetitionSpin->setValue(settings.iterations);
- m_ui.seedSpin->setValue(settings.seed);
- m_ui.breakOnFailureCB->setChecked(settings.breakOnFailure);
- m_ui.throwOnFailureCB->setChecked(settings.throwOnFailure);
- m_ui.groupModeCombo->setCurrentIndex(settings.groupMode - 1); // there's None for internal use
- m_ui.filterLineEdit->setText(settings.gtestFilter);
- m_currentGTestFilter = settings.gtestFilter; // store it temporarily (if edit is invalid)
+ m_ui.runDisabledGTestsCB->setChecked(m_settings->runDisabled);
+ m_ui.repeatGTestsCB->setChecked(m_settings->repeat);
+ m_ui.shuffleGTestsCB->setChecked(m_settings->shuffle);
+ m_ui.repetitionSpin->setValue(m_settings->iterations);
+ m_ui.seedSpin->setValue(m_settings->seed);
+ m_ui.breakOnFailureCB->setChecked(m_settings->breakOnFailure);
+ m_ui.throwOnFailureCB->setChecked(m_settings->throwOnFailure);
+ m_ui.groupModeCombo->setCurrentIndex(m_settings->groupMode - 1); // there's None for internal use
+ m_ui.filterLineEdit->setText(m_settings->gtestFilter);
+ m_currentGTestFilter = m_settings->gtestFilter; // store it temporarily (if edit is invalid)
}
-GTestSettings GTestSettingsWidget::settings() const
+void GTestSettingsWidget::apply()
{
- GTestSettings result;
- result.runDisabled = m_ui.runDisabledGTestsCB->isChecked();
- result.repeat = m_ui.repeatGTestsCB->isChecked();
- result.shuffle = m_ui.shuffleGTestsCB->isChecked();
- result.iterations = m_ui.repetitionSpin->value();
- result.seed = m_ui.seedSpin->value();
- result.breakOnFailure = m_ui.breakOnFailureCB->isChecked();
- result.throwOnFailure = m_ui.throwOnFailureCB->isChecked();
- result.groupMode = static_cast<GTest::Constants::GroupMode>(
+ GTest::Constants::GroupMode oldGroupMode = m_settings->groupMode;
+ const QString oldFilter = m_settings->gtestFilter;
+
+ m_settings->runDisabled = m_ui.runDisabledGTestsCB->isChecked();
+ m_settings->repeat = m_ui.repeatGTestsCB->isChecked();
+ m_settings->shuffle = m_ui.shuffleGTestsCB->isChecked();
+ m_settings->iterations = m_ui.repetitionSpin->value();
+ m_settings->seed = m_ui.seedSpin->value();
+ m_settings->breakOnFailure = m_ui.breakOnFailureCB->isChecked();
+ m_settings->throwOnFailure = m_ui.throwOnFailureCB->isChecked();
+ m_settings->groupMode = static_cast<GTest::Constants::GroupMode>(
m_ui.groupModeCombo->currentIndex() + 1);
if (m_ui.filterLineEdit->isValid())
- result.gtestFilter = m_ui.filterLineEdit->text();
+ m_settings->gtestFilter = m_ui.filterLineEdit->text();
else
- result.gtestFilter = m_currentGTestFilter;
- return result;
-}
+ m_settings->gtestFilter = m_currentGTestFilter;
-GTestSettingsPage::GTestSettingsPage(QSharedPointer<IFrameworkSettings> settings,
- const ITestFramework *framework)
- : ITestSettingsPage(framework),
- m_settings(qSharedPointerCast<GTestSettings>(settings))
-{
- setDisplayName(QCoreApplication::translate("GTestFramework",
- GTest::Constants::FRAMEWORK_SETTINGS_CATEGORY));
-}
-
-QWidget *GTestSettingsPage::widget()
-{
- if (!m_widget) {
- m_widget = new GTestSettingsWidget;
- m_widget->setSettings(*m_settings);
- }
- return m_widget;
-}
-
-void GTestSettingsPage::apply()
-{
- if (!m_widget) // page was not shown at all
- return;
-
- GTest::Constants::GroupMode oldGroupMode = m_settings->groupMode;
- const QString oldFilter = m_settings->gtestFilter;
- *m_settings = m_widget->settings();
m_settings->toSettings(Core::ICore::settings());
if (m_settings->groupMode == oldGroupMode && oldFilter == m_settings->gtestFilter)
return;
@@ -121,5 +110,14 @@ void GTestSettingsPage::apply()
TestTreeModel::instance()->rebuild({id});
}
+GTestSettingsPage::GTestSettingsPage(QSharedPointer<IFrameworkSettings> settings,
+ const ITestFramework *framework)
+ : ITestSettingsPage(framework)
+{
+ setDisplayName(QCoreApplication::translate("GTestFramework",
+ GTest::Constants::FRAMEWORK_SETTINGS_CATEGORY));
+ setWidgetCreator([settings] { return new GTestSettingsWidget(qSharedPointerCast<GTestSettings>(settings)); });
+}
+
} // namespace Internal
} // namespace Autotest
diff --git a/src/plugins/autotest/gtest/gtestsettingspage.h b/src/plugins/autotest/gtest/gtestsettingspage.h
index 3aa28fbe865..f17c4a81244 100644
--- a/src/plugins/autotest/gtest/gtestsettingspage.h
+++ b/src/plugins/autotest/gtest/gtestsettingspage.h
@@ -25,47 +25,18 @@
#pragma once
-#include "ui_gtestsettingspage.h"
-
#include "../itestsettingspage.h"
-#include <QPointer>
-
namespace Autotest {
class IFrameworkSettings;
namespace Internal {
-class GTestSettings;
-
-class GTestSettingsWidget : public QWidget
-{
- Q_OBJECT
-
-public:
- GTestSettingsWidget();
-
- void setSettings(const GTestSettings &settings);
- GTestSettings settings() const;
-
-private:
- Ui::GTestSettingsPage m_ui;
- QString m_currentGTestFilter;
-};
-
-class GTestSettingsPage : public ITestSettingsPage
+class GTestSettingsPage final : public ITestSettingsPage
{
- Q_OBJECT
public:
GTestSettingsPage(QSharedPointer<IFrameworkSettings> settings, const ITestFramework *framework);
-
- QWidget *widget() override;
- void apply() override;
-
-private:
- QSharedPointer<GTestSettings> m_settings;
- QPointer<GTestSettingsWidget> m_widget;
};
} // namespace Internal
diff --git a/src/plugins/autotest/qtest/qttestsettingspage.cpp b/src/plugins/autotest/qtest/qttestsettingspage.cpp
index f7471f99f27..220b8c091e3 100644
--- a/src/plugins/autotest/qtest/qttestsettingspage.cpp
+++ b/src/plugins/autotest/qtest/qttestsettingspage.cpp
@@ -27,6 +27,7 @@
#include "qttestconstants.h"
#include "qttestsettingspage.h"
#include "qttestsettings.h"
+#include "ui_qttestsettingspage.h"
#include <coreplugin/icore.h>
@@ -35,20 +36,33 @@
namespace Autotest {
namespace Internal {
-QtTestSettingsWidget::QtTestSettingsWidget()
+class QtTestSettingsWidget final : public Core::IOptionsPageWidget
+{
+ Q_DECLARE_TR_FUNCTIONS(Autotest::Internal::QtTestSettingsWidget)
+
+public:
+ explicit QtTestSettingsWidget(QSharedPointer<QtTestSettings> settings);
+
+ void apply() final;
+ void finish() final {}
+
+private:
+ Ui::QtTestSettingsPage m_ui;
+ QSharedPointer<QtTestSettings> m_settings;
+};
+
+QtTestSettingsWidget::QtTestSettingsWidget(QSharedPointer<QtTestSettings> settings)
+ : m_settings(settings)
{
m_ui.setupUi(this);
m_ui.callgrindRB->setEnabled(Utils::HostOsInfo::isAnyUnixHost()); // valgrind available on UNIX
m_ui.perfRB->setEnabled(Utils::HostOsInfo::isLinuxHost()); // according to docs perf Linux only
-}
-void QtTestSettingsWidget::setSettings(const QtTestSettings &settings)
-{
- m_ui.disableCrashhandlerCB->setChecked(settings.noCrashHandler);
- m_ui.useXMLOutputCB->setChecked(settings.useXMLOutput);
- m_ui.verboseBenchmarksCB->setChecked(settings.verboseBench);
- m_ui.logSignalsAndSlotsCB->setChecked(settings.logSignalsSlots);
- switch (settings.metrics) {
+ m_ui.disableCrashhandlerCB->setChecked(m_settings->noCrashHandler);
+ m_ui.useXMLOutputCB->setChecked(m_settings->useXMLOutput);
+ m_ui.verboseBenchmarksCB->setChecked(m_settings->verboseBench);
+ m_ui.logSignalsAndSlotsCB->setChecked(m_settings->logSignalsSlots);
+ switch (m_settings->metrics) {
case MetricsType::Walltime:
m_ui.walltimeRB->setChecked(true);
break;
@@ -67,52 +81,35 @@ void QtTestSettingsWidget::setSettings(const QtTestSettings &settings)
}
}
-QtTestSettings QtTestSettingsWidget::settings() const
+void QtTestSettingsWidget::apply()
{
- QtTestSettings result;
-
- result.noCrashHandler = m_ui.disableCrashhandlerCB->isChecked();
- result.useXMLOutput = m_ui.useXMLOutputCB->isChecked();
- result.verboseBench = m_ui.verboseBenchmarksCB->isChecked();
- result.logSignalsSlots = m_ui.logSignalsAndSlotsCB->isChecked();
+ m_settings->noCrashHandler = m_ui.disableCrashhandlerCB->isChecked();
+ m_settings->useXMLOutput = m_ui.useXMLOutputCB->isChecked();
+ m_settings->verboseBench = m_ui.verboseBenchmarksCB->isChecked();
+ m_settings->logSignalsSlots = m_ui.logSignalsAndSlotsCB->isChecked();
if (m_ui.walltimeRB->isChecked())
- result.metrics = MetricsType::Walltime;
+ m_settings->metrics = MetricsType::Walltime;
else if (m_ui.tickcounterRB->isChecked())
- result.metrics = MetricsType::TickCounter;
+ m_settings->metrics = MetricsType::TickCounter;
else if (m_ui.eventCounterRB->isChecked())
- result.metrics = MetricsType::EventCounter;
+ m_settings->metrics = MetricsType::EventCounter;
else if (m_ui.callgrindRB->isChecked())
- result.metrics = MetricsType::CallGrind;
+ m_settings->metrics = MetricsType::CallGrind;
else if (m_ui.perfRB->isChecked())
- result.metrics = MetricsType::Perf;
+ m_settings->metrics = MetricsType::Perf;
- return result;
+ m_settings->toSettings(Core::ICore::settings());
}
QtTestSettingsPage::QtTestSettingsPage(QSharedPointer<IFrameworkSettings> settings,
const ITestFramework *framework)
- : ITestSettingsPage(framework),
- m_settings(qSharedPointerCast<QtTestSettings>(settings))
+ : ITestSettingsPage(framework)
{
setDisplayName(QCoreApplication::translate("QtTestFramework",
QtTest::Constants::FRAMEWORK_SETTINGS_CATEGORY));
-}
-
-QWidget *QtTestSettingsPage::widget()
-{
- if (!m_widget) {
- m_widget = new QtTestSettingsWidget;
- m_widget->setSettings(*m_settings);
- }
- return m_widget;
-}
-
-void QtTestSettingsPage::apply()
-{
- if (!m_widget) // page was not shown at all
- return;
- *m_settings = m_widget->settings();
- m_settings->toSettings(Core::ICore::settings());
+ setWidgetCreator([settings] {
+ return new QtTestSettingsWidget(qSharedPointerCast<QtTestSettings>(settings));
+ });
}
} // namespace Internal
diff --git a/src/plugins/autotest/qtest/qttestsettingspage.h b/src/plugins/autotest/qtest/qttestsettingspage.h
index aa1e39a48e0..4033878d330 100644
--- a/src/plugins/autotest/qtest/qttestsettingspage.h
+++ b/src/plugins/autotest/qtest/qttestsettingspage.h
@@ -25,46 +25,18 @@
#pragma once
-#include "ui_qttestsettingspage.h"
-
#include "../itestsettingspage.h"
-#include <QPointer>
-
namespace Autotest {
class IFrameworkSettings;
namespace Internal {
-class QtTestSettings;
-
-class QtTestSettingsWidget : public QWidget
-{
- Q_OBJECT
-
-public:
- QtTestSettingsWidget();
-
- void setSettings(const QtTestSettings &settings);
- QtTestSettings settings() const;
-
-private:
- Ui::QtTestSettingsPage m_ui;
-};
-
-class QtTestSettingsPage : public ITestSettingsPage
+class QtTestSettingsPage final : public ITestSettingsPage
{
- Q_OBJECT
public:
QtTestSettingsPage(QSharedPointer<IFrameworkSettings> settings, const ITestFramework *framework);
-
- QWidget *widget() override;
- void apply() override;
-
-private:
- QSharedPointer<QtTestSettings> m_settings;
- QPointer<QtTestSettingsWidget> m_widget;
};
} // namespace Internal