From ca15d0aa95fec76ce41c72ed747894969c978986 Mon Sep 17 00:00:00 2001
From: hjk <hjk121@nokiamail.com>
Date: Thu, 19 Sep 2013 17:59:27 +0200
Subject: [PATCH] Apply static pattern to TextEditorSetting

Change-Id: I4e6f573d893c0aa2bb4ca9812fc8db2961dac172
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
---
 .../android/androidmanifesteditorfactory.cpp  |   2 +-
 src/plugins/bazaar/bazaarcommitwidget.cpp     |   3 +-
 src/plugins/bineditor/bineditor.cpp           |   6 +-
 .../cmakeprojectmanager/cmakeeditor.cpp       |   2 +-
 .../cmakeeditorfactory.cpp                    |   2 +-
 src/plugins/cppeditor/cppeditorplugin.cpp     |   2 +-
 src/plugins/cppeditor/cppquickfixes.cpp       |   3 +-
 .../cpptools/completionsettingspage.cpp       |   4 +-
 .../cpptools/cppcodestylesettingspage.cpp     |   8 +-
 src/plugins/cpptools/cppcompletionassist.cpp  |   3 +-
 src/plugins/cpptools/cpptoolssettings.cpp     |  31 ++-
 src/plugins/designer/formeditorw.cpp          |   2 +-
 src/plugins/diffeditor/diffeditorwidget.cpp   |  21 +-
 src/plugins/diffeditor/diffshoweditor.cpp     |  11 +-
 src/plugins/fakevim/fakevimplugin.cpp         |   4 +-
 .../genericprojectfileseditor.cpp             |   4 +-
 src/plugins/glsleditor/glsleditorplugin.cpp   |   2 +-
 .../mercurial/mercurialcommitwidget.cpp       |   3 +-
 src/plugins/projectexplorer/appoutputpane.cpp |   2 +-
 .../codestylesettingspropertiespage.cpp       |   2 +-
 .../projectexplorer/compileoutputwindow.cpp   |   2 +-
 .../projectexplorer/editorconfiguration.cpp   |  89 ++++-----
 .../projectexplorer/editorconfiguration.h     |   4 -
 .../environmentitemswidget.cpp                |   3 +-
 .../projectfilewizardextension.cpp            |   8 +-
 .../pythoneditor/pythoneditorplugin.cpp       |   2 +-
 .../qmljseditor/qmljscompletionassist.cpp     |   5 +-
 src/plugins/qmljseditor/qmljseditorplugin.cpp |   2 +-
 .../qmljstools/qmljscodestylesettingspage.cpp |  10 +-
 src/plugins/qmljstools/qmljstoolssettings.cpp |  29 ++-
 .../blackberrydeviceconfigurationwidget.cpp   |   2 +-
 .../qt4projectmanager/profileeditor.cpp       |   2 +-
 .../profileeditorfactory.cpp                  |   2 +-
 src/plugins/texteditor/basetexteditor.cpp     |   2 +-
 .../codeassist/basicproposalitemlistmodel.cpp |   2 +-
 .../texteditor/codeassist/codeassistant.cpp   |   2 +-
 .../codeassist/genericproposalwidget.cpp      |   5 +-
 .../codeassist/keywordscompletionassist.cpp   |   2 +-
 src/plugins/texteditor/codestyleeditor.cpp    |   3 +-
 .../texteditor/generichighlighter/manager.cpp |   2 +-
 src/plugins/texteditor/plaintexteditor.cpp    |   4 +-
 .../snippets/snippetssettingspage.cpp         |   2 +-
 src/plugins/texteditor/syntaxhighlighter.cpp  |   2 +-
 src/plugins/texteditor/texteditorplugin.cpp   |   2 +-
 src/plugins/texteditor/texteditorsettings.cpp | 184 +++++++++---------
 src/plugins/texteditor/texteditorsettings.h   |  63 +++---
 src/plugins/vcsbase/basevcseditorfactory.cpp  |   5 +-
 src/plugins/vcsbase/vcsbaseeditor.cpp         |   2 +-
 src/plugins/vcsbase/vcsbasesubmiteditor.cpp   |   2 +-
 49 files changed, 262 insertions(+), 299 deletions(-)

diff --git a/src/plugins/android/androidmanifesteditorfactory.cpp b/src/plugins/android/androidmanifesteditorfactory.cpp
index 2e11a8924e7..ba80296bd72 100644
--- a/src/plugins/android/androidmanifesteditorfactory.cpp
+++ b/src/plugins/android/androidmanifesteditorfactory.cpp
@@ -52,6 +52,6 @@ AndroidManifestEditorFactory::AndroidManifestEditorFactory(QObject *parent)
 Core::IEditor *AndroidManifestEditorFactory::createEditor(QWidget *parent)
 {
     AndroidManifestEditorWidget *editor = new AndroidManifestEditorWidget(parent, m_actionHandler);
-    TextEditor::TextEditorSettings::instance()->initializeEditor(editor);
+    TextEditor::TextEditorSettings::initializeEditor(editor);
     return editor->editor();
 }
diff --git a/src/plugins/bazaar/bazaarcommitwidget.cpp b/src/plugins/bazaar/bazaarcommitwidget.cpp
index 34e075c3d4b..3b25d4f08b0 100644
--- a/src/plugins/bazaar/bazaarcommitwidget.cpp
+++ b/src/plugins/bazaar/bazaarcommitwidget.cpp
@@ -49,8 +49,7 @@ namespace Internal {
 // Retrieve the comment char format from the text editor.
 static QTextCharFormat commentFormat()
 {
-    const TextEditor::FontSettings settings = TextEditor::TextEditorSettings::instance()->fontSettings();
-    return settings.toTextCharFormat(TextEditor::C_COMMENT);
+    return TextEditor::TextEditorSettings::fontSettings().toTextCharFormat(TextEditor::C_COMMENT);
 }
 
 // Highlighter for Bazaar submit messages. Make the first line bold, indicates
diff --git a/src/plugins/bineditor/bineditor.cpp b/src/plugins/bineditor/bineditor.cpp
index 95ccf225708..2c0d7c0a365 100644
--- a/src/plugins/bineditor/bineditor.cpp
+++ b/src/plugins/bineditor/bineditor.cpp
@@ -109,9 +109,9 @@ BinEditorWidget::BinEditorWidget(QWidget *parent)
     setFrameStyle(QFrame::Plain);
 
     // Font settings
-    TextEditor::TextEditorSettings *settings = TextEditor::TextEditorSettings::instance();
-    setFontSettings(settings->fontSettings());
-    connect(settings, SIGNAL(fontSettingsChanged(TextEditor::FontSettings)),
+    setFontSettings(TextEditor::TextEditorSettings::fontSettings());
+    connect(TextEditor::TextEditorSettings::instance(),
+            SIGNAL(fontSettingsChanged(TextEditor::FontSettings)),
             this, SLOT(setFontSettings(TextEditor::FontSettings)));
 
 }
diff --git a/src/plugins/cmakeprojectmanager/cmakeeditor.cpp b/src/plugins/cmakeprojectmanager/cmakeeditor.cpp
index bc11f9bc598..f21f256a06e 100644
--- a/src/plugins/cmakeprojectmanager/cmakeeditor.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakeeditor.cpp
@@ -70,7 +70,7 @@ Core::IEditor *CMakeEditor::duplicate(QWidget *parent)
     CMakeEditorWidget *w = qobject_cast<CMakeEditorWidget*>(widget());
     CMakeEditorWidget *ret = new CMakeEditorWidget(parent, w->factory(), w->actionHandler());
     ret->duplicateFrom(w);
-    TextEditor::TextEditorSettings::instance()->initializeEditor(ret);
+    TextEditor::TextEditorSettings::initializeEditor(ret);
     return ret->editor();
 }
 
diff --git a/src/plugins/cmakeprojectmanager/cmakeeditorfactory.cpp b/src/plugins/cmakeprojectmanager/cmakeeditorfactory.cpp
index ea14d89f9de..7b7b32ae5ae 100644
--- a/src/plugins/cmakeprojectmanager/cmakeeditorfactory.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakeeditorfactory.cpp
@@ -73,6 +73,6 @@ CMakeEditorFactory::CMakeEditorFactory(CMakeManager *manager)
 Core::IEditor *CMakeEditorFactory::createEditor(QWidget *parent)
 {
     CMakeEditorWidget *rc = new CMakeEditorWidget(parent, this, m_actionHandler);
-    TextEditor::TextEditorSettings::instance()->initializeEditor(rc);
+    TextEditor::TextEditorSettings::initializeEditor(rc);
     return rc->editor();
 }
diff --git a/src/plugins/cppeditor/cppeditorplugin.cpp b/src/plugins/cppeditor/cppeditorplugin.cpp
index 6cecb0ad438..17afbf148e6 100644
--- a/src/plugins/cppeditor/cppeditorplugin.cpp
+++ b/src/plugins/cppeditor/cppeditorplugin.cpp
@@ -124,7 +124,7 @@ void CppEditorPlugin::initializeEditor(CPPEditorWidget *editor)
     m_actionHandler->setupActions(editor);
 
     editor->setLanguageSettingsId(CppTools::Constants::CPP_SETTINGS_ID);
