diff options
author | hjk <hjk@qt.io> | 2020-01-17 15:15:24 +0100 |
---|---|---|
committer | hjk <hjk@qt.io> | 2020-01-17 14:47:00 +0000 |
commit | 57c41edf54cd75963280bf9aecb14ff7f9e2250f (patch) | |
tree | 570f35b11eaba0ee3a9dfae25037c56e83422a9a /src/plugins/cpptools/cppcodemodelsettingspage.cpp | |
parent | b7bd33641d7edb4ba3430ce4639eaca1c49c4157 (diff) | |
download | qt-creator-57c41edf54cd75963280bf9aecb14ff7f9e2250f.tar.gz |
CppTools: Apply new SettingsPage patterns
Change-Id: Id7410041d5813dc3df9aeb650074f961e394cd2d
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Diffstat (limited to 'src/plugins/cpptools/cppcodemodelsettingspage.cpp')
-rw-r--r-- | src/plugins/cpptools/cppcodemodelsettingspage.cpp | 67 |
1 files changed, 34 insertions, 33 deletions
diff --git a/src/plugins/cpptools/cppcodemodelsettingspage.cpp b/src/plugins/cpptools/cppcodemodelsettingspage.cpp index 0ba534e718..cca9f76a64 100644 --- a/src/plugins/cpptools/cppcodemodelsettingspage.cpp +++ b/src/plugins/cpptools/cppcodemodelsettingspage.cpp @@ -36,29 +36,47 @@ #include <QTextStream> -using namespace CppTools; -using namespace CppTools::Internal; +namespace CppTools { +namespace Internal { -CppCodeModelSettingsWidget::CppCodeModelSettingsWidget() - : m_ui(new Ui::CppCodeModelSettingsPage) +class CppCodeModelSettingsWidget final : public Core::IOptionsPageWidget { - m_ui->setupUi(this); -} + Q_DECLARE_TR_FUNCTIONS(CppTools::Internal::CppCodeModelSettingsWidget) -CppCodeModelSettingsWidget::~CppCodeModelSettingsWidget() -{ - delete m_ui; -} +public: + CppCodeModelSettingsWidget(const QSharedPointer<CppCodeModelSettings> &s); + ~CppCodeModelSettingsWidget() override; -void CppCodeModelSettingsWidget::setSettings(const QSharedPointer<CppCodeModelSettings> &s) +private: + void apply() final; + + void setupGeneralWidgets(); + void setupClangCodeModelWidgets(); + + bool applyGeneralWidgetsToSettings() const; + bool applyClangCodeModelWidgetsToSettings() const; + + Ui::CppCodeModelSettingsPage *m_ui = nullptr; + QSharedPointer<CppCodeModelSettings> m_settings; +}; + +CppCodeModelSettingsWidget::CppCodeModelSettingsWidget(const QSharedPointer<CppCodeModelSettings> &s) + : m_ui(new Ui::CppCodeModelSettingsPage) { + m_ui->setupUi(this); + m_settings = s; setupGeneralWidgets(); setupClangCodeModelWidgets(); } -void CppCodeModelSettingsWidget::applyToSettings() const +CppCodeModelSettingsWidget::~CppCodeModelSettingsWidget() +{ + delete m_ui; +} + +void CppCodeModelSettingsWidget::apply() { bool changed = false; @@ -160,31 +178,14 @@ bool CppCodeModelSettingsWidget::applyGeneralWidgetsToSettings() const } CppCodeModelSettingsPage::CppCodeModelSettingsPage(QSharedPointer<CppCodeModelSettings> &settings) - : m_settings(settings) { setId(Constants::CPP_CODE_MODEL_SETTINGS_ID); - setDisplayName(QCoreApplication::translate("CppTools",Constants::CPP_CODE_MODEL_SETTINGS_NAME)); + setDisplayName(CppCodeModelSettingsWidget::tr("Code Model")); setCategory(Constants::CPP_SETTINGS_CATEGORY); setDisplayCategory(QCoreApplication::translate("CppTools", "C++")); setCategoryIconPath(":/projectexplorer/images/settingscategory_cpp.png"); + setWidgetCreator([settings] { return new CppCodeModelSettingsWidget(settings); }); } -QWidget *CppCodeModelSettingsPage::widget() -{ - if (!m_widget) { - m_widget = new CppCodeModelSettingsWidget; - m_widget->setSettings(m_settings); - } - return m_widget; -} - -void CppCodeModelSettingsPage::apply() -{ - if (m_widget) - m_widget->applyToSettings(); -} - -void CppCodeModelSettingsPage::finish() -{ - delete m_widget; -} +} // Internal +} // CppTools |