Editor: Fix crash when setting language id before document

Change-Id: I735484c7036f6c8b26142d114348295d9b12ae97
Reviewed-by: Knud Dollereder <knud.dollereder@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
David Schulz
2021-03-17 13:37:15 +01:00
parent 73ff6996b2
commit a52f468bc5

View File

@@ -6020,20 +6020,24 @@ Id TextEditorWidget::languageSettingsId() const
void TextEditorWidget::setCodeStyle(ICodeStylePreferences *preferences)
{
textDocument()->indenter()->setCodeStylePreferences(preferences);
TextDocument *document = d->m_document.data();
// Not fully initialized yet... wait for TextEditorWidgetPrivate::setupDocumentSignals
if (!document)
return;
document->indenter()->setCodeStylePreferences(preferences);
if (d->m_codeStylePreferences) {
disconnect(d->m_codeStylePreferences, &ICodeStylePreferences::currentTabSettingsChanged,
d->m_document.data(), &TextDocument::setTabSettings);
document, &TextDocument::setTabSettings);
disconnect(d->m_codeStylePreferences, &ICodeStylePreferences::currentValueChanged,
this, &TextEditorWidget::slotCodeStyleSettingsChanged);
}
d->m_codeStylePreferences = preferences;
if (d->m_codeStylePreferences) {
connect(d->m_codeStylePreferences, &ICodeStylePreferences::currentTabSettingsChanged,
d->m_document.data(), &TextDocument::setTabSettings);
document, &TextDocument::setTabSettings);
connect(d->m_codeStylePreferences, &ICodeStylePreferences::currentValueChanged,
this, &TextEditorWidget::slotCodeStyleSettingsChanged);
d->m_document->setTabSettings(d->m_codeStylePreferences->currentTabSettings());
document->setTabSettings(d->m_codeStylePreferences->currentTabSettings());
slotCodeStyleSettingsChanged(d->m_codeStylePreferences->currentValue());
}
}