-    TextEditor::TextEditorSettings::instance()->initializeEditor(editor);
+    TextEditor::TextEditorSettings::initializeEditor(editor);
 
     // method combo box sorting
     connect(this, SIGNAL(outlineSortingChanged(bool)),
diff --git a/src/plugins/cppeditor/cppquickfixes.cpp b/src/plugins/cppeditor/cppquickfixes.cpp
index c4103dea43e..a33a45c7c4e 100644
--- a/src/plugins/cppeditor/cppquickfixes.cpp
+++ b/src/plugins/cppeditor/cppquickfixes.cpp
@@ -4410,8 +4410,7 @@ public:
         m_factory->classFunctionModel->clear();
         Overview printer = CppCodeStyleSettings::currentProjectCodeStyleOverview();
         printer.showFunctionSignatures = true;
-        const TextEditor::FontSettings &fs =
-                TextEditor::TextEditorSettings::instance()->fontSettings();
+        const TextEditor::FontSettings &fs = TextEditor::TextEditorSettings::fontSettings();
         const Format formatReimpFunc = fs.formatFor(C_DISABLED_CODE);
         foreach (const Class *clazz, baseClasses) {
             QStandardItem *itemBase = new QStandardItem(printer.prettyName(clazz->name()));
diff --git a/src/plugins/cpptools/completionsettingspage.cpp b/src/plugins/cpptools/completionsettingspage.cpp
index 92b249fc457..37ca2ed1727 100644
--- a/src/plugins/cpptools/completionsettingspage.cpp
+++ b/src/plugins/cpptools/completionsettingspage.cpp
@@ -63,7 +63,7 @@ QWidget *CompletionSettingsPage::createPage(QWidget *parent)
     m_page->setupUi(w);
 
     const TextEditor::CompletionSettings &settings =
-            TextEditor::TextEditorSettings::instance()->completionSettings();
+            TextEditor::TextEditorSettings::completionSettings();
 
     int caseSensitivityIndex = 0;
     switch (settings.m_caseSensitivity) {
@@ -131,7 +131,7 @@ void CompletionSettingsPage::apply()
     settings.m_partiallyComplete = m_page->partiallyComplete->isChecked();
     settings.m_spaceAfterFunctionName = m_page->spaceAfterFunctionName->isChecked();
 
-    TextEditor::TextEditorSettings::instance()->setCompletionSettings(settings);
+    TextEditor::TextEditorSettings::setCompletionSettings(settings);
 
     if (!requireCommentsSettingsUpdate())
         return;
diff --git a/src/plugins/cpptools/cppcodestylesettingspage.cpp b/src/plugins/cpptools/cppcodestylesettingspage.cpp
index 01a0589eb5e..ca94a0ec573 100644
--- a/src/plugins/cpptools/cppcodestylesettingspage.cpp
+++ b/src/plugins/cpptools/cppcodestylesettingspage.cpp
@@ -275,9 +275,8 @@ CppCodeStylePreferencesWidget::CppCodeStylePreferencesWidget(QWidget *parent)
     for (int i = 0; i < m_previews.size(); ++i)
         m_previews[i]->setPlainText(QLatin1String(defaultCodeStyleSnippets[i]));
 
-    TextEditor::TextEditorSettings *textEditorSettings = TextEditorSettings::instance();
-    decorateEditors(textEditorSettings->fontSettings());
-    connect(textEditorSettings, SIGNAL(fontSettingsChanged(TextEditor::FontSettings)),
+    decorateEditors(TextEditorSettings::fontSettings());
+    connect(TextEditorSettings::instance(), SIGNAL(fontSettingsChanged(TextEditor::FontSettings)),
        this, SLOT(decorateEditors(TextEditor::FontSettings)));
 
     setVisualizeWhitespace(true);
@@ -575,8 +574,7 @@ QWidget *CppCodeStyleSettingsPage::createPage(QWidget *parent)
     m_pageCppCodeStylePreferences->setCurrentDelegate(originalCodeStylePreferences->currentDelegate());
     // we set id so that it won't be possible to set delegate to the original prefs
     m_pageCppCodeStylePreferences->setId(originalCodeStylePreferences->id());
-    TextEditorSettings *settings = TextEditorSettings::instance();
-    m_widget = new CodeStyleEditor(settings->codeStyleFactory(CppTools::Constants::CPP_SETTINGS_ID),
+    m_widget = new CodeStyleEditor(TextEditorSettings::codeStyleFactory(CppTools::Constants::CPP_SETTINGS_ID),
                                    m_pageCppCodeStylePreferences, parent);
 
     return m_widget;
diff --git a/src/plugins/cpptools/cppcompletionassist.cpp b/src/plugins/cpptools/cppcompletionassist.cpp
index 3ad517e6502..4a9ea061226 100644
--- a/src/plugins/cpptools/cppcompletionassist.cpp
+++ b/src/plugins/cpptools/cppcompletionassist.cpp
@@ -210,8 +210,7 @@ void CppAssistProposalItem::applyContextualContent(TextEditor::BaseTextEditor *e
     } else {
         toInsert = text();
 
-        const CompletionSettings &completionSettings =
-                TextEditorSettings::instance()->completionSettings();
+        const CompletionSettings &completionSettings = TextEditorSettings::completionSettings();
         const bool autoInsertBrackets = completionSettings.m_autoInsertBrackets;
 
         if (autoInsertBrackets && symbol && symbol->type()) {
diff --git a/src/plugins/cpptools/cpptoolssettings.cpp b/src/plugins/cpptools/cpptoolssettings.cpp
index 2f034bac91d..877b86da627 100644
--- a/src/plugins/cpptools/cpptoolssettings.cpp
+++ b/src/plugins/cpptools/cpptoolssettings.cpp
@@ -50,7 +50,7 @@ static const char idKey[] = "CppGlobal";
 
 using namespace CppTools;
 using namespace CppTools::Internal;
-using TextEditor::TabSettings;
+using namespace TextEditor;
 
 namespace CppTools {
 namespace Internal {
@@ -89,15 +89,13 @@ CppToolsSettings::CppToolsSettings(QObject *parent)
             this,
             SIGNAL(commentsSettingsChanged(CppTools::CommentsSettings)));
 
-    TextEditor::TextEditorSettings *textEditorSettings = TextEditor::TextEditorSettings::instance();
-
     // code style factory
-    TextEditor::ICodeStylePreferencesFactory *factory = new CppTools::CppCodeStylePreferencesFactory();
-    textEditorSettings->registerCodeStyleFactory(factory);
+    ICodeStylePreferencesFactory *factory = new CppTools::CppCodeStylePreferencesFactory();
+    TextEditorSettings::registerCodeStyleFactory(factory);
 
     // code style pool
-    TextEditor::CodeStylePool *pool = new TextEditor::CodeStylePool(factory, this);
-    textEditorSettings->registerCodeStylePool(Constants::CPP_SETTINGS_ID, pool);
+    CodeStylePool *pool = new CodeStylePool(factory, this);
+    TextEditorSettings::registerCodeStylePool(Constants::CPP_SETTINGS_ID, pool);
 
     // global code style settings
     d->m_globalCodeStyle = new CppCodeStylePreferences(this);
@@ -105,7 +103,7 @@ CppToolsSettings::CppToolsSettings(QObject *parent)
     d->m_globalCodeStyle->setDisplayName(tr("Global", "Settings"));
     d->m_globalCodeStyle->setId(QLatin1String(idKey));
     pool->addCodeStyle(d->m_globalCodeStyle);
-    textEditorSettings->registerCodeStyle(CppTools::Constants::CPP_SETTINGS_ID, d->m_globalCodeStyle);
+    TextEditorSettings::registerCodeStyle(CppTools::Constants::CPP_SETTINGS_ID, d->m_globalCodeStyle);
 
     /*
     For every language we have exactly 1 pool. The pool contains:
@@ -203,7 +201,7 @@ CppToolsSettings::CppToolsSettings(QObject *parent)
                                     QString(), s, &legacyTabSettings);
             } else {
                 // delegating to global
-                legacyTabSettings = textEditorSettings->codeStyle()->currentTabSettings();
+                legacyTabSettings = TextEditorSettings::codeStyle()->currentTabSettings();
             }
 
             // create custom code style out of old settings
@@ -224,16 +222,16 @@ CppToolsSettings::CppToolsSettings(QObject *parent)
 
 
     // mimetypes to be handled
-    textEditorSettings->registerMimeTypeForLanguageId(
+    TextEditorSettings::registerMimeTypeForLanguageId(
                 QLatin1String(Constants::C_SOURCE_MIMETYPE),
                 Constants::CPP_SETTINGS_ID);
-    textEditorSettings->registerMimeTypeForLanguageId(
+    TextEditorSettings::registerMimeTypeForLanguageId(
                 QLatin1String(Constants::C_HEADER_MIMETYPE),
                 Constants::CPP_SETTINGS_ID);
-    textEditorSettings->registerMimeTypeForLanguageId(
+    TextEditorSettings::registerMimeTypeForLanguageId(
                 QLatin1String(Constants::CPP_SOURCE_MIMETYPE),
                 Constants::CPP_SETTINGS_ID);
-    textEditorSettings->registerMimeTypeForLanguageId(
+    TextEditorSettings::registerMimeTypeForLanguageId(
                 QLatin1String(Constants::CPP_HEADER_MIMETYPE),
                 Constants::CPP_SETTINGS_ID);
 }
@@ -242,10 +240,9 @@ 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);
+    TextEditorSettings::unregisterCodeStyle(Constants::CPP_SETTINGS_ID);
+    TextEditorSettings::unregisterCodeStylePool(Constants::CPP_SETTINGS_ID);
+    TextEditorSettings::unregisterCodeStyleFactory(Constants::CPP_SETTINGS_ID);
 
     delete d;
 
diff --git a/src/plugins/designer/formeditorw.cpp b/src/plugins/designer/formeditorw.cpp
index 869fe3faedf..aa0064eb5f3 100644
--- a/src/plugins/designer/formeditorw.cpp
+++ b/src/plugins/designer/formeditorw.cpp
@@ -701,7 +701,7 @@ EditorData FormEditorW::createEditor(QWidget *parent)
 #endif
     data.widgetHost = new SharedTools::WidgetHost( /* parent */ 0, form);
     DesignerXmlEditorWidget *xmlEditor = new DesignerXmlEditorWidget(form, parent);
-    TextEditor::TextEditorSettings::instance()->initializeEditor(xmlEditor);
+    TextEditor::TextEditorSettings::initializeEditor(xmlEditor);
     data.formWindowEditor = xmlEditor->designerEditor();
     connect(data.widgetHost, SIGNAL(formWindowSizeChanged(int,int)),
             xmlEditor, SIGNAL(changed()));
diff --git a/src/plugins/diffeditor/diffeditorwidget.cpp b/src/plugins/diffeditor/diffeditorwidget.cpp
index 4960b192633..881423b97a1 100644
--- a/src/plugins/diffeditor/diffeditorwidget.cpp
+++ b/src/plugins/diffeditor/diffeditorwidget.cpp
@@ -722,30 +722,31 @@ DiffEditorWidget::DiffEditorWidget(QWidget *parent)
       m_syncScrollBars(true),
       m_foldingBlocker(false)
 {
-    TextEditor::TextEditorSettings *settings = TextEditorSettings::instance();
-
     m_leftEditor = new DiffViewEditorWidget(this);
     m_leftEditor->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
     m_leftEditor->setReadOnly(true);
-    connect(settings, SIGNAL(displaySettingsChanged(TextEditor::DisplaySettings)),
+    connect(TextEditorSettings::instance(),
+            SIGNAL(displaySettingsChanged(TextEditor::DisplaySettings)),
             m_leftEditor, SLOT(setDisplaySettings(TextEditor::DisplaySettings)));
-    m_leftEditor->setDisplaySettings(settings->displaySettings());
-    m_leftEditor->setCodeStyle(settings->codeStyle());
+    m_leftEditor->setDisplaySettings(TextEditorSettings::displaySettings());
+    m_leftEditor->setCodeStyle(TextEditorSettings::codeStyle());
     connect(m_leftEditor, SIGNAL(jumpToOriginalFileRequested(int,int,int)),
             this, SLOT(slotLeftJumpToOriginalFileRequested(int,int,int)));
 
     m_rightEditor = new DiffViewEditorWidget(this);
     m_rightEditor->setReadOnly(true);
-    connect(settings, SIGNAL(displaySettingsChanged(TextEditor::DisplaySettings)),
+    connect(TextEditorSettings::instance(),
+            SIGNAL(displaySettingsChanged(TextEditor::DisplaySettings)),
             m_rightEditor, SLOT(setDisplaySettings(TextEditor::DisplaySettings)));
-    m_rightEditor->setDisplaySettings(settings->displaySettings());
-    m_rightEditor->setCodeStyle(settings->codeStyle());
+    m_rightEditor->setDisplaySettings(TextEditorSettings::displaySettings());
+    m_rightEditor->setCodeStyle(TextEditorSettings::codeStyle());
     connect(m_rightEditor, SIGNAL(jumpToOriginalFileRequested(int,int,int)),
             this, SLOT(slotRightJumpToOriginalFileRequested(int,int,int)));
 
-    connect(settings, SIGNAL(fontSettingsChanged(TextEditor::FontSettings)),
+    connect(TextEditorSettings::instance(),
+            SIGNAL(fontSettingsChanged(TextEditor::FontSettings)),
             this, SLOT(setFontSettings(TextEditor::FontSettings)));
-    setFontSettings(settings->fontSettings());
+    setFontSettings(TextEditorSettings::fontSettings());
 
     connect(m_leftEditor->verticalScrollBar(), SIGNAL(valueChanged(int)),
             this, SLOT(leftVSliderChanged()));
diff --git a/src/plugins/diffeditor/diffshoweditor.cpp b/src/plugins/diffeditor/diffshoweditor.cpp
index 2198874daac..3cc595f902a 100644
--- a/src/plugins/diffeditor/diffshoweditor.cpp
+++ b/src/plugins/diffeditor/diffshoweditor.cpp
@@ -118,14 +118,13 @@ DiffShowEditor::DiffShowEditor(DiffEditorWidget *editorWidget)
     splitter->addWidget(editorWidget);
     setWidget(splitter);
 
-    TextEditorSettings *settings = TextEditorSettings::instance();
-    connect(settings, SIGNAL(displaySettingsChanged(TextEditor::DisplaySettings)),
+    connect(TextEditorSettings::instance(), SIGNAL(displaySettingsChanged(TextEditor::DisplaySettings)),
             m_diffShowWidget, SLOT(setDisplaySettings(TextEditor::DisplaySettings)));
-    connect(settings, SIGNAL(fontSettingsChanged(TextEditor::FontSettings)),
+    connect(TextEditorSettings::instance(), SIGNAL(fontSettingsChanged(TextEditor::FontSettings)),
             m_diffShowWidget, SLOT(setFontSettings(TextEditor::FontSettings)));
-    m_diffShowWidget->setDisplaySettings(settings->displaySettings());
-    m_diffShowWidget->setCodeStyle(settings->codeStyle());
-    m_diffShowWidget->setFontSettings(settings->fontSettings());
+    m_diffShowWidget->setDisplaySettings(TextEditorSettings::displaySettings());
+    m_diffShowWidget->setCodeStyle(TextEditorSettings::codeStyle());
+    m_diffShowWidget->setFontSettings(TextEditorSettings::fontSettings());
 }
 
 DiffShowEditor::~DiffShowEditor()
diff --git a/src/plugins/fakevim/fakevimplugin.cpp b/src/plugins/fakevim/fakevimplugin.cpp
index e3836c178f1..f8e79162f2e 100644
--- a/src/plugins/fakevim/fakevimplugin.cpp
+++ b/src/plugins/fakevim/fakevimplugin.cpp
@@ -359,8 +359,8 @@ QWidget *FakeVimOptionPage::createPage(QWidget *parent)
 
 void FakeVimOptionPage::copyTextEditorSettings()
 {
-    TabSettings ts = TextEditorSettings::instance()->codeStyle()->tabSettings();
-    TypingSettings tps = TextEditorSettings::instance()->typingSettings();
+    TabSettings ts = TextEditorSettings::codeStyle()->tabSettings();
+    TypingSettings tps = TextEditorSettings::typingSettings();
     m_ui.checkBoxExpandTab->setChecked(ts.m_tabPolicy != TabSettings::TabsOnlyTabPolicy);
     m_ui.spinBoxTabStop->setValue(ts.m_tabSize);
     m_ui.spinBoxShiftWidth->setValue(ts.m_indentSize);
diff --git a/src/plugins/genericprojectmanager/genericprojectfileseditor.cpp b/src/plugins/genericprojectmanager/genericprojectfileseditor.cpp
index 739dd18bd22..287ce305635 100644
--- a/src/plugins/genericprojectmanager/genericprojectfileseditor.cpp
+++ b/src/plugins/genericprojectmanager/genericprojectfileseditor.cpp
@@ -64,7 +64,7 @@ ProjectFilesFactory::ProjectFilesFactory(Manager *manager, TextEditorActionHandl
 Core::IEditor *ProjectFilesFactory::createEditor(QWidget *parent)
 {
     ProjectFilesEditorWidget *ed = new ProjectFilesEditorWidget(parent, this, m_actionHandler);
-    TextEditorSettings::instance()->initializeEditor(ed);
+    TextEditorSettings::initializeEditor(ed);
     return ed->editor();
 }
 
@@ -96,7 +96,7 @@ Core::IEditor *ProjectFilesEditor::duplicate(QWidget *parent)
     ProjectFilesEditorWidget *editor = new ProjectFilesEditorWidget(parent,
                                                         parentEditor->factory(),
                                                         parentEditor->actionHandler());
-    TextEditorSettings::instance()->initializeEditor(editor);
+    TextEditorSettings::initializeEditor(editor);
     return editor->editor();
 }
 
diff --git a/src/plugins/glsleditor/glsleditorplugin.cpp b/src/plugins/glsleditor/glsleditorplugin.cpp
index 2af3a1b31f3..f2a457b9fd5 100644
--- a/src/plugins/glsleditor/glsleditorplugin.cpp
+++ b/src/plugins/glsleditor/glsleditorplugin.cpp
@@ -239,7 +239,7 @@ void GLSLEditorPlugin::initializeEditor(GLSLTextEditorWidget *editor)
 {
     QTC_CHECK(m_instance);
     dd->m_actionHandler->setupActions(editor);
-    TextEditorSettings::instance()->initializeEditor(editor);
+    TextEditorSettings::initializeEditor(editor);
 }
 
 static QByteArray glslFile(const QString &fileName)
diff --git a/src/plugins/mercurial/mercurialcommitwidget.cpp b/src/plugins/mercurial/mercurialcommitwidget.cpp
index 4f2d17f5089..262994bf566 100644
--- a/src/plugins/mercurial/mercurialcommitwidget.cpp
+++ b/src/plugins/mercurial/mercurialcommitwidget.cpp
@@ -50,8 +50,7 @@ namespace Internal {
 // Retrieve the comment char format from the text editor.
 static QTextCharFormat commentFormat()
 {
-    const TextEditor::FontSettings settings = TextEditor::TextEditorSettings::instance()->fontSettings();
-    return settings.toTextCharFormat(TextEditor::C_COMMENT);
+    return TextEditor::TextEditorSettings::fontSettings().toTextCharFormat(TextEditor::C_COMMENT);
 }
 
 // Highlighter for Mercurial submit messages. Make the first line bold, indicates
diff --git a/src/plugins/projectexplorer/appoutputpane.cpp b/src/plugins/projectexplorer/appoutputpane.cpp
index d3e4dac0777..74917d06d7d 100644
--- a/src/plugins/projectexplorer/appoutputpane.cpp
+++ b/src/plugins/projectexplorer/appoutputpane.cpp
@@ -301,7 +301,7 @@ void AppOutputPane::createNewOutputWindow(RunControl *rc)
             this, SLOT(appendMessage(ProjectExplorer::RunControl*,QString,Utils::OutputFormat)));
 
     Utils::OutputFormatter *formatter = rc->outputFormatter();
-    formatter->setFont(TextEditor::TextEditorSettings::instance()->fontSettings().font());
+    formatter->setFont(TextEditor::TextEditorSettings::fontSettings().font());
 
     // First look if we can reuse a tab
     const int size = m_runControlTabs.size();
diff --git a/src/plugins/projectexplorer/codestylesettingspropertiespage.cpp b/src/plugins/projectexplorer/codestylesettingspropertiespage.cpp
index 839feef5ac3..8cb5ebe29c9 100644
--- a/src/plugins/projectexplorer/codestylesettingspropertiespage.cpp
+++ b/src/plugins/projectexplorer/codestylesettingspropertiespage.cpp
@@ -75,7 +75,7 @@ CodeStyleSettingsWidget::CodeStyleSettingsWidget(Project *project) : QWidget(),
     const EditorConfiguration *config = m_project->editorConfiguration();
 
     QMap<Core::Id, ICodeStylePreferencesFactory *> factories
-            = TextEditor::TextEditorSettings::instance()->codeStyleFactories();
+            = TextEditor::TextEditorSettings::codeStyleFactories();
     QMapIterator<Core::Id, ICodeStylePreferencesFactory *> it(factories);
     while (it.hasNext()) {
         it.next();
diff --git a/src/plugins/projectexplorer/compileoutputwindow.cpp b/src/plugins/projectexplorer/compileoutputwindow.cpp
index db539c0fb12..b2babe8a99e 100644
--- a/src/plugins/projectexplorer/compileoutputwindow.cpp
+++ b/src/plugins/projectexplorer/compileoutputwindow.cpp
@@ -82,7 +82,7 @@ public:
 private slots:
     void fontSettingsChanged()
     {
-        setFont(TextEditor::TextEditorSettings::instance()->fontSettings().font());
+        setFont(TextEditor::TextEditorSettings::fontSettings().font());
     }
 
 protected:
diff --git a/src/plugins/projectexplorer/editorconfiguration.cpp b/src/plugins/projectexplorer/editorconfiguration.cpp
index 6d60d43c868..62cada1656f 100644
--- a/src/plugins/projectexplorer/editorconfiguration.cpp
+++ b/src/plugins/projectexplorer/editorconfiguration.cpp
@@ -63,10 +63,10 @@ struct EditorConfigurationPrivate
 {
     EditorConfigurationPrivate()
         : m_useGlobal(true)
-        , m_typingSettings(TextEditorSettings::instance()->typingSettings())
-        , m_storageSettings(TextEditorSettings::instance()->storageSettings())
-        , m_behaviorSettings(TextEditorSettings::instance()->behaviorSettings())
-        , m_extraEncodingSettings(TextEditorSettings::instance()->extraEncodingSettings())
+        , m_typingSettings(TextEditorSettings::typingSettings())
+        , m_storageSettings(TextEditorSettings::storageSettings())
+        , m_behaviorSettings(TextEditorSettings::behaviorSettings())
+        , m_extraEncodingSettings(TextEditorSettings::extraEncodingSettings())
         , m_textCodec(Core::EditorManager::defaultTextCodec())
     {
     }
@@ -84,17 +84,15 @@ struct EditorConfigurationPrivate
 
 EditorConfiguration::EditorConfiguration() : d(new EditorConfigurationPrivate)
 {
-    TextEditorSettings *textEditorSettings = TextEditorSettings::instance();
-
-    const QMap<Core::Id, ICodeStylePreferences *> languageCodeStylePreferences = textEditorSettings->codeStyles();
+    const QMap<Core::Id, ICodeStylePreferences *> languageCodeStylePreferences = TextEditorSettings::codeStyles();
     QMapIterator<Core::Id, ICodeStylePreferences *> itCodeStyle(languageCodeStylePreferences);
     while (itCodeStyle.hasNext()) {
         itCodeStyle.next();
         Core::Id languageId = itCodeStyle.key();
         ICodeStylePreferences *originalPreferences = itCodeStyle.value();
-        ICodeStylePreferencesFactory *factory = textEditorSettings->codeStyleFactory(languageId);
+        ICodeStylePreferencesFactory *factory = TextEditorSettings::codeStyleFactory(languageId);
         ICodeStylePreferences *preferences = factory->createCodeStyle();
-        preferences->setDelegatingPool(textEditorSettings->codeStylePool(languageId));
+        preferences->setDelegatingPool(TextEditorSettings::codeStylePool(languageId));
         preferences->setId(languageId.toString() + QLatin1String("Project"));
         preferences->setDisplayName(tr("Project %1", "Settings, %1 is a language (C++ or QML)").arg(factory->displayName()));
         preferences->setCurrentDelegate(originalPreferences);
@@ -102,11 +100,10 @@ EditorConfiguration::EditorConfiguration() : d(new EditorConfigurationPrivate)
     }
 
     d->m_defaultCodeStyle = new SimpleCodeStylePreferences(this);
-    d->m_defaultCodeStyle->setDelegatingPool(textEditorSettings->codeStylePool());
+    d->m_defaultCodeStyle->setDelegatingPool(TextEditorSettings::codeStylePool());
     d->m_defaultCodeStyle->setDisplayName(tr("Project", "Settings"));
     d->m_defaultCodeStyle->setId(kId);
-    d->m_defaultCodeStyle->setCurrentDelegate(d->m_useGlobal
-                    ? TextEditorSettings::instance()->codeStyle() : 0);
+    d->m_defaultCodeStyle->setCurrentDelegate(d->m_useGlobal ? TextEditorSettings::codeStyle() : 0);
 }
 
 EditorConfiguration::~EditorConfiguration()
@@ -122,13 +119,11 @@ bool EditorConfiguration::useGlobalSettings() const
 
 void EditorConfiguration::cloneGlobalSettings()
 {
-    TextEditorSettings *textEditorSettings = TextEditorSettings::instance();
-
-    d->m_defaultCodeStyle->setTabSettings(textEditorSettings->codeStyle()->tabSettings());
-    setTypingSettings(textEditorSettings->typingSettings());
-    setStorageSettings(textEditorSettings->storageSettings());
-    setBehaviorSettings(textEditorSettings->behaviorSettings());
-    setExtraEncodingSettings(textEditorSettings->extraEncodingSettings());
+    d->m_defaultCodeStyle->setTabSettings(TextEditorSettings::codeStyle()->tabSettings());
+    setTypingSettings(TextEditorSettings::typingSettings());
+    setStorageSettings(TextEditorSettings::storageSettings());
+    setBehaviorSettings(TextEditorSettings::behaviorSettings());
+    setExtraEncodingSettings(TextEditorSettings::extraEncodingSettings());
     d->m_textCodec = Core::EditorManager::defaultTextCodec();
 }
 
@@ -247,7 +242,7 @@ void EditorConfiguration::setUseGlobalSettings(bool use)
 {
     d->m_useGlobal = use;
     d->m_defaultCodeStyle->setCurrentDelegate(d->m_useGlobal
-                    ? TextEditorSettings::instance()->codeStyle() : 0);
+                    ? TextEditorSettings::codeStyle() : 0);
     QList<Core::IEditor *> opened = Core::EditorManager::documentModel()->editorsForDocuments(
                 Core::EditorManager::documentModel()->openedDocuments());
     foreach (Core::IEditor *editor, opened) {
@@ -259,43 +254,45 @@ void EditorConfiguration::setUseGlobalSettings(bool use)
     }
 }
 
-void EditorConfiguration::switchSettings(BaseTextEditorWidget *baseTextEditor) const
-{
-    if (d->m_useGlobal)
-        switchSettings_helper(TextEditorSettings::instance(), this, baseTextEditor);
-    else
-        switchSettings_helper(this, TextEditorSettings::instance(), baseTextEditor);
-}
-
-template <class NewSenderT, class OldSenderT>
-void EditorConfiguration::switchSettings_helper(const NewSenderT *newSender,
-                                                const OldSenderT *oldSender,
-                                                BaseTextEditorWidget *baseTextEditor) const
+static void switchSettings_helper(const QObject *newSender, const QObject *oldSender,
+                                                BaseTextEditorWidget *baseTextEditor)
 {
-    baseTextEditor->setTypingSettings(newSender->typingSettings());
-    baseTextEditor->setStorageSettings(newSender->storageSettings());
-    baseTextEditor->setBehaviorSettings(newSender->behaviorSettings());
-    baseTextEditor->setExtraEncodingSettings(newSender->extraEncodingSettings());
-
-    disconnect(oldSender, SIGNAL(typingSettingsChanged(TextEditor::TypingSettings)),
+    QObject::disconnect(oldSender, SIGNAL(typingSettingsChanged(TextEditor::TypingSettings)),
                baseTextEditor, SLOT(setTypingSettings(TextEditor::TypingSettings)));
-    disconnect(oldSender, SIGNAL(storageSettingsChanged(TextEditor::StorageSettings)),
+    QObject::disconnect(oldSender, SIGNAL(storageSettingsChanged(TextEditor::StorageSettings)),
                baseTextEditor, SLOT(setStorageSettings(TextEditor::StorageSettings)));
-    disconnect(oldSender, SIGNAL(behaviorSettingsChanged(TextEditor::BehaviorSettings)),
+    QObject::disconnect(oldSender, SIGNAL(behaviorSettingsChanged(TextEditor::BehaviorSettings)),
                baseTextEditor, SLOT(setBehaviorSettings(TextEditor::BehaviorSettings)));
-    disconnect(oldSender, SIGNAL(extraEncodingSettingsChanged(TextEditor::ExtraEncodingSettings)),
+    QObject::disconnect(oldSender, SIGNAL(extraEncodingSettingsChanged(TextEditor::ExtraEncodingSettings)),
                baseTextEditor, SLOT(setExtraEncodingSettings(TextEditor::ExtraEncodingSettings)));
 
-    connect(newSender, SIGNAL(typingSettingsChanged(TextEditor::TypingSettings)),
+    QObject::connect(newSender, SIGNAL(typingSettingsChanged(TextEditor::TypingSettings)),
             baseTextEditor, SLOT(setTypingSettings(TextEditor::TypingSettings)));
-    connect(newSender, SIGNAL(storageSettingsChanged(TextEditor::StorageSettings)),
+    QObject::connect(newSender, SIGNAL(storageSettingsChanged(TextEditor::StorageSettings)),
             baseTextEditor, SLOT(setStorageSettings(TextEditor::StorageSettings)));
-    connect(newSender, SIGNAL(behaviorSettingsChanged(TextEditor::BehaviorSettings)),
+    QObject::connect(newSender, SIGNAL(behaviorSettingsChanged(TextEditor::BehaviorSettings)),
             baseTextEditor, SLOT(setBehaviorSettings(TextEditor::BehaviorSettings)));
-    connect(newSender, SIGNAL(extraEncodingSettingsChanged(TextEditor::ExtraEncodingSettings)),
+    QObject::connect(newSender, SIGNAL(extraEncodingSettingsChanged(TextEditor::ExtraEncodingSettings)),
             baseTextEditor, SLOT(setExtraEncodingSettings(TextEditor::ExtraEncodingSettings)));
 }
 
+void EditorConfiguration::switchSettings(BaseTextEditorWidget *baseTextEditor) const
+{
+    if (d->m_useGlobal) {
+        baseTextEditor->setTypingSettings(TextEditorSettings::typingSettings());
+        baseTextEditor->setStorageSettings(TextEditorSettings::storageSettings());
+        baseTextEditor->setBehaviorSettings(TextEditorSettings::behaviorSettings());
+        baseTextEditor->setExtraEncodingSettings(TextEditorSettings::extraEncodingSettings());
+        switchSettings_helper(TextEditorSettings::instance(), this, baseTextEditor);
+    } else {
+        baseTextEditor->setTypingSettings(typingSettings());
+        baseTextEditor->setStorageSettings(storageSettings());
+        baseTextEditor->setBehaviorSettings(behaviorSettings());
+        baseTextEditor->setExtraEncodingSettings(extraEncodingSettings());
+        switchSettings_helper(this, TextEditorSettings::instance(), baseTextEditor);
+    }
+}
+
 void EditorConfiguration::setTypingSettings(const TextEditor::TypingSettings &settings)
 {
     d->m_typingSettings = settings;
@@ -331,7 +328,7 @@ TabSettings actualTabSettings(const QString &fileName, const BaseTextEditorWidge
         return baseTextEditor->tabSettings();
     if (Project *project = SessionManager::projectForFile(fileName))
         return project->editorConfiguration()->codeStyle()->tabSettings();
-    return TextEditorSettings::instance()->codeStyle()->tabSettings();
+    return TextEditorSettings::codeStyle()->tabSettings();
 }
 
 } // ProjectExplorer
diff --git a/src/plugins/projectexplorer/editorconfiguration.h b/src/plugins/projectexplorer/editorconfiguration.h
index 0caaf2f58cc..af419c8c6cb 100644
--- a/src/plugins/projectexplorer/editorconfiguration.h
+++ b/src/plugins/projectexplorer/editorconfiguration.h
@@ -98,10 +98,6 @@ private slots:
 
 private:
     void switchSettings(TextEditor::BaseTextEditorWidget *baseTextEditor) const;
-    template <class NewSenderT, class OldSenderT>
-    void switchSettings_helper(const NewSenderT *newSender,
-                               const OldSenderT *oldSender,
-                               TextEditor::BaseTextEditorWidget *baseTextEditor) const;
 
     EditorConfigurationPrivate *d;
 };
diff --git a/src/plugins/projectexplorer/environmentitemswidget.cpp b/src/plugins/projectexplorer/environmentitemswidget.cpp
index 3e3f30a03f5..381abe0adcb 100644
--- a/src/plugins/projectexplorer/environmentitemswidget.cpp
+++ b/src/plugins/projectexplorer/environmentitemswidget.cpp
@@ -71,8 +71,7 @@ EnvironmentItemsWidget::EnvironmentItemsWidget(QWidget *parent) :
     QWidget(parent), d(new EnvironmentItemsWidgetPrivate)
 {
     d->m_editor = new TextEditor::SnippetEditorWidget(this);
-    TextEditor::TextEditorSettings *settings = TextEditor::TextEditorSettings::instance();
-    d->m_editor->setFontSettings(settings->fontSettings());
+    d->m_editor->setFontSettings(TextEditor::TextEditorSettings::fontSettings());
     QVBoxLayout *layout = new QVBoxLayout(this);
     layout->addWidget(d->m_editor);
 }
diff --git a/src/plugins/projectexplorer/projectfilewizardextension.cpp b/src/plugins/projectexplorer/projectfilewizardextension.cpp
index f38e4bcb483..bb2f72608be 100644
--- a/src/plugins/projectexplorer/projectfilewizardextension.cpp
+++ b/src/plugins/projectexplorer/projectfilewizardextension.cpp
@@ -538,7 +538,7 @@ static TextEditor::ICodeStylePreferences *codeStylePreferences(ProjectExplorer::
     if (project)
         return project->editorConfiguration()->codeStyle(languageId);
 
-    return TextEditor::TextEditorSettings::instance()->codeStyle(languageId);
+    return TextEditor::TextEditorSettings::codeStyle(languageId);
 }
 
 void ProjectFileWizardExtension::applyCodeStyle(Core::GeneratedFile *file) const
@@ -547,7 +547,7 @@ void ProjectFileWizardExtension::applyCodeStyle(Core::GeneratedFile *file) const
         return; // nothing to do
 
     Core::MimeType mt = Core::MimeDatabase::findByFile(QFileInfo(file->path()));
-    Core::Id languageId = TextEditor::TextEditorSettings::instance()->languageId(mt.type());
+    Core::Id languageId = TextEditor::TextEditorSettings::languageId(mt.type());
 
     if (!languageId.isValid())
         return; // don't modify files like *.ui *.pro
@@ -560,7 +560,7 @@ void ProjectFileWizardExtension::applyCodeStyle(Core::GeneratedFile *file) const
     Project *baseProject = SessionManager::projectForNode(project);
 
     TextEditor::ICodeStylePreferencesFactory *factory
-            = TextEditor::TextEditorSettings::instance()->codeStyleFactory(languageId);
+            = TextEditor::TextEditorSettings::codeStyleFactory(languageId);
 
     TextEditor::Indenter *indenter = 0;
     if (factory)
@@ -575,7 +575,7 @@ void ProjectFileWizardExtension::applyCodeStyle(Core::GeneratedFile *file) const
     cursor.select(QTextCursor::Document);
     indenter->indent(&doc, cursor, QChar::Null, codeStylePrefs->currentTabSettings());
     delete indenter;
-    if (TextEditor::TextEditorSettings::instance()->storageSettings().m_cleanWhitespace) {
+    if (TextEditor::TextEditorSettings::storageSettings().m_cleanWhitespace) {
         QTextBlock block = doc.firstBlock();
         while (block.isValid()) {
             codeStylePrefs->currentTabSettings().removeTrailingWhitespace(cursor, block);
diff --git a/src/plugins/pythoneditor/pythoneditorplugin.cpp b/src/plugins/pythoneditor/pythoneditorplugin.cpp
index 0811f30630c..65f5d6a0fc7 100644
--- a/src/plugins/pythoneditor/pythoneditorplugin.cpp
+++ b/src/plugins/pythoneditor/pythoneditorplugin.cpp
@@ -250,7 +250,7 @@ void PythonEditorPlugin::extensionsInitialized()
 void PythonEditorPlugin::initializeEditor(EditorWidget *widget)
 {
     instance()->m_actionHandler->setupActions(widget);
-    TextEditor::TextEditorSettings::instance()->initializeEditor(widget);
+    TextEditor::TextEditorSettings::initializeEditor(widget);
 }
 
 QSet<QString> PythonEditorPlugin::keywords()
diff --git a/src/plugins/qmljseditor/qmljscompletionassist.cpp b/src/plugins/qmljseditor/qmljscompletionassist.cpp
index 23c3dcbeb26..65a80f6d295 100644
--- a/src/plugins/qmljseditor/qmljscompletionassist.cpp
+++ b/src/plugins/qmljseditor/qmljscompletionassist.cpp
@@ -364,9 +364,8 @@ void QmlJSAssistProposalItem::applyContextualContent(TextEditor::BaseTextEditor
     QString content = text();
     int cursorOffset = 0;
 
-    const CompletionSettings &completionSettings =
-            TextEditorSettings::instance()->completionSettings();
-    const bool autoInsertBrackets = completionSettings.m_autoInsertBrackets;
+    const bool autoInsertBrackets =
+        TextEditorSettings::completionSettings().m_autoInsertBrackets;
 
     if (autoInsertBrackets && data().canConvert<CompleteFunctionCall>()) {
         CompleteFunctionCall function = data().value<CompleteFunctionCall>();
diff --git a/src/plugins/qmljseditor/qmljseditorplugin.cpp b/src/plugins/qmljseditor/qmljseditorplugin.cpp
index 75721954ac7..55780f0d2dd 100644
--- a/src/plugins/qmljseditor/qmljseditorplugin.cpp
+++ b/src/plugins/qmljseditor/qmljseditorplugin.cpp
@@ -266,7 +266,7 @@ void QmlJSEditorPlugin::initializeEditor(QmlJSTextEditorWidget *editor)
     m_actionHandler->setupActions(editor);
 
     editor->setLanguageSettingsId(QmlJSTools::Constants::QML_JS_SETTINGS_ID);
-    TextEditor::TextEditorSettings::instance()->initializeEditor(editor);
+    TextEditor::TextEditorSettings::initializeEditor(editor);
 }
 
 Utils::JsonSchemaManager *QmlJSEditorPlugin::jsonManager() const
diff --git a/src/plugins/qmljstools/qmljscodestylesettingspage.cpp b/src/plugins/qmljstools/qmljscodestylesettingspage.cpp
index bb1fbe755b7..b0dcc8a60d6 100644
--- a/src/plugins/qmljstools/qmljscodestylesettingspage.cpp
+++ b/src/plugins/qmljstools/qmljscodestylesettingspage.cpp
@@ -70,9 +70,8 @@ QmlJSCodeStylePreferencesWidget::QmlJSCodeStylePreferencesWidget(QWidget *parent
         }
     }
 
-    TextEditor::TextEditorSettings *textEditorSettings = TextEditorSettings::instance();
-    decorateEditor(textEditorSettings->fontSettings());
-    connect(textEditorSettings, SIGNAL(fontSettingsChanged(TextEditor::FontSettings)),
+    decorateEditor(TextEditorSettings::fontSettings());
+    connect(TextEditorSettings::instance(), SIGNAL(fontSettingsChanged(TextEditor::FontSettings)),
        this, SLOT(decorateEditor(TextEditor::FontSettings)));
 
     setVisualizeWhitespace(true);
@@ -142,7 +141,7 @@ void QmlJSCodeStylePreferencesWidget::updatePreview()
 
     const TextEditor::TabSettings &ts = m_preferences
             ? m_preferences->currentTabSettings()
-            : TextEditorSettings::instance()->codeStyle()->tabSettings();
+            : TextEditorSettings::codeStyle()->tabSettings();
     m_ui->previewTextEdit->setTabSettings(ts);
     CreatorCodeFormatter formatter(ts);
     formatter.invalidateCache(doc);
@@ -181,8 +180,7 @@ QWidget *QmlJSCodeStyleSettingsPage::createPage(QWidget *parent)
     m_pageTabPreferences->setTabSettings(originalTabPreferences->tabSettings());
     m_pageTabPreferences->setCurrentDelegate(originalTabPreferences->currentDelegate());
     m_pageTabPreferences->setId(originalTabPreferences->id());
-    TextEditorSettings *settings = TextEditorSettings::instance();
-    m_widget = new CodeStyleEditor(settings->codeStyleFactory(QmlJSTools::Constants::QML_JS_SETTINGS_ID),
+    m_widget = new CodeStyleEditor(TextEditorSettings::codeStyleFactory(QmlJSTools::Constants::QML_JS_SETTINGS_ID),
                                    m_pageTabPreferences, parent);
 
     return m_widget;
diff --git a/src/plugins/qmljstools/qmljstoolssettings.cpp b/src/plugins/qmljstools/qmljstoolssettings.cpp
index 388a120ad47..d3b60098183 100644
--- a/src/plugins/qmljstools/qmljstoolssettings.cpp
+++ b/src/plugins/qmljstools/qmljstoolssettings.cpp
@@ -55,15 +55,13 @@ QmlJSToolsSettings::QmlJSToolsSettings(QObject *parent)
 {
     QTC_ASSERT(!m_globalCodeStyle, return);
 
-    TextEditorSettings *textEditorSettings = TextEditorSettings::instance();
-
     // code style factory
     ICodeStylePreferencesFactory *factory = new QmlJSCodeStylePreferencesFactory();
-    textEditorSettings->registerCodeStyleFactory(factory);
+    TextEditorSettings::registerCodeStyleFactory(factory);
 
     // code style pool
     CodeStylePool *pool = new CodeStylePool(factory, this);
-    textEditorSettings->registerCodeStylePool(Constants::QML_JS_SETTINGS_ID, pool);
+    TextEditorSettings::registerCodeStylePool(Constants::QML_JS_SETTINGS_ID, pool);
 
     // global code style settings
     m_globalCodeStyle = new SimpleCodeStylePreferences(this);
@@ -71,7 +69,7 @@ QmlJSToolsSettings::QmlJSToolsSettings(QObject *parent)
     m_globalCodeStyle->setDisplayName(tr("Global", "Settings"));
     m_globalCodeStyle->setId(QLatin1String(idKey));
     pool->addCodeStyle(m_globalCodeStyle);
-    textEditorSettings->registerCodeStyle(QmlJSTools::Constants::QML_JS_SETTINGS_ID, m_globalCodeStyle);
+    TextEditorSettings::registerCodeStyle(QmlJSTools::Constants::QML_JS_SETTINGS_ID, m_globalCodeStyle);
 
     // built-in settings
     // Qt style
@@ -119,7 +117,7 @@ QmlJSToolsSettings::QmlJSToolsSettings(QObject *parent)
                                     QString(), s, &legacyTabSettings);
             } else {
                 // delegating to global
-                legacyTabSettings = textEditorSettings->codeStyle()->currentTabSettings();
+                legacyTabSettings = TextEditorSettings::codeStyle()->currentTabSettings();
             }
 
             // create custom code style out of old settings
@@ -137,32 +135,31 @@ QmlJSToolsSettings::QmlJSToolsSettings(QObject *parent)
     }
 
     // mimetypes to be handled
-    textEditorSettings->registerMimeTypeForLanguageId(
+    TextEditorSettings::registerMimeTypeForLanguageId(
                 QLatin1String(Constants::QML_MIMETYPE),
                 Constants::QML_JS_SETTINGS_ID);
-    textEditorSettings->registerMimeTypeForLanguageId(
+    TextEditorSettings::registerMimeTypeForLanguageId(
                 QLatin1String(Constants::QBS_MIMETYPE),
                 Constants::QML_JS_SETTINGS_ID);
-    textEditorSettings->registerMimeTypeForLanguageId(
+    TextEditorSettings::registerMimeTypeForLanguageId(
                 QLatin1String(Constants::QMLPROJECT_MIMETYPE),
                 Constants::QML_JS_SETTINGS_ID);
-    textEditorSettings->registerMimeTypeForLanguageId(
+    TextEditorSettings::registerMimeTypeForLanguageId(
                 QLatin1String(Constants::QMLTYPES_MIMETYPE),
                 Constants::QML_JS_SETTINGS_ID);
-    textEditorSettings->registerMimeTypeForLanguageId(
+    TextEditorSettings::registerMimeTypeForLanguageId(
                 QLatin1String(Constants::JS_MIMETYPE),
                 Constants::QML_JS_SETTINGS_ID);
-    textEditorSettings->registerMimeTypeForLanguageId(
+    TextEditorSettings::registerMimeTypeForLanguageId(
                 QLatin1String(Constants::JSON_MIMETYPE),
                 Constants::QML_JS_SETTINGS_ID);
 }
 
 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);
+    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/qnx/blackberrydeviceconfigurationwidget.cpp b/src/plugins/qnx/blackberrydeviceconfigurationwidget.cpp
index b609d4b7603..d9d0115ffd2 100644
--- a/src/plugins/qnx/blackberrydeviceconfigurationwidget.cpp
+++ b/src/plugins/qnx/blackberrydeviceconfigurationwidget.cpp
@@ -61,7 +61,7 @@ BlackBerryDeviceConfigurationWidget::BlackBerryDeviceConfigurationWidget(const I
 {
     ui->setupUi(this);
 
-    ui->connectionLog->setFont(TextEditor::TextEditorSettings::instance()->fontSettings().font());
+    ui->connectionLog->setFont(TextEditor::TextEditorSettings::fontSettings().font());
 
     connect(ui->hostLineEdit, SIGNAL(editingFinished()), this, SLOT(hostNameEditingFinished()));
     connect(ui->pwdLineEdit, SIGNAL(editingFinished()), this, SLOT(passwordEditingFinished()));
diff --git a/src/plugins/qt4projectmanager/profileeditor.cpp b/src/plugins/qt4projectmanager/profileeditor.cpp
index 6d880ad890b..ab35944aaa7 100644
--- a/src/plugins/qt4projectmanager/profileeditor.cpp
+++ b/src/plugins/qt4projectmanager/profileeditor.cpp
@@ -64,7 +64,7 @@ Core::IEditor *ProFileEditor::duplicate(QWidget *parent)
     ProFileEditorWidget *ret = new ProFileEditorWidget(parent, qobject_cast<ProFileEditorWidget*>(editorWidget())->factory(),
                                            qobject_cast<ProFileEditorWidget*>(editorWidget())->actionHandler());
     ret->duplicateFrom(editorWidget());
-    TextEditor::TextEditorSettings::instance()->initializeEditor(ret);
+    TextEditor::TextEditorSettings::initializeEditor(ret);
     return ret->editor();
 }
 
diff --git a/src/plugins/qt4projectmanager/profileeditorfactory.cpp b/src/plugins/qt4projectmanager/profileeditorfactory.cpp
index 066c49db3f0..21227bba9d1 100644
--- a/src/plugins/qt4projectmanager/profileeditorfactory.cpp
+++ b/src/plugins/qt4projectmanager/profileeditorfactory.cpp
@@ -60,6 +60,6 @@ ProFileEditorFactory::ProFileEditorFactory(Qt4Manager *manager, TextEditor::Text
 Core::IEditor *ProFileEditorFactory::createEditor(QWidget *parent)
 {
     ProFileEditorWidget *editor = new ProFileEditorWidget(parent, this, m_actionHandler);
-    TextEditor::TextEditorSettings::instance()->initializeEditor(editor);
+    TextEditor::TextEditorSettings::initializeEditor(editor);
     return editor->editor();
 }
diff --git a/src/plugins/texteditor/basetexteditor.cpp b/src/plugins/texteditor/basetexteditor.cpp
index e25eafd380b..d19139cddf7 100644
--- a/src/plugins/texteditor/basetexteditor.cpp
+++ b/src/plugins/texteditor/basetexteditor.cpp
@@ -4560,7 +4560,7 @@ void BaseTextEditorWidget::onCodeStylePreferencesDestroyed()
 {
     if (sender() != d->m_codeStylePreferences)
         return;
-    ICodeStylePreferences *prefs = TextEditorSettings::instance()->codeStyle(languageSettingsId());
+    ICodeStylePreferences *prefs = TextEditorSettings::codeStyle(languageSettingsId());
     if (prefs == d->m_codeStylePreferences)
         prefs = 0;
     // avoid failing disconnects, m_codeStylePreferences has already been reduced to QObject
diff --git a/src/plugins/texteditor/codeassist/basicproposalitemlistmodel.cpp b/src/plugins/texteditor/codeassist/basicproposalitemlistmodel.cpp
index 0ef0a05bfce..ae2ece571c2 100644
--- a/src/plugins/texteditor/codeassist/basicproposalitemlistmodel.cpp
+++ b/src/plugins/texteditor/codeassist/basicproposalitemlistmodel.cpp
@@ -225,7 +225,7 @@ void BasicProposalItemListModel::filter(const QString &prefix)
      * It also implements the fully and first-letter-only case sensitivity.
      */
     const TextEditor::CaseSensitivity caseSensitivity =
-        TextEditorSettings::instance()->completionSettings().m_caseSensitivity;
+        TextEditorSettings::completionSettings().m_caseSensitivity;
 
     QString keyRegExp;
     keyRegExp += QLatin1Char('^');
diff --git a/src/plugins/texteditor/codeassist/codeassistant.cpp b/src/plugins/texteditor/codeassist/codeassistant.cpp
index c07aed72488..753c8e79453 100644
--- a/src/plugins/texteditor/codeassist/codeassistant.cpp
+++ b/src/plugins/texteditor/codeassist/codeassistant.cpp
@@ -151,7 +151,7 @@ CodeAssistantPrivate::CodeAssistantPrivate(CodeAssistant *assistant)
     , m_requestProvider(0)
     , m_proposalWidget(0)
     , m_receivedContentWhileWaiting(false)
-    , m_settings(TextEditorSettings::instance()->completionSettings())
+    , m_settings(TextEditorSettings::completionSettings())
     , m_abortedBasePosition(-1)
 {
     m_automaticProposalTimer.setSingleShot(true);
diff --git a/src/plugins/texteditor/codeassist/genericproposalwidget.cpp b/src/plugins/texteditor/codeassist/genericproposalwidget.cpp
index 057837e7390..22b7d158806 100644
--- a/src/plugins/texteditor/codeassist/genericproposalwidget.cpp
+++ b/src/plugins/texteditor/codeassist/genericproposalwidget.cpp
@@ -82,8 +82,7 @@ bool isPerfectMatch(const QString &prefix, const IGenericProposalModel *model)
     for (int i = 0; i < model->size(); ++i) {
         const QString &current = cleanText(model->text(i));
         if (!current.isEmpty()) {
-            TextEditor::CaseSensitivity cs =
-                TextEditor::TextEditorSettings::instance()->completionSettings().m_caseSensitivity;
+            CaseSensitivity cs = TextEditorSettings::completionSettings().m_caseSensitivity;
             if (cs == TextEditor::CaseSensitive) {
                 if (prefix == current)
                     return true;
@@ -468,7 +467,7 @@ bool GenericProposalWidget::updateAndCheck(const QString &prefix)
             d->m_explicitlySelected = false;
     }
 
-    if (TextEditorSettings::instance()->completionSettings().m_partiallyComplete
+    if (TextEditorSettings::completionSettings().m_partiallyComplete
             && d->m_kind == Completion
             && d->m_justInvoked
             && d->m_isSynchronized) {
diff --git a/src/plugins/texteditor/codeassist/keywordscompletionassist.cpp b/src/plugins/texteditor/codeassist/keywordscompletionassist.cpp
index 96fdc71b12c..e58f395f1b2 100644
--- a/src/plugins/texteditor/codeassist/keywordscompletionassist.cpp
+++ b/src/plugins/texteditor/codeassist/keywordscompletionassist.cpp
@@ -102,7 +102,7 @@ bool KeywordsAssistProposalItem::prematurelyApplies(const QChar &c) const
 void KeywordsAssistProposalItem::applyContextualContent(TextEditor::BaseTextEditor *editor,
                                                         int basePosition) const
 {
-    const CompletionSettings &settings = TextEditorSettings::instance()->completionSettings();
+    const CompletionSettings &settings = TextEditorSettings::completionSettings();
 
     int replaceLength = editor->position() - basePosition;
     QString toInsert = text();
diff --git a/src/plugins/texteditor/codestyleeditor.cpp b/src/plugins/texteditor/codestyleeditor.cpp
index 92fe407021e..101eb6f4ced 100644
--- a/src/plugins/texteditor/codestyleeditor.cpp
+++ b/src/plugins/texteditor/codestyleeditor.cpp
@@ -54,8 +54,7 @@ CodeStyleEditor::CodeStyleEditor(ICodeStylePreferencesFactory *factory,
     CodeStyleSelectorWidget *selector = new CodeStyleSelectorWidget(factory, this);
     selector->setCodeStyle(codeStyle);
     m_preview = new SnippetEditorWidget(this);
-    TextEditor::TextEditorSettings *settings = TextEditorSettings::instance();
-    m_preview->setFontSettings(settings->fontSettings());
+    m_preview->setFontSettings(TextEditorSettings::fontSettings());
     DisplaySettings displaySettings = m_preview->displaySettings();
     displaySettings.m_visualizeWhitespace = true;
     m_preview->setDisplaySettings(displaySettings);
diff --git a/src/plugins/texteditor/generichighlighter/manager.cpp b/src/plugins/texteditor/generichighlighter/manager.cpp
index 2253c6d318d..05dcdcf06f0 100644
--- a/src/plugins/texteditor/generichighlighter/manager.cpp
+++ b/src/plugins/texteditor/generichighlighter/manager.cpp
@@ -185,7 +185,7 @@ const int ManagerProcessor::kMaxProgress = 200;
 ManagerProcessor::ManagerProcessor()
     : m_knownSuffixes(QSet<QString>::fromList(MimeDatabase::suffixes()))
 {
-    const HighlighterSettings &settings = TextEditorSettings::instance()->highlighterSettings();
+    const HighlighterSettings &settings = TextEditorSettings::highlighterSettings();
     m_definitionsPaths.append(settings.definitionFilesPath());
     if (settings.useFallbackLocation())
         m_definitionsPaths.append(settings.fallbackDefinitionFilesPath());
diff --git a/src/plugins/texteditor/plaintexteditor.cpp b/src/plugins/texteditor/plaintexteditor.cpp
index 573961cc236..1e99aa448e7 100644
--- a/src/plugins/texteditor/plaintexteditor.cpp
+++ b/src/plugins/texteditor/plaintexteditor.cpp
@@ -148,12 +148,12 @@ void PlainTextEditorWidget::configure(const MimeType &mimeType)
             }
         } else if (editorDocument()) {
             const QString &fileName = editorDocument()->filePath();
-            if (TextEditorSettings::instance()->highlighterSettings().isIgnoredFilePattern(fileName))
+            if (TextEditorSettings::highlighterSettings().isIgnoredFilePattern(fileName))
                 m_isMissingSyntaxDefinition = false;
         }
     }
 
-    setFontSettings(TextEditorSettings::instance()->fontSettings());
+    setFontSettings(TextEditorSettings::fontSettings());
 
     emit configured(editor());
 }
diff --git a/src/plugins/texteditor/snippets/snippetssettingspage.cpp b/src/plugins/texteditor/snippets/snippetssettingspage.cpp
index d9d2c72312a..c59d510f325 100644
--- a/src/plugins/texteditor/snippets/snippetssettingspage.cpp
+++ b/src/plugins/texteditor/snippets/snippetssettingspage.cpp
@@ -334,7 +334,7 @@ void SnippetsSettingsPagePrivate::configureUi(QWidget *w)
     foreach (ISnippetProvider *provider, providers) {
         m_ui.groupCombo->addItem(provider->displayName(), provider->groupId());
         SnippetEditorWidget *snippetEditor = new SnippetEditorWidget(w);
-        snippetEditor->setFontSettings(TextEditorSettings::instance()->fontSettings());
+        snippetEditor->setFontSettings(TextEditorSettings::fontSettings());
         provider->decorateEditor(snippetEditor);
         m_ui.snippetsEditorStack->insertWidget(m_ui.groupCombo->count() - 1, snippetEditor);
         connect(snippetEditor, SIGNAL(snippetContentChanged()), this, SLOT(setSnippetContent()));
diff --git a/src/plugins/texteditor/syntaxhighlighter.cpp b/src/plugins/texteditor/syntaxhighlighter.cpp
index 0ad601f162e..f2483f9e58c 100644
--- a/src/plugins/texteditor/syntaxhighlighter.cpp
+++ b/src/plugins/texteditor/syntaxhighlighter.cpp
@@ -801,7 +801,7 @@ void SyntaxHighlighter::setTextFormatCategories(const QVector<TextEditor::TextSt
 {
     Q_D(SyntaxHighlighter);
     d->formatCategories = categories;
-    d->updateFormatsForCategories(TextEditorSettings::instance()->fontSettings());
+    d->updateFormatsForCategories(TextEditorSettings::fontSettings());
 }
 
 QTextCharFormat SyntaxHighlighter::formatForCategory(int category) const
diff --git a/src/plugins/texteditor/texteditorplugin.cpp b/src/plugins/texteditor/texteditorplugin.cpp
index f07a2f6f10f..d80b4622209 100644
--- a/src/plugins/texteditor/texteditorplugin.cpp
+++ b/src/plugins/texteditor/texteditorplugin.cpp
@@ -258,7 +258,7 @@ void TextEditorPlugin::initializeEditor(PlainTextEditorWidget *editor)
     // common actions
     m_editorFactory->actionHandler()->setupActions(editor);
 
-    TextEditorSettings::instance()->initializeEditor(editor);
+    TextEditorSettings::initializeEditor(editor);
 }
 
 void TextEditorPlugin::invokeCompletion()
diff --git a/src/plugins/texteditor/texteditorsettings.cpp b/src/plugins/texteditor/texteditorsettings.cpp
index f083d8b2f18..7ad32aa5e10 100644
--- a/src/plugins/texteditor/texteditorsettings.cpp
+++ b/src/plugins/texteditor/texteditorsettings.cpp
@@ -74,37 +74,21 @@ public:
     QMap<QString, Core::Id> m_mimeTypeToLanguage;
 
     CompletionSettings m_completionSettings;
-
-    void fontZoomRequested(int pointSize);
-    void zoomResetRequested();
 };
 
-void TextEditorSettingsPrivate::fontZoomRequested(int zoom)
-{
-    FontSettings &fs = const_cast<FontSettings&>(m_fontSettingsPage->fontSettings());
-    fs.setFontZoom(qMax(10, fs.fontZoom() + zoom));
-    m_fontSettingsPage->saveSettings();
-}
-
-void TextEditorSettingsPrivate::zoomResetRequested()
-{
-    FontSettings &fs = const_cast<FontSettings&>(m_fontSettingsPage->fontSettings());
-    fs.setFontZoom(100);
-    m_fontSettingsPage->saveSettings();
-}
-
 } // namespace Internal
 } // namespace TextEditor
 
 
-TextEditorSettings *TextEditorSettings::m_instance = 0;
+static TextEditorSettingsPrivate *d = 0;
+static TextEditorSettings *m_instance = 0;
 
 TextEditorSettings::TextEditorSettings(QObject *parent)
     : QObject(parent)
-    , m_d(new Internal::TextEditorSettingsPrivate)
 {
     QTC_ASSERT(!m_instance, return);
     m_instance = this;
+    d = new Internal::TextEditorSettingsPrivate;
 
     // Note: default background colors are coming from FormatDescription::background()
 
@@ -279,58 +263,58 @@ TextEditorSettings::TextEditorSettings(QObject *parent)
                                             "in differences (in side-by-side diff editor)."),
                                          Format(QColor(), QColor(175, 255, 175))));
 
-    m_d->m_fontSettingsPage = new FontSettingsPage(formatDescr,
+    d->m_fontSettingsPage = new FontSettingsPage(formatDescr,
                                                    Constants::TEXT_EDITOR_FONT_SETTINGS,
                                                    this);
-    ExtensionSystem::PluginManager::addObject(m_d->m_fontSettingsPage);
+    ExtensionSystem::PluginManager::addObject(d->m_fontSettingsPage);
 
     // Add the GUI used to configure the tab, storage and interaction settings
     TextEditor::BehaviorSettingsPageParameters behaviorSettingsPageParameters;
     behaviorSettingsPageParameters.id = Constants::TEXT_EDITOR_BEHAVIOR_SETTINGS;
     behaviorSettingsPageParameters.displayName = tr("Behavior");
     behaviorSettingsPageParameters.settingsPrefix = QLatin1String("text");
-    m_d->m_behaviorSettingsPage = new BehaviorSettingsPage(behaviorSettingsPageParameters, this);
-    ExtensionSystem::PluginManager::addObject(m_d->m_behaviorSettingsPage);
+    d->m_behaviorSettingsPage = new BehaviorSettingsPage(behaviorSettingsPageParameters, this);
+    ExtensionSystem::PluginManager::addObject(d->m_behaviorSettingsPage);
 
     TextEditor::DisplaySettingsPageParameters displaySettingsPageParameters;
     displaySettingsPageParameters.id = Constants::TEXT_EDITOR_DISPLAY_SETTINGS;
     displaySettingsPageParameters.displayName = tr("Display");
     displaySettingsPageParameters.settingsPrefix = QLatin1String("text");
-    m_d->m_displaySettingsPage = new DisplaySettingsPage(displaySettingsPageParameters, this);
-    ExtensionSystem::PluginManager::addObject(m_d->m_displaySettingsPage);
+    d->m_displaySettingsPage = new DisplaySettingsPage(displaySettingsPageParameters, this);
+    ExtensionSystem::PluginManager::addObject(d->m_displaySettingsPage);
 
-    m_d->m_highlighterSettingsPage =
+    d->m_highlighterSettingsPage =
         new HighlighterSettingsPage(Constants::TEXT_EDITOR_HIGHLIGHTER_SETTINGS, this);
-    ExtensionSystem::PluginManager::addObject(m_d->m_highlighterSettingsPage);
+    ExtensionSystem::PluginManager::addObject(d->m_highlighterSettingsPage);
 
-    m_d->m_snippetsSettingsPage =
+    d->m_snippetsSettingsPage =
         new SnippetsSettingsPage(Constants::TEXT_EDITOR_SNIPPETS_SETTINGS, this);
-    ExtensionSystem::PluginManager::addObject(m_d->m_snippetsSettingsPage);
+    ExtensionSystem::PluginManager::addObject(d->m_snippetsSettingsPage);
 
-    connect(m_d->m_fontSettingsPage, SIGNAL(changed(TextEditor::FontSettings)),
+    connect(d->m_fontSettingsPage, SIGNAL(changed(TextEditor::FontSettings)),
             this, SIGNAL(fontSettingsChanged(TextEditor::FontSettings)));
-    connect(m_d->m_behaviorSettingsPage, SIGNAL(typingSettingsChanged(TextEditor::TypingSettings)),
+    connect(d->m_behaviorSettingsPage, SIGNAL(typingSettingsChanged(TextEditor::TypingSettings)),
             this, SIGNAL(typingSettingsChanged(TextEditor::TypingSettings)));
-    connect(m_d->m_behaviorSettingsPage, SIGNAL(storageSettingsChanged(TextEditor::StorageSettings)),
+    connect(d->m_behaviorSettingsPage, SIGNAL(storageSettingsChanged(TextEditor::StorageSettings)),
             this, SIGNAL(storageSettingsChanged(TextEditor::StorageSettings)));
-    connect(m_d->m_behaviorSettingsPage, SIGNAL(behaviorSettingsChanged(TextEditor::BehaviorSettings)),
+    connect(d->m_behaviorSettingsPage, SIGNAL(behaviorSettingsChanged(TextEditor::BehaviorSettings)),
             this, SIGNAL(behaviorSettingsChanged(TextEditor::BehaviorSettings)));
-    connect(m_d->m_displaySettingsPage, SIGNAL(displaySettingsChanged(TextEditor::DisplaySettings)),
+    connect(d->m_displaySettingsPage, SIGNAL(displaySettingsChanged(TextEditor::DisplaySettings)),
             this, SIGNAL(displaySettingsChanged(TextEditor::DisplaySettings)));
 
     // TODO: Move these settings to TextEditor category
-    m_d->m_completionSettings.fromSettings(QLatin1String("CppTools/"), Core::ICore::settings());
+    d->m_completionSettings.fromSettings(QLatin1String("CppTools/"), Core::ICore::settings());
 }
 
 TextEditorSettings::~TextEditorSettings()
 {
-    ExtensionSystem::PluginManager::removeObject(m_d->m_fontSettingsPage);
-    ExtensionSystem::PluginManager::removeObject(m_d->m_behaviorSettingsPage);
-    ExtensionSystem::PluginManager::removeObject(m_d->m_displaySettingsPage);
-    ExtensionSystem::PluginManager::removeObject(m_d->m_highlighterSettingsPage);
-    ExtensionSystem::PluginManager::removeObject(m_d->m_snippetsSettingsPage);
+    ExtensionSystem::PluginManager::removeObject(d->m_fontSettingsPage);
+    ExtensionSystem::PluginManager::removeObject(d->m_behaviorSettingsPage);
+    ExtensionSystem::PluginManager::removeObject(d->m_displaySettingsPage);
+    ExtensionSystem::PluginManager::removeObject(d->m_highlighterSettingsPage);
+    ExtensionSystem::PluginManager::removeObject(d->m_snippetsSettingsPage);
 
-    delete m_d;
+    delete d;
 
     m_instance = 0;
 }
@@ -347,25 +331,25 @@ TextEditorSettings *TextEditorSettings::instance()
 void TextEditorSettings::initializeEditor(BaseTextEditorWidget *editor)
 {
     // Connect to settings change signals
-    connect(this, SIGNAL(fontSettingsChanged(TextEditor::FontSettings)),
+    connect(m_instance, SIGNAL(fontSettingsChanged(TextEditor::FontSettings)),
             editor, SLOT(setFontSettingsIfVisible(TextEditor::FontSettings)));
-    connect(this, SIGNAL(typingSettingsChanged(TextEditor::TypingSettings)),
+    connect(m_instance, SIGNAL(typingSettingsChanged(TextEditor::TypingSettings)),
             editor, SLOT(setTypingSettings(TextEditor::TypingSettings)));
-    connect(this, SIGNAL(storageSettingsChanged(TextEditor::StorageSettings)),
+    connect(m_instance, SIGNAL(storageSettingsChanged(TextEditor::StorageSettings)),
             editor, SLOT(setStorageSettings(TextEditor::StorageSettings)));
-    connect(this, SIGNAL(behaviorSettingsChanged(TextEditor::BehaviorSettings)),
+    connect(m_instance, SIGNAL(behaviorSettingsChanged(TextEditor::BehaviorSettings)),
             editor, SLOT(setBehaviorSettings(TextEditor::BehaviorSettings)));
-    connect(this, SIGNAL(displaySettingsChanged(TextEditor::DisplaySettings)),
+    connect(m_instance, SIGNAL(displaySettingsChanged(TextEditor::DisplaySettings)),
             editor, SLOT(setDisplaySettings(TextEditor::DisplaySettings)));
-    connect(this, SIGNAL(completionSettingsChanged(TextEditor::CompletionSettings)),
+    connect(m_instance, SIGNAL(completionSettingsChanged(TextEditor::CompletionSettings)),
             editor, SLOT(setCompletionSettings(TextEditor::CompletionSettings)));
-    connect(this, SIGNAL(extraEncodingSettingsChanged(TextEditor::ExtraEncodingSettings)),
+    connect(m_instance, SIGNAL(extraEncodingSettingsChanged(TextEditor::ExtraEncodingSettings)),
             editor, SLOT(setExtraEncodingSettings(TextEditor::ExtraEncodingSettings)));
 
     connect(editor, SIGNAL(requestFontZoom(int)),
-            this, SLOT(fontZoomRequested(int)));
+            m_instance, SLOT(fontZoomRequested(int)));
     connect(editor, SIGNAL(requestZoomReset()),
-            this, SLOT(zoomResetRequested()));
+            m_instance, SLOT(zoomResetRequested()));
 
     // Apply current settings (tab settings depend on font settings)
     editor->setFontSettings(fontSettings());
@@ -379,130 +363,142 @@ void TextEditorSettings::initializeEditor(BaseTextEditorWidget *editor)
     editor->setCodeStyle(codeStyle(editor->languageSettingsId()));
 }
 
-const FontSettings &TextEditorSettings::fontSettings() const
+const FontSettings &TextEditorSettings::fontSettings()
 {
-    return m_d->m_fontSettingsPage->fontSettings();
+    return d->m_fontSettingsPage->fontSettings();
 }
 
-const TypingSettings &TextEditorSettings::typingSettings() const
+const TypingSettings &TextEditorSettings::typingSettings()
 {
-    return m_d->m_behaviorSettingsPage->typingSettings();
+    return d->m_behaviorSettingsPage->typingSettings();
 }
 
-const StorageSettings &TextEditorSettings::storageSettings() const
+const StorageSettings &TextEditorSettings::storageSettings()
 {
-    return m_d->m_behaviorSettingsPage->storageSettings();
+    return d->m_behaviorSettingsPage->storageSettings();
 }
 
-const BehaviorSettings &TextEditorSettings::behaviorSettings() const
+const BehaviorSettings &TextEditorSettings::behaviorSettings()
 {
-    return m_d->m_behaviorSettingsPage->behaviorSettings();
+    return d->m_behaviorSettingsPage->behaviorSettings();
 }
 
-const DisplaySettings &TextEditorSettings::displaySettings() const
+const DisplaySettings &TextEditorSettings::displaySettings()
 {
-    return m_d->m_displaySettingsPage->displaySettings();
+    return d->m_displaySettingsPage->displaySettings();
 }
 
-const CompletionSettings &TextEditorSettings::completionSettings() const
+const CompletionSettings &TextEditorSettings::completionSettings()
 {
-    return m_d->m_completionSettings;
+    return d->m_completionSettings;
 }
 
-const HighlighterSettings &TextEditorSettings::highlighterSettings() const
+const HighlighterSettings &TextEditorSettings::highlighterSettings()
 {
-    return m_d->m_highlighterSettingsPage->highlighterSettings();
+    return d->m_highlighterSettingsPage->highlighterSettings();
 }
 
-const ExtraEncodingSettings &TextEditorSettings::extraEncodingSettings() const
+const ExtraEncodingSettings &TextEditorSettings::extraEncodingSettings()
 {
-    return m_d->m_behaviorSettingsPage->extraEncodingSettings();
+    return d->m_behaviorSettingsPage->extraEncodingSettings();
 }
 
 void TextEditorSettings::setCompletionSettings(const TextEditor::CompletionSettings &settings)
 {
-    if (m_d->m_completionSettings == settings)
+    if (d->m_completionSettings == settings)
         return;
 
-    m_d->m_completionSettings = settings;
-    m_d->m_completionSettings.toSettings(QLatin1String("CppTools/"), Core::ICore::settings());
+    d->m_completionSettings = settings;
+    d->m_completionSettings.toSettings(QLatin1String("CppTools/"), Core::ICore::settings());
 
-    emit completionSettingsChanged(m_d->m_completionSettings);
+    emit m_instance->completionSettingsChanged(d->m_completionSettings);
 }
 
 void TextEditorSettings::registerCodeStyleFactory(ICodeStylePreferencesFactory *factory)
 {
-    m_d->m_languageToFactory.insert(factory->languageId(), factory);
+    d->m_languageToFactory.insert(factory->languageId(), factory);
 }
 
 void TextEditorSettings::unregisterCodeStyleFactory(Core::Id languageId)
 {
-    m_d->m_languageToFactory.remove(languageId);
+    d->m_languageToFactory.remove(languageId);
 }
 
-QMap<Core::Id, ICodeStylePreferencesFactory *> TextEditorSettings::codeStyleFactories() const
+QMap<Core::Id, ICodeStylePreferencesFactory *> TextEditorSettings::codeStyleFactories()
 {
-    return m_d->m_languageToFactory;
+    return d->m_languageToFactory;
 }
 
-ICodeStylePreferencesFactory *TextEditorSettings::codeStyleFactory(Core::Id languageId) const
+ICodeStylePreferencesFactory *TextEditorSettings::codeStyleFactory(Core::Id languageId)
 {
-    return m_d->m_languageToFactory.value(languageId);
+    return d->m_languageToFactory.value(languageId);
 }
 
-ICodeStylePreferences *TextEditorSettings::codeStyle() const
+ICodeStylePreferences *TextEditorSettings::codeStyle()
 {
-    return m_d->m_behaviorSettingsPage->codeStyle();
+    return d->m_behaviorSettingsPage->codeStyle();
 }
 
-ICodeStylePreferences *TextEditorSettings::codeStyle(Core::Id languageId) const
+ICodeStylePreferences *TextEditorSettings::codeStyle(Core::Id languageId)
 {
-    return m_d->m_languageToCodeStyle.value(languageId, codeStyle());
+    return d->m_languageToCodeStyle.value(languageId, codeStyle());
 }
 
-QMap<Core::Id, ICodeStylePreferences *> TextEditorSettings::codeStyles() const
+QMap<Core::Id, ICodeStylePreferences *> TextEditorSettings::codeStyles()
 {
-    return m_d->m_languageToCodeStyle;
+    return d->m_languageToCodeStyle;
 }
 
 void TextEditorSettings::registerCodeStyle(Core::Id languageId, ICodeStylePreferences *prefs)
 {
-    m_d->m_languageToCodeStyle.insert(languageId, prefs);
+    d->m_languageToCodeStyle.insert(languageId, prefs);
 }
 
 void TextEditorSettings::unregisterCodeStyle(Core::Id languageId)
 {
-    m_d->m_languageToCodeStyle.remove(languageId);
+    d->m_languageToCodeStyle.remove(languageId);
 }
 
-CodeStylePool *TextEditorSettings::codeStylePool() const
+CodeStylePool *TextEditorSettings::codeStylePool()
 {
-    return m_d->m_behaviorSettingsPage->codeStylePool();
+    return d->m_behaviorSettingsPage->codeStylePool();
 }
 
-CodeStylePool *TextEditorSettings::codeStylePool(Core::Id languageId) const
+CodeStylePool *TextEditorSettings::codeStylePool(Core::Id languageId)
 {
-    return m_d->m_languageToCodeStylePool.value(languageId);
+    return d->m_languageToCodeStylePool.value(languageId);
 }
 
 void TextEditorSettings::registerCodeStylePool(Core::Id languageId, CodeStylePool *pool)
 {
-    m_d->m_languageToCodeStylePool.insert(languageId, pool);
+    d->m_languageToCodeStylePool.insert(languageId, pool);
 }
 
 void TextEditorSettings::unregisterCodeStylePool(Core::Id languageId)
 {
-    m_d->m_languageToCodeStylePool.remove(languageId);
+    d->m_languageToCodeStylePool.remove(languageId);
 }
 
 void TextEditorSettings::registerMimeTypeForLanguageId(const QString &mimeType, Core::Id languageId)
 {
-    m_d->m_mimeTypeToLanguage.insert(mimeType, languageId);
+    d->m_mimeTypeToLanguage.insert(mimeType, languageId);
+}
+
+Core::Id TextEditorSettings::languageId(const QString &mimeType)
+{
+    return d->m_mimeTypeToLanguage.value(mimeType);
 }
 
-Core::Id TextEditorSettings::languageId(const QString &mimeType) const
+void TextEditorSettings::fontZoomRequested(int zoom)
 {
-    return m_d->m_mimeTypeToLanguage.value(mimeType);
+    FontSettings &fs = const_cast<FontSettings&>(d->m_fontSettingsPage->fontSettings());
+    fs.setFontZoom(qMax(10, fs.fontZoom() + zoom));
+    d->m_fontSettingsPage->saveSettings();
 }
 
-#include "moc_texteditorsettings.cpp"
+void TextEditorSettings::zoomResetRequested()
+{
+    FontSettings &fs = const_cast<FontSettings&>(d->m_fontSettingsPage->fontSettings());
+    fs.setFontZoom(100);
+    d->m_fontSettingsPage->saveSettings();
+}
diff --git a/src/plugins/texteditor/texteditorsettings.h b/src/plugins/texteditor/texteditorsettings.h
index 5bd56ced17f..f99030ae657 100644
--- a/src/plugins/texteditor/texteditorsettings.h
+++ b/src/plugins/texteditor/texteditorsettings.h
@@ -57,10 +57,6 @@ class ICodeStylePreferences;
 class ICodeStylePreferencesFactory;
 class CodeStylePool;
 
-namespace Internal {
-class TextEditorSettingsPrivate;
-}
-
 /**
  * This class provides a central place for basic text editor settings. These
  * settings include font settings, tab settings, storage settings, behavior
@@ -76,37 +72,37 @@ public:
 
     static TextEditorSettings *instance();
 
-    void initializeEditor(BaseTextEditorWidget *editor);
+    static void initializeEditor(BaseTextEditorWidget *editor);
 
-    const FontSettings &fontSettings() const;
-    const TypingSettings &typingSettings() const;
-    const StorageSettings &storageSettings() const;
-    const BehaviorSettings &behaviorSettings() const;
-    const DisplaySettings &displaySettings() const;
-    const CompletionSettings &completionSettings() const;
-    const HighlighterSettings &highlighterSettings() const;
-    const ExtraEncodingSettings &extraEncodingSettings() const;
+    static const FontSettings &fontSettings();
+    static const TypingSettings &typingSettings();
+    static const StorageSettings &storageSettings();
+    static const BehaviorSettings &behaviorSettings();
+    static const DisplaySettings &displaySettings();
+    static const CompletionSettings &completionSettings();
+    static const HighlighterSettings &highlighterSettings();
+    static const ExtraEncodingSettings &extraEncodingSettings();
 
-    void setCompletionSettings(const TextEditor::CompletionSettings &);
+    static void setCompletionSettings(const TextEditor::CompletionSettings &);
 
-    ICodeStylePreferencesFactory *codeStyleFactory(Core::Id languageId) const;
-    QMap<Core::Id, ICodeStylePreferencesFactory *> codeStyleFactories() const;
-    void registerCodeStyleFactory(ICodeStylePreferencesFactory *codeStyleFactory);
-    void unregisterCodeStyleFactory(Core::Id languageId);
+    static ICodeStylePreferencesFactory *codeStyleFactory(Core::Id languageId);
+    static QMap<Core::Id, ICodeStylePreferencesFactory *> codeStyleFactories();
+    static void registerCodeStyleFactory(ICodeStylePreferencesFactory *codeStyleFactory);
+    static 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);
+    static CodeStylePool *codeStylePool();
+    static CodeStylePool *codeStylePool(Core::Id languageId);
+    static void registerCodeStylePool(Core::Id languageId, CodeStylePool *pool);
+    static void unregisterCodeStylePool(Core::Id languageId);
 
-    ICodeStylePreferences *codeStyle() const;
-    ICodeStylePreferences *codeStyle(Core::Id languageId) const;
-    QMap<Core::Id, ICodeStylePreferences *> codeStyles() const;
-    void registerCodeStyle(Core::Id languageId, ICodeStylePreferences *prefs);
-    void unregisterCodeStyle(Core::Id languageId);
+    static ICodeStylePreferences *codeStyle();
+    static ICodeStylePreferences *codeStyle(Core::Id languageId);
+    static QMap<Core::Id, ICodeStylePreferences *> codeStyles();
+    static void registerCodeStyle(Core::Id languageId, ICodeStylePreferences *prefs);
+    static void unregisterCodeStyle(Core::Id languageId);
 
-    void registerMimeTypeForLanguageId(const QString &mimeType, Core::Id languageId);
-    Core::Id languageId(const QString &mimeType) const;
+    static void registerMimeTypeForLanguageId(const QString &mimeType, Core::Id languageId);
+    static Core::Id languageId(const QString &mimeType);
 
 signals:
     void fontSettingsChanged(const TextEditor::FontSettings &);
@@ -117,12 +113,9 @@ signals:
     void completionSettingsChanged(const TextEditor::CompletionSettings &);
     void extraEncodingSettingsChanged(const TextEditor::ExtraEncodingSettings &);
 
-private:
-    Internal::TextEditorSettingsPrivate *m_d;
-    Q_PRIVATE_SLOT(m_d, void fontZoomRequested(int pointSize))
-    Q_PRIVATE_SLOT(m_d, void zoomResetRequested())
-
-    static TextEditorSettings *m_instance;
+private slots:
+    void fontZoomRequested(int zoom);
+    void zoomResetRequested();
 };
 
 } // namespace TextEditor
diff --git a/src/plugins/vcsbase/basevcseditorfactory.cpp b/src/plugins/vcsbase/basevcseditorfactory.cpp
index 924fa3c1d4e..9d085ab639e 100644
--- a/src/plugins/vcsbase/basevcseditorfactory.cpp
+++ b/src/plugins/vcsbase/basevcseditorfactory.cpp
@@ -86,10 +86,9 @@ Core::IEditor *BaseVcsEditorFactory::createEditor(QWidget *parent)
     d->m_editorHandler->setupActions(vcsEditor);
 
     // Wire font settings and set initial values
-    TextEditor::TextEditorSettings *settings = TextEditor::TextEditorSettings::instance();
-    connect(settings, SIGNAL(fontSettingsChanged(TextEditor::FontSettings)),
+    connect(TextEditor::TextEditorSettings::instance(), SIGNAL(fontSettingsChanged(TextEditor::FontSettings)),
             vcsEditor, SLOT(setFontSettings(TextEditor::FontSettings)));
-    vcsEditor->setFontSettings(settings->fontSettings());
+    vcsEditor->setFontSettings(TextEditor::TextEditorSettings::fontSettings());
     return vcsEditor->editor();
 }
 
diff --git a/src/plugins/vcsbase/vcsbaseeditor.cpp b/src/plugins/vcsbase/vcsbaseeditor.cpp
index 5f628309816..714843f1ef3 100644
--- a/src/plugins/vcsbase/vcsbaseeditor.cpp
+++ b/src/plugins/vcsbase/vcsbaseeditor.cpp
@@ -703,7 +703,7 @@ void VcsBaseEditorWidget::init()
         setCodeFoldingSupported(true);
         baseTextDocument()->setSyntaxHighlighter(dh);
     }
-    TextEditor::TextEditorSettings::instance()->initializeEditor(this);
+    TextEditor::TextEditorSettings::initializeEditor(this);
     // override revisions display (green or red bar on the left, marking changes):
     setRevisionsVisible(false);
 }
diff --git a/src/plugins/vcsbase/vcsbasesubmiteditor.cpp b/src/plugins/vcsbase/vcsbasesubmiteditor.cpp
index d532318d256..2f30cc16462 100644
--- a/src/plugins/vcsbase/vcsbasesubmiteditor.cpp
+++ b/src/plugins/vcsbase/vcsbasesubmiteditor.cpp
@@ -187,7 +187,7 @@ VcsBaseSubmitEditor::VcsBaseSubmitEditor(const VcsBaseSubmitEditorParameters *pa
 
     // Message font according to settings
     Utils::CompletingTextEdit *descriptionEdit = editorWidget->descriptionEdit();
-    const TextEditor::FontSettings fs = TextEditor::TextEditorSettings::instance()->fontSettings();
+    const TextEditor::FontSettings fs = TextEditor::TextEditorSettings::fontSettings();
     const QTextCharFormat tf = fs.toTextCharFormat(TextEditor::C_TEXT);
     descriptionEdit->setFont(tf.font());
     const QTextCharFormat selectionFormat = fs.toTextCharFormat(TextEditor::C_SELECTION);
-- 
GitLab