summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools/cppcodemodelsettingspage.cpp
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2020-01-17 15:15:24 +0100
committerhjk <hjk@qt.io>2020-01-17 14:47:00 +0000
commit57c41edf54cd75963280bf9aecb14ff7f9e2250f (patch)
tree570f35b11eaba0ee3a9dfae25037c56e83422a9a /src/plugins/cpptools/cppcodemodelsettingspage.cpp
parentb7bd33641d7edb4ba3430ce4639eaca1c49c4157 (diff)
downloadqt-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.cpp67
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