diff options
author | Artem Sokolovskii <artem.sokolovskii@qt.io> | 2023-01-02 11:43:18 +0100 |
---|---|---|
committer | Artem Sokolovskii <artem.sokolovskii@qt.io> | 2023-01-05 09:12:15 +0000 |
commit | ce1a547b6cbfd875d2996ee71b9aa8f7327262aa (patch) | |
tree | 42caaa1d148374d437750c84b89515d625d9a9fb | |
parent | 0a74a1e99e37e6685e627577dd52d4f06e3c2832 (diff) |
CodeStyle: Fix preview update
Fixes: QTCREATORBUG-28621
Change-Id: I66a66d9c16933ebd8197f9e286e72dce7a621933
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: David Schulz <david.schulz@qt.io>
-rw-r--r-- | src/plugins/cppeditor/cppcodestylesettingspage.cpp | 31 | ||||
-rw-r--r-- | src/plugins/cppeditor/cppcodestylesettingspage.h | 4 |
2 files changed, 27 insertions, 8 deletions
diff --git a/src/plugins/cppeditor/cppcodestylesettingspage.cpp b/src/plugins/cppeditor/cppcodestylesettingspage.cpp index 67a785809d..3fc0a3ba87 100644 --- a/src/plugins/cppeditor/cppcodestylesettingspage.cpp +++ b/src/plugins/cppeditor/cppcodestylesettingspage.cpp @@ -165,6 +165,9 @@ void CppCodeStylePreferencesWidget::setCodeStyle(CppCodeStylePreferences *codeSt setCodeStyleSettings(m_preferences->currentCodeStyleSettings(), false); slotCurrentPreferencesChanged(m_preferences->currentPreferences(), false); + m_originalCppCodeStyleSettings = cppCodeStyleSettings(); + m_originalTabSettings = tabSettings(); + updatePreview(); } @@ -253,6 +256,12 @@ void CppCodeStylePreferencesWidget::slotCodeStyleSettingsChanged() if (m_blockUpdates) return; + if (m_preferences) { + auto current = qobject_cast<CppCodeStylePreferences *>(m_preferences->currentPreferences()); + if (current) + current->setCodeStyleSettings(cppCodeStyleSettings()); + } + emit codeStyleSettingsChanged(cppCodeStyleSettings()); updatePreview(); } @@ -262,6 +271,12 @@ void CppCodeStylePreferencesWidget::slotTabSettingsChanged(const TabSettings &se if (m_blockUpdates) return; + if (m_preferences) { + auto current = qobject_cast<CppCodeStylePreferences *>(m_preferences->currentPreferences()); + if (current) + current->setTabSettings(settings); + } + emit tabSettingsChanged(settings); updatePreview(); } @@ -344,19 +359,21 @@ void CppCodeStylePreferencesWidget::addTab(CppCodeStyleWidget *page, QString tab void CppCodeStylePreferencesWidget::apply() { - if (m_preferences) { - auto current = qobject_cast<CppCodeStylePreferences *>(m_preferences->currentPreferences()); - if (current) { - current->setTabSettings(tabSettings()); - current->setCodeStyleSettings(cppCodeStyleSettings()); - } - } + m_originalTabSettings = tabSettings(); + m_originalCppCodeStyleSettings = cppCodeStyleSettings(); emit applyEmitted(); } void CppCodeStylePreferencesWidget::finish() { + if (m_preferences) { + auto current = qobject_cast<CppCodeStylePreferences *>(m_preferences->currentDelegate()); + if (current) { + current->setCodeStyleSettings(m_originalCppCodeStyleSettings); + current->setTabSettings(m_originalTabSettings); + } + } emit finishEmitted(); } diff --git a/src/plugins/cppeditor/cppcodestylesettingspage.h b/src/plugins/cppeditor/cppcodestylesettingspage.h index 844cfc0337..01a7860a19 100644 --- a/src/plugins/cppeditor/cppcodestylesettingspage.h +++ b/src/plugins/cppeditor/cppcodestylesettingspage.h @@ -8,13 +8,13 @@ #include <coreplugin/dialogs/ioptionspage.h> #include <texteditor/icodestylepreferencesfactory.h> +#include <texteditor/tabsettings.h> #include <QWidget> #include <QPointer> namespace TextEditor { class FontSettings; - class TabSettings; class SnippetEditorWidget; class CodeStyleEditor; class CodeStyleEditorWidget; @@ -72,6 +72,8 @@ private: CppCodeStylePreferences *m_preferences = nullptr; Ui::CppCodeStyleSettingsPage *m_ui; QList<TextEditor::SnippetEditorWidget *> m_previews; + CppCodeStyleSettings m_originalCppCodeStyleSettings; + TextEditor::TabSettings m_originalTabSettings; bool m_blockUpdates = false; signals: void codeStyleSettingsChanged(const CppEditor::CppCodeStyleSettings &); |