diff --git a/src/plugins/cpptools/cpptoolssettings.cpp b/src/plugins/cpptools/cpptoolssettings.cpp index c1c74059fe1..7147eb42915 100644 --- a/src/plugins/cpptools/cpptoolssettings.cpp +++ b/src/plugins/cpptools/cpptoolssettings.cpp @@ -241,6 +241,11 @@ CppToolsSettings::~CppToolsSettings() { ExtensionSystem::PluginManager::removeObject(d->m_completionSettingsPage); + TextEditor::TextEditorSettings *textEditorSettings = TextEditor::TextEditorSettings::instance(); + textEditorSettings->unregisterCodeStyle(Constants::CPP_SETTINGS_ID); + textEditorSettings->unregisterCodeStylePool(Constants::CPP_SETTINGS_ID); + textEditorSettings->unregisterCodeStyleFactory(Constants::CPP_SETTINGS_ID); + delete d; m_instance = 0; diff --git a/src/plugins/qmljstools/qmljstoolssettings.cpp b/src/plugins/qmljstools/qmljstoolssettings.cpp index 46159d467b2..388a120ad47 100644 --- a/src/plugins/qmljstools/qmljstoolssettings.cpp +++ b/src/plugins/qmljstools/qmljstoolssettings.cpp @@ -159,6 +159,11 @@ QmlJSToolsSettings::QmlJSToolsSettings(QObject *parent) QmlJSToolsSettings::~QmlJSToolsSettings() { + TextEditor::TextEditorSettings *textEditorSettings = TextEditor::TextEditorSettings::instance(); + textEditorSettings->unregisterCodeStyle(QmlJSTools::Constants::QML_JS_SETTINGS_ID); + textEditorSettings->unregisterCodeStylePool(QmlJSTools::Constants::QML_JS_SETTINGS_ID); + textEditorSettings->unregisterCodeStyleFactory(QmlJSTools::Constants::QML_JS_SETTINGS_ID); + delete m_globalCodeStyle; m_globalCodeStyle = 0; } diff --git a/src/plugins/texteditor/texteditorsettings.cpp b/src/plugins/texteditor/texteditorsettings.cpp index a3a9c685027..877d337f998 100644 --- a/src/plugins/texteditor/texteditorsettings.cpp +++ b/src/plugins/texteditor/texteditorsettings.cpp @@ -411,6 +411,11 @@ void TextEditorSettings::registerCodeStyleFactory(ICodeStylePreferencesFactory * m_d->m_languageToFactory.insert(factory->languageId(), factory); } +void TextEditorSettings::unregisterCodeStyleFactory(Core::Id languageId) +{ + m_d->m_languageToFactory.remove(languageId); +} + QMap TextEditorSettings::codeStyleFactories() const { return m_d->m_languageToFactory; @@ -441,6 +446,11 @@ void TextEditorSettings::registerCodeStyle(Core::Id languageId, ICodeStylePrefer m_d->m_languageToCodeStyle.insert(languageId, prefs); } +void TextEditorSettings::unregisterCodeStyle(Core::Id languageId) +{ + m_d->m_languageToCodeStyle.remove(languageId); +} + CodeStylePool *TextEditorSettings::codeStylePool() const { return m_d->m_behaviorSettingsPage->codeStylePool(); @@ -456,6 +466,11 @@ void TextEditorSettings::registerCodeStylePool(Core::Id languageId, CodeStylePoo m_d->m_languageToCodeStylePool.insert(languageId, pool); } +void TextEditorSettings::unregisterCodeStylePool(Core::Id languageId) +{ + m_d->m_languageToCodeStylePool.remove(languageId); +} + void TextEditorSettings::registerMimeTypeForLanguageId(const QString &mimeType, Core::Id languageId) { m_d->m_mimeTypeToLanguage.insert(mimeType, languageId); diff --git a/src/plugins/texteditor/texteditorsettings.h b/src/plugins/texteditor/texteditorsettings.h index 94685559677..5bd56ced17f 100644 --- a/src/plugins/texteditor/texteditorsettings.h +++ b/src/plugins/texteditor/texteditorsettings.h @@ -92,15 +92,18 @@ public: ICodeStylePreferencesFactory *codeStyleFactory(Core::Id languageId) const; QMap codeStyleFactories() const; void registerCodeStyleFactory(ICodeStylePreferencesFactory *codeStyleFactory); + void unregisterCodeStyleFactory(Core::Id languageId); CodeStylePool *codeStylePool() const; CodeStylePool *codeStylePool(Core::Id languageId) const; void registerCodeStylePool(Core::Id languageId, CodeStylePool *pool); + void unregisterCodeStylePool(Core::Id languageId); ICodeStylePreferences *codeStyle() const; ICodeStylePreferences *codeStyle(Core::Id languageId) const; QMap codeStyles() const; void registerCodeStyle(Core::Id languageId, ICodeStylePreferences *prefs); + void unregisterCodeStyle(Core::Id languageId); void registerMimeTypeForLanguageId(const QString &mimeType, Core::Id languageId); Core::Id languageId(const QString &mimeType) const;