diff options
author | hjk <hjk@qt.io> | 2020-01-10 10:33:27 +0100 |
---|---|---|
committer | hjk <hjk@qt.io> | 2020-01-15 10:52:16 +0000 |
commit | d86fba3ee1904446442881e77515d019e8618f73 (patch) | |
tree | 1c8dfe48ad69fa46a283f130e722655cf0e8a5b7 /src/plugins/autotest | |
parent | 7c0678d9a45704ddae76604d41ec4eac5fbac4f5 (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.cpp | 86 | ||||
-rw-r--r-- | src/plugins/autotest/boost/boosttestsettingspage.h | 29 | ||||
-rw-r--r-- | src/plugins/autotest/gtest/gtestsettingspage.cpp | 106 | ||||
-rw-r--r-- | src/plugins/autotest/gtest/gtestsettingspage.h | 31 | ||||
-rw-r--r-- | src/plugins/autotest/qtest/qttestsettingspage.cpp | 79 | ||||
-rw-r--r-- | src/plugins/autotest/qtest/qttestsettingspage.h | 30 |
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 |