From 178c0abbd3e71660ec0d808df97e5620e126a709 Mon Sep 17 00:00:00 2001 From: Artem Sokolovskii Date: Mon, 17 Apr 2023 14:14:22 +0200 Subject: [PATCH] ClangFormat: Fix preview updating Fixed the behavior when the preview does not update when the Override checkbox was not enabled initially. Currently, the preview is updating when Override the checkbox is enabled. Fixes: QTCREATORBUG-29043 Change-Id: I8a2a6f3cd5890b66d4bffd0c84aeafb5a29fba48 Reviewed-by: Christian Kandeler --- src/plugins/clangformat/clangformatglobalconfigwidget.cpp | 6 ++++++ src/plugins/clangformat/clangformatglobalconfigwidget.h | 1 + src/plugins/clangformat/clangformatutils.cpp | 7 ++++--- src/plugins/texteditor/codestyleeditor.cpp | 3 +++ 4 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/plugins/clangformat/clangformatglobalconfigwidget.cpp b/src/plugins/clangformat/clangformatglobalconfigwidget.cpp index 1b57403f32c..a0344e14eda 100644 --- a/src/plugins/clangformat/clangformatglobalconfigwidget.cpp +++ b/src/plugins/clangformat/clangformatglobalconfigwidget.cpp @@ -196,4 +196,10 @@ void ClangFormatGlobalConfigWidget::apply() settings.write(); } +void ClangFormatGlobalConfigWidget::finish() +{ + m_codeStyle->currentPreferences()->setTemporarilyReadOnly( + !ClangFormatSettings::instance().overrideDefaultFile()); +} + } // namespace ClangFormat diff --git a/src/plugins/clangformat/clangformatglobalconfigwidget.h b/src/plugins/clangformat/clangformatglobalconfigwidget.h index 989aa58a925..063c82852a3 100644 --- a/src/plugins/clangformat/clangformatglobalconfigwidget.h +++ b/src/plugins/clangformat/clangformatglobalconfigwidget.h @@ -28,6 +28,7 @@ public: QWidget *parent = nullptr); ~ClangFormatGlobalConfigWidget() override; void apply() override; + void finish() override; private: void initCheckBoxes(); diff --git a/src/plugins/clangformat/clangformatutils.cpp b/src/plugins/clangformat/clangformatutils.cpp index ca6fea8f18e..7ba6229db37 100644 --- a/src/plugins/clangformat/clangformatutils.cpp +++ b/src/plugins/clangformat/clangformatutils.cpp @@ -215,9 +215,10 @@ bool getCurrentOverriddenSettings(const Utils::FilePath &filePath) const ProjectExplorer::Project *project = ProjectExplorer::SessionManager::projectForFile( filePath); - return getProjectUseGlobalSettings(project) - ? ClangFormatSettings::instance().overrideDefaultFile() - : getProjectOverriddenSettings(project); + return getProjectUseGlobalSettings(project) ? !TextEditor::TextEditorSettings::codeStyle("Cpp") + ->currentPreferences() + ->isTemporarilyReadOnly() + : getProjectOverriddenSettings(project); } ClangFormatSettings::Mode getProjectIndentationOrFormattingSettings( diff --git a/src/plugins/texteditor/codestyleeditor.cpp b/src/plugins/texteditor/codestyleeditor.cpp index 6aaf5ae9483..ac75f1ad6d3 100644 --- a/src/plugins/texteditor/codestyleeditor.cpp +++ b/src/plugins/texteditor/codestyleeditor.cpp @@ -108,6 +108,9 @@ void CodeStyleEditor::finish() { if (m_widget) m_widget->finish(); + + if (m_additionalGlobalSettingsWidget) + m_additionalGlobalSettingsWidget->finish(); } } // TextEditor