From 4198a54b1ff8892d21c972cede029c23fc9c9f8a Mon Sep 17 00:00:00 2001 From: Alessandro Portale Date: Fri, 2 Sep 2022 12:18:32 +0200 Subject: [PATCH] TextEditor: Fix enabling of CodeStylePreferences for QmlJs Change-Id: I00aa297ab96b71ebd4e49096f60d2f0dee5af587 Reviewed-by: David Schulz --- .../qmljstools/qmljscodestylepreferenceswidget.cpp | 9 ++++----- .../texteditor/simplecodestylepreferenceswidget.cpp | 8 ++++---- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/src/plugins/qmljstools/qmljscodestylepreferenceswidget.cpp b/src/plugins/qmljstools/qmljscodestylepreferenceswidget.cpp index 32c5931afac..f2aa0b7fe8f 100644 --- a/src/plugins/qmljstools/qmljscodestylepreferenceswidget.cpp +++ b/src/plugins/qmljstools/qmljscodestylepreferenceswidget.cpp @@ -19,7 +19,6 @@ QmlJSCodeStylePreferencesWidget::QmlJSCodeStylePreferencesWidget(QWidget *parent auto layout = new QVBoxLayout(this); layout->addWidget(m_codeStyleSettingsWidget); layout->setContentsMargins(QMargins()); - m_codeStyleSettingsWidget->setEnabled(false); } void QmlJSCodeStylePreferencesWidget::setPreferences(QmlJSCodeStylePreferences *preferences) @@ -27,6 +26,8 @@ void QmlJSCodeStylePreferencesWidget::setPreferences(QmlJSCodeStylePreferences * if (m_preferences == preferences) return; // nothing changes + slotCurrentPreferencesChanged(preferences); + // cleanup old if (m_preferences) { disconnect(m_preferences, &QmlJSCodeStylePreferences::currentCodeStyleSettingsChanged, @@ -39,8 +40,6 @@ void QmlJSCodeStylePreferencesWidget::setPreferences(QmlJSCodeStylePreferences * m_preferences = preferences; // fillup new if (m_preferences) { - slotCurrentPreferencesChanged(m_preferences->currentPreferences()); - m_codeStyleSettingsWidget->setCodeStyleSettings(m_preferences->currentCodeStyleSettings()); connect(m_preferences, &QmlJSCodeStylePreferences::currentCodeStyleSettingsChanged, @@ -50,12 +49,12 @@ void QmlJSCodeStylePreferencesWidget::setPreferences(QmlJSCodeStylePreferences * connect(m_codeStyleSettingsWidget, &QmlJSCodeStyleSettingsWidget::settingsChanged, this, &QmlJSCodeStylePreferencesWidget::slotSettingsChanged); } - m_codeStyleSettingsWidget->setEnabled(m_preferences); } void QmlJSCodeStylePreferencesWidget::slotCurrentPreferencesChanged(TextEditor::ICodeStylePreferences *preferences) { - m_codeStyleSettingsWidget->setEnabled(!preferences->isReadOnly() && !m_preferences->currentDelegate()); + m_codeStyleSettingsWidget->setEnabled(preferences && preferences->currentPreferences() && + !preferences->currentPreferences()->isReadOnly()); } void QmlJSCodeStylePreferencesWidget::slotSettingsChanged(const QmlJSCodeStyleSettings &settings) diff --git a/src/plugins/texteditor/simplecodestylepreferenceswidget.cpp b/src/plugins/texteditor/simplecodestylepreferenceswidget.cpp index 8dc99afa3cf..9509c8bba56 100644 --- a/src/plugins/texteditor/simplecodestylepreferenceswidget.cpp +++ b/src/plugins/texteditor/simplecodestylepreferenceswidget.cpp @@ -17,7 +17,6 @@ SimpleCodeStylePreferencesWidget::SimpleCodeStylePreferencesWidget(QWidget *pare auto layout = new QVBoxLayout(this); layout->addWidget(m_tabSettingsWidget); layout->setContentsMargins(QMargins()); - m_tabSettingsWidget->setEnabled(false); } void SimpleCodeStylePreferencesWidget::setPreferences(ICodeStylePreferences *preferences) @@ -25,6 +24,8 @@ void SimpleCodeStylePreferencesWidget::setPreferences(ICodeStylePreferences *pre if (m_preferences == preferences) return; // nothing changes + slotCurrentPreferencesChanged(preferences); + // cleanup old if (m_preferences) { disconnect(m_preferences, &ICodeStylePreferences::currentTabSettingsChanged, @@ -37,7 +38,6 @@ void SimpleCodeStylePreferencesWidget::setPreferences(ICodeStylePreferences *pre m_preferences = preferences; // fillup new if (m_preferences) { - slotCurrentPreferencesChanged(m_preferences->currentPreferences()); m_tabSettingsWidget->setTabSettings(m_preferences->currentTabSettings()); connect(m_preferences, &ICodeStylePreferences::currentTabSettingsChanged, @@ -47,12 +47,12 @@ void SimpleCodeStylePreferencesWidget::setPreferences(ICodeStylePreferences *pre connect(m_tabSettingsWidget, &TabSettingsWidget::settingsChanged, this, &SimpleCodeStylePreferencesWidget::slotTabSettingsChanged); } - m_tabSettingsWidget->setEnabled(m_preferences); } void SimpleCodeStylePreferencesWidget::slotCurrentPreferencesChanged(TextEditor::ICodeStylePreferences *preferences) { - m_tabSettingsWidget->setEnabled(!preferences->isReadOnly() && !m_preferences->currentDelegate()); + m_tabSettingsWidget->setEnabled(preferences && preferences->currentPreferences() && + !preferences->currentPreferences()->isReadOnly()); } void SimpleCodeStylePreferencesWidget::slotTabSettingsChanged(const TextEditor::TabSettings &settings)