diff --git a/src/plugins/macros/macrooptionspage.cpp b/src/plugins/macros/macrooptionspage.cpp index 25ce616fea9..40ccdb55cb1 100644 --- a/src/plugins/macros/macrooptionspage.cpp +++ b/src/plugins/macros/macrooptionspage.cpp @@ -33,7 +33,6 @@ #include #include -#include using namespace Macros; using namespace Macros::Internal; @@ -44,22 +43,5 @@ MacroOptionsPage::MacroOptionsPage() setId(Constants::M_OPTIONS_PAGE); setDisplayName(QCoreApplication::translate("Macros", Constants::M_OPTIONS_TR_PAGE)); setCategory(TextEditor::Constants::TEXT_EDITOR_SETTINGS_CATEGORY); -} - -QWidget *MacroOptionsPage::widget() -{ - if (!m_widget) - m_widget = new MacroOptionsWidget; - return m_widget; -} - -void MacroOptionsPage::apply() -{ - if (m_widget) - m_widget->apply(); -} - -void MacroOptionsPage::finish() -{ - delete m_widget; + setWidgetCreator([] { return new MacroOptionsWidget; }); } diff --git a/src/plugins/macros/macrooptionspage.h b/src/plugins/macros/macrooptionspage.h index eaa3c93d176..4544f518cd1 100644 --- a/src/plugins/macros/macrooptionspage.h +++ b/src/plugins/macros/macrooptionspage.h @@ -27,27 +27,15 @@ #include -#include - namespace Macros { namespace Internal { -class MacroOptionsWidget; - class MacroOptionsPage : public Core::IOptionsPage { Q_OBJECT public: MacroOptionsPage(); - - // IOptionsPage implementation - QWidget *widget() override; - void apply() override; - void finish() override; - -private: - QPointer m_widget; }; } // namespace Internal diff --git a/src/plugins/macros/macrooptionswidget.cpp b/src/plugins/macros/macrooptionswidget.cpp index a4e29402814..1d4b5716a84 100644 --- a/src/plugins/macros/macrooptionswidget.cpp +++ b/src/plugins/macros/macrooptionswidget.cpp @@ -50,10 +50,8 @@ using namespace Macros; using namespace Macros::Internal; -MacroOptionsWidget::MacroOptionsWidget(QWidget *parent) : - QWidget(parent), - m_ui(new Ui::MacroOptionsWidget), - m_changingCurrent(false) +MacroOptionsWidget::MacroOptionsWidget() : + m_ui(new Ui::MacroOptionsWidget) { m_ui->setupUi(this); diff --git a/src/plugins/macros/macrooptionswidget.h b/src/plugins/macros/macrooptionswidget.h index ed7255f1b0c..8e910ce9e21 100644 --- a/src/plugins/macros/macrooptionswidget.h +++ b/src/plugins/macros/macrooptionswidget.h @@ -25,7 +25,7 @@ #pragma once -#include +#include #include #include @@ -34,21 +34,23 @@ QT_BEGIN_NAMESPACE class QTreeWidgetItem; QT_END_NAMESPACE - namespace Macros { namespace Internal { namespace Ui { class MacroOptionsWidget; } -class MacroOptionsWidget : public QWidget { +class MacroOptionsWidget : public Core::IOptionsPageWidget +{ Q_OBJECT + public: - explicit MacroOptionsWidget(QWidget *parent = nullptr); - ~MacroOptionsWidget() override; + MacroOptionsWidget(); + ~MacroOptionsWidget() final; void initialize(); - void apply(); + void apply() final; + void finish() final {} private: void remove(); @@ -61,7 +63,7 @@ private: private: Ui::MacroOptionsWidget *m_ui; QStringList m_macroToRemove; - bool m_changingCurrent; + bool m_changingCurrent = false; QMap m_macroToChange; };