forked from qt-creator/qt-creator
Fix a crash on codestylesettings
Task-number: QTCREATORBUG-10235 Instead of rely on ICodeStylePreferences::destroyed() signal, when all other objects might be in destruction phase, clear project code style settings explicitly, when project closes. Change-Id: I0dd6675d54c5495d4006acbc9ad12c95f1d0a00c Reviewed-by: Eike Ziller <eike.ziller@digia.com> Reviewed-by: Jarek Kobus <jaroslaw.kobus@digia.com>
This commit is contained in:
@@ -4537,8 +4537,6 @@ void BaseTextEditorWidget::setCodeStyle(ICodeStylePreferences *preferences)
|
||||
this, SLOT(setTabSettings(TextEditor::TabSettings)));
|
||||
disconnect(d->m_codeStylePreferences, SIGNAL(currentValueChanged(QVariant)),
|
||||
this, SLOT(slotCodeStyleSettingsChanged(QVariant)));
|
||||
disconnect(d->m_codeStylePreferences, SIGNAL(destroyed()),
|
||||
this, SLOT(onCodeStylePreferencesDestroyed()));
|
||||
}
|
||||
d->m_codeStylePreferences = preferences;
|
||||
if (d->m_codeStylePreferences) {
|
||||
@@ -4546,25 +4544,11 @@ void BaseTextEditorWidget::setCodeStyle(ICodeStylePreferences *preferences)
|
||||
this, SLOT(setTabSettings(TextEditor::TabSettings)));
|
||||
connect(d->m_codeStylePreferences, SIGNAL(currentValueChanged(QVariant)),
|
||||
this, SLOT(slotCodeStyleSettingsChanged(QVariant)));
|
||||
connect(d->m_codeStylePreferences, SIGNAL(destroyed()),
|
||||
this, SLOT(onCodeStylePreferencesDestroyed()));
|
||||
setTabSettings(d->m_codeStylePreferences->currentTabSettings());
|
||||
slotCodeStyleSettingsChanged(d->m_codeStylePreferences->currentValue());
|
||||
}
|
||||
}
|
||||
|
||||
void BaseTextEditorWidget::onCodeStylePreferencesDestroyed()
|
||||
{
|
||||
if (sender() != d->m_codeStylePreferences)
|
||||
return;
|
||||
ICodeStylePreferences *prefs = TextEditorSettings::codeStyle(languageSettingsId());
|
||||
if (prefs == d->m_codeStylePreferences)
|
||||
prefs = 0;
|
||||
// avoid failing disconnects, m_codeStylePreferences has already been reduced to QObject
|
||||
d->m_codeStylePreferences = 0;
|
||||
setCodeStyle(prefs);
|
||||
}
|
||||
|
||||
void BaseTextEditorWidget::slotCodeStyleSettingsChanged(const QVariant &)
|
||||
{
|
||||
|
||||
|
||||
Reference in New Issue
Block a user