From a37589d431844a64031d3044787c15f8dddace45 Mon Sep 17 00:00:00 2001
From: hjk <hjk121@nokiamail.com>
Date: Fri, 30 Aug 2013 16:38:57 +0200
Subject: [PATCH] Apply 'static' pattern to MimeDatabase

Also adjust and streamline using and surrounding code.

Change-Id: I6a8b05126bdcbb74ff611b21c7cb3c5902a2d5ca
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
---
 src/plugins/android/androidplugin.cpp         |   2 +-
 .../autotoolsprojectplugin.cpp                |   3 +-
 src/plugins/clearcase/clearcaseplugin.cpp     |   2 +-
 .../cmakeprojectplugin.cpp                    |   3 +-
 src/plugins/coreplugin/basefilewizard.cpp     |  28 +--
 src/plugins/coreplugin/documentmanager.cpp    |   4 +-
 .../editormanager/editormanager.cpp           |  27 ++-
 src/plugins/coreplugin/icore.cpp              |  12 -
 src/plugins/coreplugin/icore.h                |   2 -
 src/plugins/coreplugin/mimedatabase.cpp       | 116 +++++-----
 src/plugins/coreplugin/mimedatabase.h         |  63 ++----
 src/plugins/coreplugin/mimetypesettings.cpp   |  17 +-
 src/plugins/cpaster/cpasterplugin.cpp         |   2 +-
 src/plugins/cppeditor/cppclasswizard.cpp      |   5 +-
 src/plugins/cppeditor/cppeditor.cpp           |   5 +-
 src/plugins/cppeditor/cppeditorplugin.cpp     |   9 +-
 src/plugins/cpptools/cppcompletionassist.cpp  |   5 +-
 src/plugins/cpptools/cppfilesettingspage.cpp  |  10 +-
 src/plugins/cpptools/cppprojectfile.cpp       |   6 +-
 src/plugins/cpptools/cpptoolsplugin.cpp       |  38 ++--
 src/plugins/cvs/cvsplugin.cpp                 |   2 +-
 src/plugins/debugger/disassembleragent.cpp    |   2 +-
 .../designer/cpp/formclasswizardpage.cpp      |   5 +-
 src/plugins/designer/formeditorplugin.cpp     |  14 +-
 src/plugins/designer/formeditorw.cpp          | 206 +++++++++---------
 src/plugins/designer/qtcreatorintegration.cpp |   3 +-
 src/plugins/diffeditor/diffeditorwidget.cpp   |   4 +-
 .../genericprojectplugin.cpp                  |  14 +-
 .../genericprojectwizard.cpp                  |   4 +-
 src/plugins/git/gitplugin.cpp                 |   2 +-
 src/plugins/glsleditor/glsleditor.cpp         |   4 +-
 src/plugins/glsleditor/glsleditorplugin.cpp   |  13 +-
 src/plugins/imageviewer/imageviewerplugin.cpp |   2 +-
 src/plugins/perforce/perforceplugin.cpp       |   2 +-
 .../customwizard/customwizardparameters.cpp   |   5 +-
 .../projectexplorer/pluginfilefactory.cpp     |   2 +-
 .../projectexplorer/projectexplorer.cpp       |   8 +-
 .../projectfilewizardextension.cpp            |   3 +-
 src/plugins/pythoneditor/pythoneditor.cpp     |  11 +-
 .../pythoneditor/pythoneditorplugin.cpp       |  12 +-
 src/plugins/qmljseditor/qmljseditor.cpp       |  19 +-
 src/plugins/qmljstools/qmljsmodelmanager.cpp  |  27 +--
 src/plugins/qmljstools/qmljstoolsplugin.cpp   |   3 +-
 .../qmlprojectmanager/qmlprojectplugin.cpp    |  11 +-
 .../qmlprojectrunconfiguration.cpp            |  23 +-
 src/plugins/qnx/qnxplugin.cpp                 |   2 +-
 src/plugins/qt4projectmanager/qt4nodes.cpp    |  12 +-
 .../qt4projectmanagerplugin.cpp               |   2 +-
 src/plugins/qtsupport/qtsupportplugin.cpp     |  15 +-
 .../resourceeditor/resourceeditorplugin.cpp   |   2 +-
 src/plugins/subversion/subversionplugin.cpp   |   2 +-
 src/plugins/tasklist/tasklistplugin.cpp       |   2 +-
 .../generichighlighter/highlighterutils.cpp   |   3 +-
 .../texteditor/generichighlighter/manager.cpp |   9 +-
 src/plugins/texteditor/plaintexteditor.cpp    |  14 +-
 src/plugins/texteditor/texteditorplugin.cpp   |   2 +-
 src/plugins/vcsbase/vcsplugin.cpp             |   3 +-
 57 files changed, 362 insertions(+), 466 deletions(-)

diff --git a/src/plugins/android/androidplugin.cpp b/src/plugins/android/androidplugin.cpp
index da22d925d14..508b4ce93d6 100644
--- a/src/plugins/android/androidplugin.cpp
+++ b/src/plugins/android/androidplugin.cpp
@@ -89,7 +89,7 @@ bool AndroidPlugin::initialize(const QStringList &arguments, QString *errorMessa
     androidManifestMimeType.setGlobPatterns(QList<Core::MimeGlobPattern>() << androidManifestGlobPattern);
     androidManifestMimeType.setSubClassesOf(QStringList() << QLatin1String("application/xml"));
 
-    if (!Core::ICore::mimeDatabase()->addMimeType(androidManifestMimeType)) {
+    if (!Core::MimeDatabase::addMimeType(androidManifestMimeType)) {
         *errorMessage = tr("Could not add mime-type for AndroidManifest.xml editor.");
         return false;
     }
diff --git a/src/plugins/autotoolsprojectmanager/autotoolsprojectplugin.cpp b/src/plugins/autotoolsprojectmanager/autotoolsprojectplugin.cpp
index 9e4865e3ec5..fbf9d48ddda 100644
--- a/src/plugins/autotoolsprojectmanager/autotoolsprojectplugin.cpp
+++ b/src/plugins/autotoolsprojectmanager/autotoolsprojectplugin.cpp
@@ -38,7 +38,6 @@
 #include "configurestep.h"
 #include "autotoolsprojectconstants.h"
 
-#include <coreplugin/icore.h>
 #include <coreplugin/mimedatabase.h>
 
 #include <QStringList>
@@ -59,7 +58,7 @@ bool AutotoolsProjectPlugin::initialize(const QStringList &arguments,
 {
     Q_UNUSED(arguments);
 
-    if (!Core::ICore::mimeDatabase()->addMimeTypes(QLatin1String(":autotoolsproject/AutotoolsProjectManager.mimetypes.xml"), errorString))
+    if (!Core::MimeDatabase::addMimeTypes(QLatin1String(":autotoolsproject/AutotoolsProjectManager.mimetypes.xml"), errorString))
         return false;
 
     addAutoReleasedObject(new AutotoolsBuildConfigurationFactory);
diff --git a/src/plugins/clearcase/clearcaseplugin.cpp b/src/plugins/clearcase/clearcaseplugin.cpp
index 2bcf55c58d3..6391b0c59b3 100644
--- a/src/plugins/clearcase/clearcaseplugin.cpp
+++ b/src/plugins/clearcase/clearcaseplugin.cpp
@@ -374,7 +374,7 @@ bool ClearCasePlugin::initialize(const QStringList & /*arguments */, QString *er
     connect(ProgressManager::instance(), SIGNAL(allTasksFinished(QString)),
             this, SLOT(tasksFinished(QString)));
 
-    if (!ICore::mimeDatabase()->addMimeTypes(QLatin1String(":/clearcase/ClearCase.mimetypes.xml"), errorMessage))
+    if (!MimeDatabase::addMimeTypes(QLatin1String(":/clearcase/ClearCase.mimetypes.xml"), errorMessage))
         return false;
 
     m_settings.fromSettings(ICore::settings());
diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectplugin.cpp b/src/plugins/cmakeprojectmanager/cmakeprojectplugin.cpp
index 3f06dab0ab9..f72650ba4bc 100644
--- a/src/plugins/cmakeprojectmanager/cmakeprojectplugin.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakeprojectplugin.cpp
@@ -39,7 +39,6 @@
 #include "cmakehighlighterfactory.h"
 
 #include <coreplugin/featureprovider.h>
-#include <coreplugin/icore.h>
 #include <coreplugin/mimedatabase.h>
 #include <texteditor/texteditoractionhandler.h>
 
@@ -69,7 +68,7 @@ CMakeProjectPlugin::~CMakeProjectPlugin()
 
 bool CMakeProjectPlugin::initialize(const QStringList & /*arguments*/, QString *errorMessage)
 {
-    if (!Core::ICore::mimeDatabase()->addMimeTypes(QLatin1String(":cmakeproject/CMakeProjectManager.mimetypes.xml"), errorMessage))
+    if (!Core::MimeDatabase::addMimeTypes(QLatin1String(":cmakeproject/CMakeProjectManager.mimetypes.xml"), errorMessage))
         return false;
     CMakeSettingsPage *cmp = new CMakeSettingsPage();
     addAutoReleasedObject(cmp);
diff --git a/src/plugins/coreplugin/basefilewizard.cpp b/src/plugins/coreplugin/basefilewizard.cpp
index d8c927455cc..1b7344b4e8c 100644
--- a/src/plugins/coreplugin/basefilewizard.cpp
+++ b/src/plugins/coreplugin/basefilewizard.cpp
@@ -77,8 +77,8 @@ public:
     QString id;
     QString category;
     QString displayCategory;
-    Core::FeatureSet requiredFeatures;
-    Core::IWizard::WizardFlags flags;
+    FeatureSet requiredFeatures;
+    IWizard::WizardFlags flags;
     QString descriptionImage;
 };
 
@@ -210,12 +210,12 @@ QString BaseFileWizardParameters::displayCategory() const
     return m_d->displayCategory;
 }
 
-Core::FeatureSet BaseFileWizardParameters::requiredFeatures() const
+FeatureSet BaseFileWizardParameters::requiredFeatures() const
 {
     return m_d->requiredFeatures;
 }
 
-void BaseFileWizardParameters::setRequiredFeatures(Core::FeatureSet features)
+void BaseFileWizardParameters::setRequiredFeatures(FeatureSet features)
 {
 
     m_d->requiredFeatures = features;
@@ -226,12 +226,12 @@ void BaseFileWizardParameters::setDisplayCategory(const QString &v)
     m_d->displayCategory = v;
 }
 
-Core::IWizard::WizardFlags BaseFileWizardParameters::flags() const
+IWizard::WizardFlags BaseFileWizardParameters::flags() const
 {
     return m_d->flags;
 }
 
-void BaseFileWizardParameters::setFlags(Core::IWizard::WizardFlags flags)
+void BaseFileWizardParameters::setFlags(IWizard::WizardFlags flags)
 {
     m_d->flags = flags;
 }
@@ -537,8 +537,8 @@ void BaseFileWizard::runWizard(const QString &path, QWidget *parent, const QStri
 
     if (removeOpenProjectAttribute) {
         for (int i = 0; i < files.count(); i++) {
-            if (files[i].attributes() & Core::GeneratedFile::OpenProjectAttribute)
-                files[i].setAttributes(Core::GeneratedFile::OpenEditorAttribute);
+            if (files[i].attributes() & GeneratedFile::OpenProjectAttribute)
+                files[i].setAttributes(GeneratedFile::OpenEditorAttribute);
         }
     }
 
@@ -549,12 +549,12 @@ void BaseFileWizard::runWizard(const QString &path, QWidget *parent, const QStri
 }
 
 
-Core::FeatureSet BaseFileWizard::requiredFeatures() const
+FeatureSet BaseFileWizard::requiredFeatures() const
 {
     return d->m_parameters.requiredFeatures();
 }
 
-Core::IWizard::WizardFlags BaseFileWizard::flags() const
+IWizard::WizardFlags BaseFileWizard::flags() const
 {
     return d->m_parameters.flags();
 }
@@ -649,9 +649,9 @@ bool BaseFileWizard::postGenerateFiles(const QWizard *, const GeneratedFiles &l,
 
 bool BaseFileWizard::postGenerateOpenEditors(const GeneratedFiles &l, QString *errorMessage)
 {
-    foreach (const Core::GeneratedFile &file, l) {
-        if (file.attributes() & Core::GeneratedFile::OpenEditorAttribute) {
-            if (!Core::EditorManager::openEditor(file.path(), file.editorId())) {
+    foreach (const GeneratedFile &file, l) {
+        if (file.attributes() & GeneratedFile::OpenEditorAttribute) {
+            if (!EditorManager::openEditor(file.path(), file.editorId())) {
                 if (errorMessage)
                     *errorMessage = tr("Failed to open an editor for '%1'.").arg(QDir::toNativeSeparators(file.path()));
                 return false;
@@ -773,7 +773,7 @@ QString BaseFileWizard::buildFileName(const QString &path,
 
 QString BaseFileWizard::preferredSuffix(const QString &mimeType)
 {
-    const QString rc = Core::ICore::mimeDatabase()->preferredSuffixByType(mimeType);
+    const QString rc = MimeDatabase::preferredSuffixByType(mimeType);
     if (rc.isEmpty())
         qWarning("%s: WARNING: Unable to find a preferred suffix for %s.",
                  Q_FUNC_INFO, mimeType.toUtf8().constData());
diff --git a/src/plugins/coreplugin/documentmanager.cpp b/src/plugins/coreplugin/documentmanager.cpp
index ee56bb55938..0ff4218857e 100644
--- a/src/plugins/coreplugin/documentmanager.cpp
+++ b/src/plugins/coreplugin/documentmanager.cpp
@@ -759,7 +759,7 @@ QString DocumentManager::getSaveAsFileName(const IDocument *document, const QStr
 
     QString filterString;
     if (filter.isEmpty()) {
-        if (const MimeType &mt = Core::ICore::mimeDatabase()->findByFile(fi))
+        if (const MimeType &mt = MimeDatabase::findByFile(fi))
             filterString = mt.filterString();
         selectedFilter = &filterString;
     } else {
@@ -1298,7 +1298,7 @@ void DocumentManager::populateOpenWithMenu(QMenu *menu, const QString &fileName)
 
     bool anyMatches = false;
 
-    if (const MimeType mt = ICore::mimeDatabase()->findByFile(QFileInfo(fileName))) {
+    if (const MimeType mt = MimeDatabase::findByFile(QFileInfo(fileName))) {
         const EditorFactoryList factories = EditorManager::editorFactories(mt, false);
         const ExternalEditorList externalEditors = EditorManager::externalEditors(mt, false);
         anyMatches = !factories.empty() || !externalEditors.empty();
diff --git a/src/plugins/coreplugin/editormanager/editormanager.cpp b/src/plugins/coreplugin/editormanager/editormanager.cpp
index b75a9ab6c36..8449aba41cb 100644
--- a/src/plugins/coreplugin/editormanager/editormanager.cpp
+++ b/src/plugins/coreplugin/editormanager/editormanager.cpp
@@ -1280,8 +1280,7 @@ Core::IEditor *EditorManager::activateEditorForDocument(Core::Internal::EditorVi
  * or IExternalEditor), find the one best matching the mimetype passed in.
  *  Recurse over the parent classes of the mimetype to find them. */
 template <class EditorFactoryLike>
-static void mimeTypeFactoryRecursion(const MimeDatabase *db,
-                                     const MimeType &mimeType,
+static void mimeTypeFactoryRecursion(const MimeType &mimeType,
                                      const QList<EditorFactoryLike*> &allFactories,
                                      bool firstMatchOnly,
                                      QList<EditorFactoryLike*> *list)
@@ -1305,8 +1304,8 @@ static void mimeTypeFactoryRecursion(const MimeDatabase *db,
         return;
     const QStringList::const_iterator pcend = parentTypes .constEnd();
     for (QStringList::const_iterator pit = parentTypes .constBegin(); pit != pcend; ++pit) {
-        if (const MimeType parent = db->findByType(*pit))
-            mimeTypeFactoryRecursion(db, parent, allFactories, firstMatchOnly, list);
+        if (const MimeType parent = MimeDatabase::findByType(*pit))
+            mimeTypeFactoryRecursion(parent, allFactories, firstMatchOnly, list);
     }
 }
 
@@ -1315,7 +1314,7 @@ EditorManager::EditorFactoryList
 {
     EditorFactoryList rc;
     const EditorFactoryList allFactories = ExtensionSystem::PluginManager::getObjects<IEditorFactory>();
-    mimeTypeFactoryRecursion(ICore::mimeDatabase(), mimeType, allFactories, bestMatchOnly, &rc);
+    mimeTypeFactoryRecursion(mimeType, allFactories, bestMatchOnly, &rc);
     if (debugEditorManager)
         qDebug() << Q_FUNC_INFO << mimeType.type() << " returns " << rc;
     return rc;
@@ -1326,7 +1325,7 @@ EditorManager::ExternalEditorList
 {
     ExternalEditorList rc;
     const ExternalEditorList allEditors = ExtensionSystem::PluginManager::getObjects<IExternalEditor>();
-    mimeTypeFactoryRecursion(ICore::mimeDatabase(), mimeType, allEditors, bestMatchOnly, &rc);
+    mimeTypeFactoryRecursion(mimeType, allEditors, bestMatchOnly, &rc);
     if (debugEditorManager)
         qDebug() << Q_FUNC_INFO << mimeType.type() << " returns " << rc;
     return rc;
@@ -1353,15 +1352,15 @@ IEditor *EditorManager::createEditor(const Id &editorId, const QString &fileName
     if (!editorId.isValid()) {
         const QFileInfo fileInfo(fileName);
         // Find by mime type
-        MimeType mimeType = ICore::mimeDatabase()->findByFile(fileInfo);
+        MimeType mimeType = MimeDatabase::findByFile(fileInfo);
         if (!mimeType) {
             qWarning("%s unable to determine mime type of %s/%s. Falling back to text/plain",
                      Q_FUNC_INFO, fileName.toUtf8().constData(), editorId.name().constData());
-            mimeType = ICore::mimeDatabase()->findByType(QLatin1String("text/plain"));
+            mimeType = MimeDatabase::findByType(QLatin1String("text/plain"));
         }
         // open text files > 48 MB in binary editor
         if (fileInfo.size() >  maxTextFileSize() && mimeType.type().startsWith(QLatin1String("text")))
-            mimeType = ICore::mimeDatabase()->findByType(QLatin1String("application/octet-stream"));
+            mimeType = MimeDatabase::findByType(QLatin1String("application/octet-stream"));
         factories = editorFactories(mimeType, true);
     } else {
         // Find by editor id
@@ -1406,10 +1405,10 @@ Core::Id EditorManager::getOpenWithEditorId(const QString &fileName,
                                            bool *isExternalEditor)
 {
     // Collect editors that can open the file
-    MimeType mt = ICore::mimeDatabase()->findByFile(fileName);
+    MimeType mt = MimeDatabase::findByFile(fileName);
     //Unable to determine mime type of fileName. Falling back to text/plain",
     if (!mt)
-        mt = ICore::mimeDatabase()->findByType(QLatin1String("text/plain"));
+        mt = MimeDatabase::findByType(QLatin1String("text/plain"));
     QList<Id> allEditorIds;
     QStringList allEditorDisplayNames;
     QList<Id> externalEditorIds;
@@ -1606,7 +1605,7 @@ bool EditorManager::openExternalEditor(const QString &fileName, const Core::Id &
 QStringList EditorManager::getOpenFileNames()
 {
     QString selectedFilter;
-    const QString &fileFilters = ICore::mimeDatabase()->allFiltersString(&selectedFilter);
+    const QString &fileFilters = MimeDatabase::allFiltersString(&selectedFilter);
     return DocumentManager::getOpenFileNames(fileFilters, QString(), &selectedFilter);
 }
 
@@ -1769,9 +1768,9 @@ bool EditorManager::saveDocumentAs(IDocument *documentParam)
     if (!document)
         return false;
 
-    const QString &filter = ICore::mimeDatabase()->allFiltersString();
+    const QString filter = MimeDatabase::allFiltersString();
     QString selectedFilter =
-        ICore::mimeDatabase()->findByFile(QFileInfo(document->filePath())).filterString();
+        MimeDatabase::findByFile(QFileInfo(document->filePath())).filterString();
     const QString &absoluteFilePath =
         DocumentManager::getSaveAsFileName(document, filter, &selectedFilter);
 
diff --git a/src/plugins/coreplugin/icore.cpp b/src/plugins/coreplugin/icore.cpp
index a6bca0872f5..c747f78f91f 100644
--- a/src/plugins/coreplugin/icore.cpp
+++ b/src/plugins/coreplugin/icore.cpp
@@ -114,13 +114,6 @@
     the plugin manager's object pool.
 */
 
-/*!
-    \fn MimeDatabase *ICore::mimeDatabase()
-    \brief Returns the application's mime database.
-
-    Use the mime database to manage mime types.
-*/
-
 /*!
     \fn QSettings *ICore::settings(QSettings::Scope scope = QSettings::UserScope)
     \brief Returns the application's main settings object.
@@ -361,11 +354,6 @@ VcsManager *ICore::vcsManager()
     return m_mainwindow->vcsManager();
 }
 
-MimeDatabase *ICore::mimeDatabase()
-{
-    return m_mainwindow->mimeDatabase();
-}
-
 QSettings *ICore::settings(QSettings::Scope scope)
 {
     return m_mainwindow->settings(scope);
diff --git a/src/plugins/coreplugin/icore.h b/src/plugins/coreplugin/icore.h
index 75a419488e2..b877902b64a 100644
--- a/src/plugins/coreplugin/icore.h
+++ b/src/plugins/coreplugin/icore.h
@@ -47,7 +47,6 @@ namespace Core {
 class IWizard;
 class Context;
 class IContext;
-class MimeDatabase;
 class ProgressManager;
 class SettingsDatabase;
 class VcsManager;
@@ -82,7 +81,6 @@ public:
                                        QWidget *parent = 0);
 
     static VcsManager *vcsManager();
-    static MimeDatabase *mimeDatabase();
 
     static QSettings *settings(QSettings::Scope scope = QSettings::UserScope);
     static SettingsDatabase *settingsDatabase();
diff --git a/src/plugins/coreplugin/mimedatabase.cpp b/src/plugins/coreplugin/mimedatabase.cpp
index a232a0acf23..7641ed75f7e 100644
--- a/src/plugins/coreplugin/mimedatabase.cpp
+++ b/src/plugins/coreplugin/mimedatabase.cpp
@@ -1276,7 +1276,6 @@ public:
 
     void debug(QTextStream &str) const;
 
-private:
     typedef QHash<QString, MimeMapEntry> TypeMimeTypeMap;
     typedef QHash<QString, QString> AliasMap;
     typedef QMultiHash<QString, QString> ParentChildrenMap;
@@ -1297,6 +1296,7 @@ private:
     AliasMap m_aliasMap;
     ParentChildrenMap m_parentChildrenMap;
     int m_maxLevel;
+    QMutex m_mutex;
 };
 
 const QChar MimeDatabasePrivate::kSemiColon(QLatin1Char(';'));
@@ -1825,9 +1825,11 @@ void MimeDatabasePrivate::debug(QTextStream &str) const
     str << "<MimeDatabase\n";
 }
 
-MimeDatabase::MimeDatabase() :
-    d(new MimeDatabasePrivate)
+static MimeDatabasePrivate *d;
+
+MimeDatabase::MimeDatabase()
 {
+    d = new MimeDatabasePrivate;
 }
 
 MimeDatabase::~MimeDatabase()
@@ -1835,75 +1837,75 @@ MimeDatabase::~MimeDatabase()
     delete d;
 }
 
-MimeType MimeDatabase::findByType(const QString &typeOrAlias) const
+MimeType MimeDatabase::findByType(const QString &typeOrAlias)
 {
-    m_mutex.lock();
+    d->m_mutex.lock();
     const MimeType rc = d->findByType(typeOrAlias);
-    m_mutex.unlock();
+    d->m_mutex.unlock();
     return rc;
 }
 
-MimeType MimeDatabase::findByFileUnlocked(const QFileInfo &f) const
+MimeType MimeDatabase::findByFileUnlocked(const QFileInfo &f)
 {
     return d->findByFile(f);
 }
 
-MimeType MimeDatabase::findByFile(const QFileInfo &f) const
+MimeType MimeDatabase::findByFile(const QFileInfo &f)
 {
-    m_mutex.lock();
+    d->m_mutex.lock();
     const MimeType rc = findByFileUnlocked(f);
-    m_mutex.unlock();
+    d->m_mutex.unlock();
     return rc;
 }
 
-MimeType MimeDatabase::findByData(const QByteArray &data) const
+MimeType MimeDatabase::findByData(const QByteArray &data)
 {
-    m_mutex.lock();
+    d->m_mutex.lock();
     const MimeType rc = d->findByData(data);
-    m_mutex.unlock();
+    d->m_mutex.unlock();
     return rc;
 }
 
 bool MimeDatabase::addMimeType(const  MimeType &mt)
 {
-    m_mutex.lock();
+    d->m_mutex.lock();
     const bool rc = d->addMimeType(mt);
-    m_mutex.unlock();
+    d->m_mutex.unlock();
     return rc;
 }
 
 bool MimeDatabase::addMimeTypes(const QString &fileName, QString *errorMessage)
 {
-    m_mutex.lock();
+    d->m_mutex.lock();
     const bool rc = d->addMimeTypes(fileName, errorMessage);
-    m_mutex.unlock();
+    d->m_mutex.unlock();
     return rc;
 }
 
 bool MimeDatabase::addMimeTypes(QIODevice *device, QString *errorMessage)
 {
-    m_mutex.lock();
+    d->m_mutex.lock();
     const bool rc = d->addMimeTypes(device, errorMessage);
-    m_mutex.unlock();
+    d->m_mutex.unlock();
     return rc;
 }
 
-QStringList MimeDatabase::suffixes() const
+QStringList MimeDatabase::suffixes()
 {
-    m_mutex.lock();
+    d->m_mutex.lock();
     const QStringList rc = d->suffixes();
-    m_mutex.unlock();
+    d->m_mutex.unlock();
     return rc;
 }
 
-QStringList MimeDatabase::filterStrings() const
+QStringList MimeDatabase::filterStrings()
 {
-    m_mutex.lock();
+    d->m_mutex.lock();
     const QStringList rc = d->filterStrings();
-    m_mutex.unlock();
+    d->m_mutex.unlock();
     return rc;
 }
-QString MimeDatabase::allFiltersString(QString *allFilesFilter) const
+QString MimeDatabase::allFiltersString(QString *allFilesFilter)
 {
     if (allFilesFilter)
         allFilesFilter->clear();
@@ -1927,58 +1929,58 @@ QString MimeDatabase::allFiltersString(QString *allFilesFilter) const
     return filters.join(QLatin1String(";;"));
 }
 
-QList<MimeGlobPattern> MimeDatabase::globPatterns() const
+QList<MimeGlobPattern> MimeDatabase::globPatterns()
 {
-    m_mutex.lock();
+    d->m_mutex.lock();
     const QList<MimeGlobPattern> rc = d->globPatterns();
-    m_mutex.unlock();
+    d->m_mutex.unlock();
     return rc;
 }
 
 void MimeDatabase::setGlobPatterns(const QString &typeOrAlias,
                                    const QList<MimeGlobPattern> &globPatterns)
 {
-    m_mutex.lock();
+    d->m_mutex.lock();
     d->setGlobPatterns(typeOrAlias, globPatterns);
-    m_mutex.unlock();
+    d->m_mutex.unlock();
 }
 
-MimeDatabase::IMagicMatcherList MimeDatabase::magicMatchers() const
+MimeDatabase::IMagicMatcherList MimeDatabase::magicMatchers()
 {
-    m_mutex.lock();
+    d->m_mutex.lock();
     const IMagicMatcherList rc = d->magicMatchers();
-    m_mutex.unlock();
+    d->m_mutex.unlock();
     return rc;
 }
 
 void MimeDatabase::setMagicMatchers(const QString &typeOrAlias,
                                     const IMagicMatcherList &matchers)
 {
-    m_mutex.lock();
+    d->m_mutex.lock();
     d->setMagicMatchers(typeOrAlias, matchers);
-    m_mutex.unlock();
+    d->m_mutex.unlock();
 }
 
-QList<MimeType> MimeDatabase::mimeTypes() const
+QList<MimeType> MimeDatabase::mimeTypes()
 {
-    m_mutex.lock();
+    d->m_mutex.lock();
     const QList<MimeType> &mimeTypes = d->mimeTypes();
-    m_mutex.unlock();
+    d->m_mutex.unlock();
     return mimeTypes;
 }
 
 void MimeDatabase::syncUserModifiedMimeTypes()
 {
-    m_mutex.lock();
+    d->m_mutex.lock();
     d->syncUserModifiedMimeTypes();
-    m_mutex.unlock();
+    d->m_mutex.unlock();
 }
 
 void MimeDatabase::clearUserModifiedMimeTypes()
 {
-    m_mutex.lock();
+    d->m_mutex.lock();
     d->clearUserModifiedMimeTypes();
-    m_mutex.unlock();
+    d->m_mutex.unlock();
 }
 
 QList<MimeType> MimeDatabase::readUserModifiedMimeTypes()
@@ -1991,14 +1993,14 @@ void MimeDatabase::writeUserModifiedMimeTypes(const QList<MimeType> &mimeTypes)
     MimeDatabasePrivate::writeUserModifiedMimeTypes(mimeTypes);
 }
 
-QString MimeDatabase::preferredSuffixByType(const QString &type) const
+QString MimeDatabase::preferredSuffixByType(const QString &type)
 {
     if (const MimeType mt = findByType(type))
         return mt.preferredSuffix(); // already does Mutex locking
     return QString();
 }
 
-QString MimeDatabase::preferredSuffixByFile(const QFileInfo &f) const
+QString MimeDatabase::preferredSuffixByFile(const QFileInfo &f)
 {
     if (const MimeType mt = findByFile(f))
         return mt.preferredSuffix(); // already does Mutex locking
@@ -2007,9 +2009,9 @@ QString MimeDatabase::preferredSuffixByFile(const QFileInfo &f) const
 
 bool MimeDatabase::setPreferredSuffix(const QString &typeOrAlias, const QString &suffix)
 {
-    m_mutex.lock();
+    d->m_mutex.lock();
     const bool rc = d->setPreferredSuffix(typeOrAlias, suffix);
-    m_mutex.unlock();
+    d->m_mutex.unlock();
     return rc;
 }
 
@@ -2023,15 +2025,15 @@ QStringList MimeDatabase::fromGlobPatterns(const QList<MimeGlobPattern> &globPat
     return MimeDatabasePrivate::fromGlobPatterns(globPatterns);
 }
 
-QDebug operator<<(QDebug d, const MimeDatabase &mt)
-{
-    QString s;
-    {
-        QTextStream str(&s);
-        mt.d->debug(str);
-    }
-    d << s;
-    return d;
-}
+//QDebug operator<<(QDebug d, const MimeDatabase &mt)
+//{
+//    QString s;
+//    {
+//        QTextStream str(&s);
+//        d->debug(str);
+//    }
+//    db << s;
+//    return db;
+//}
 
 } // namespace Core
diff --git a/src/plugins/coreplugin/mimedatabase.h b/src/plugins/coreplugin/mimedatabase.h
index 5d60ceac07f..ead2ea8da61 100644
--- a/src/plugins/coreplugin/mimedatabase.h
+++ b/src/plugins/coreplugin/mimedatabase.h
@@ -261,80 +261,57 @@ public:
     typedef IMagicMatcher::IMagicMatcherList IMagicMatcherList;
     typedef IMagicMatcher::IMagicMatcherSharedPointer IMagicMatcherSharedPointer;
 
-    bool addMimeTypes(const QString &fileName, QString *errorMessage);
-    bool addMimeTypes(QIODevice *device, QString *errorMessage);
-    bool addMimeType(const  MimeType &mt);
+    static bool addMimeTypes(const QString &fileName, QString *errorMessage);
+    static bool addMimeTypes(QIODevice *device, QString *errorMessage);
+    static bool addMimeType(const  MimeType &mt);
 
     // Returns a mime type or Null one if none found
-    MimeType findByType(const QString &type) const;
+    static MimeType findByType(const QString &type);
 
     // Returns a mime type or Null one if none found
-    MimeType findByFile(const QFileInfo &f) const;
+    static MimeType findByFile(const QFileInfo &f);
 
     // Returns a mime type or Null one if none found
-    MimeType findByData(const QByteArray &data) const;
-
-    // Convenience that mutex-locks the DB and calls a function
-    // of the signature 'void f(const MimeType &, const QFileInfo &, const QString &)'
-    // for each filename of a sequence. This avoids locking the DB for each
-    // single file.
-    template <class Iterator, typename Function>
-    inline void findByFile(Iterator i1, const Iterator &i2, Function f) const;
+    static MimeType findByData(const QByteArray &data);
 
     // Return all known suffixes
-    QStringList suffixes() const;
-    bool setPreferredSuffix(const QString &typeOrAlias, const QString &suffix);
-    QString preferredSuffixByType(const QString &type) const;
-    QString preferredSuffixByFile(const QFileInfo &f) const;
+    static QStringList suffixes();
+    static bool setPreferredSuffix(const QString &typeOrAlias, const QString &suffix);
+    static QString preferredSuffixByType(const QString &type);
+    static QString preferredSuffixByFile(const QFileInfo &f);
 
-    QStringList filterStrings() const;
+    static QStringList filterStrings();
     // Return a string with all the possible file filters, for use with file dialogs
-    QString allFiltersString(QString *allFilesFilter = 0) const;
+    static QString allFiltersString(QString *allFilesFilter = 0);
 
-    QList<MimeGlobPattern> globPatterns() const;
-    void setGlobPatterns(const QString &typeOrAlias, const QList<MimeGlobPattern> &globPatterns);
+    static QList<MimeGlobPattern> globPatterns();
+    static void setGlobPatterns(const QString &typeOrAlias, const QList<MimeGlobPattern> &globPatterns);
 
-    IMagicMatcherList magicMatchers() const;
-    void setMagicMatchers(const QString &typeOrAlias, const IMagicMatcherList &matchers);
+    static IMagicMatcherList magicMatchers();
+    static void setMagicMatchers(const QString &typeOrAlias, const IMagicMatcherList &matchers);
 
-    QList<MimeType> mimeTypes() const;
+    static QList<MimeType> mimeTypes();
 
     // The mime types from the functions bellow are considered only in regard to
     // their glob patterns and rule-based magic matchers.
-    void syncUserModifiedMimeTypes();
+    static void syncUserModifiedMimeTypes();
     static QList<MimeType> readUserModifiedMimeTypes();
     static void writeUserModifiedMimeTypes(const QList<MimeType> &mimeTypes);
-    void clearUserModifiedMimeTypes();
+    static void clearUserModifiedMimeTypes();
 
     static QList<MimeGlobPattern> toGlobPatterns(const QStringList &patterns,
                                                  int weight = MimeGlobPattern::MaxWeight);
     static QStringList fromGlobPatterns(const QList<MimeGlobPattern> &globPatterns);
 
-    friend QDebug operator<<(QDebug d, const MimeDatabase &mt);
-
 private:
     MimeDatabase();
     ~MimeDatabase();
 
-    MimeType findByFileUnlocked(const QFileInfo &f) const;
-
-    MimeDatabasePrivate *d;
-    mutable QMutex m_mutex;
+    static MimeType findByFileUnlocked(const QFileInfo &f);
 
     friend class Core::Internal::MainWindow;
 };
 
-template <class Iterator, typename Function>
-    void MimeDatabase::findByFile(Iterator i1, const Iterator &i2, Function f) const
-{
-    m_mutex.lock();
-    for ( ; i1 != i2; ++i1) {
-        const QFileInfo fi(*i1);
-        f(findByFileUnlocked(fi), fi, *i1);
-    }
-    m_mutex.unlock();
-}
-
 } // namespace Core
 
 #endif // MIMEDATABASE_H
diff --git a/src/plugins/coreplugin/mimetypesettings.cpp b/src/plugins/coreplugin/mimetypesettings.cpp
index 61a079cd926..07315c389b9 100644
--- a/src/plugins/coreplugin/mimetypesettings.cpp
+++ b/src/plugins/coreplugin/mimetypesettings.cpp
@@ -126,10 +126,10 @@ QVariant MimeTypeSettingsModel::data(const QModelIndex &modelIndex, int role) co
 
 void MimeTypeSettingsModel::load()
 {
-    m_mimeTypes = ICore::mimeDatabase()->mimeTypes();
+    m_mimeTypes = MimeDatabase::mimeTypes();
     qSort(m_mimeTypes.begin(), m_mimeTypes.end(), MimeTypeComp());
     m_knownPatterns = QSet<QString>::fromList(
-        MimeDatabase::fromGlobPatterns(ICore::mimeDatabase()->globPatterns()));
+        MimeDatabase::fromGlobPatterns(MimeDatabase::globPatterns()));
 
     foreach (const MimeType &mimeType, m_mimeTypes) {
         QString value;
@@ -240,7 +240,6 @@ public:
     static const QChar kSemiColon;
 
     QString m_keywords;
-    MimeDatabase *m_mimeDatabase;
     MimeTypeSettingsModel *m_model;
     QSortFilterProxyModel *m_filterModel;
     int m_mimeForPatternSync;
@@ -255,8 +254,7 @@ public:
 const QChar MimeTypeSettingsPrivate::kSemiColon(QLatin1Char(';'));
 
 MimeTypeSettingsPrivate::MimeTypeSettingsPrivate()
-    : m_mimeDatabase(ICore::mimeDatabase())
-    , m_model(new MimeTypeSettingsModel(this))
+    : m_model(new MimeTypeSettingsModel(this))
     , m_filterModel(new QSortFilterProxyModel(this))
     , m_mimeForPatternSync(-1)
     , m_mimeForMagicSync(-1)
@@ -529,15 +527,14 @@ void MimeTypeSettingsPrivate::updateMimeDatabase()
     m_modifiedMimeTypes.erase(std::unique(m_modifiedMimeTypes.begin(), m_modifiedMimeTypes.end()),
                               m_modifiedMimeTypes.end());
 
-    MimeDatabase *db = ICore::mimeDatabase();
     QList<MimeType> allModified;
     foreach (int index, m_modifiedMimeTypes) {
         const MimeType &mimeType = m_model->m_mimeTypes.at(index);
-        db->setGlobPatterns(mimeType.type(), mimeType.globPatterns());
-        db->setMagicMatchers(mimeType.type(), mimeType.magicMatchers());
+        MimeDatabase::setGlobPatterns(mimeType.type(), mimeType.globPatterns());
+        MimeDatabase::setMagicMatchers(mimeType.type(), mimeType.magicMatchers());
         allModified.append(mimeType);
     }
-    db->writeUserModifiedMimeTypes(allModified);
+    MimeDatabase::writeUserModifiedMimeTypes(allModified);
 }
 
 void MimeTypeSettingsPrivate::resetState()
@@ -623,7 +620,7 @@ void MimeTypeSettings::finish()
 {
     if (d->m_persist) {
         if (d->m_reset)
-            ICore::mimeDatabase()->clearUserModifiedMimeTypes();
+            MimeDatabase::clearUserModifiedMimeTypes();
         else
             d->updateMimeDatabase();
     }
diff --git a/src/plugins/cpaster/cpasterplugin.cpp b/src/plugins/cpaster/cpasterplugin.cpp
index c756351aa9f..aa4313fd610 100644
--- a/src/plugins/cpaster/cpasterplugin.cpp
+++ b/src/plugins/cpaster/cpasterplugin.cpp
@@ -363,7 +363,7 @@ void CodepasterPlugin::finishFetch(const QString &titleDescription,
     // Default to "txt".
     QByteArray byteContent = content.toUtf8();
     QString suffix;
-    if (const Core::MimeType mimeType = Core::ICore::mimeDatabase()->findByData(byteContent))
+    if (const Core::MimeType mimeType = Core::MimeDatabase::findByData(byteContent))
         suffix = mimeType.preferredSuffix();
     if (suffix.isEmpty())
          suffix = QLatin1String("txt");
diff --git a/src/plugins/cppeditor/cppclasswizard.cpp b/src/plugins/cppeditor/cppclasswizard.cpp
index 70e22afd165..b7358be5db6 100644
--- a/src/plugins/cppeditor/cppclasswizard.cpp
+++ b/src/plugins/cppeditor/cppclasswizard.cpp
@@ -96,9 +96,8 @@ static bool lowerCaseFiles()
 // Set up new class widget from settings
 void ClassNamePage::initParameters()
 {
-    const Core::MimeDatabase *mdb = Core::ICore::mimeDatabase();
-    m_newClassWidget->setHeaderExtension(mdb->preferredSuffixByType(QLatin1String(Constants::CPP_HEADER_MIMETYPE)));
-    m_newClassWidget->setSourceExtension(mdb->preferredSuffixByType(QLatin1String(Constants::CPP_SOURCE_MIMETYPE)));
+    m_newClassWidget->setHeaderExtension(Core::MimeDatabase::preferredSuffixByType(QLatin1String(Constants::CPP_HEADER_MIMETYPE)));
+    m_newClassWidget->setSourceExtension(Core::MimeDatabase::preferredSuffixByType(QLatin1String(Constants::CPP_SOURCE_MIMETYPE)));
     m_newClassWidget->setLowerCaseFiles(lowerCaseFiles());
 }
 
diff --git a/src/plugins/cppeditor/cppeditor.cpp b/src/plugins/cppeditor/cppeditor.cpp
index 1782658df1d..6ea76ada1c9 100644
--- a/src/plugins/cppeditor/cppeditor.cpp
+++ b/src/plugins/cppeditor/cppeditor.cpp
@@ -1863,15 +1863,14 @@ Core::IEditor *CPPEditor::duplicate(QWidget *parent)
 
 Core::Id CPPEditor::id() const
 {
-    return Core::Id(CppEditor::Constants::CPPEDITOR_ID);
+    return CppEditor::Constants::CPPEDITOR_ID;
 }
 
 bool CPPEditor::open(QString *errorString, const QString &fileName, const QString &realFileName)
 {
     if (!TextEditor::BaseTextEditor::open(errorString, fileName, realFileName))
         return false;
-    editorWidget()->setMimeType(
-                Core::ICore::mimeDatabase()->findByFile(QFileInfo(fileName)).type());
+    editorWidget()->setMimeType(Core::MimeDatabase::findByFile(QFileInfo(fileName)).type());
     return true;
 }
 
diff --git a/src/plugins/cppeditor/cppeditorplugin.cpp b/src/plugins/cppeditor/cppeditorplugin.cpp
index 4b52531c87d..ec122015eac 100644
--- a/src/plugins/cppeditor/cppeditorplugin.cpp
+++ b/src/plugins/cppeditor/cppeditorplugin.cpp
@@ -79,13 +79,12 @@ CppEditorFactory::CppEditorFactory(CppEditorPlugin *owner) :
 
     if (!Utils::HostOsInfo::isMacHost() && !Utils::HostOsInfo::isWindowsHost()) {
         FileIconProvider *iconProvider = FileIconProvider::instance();
-        MimeDatabase *mimeDatabase = ICore::mimeDatabase();
         iconProvider->registerIconOverlayForMimeType(QIcon(QLatin1String(":/cppeditor/images/qt_cpp.png")),
-                                                     mimeDatabase->findByType(QLatin1String(CppEditor::Constants::CPP_SOURCE_MIMETYPE)));
+                                                     MimeDatabase::findByType(QLatin1String(CppEditor::Constants::CPP_SOURCE_MIMETYPE)));
         iconProvider->registerIconOverlayForMimeType(QIcon(QLatin1String(":/cppeditor/images/qt_c.png")),
-                                                     mimeDatabase->findByType(QLatin1String(CppEditor::Constants::C_SOURCE_MIMETYPE)));
+                                                     MimeDatabase::findByType(QLatin1String(CppEditor::Constants::C_SOURCE_MIMETYPE)));
         iconProvider->registerIconOverlayForMimeType(QIcon(QLatin1String(":/cppeditor/images/qt_h.png")),
-                                                     mimeDatabase->findByType(QLatin1String(CppEditor::Constants::CPP_HEADER_MIMETYPE)));
+                                                     MimeDatabase::findByType(QLatin1String(CppEditor::Constants::CPP_HEADER_MIMETYPE)));
     }
 }
 
@@ -154,7 +153,7 @@ CppQuickFixAssistProvider *CppEditorPlugin::quickFixProvider() const
 
 bool CppEditorPlugin::initialize(const QStringList & /*arguments*/, QString *errorMessage)
 {
-    if (!ICore::mimeDatabase()->addMimeTypes(QLatin1String(":/cppeditor/CppEditor.mimetypes.xml"), errorMessage))
+    if (!Core::MimeDatabase::addMimeTypes(QLatin1String(":/cppeditor/CppEditor.mimetypes.xml"), errorMessage))
         return false;
 
     addAutoReleasedObject(new CppEditorFactory(this));
diff --git a/src/plugins/cpptools/cppcompletionassist.cpp b/src/plugins/cpptools/cppcompletionassist.cpp
index bf5db57ff0d..c5a7b1a7bf3 100644
--- a/src/plugins/cpptools/cppcompletionassist.cpp
+++ b/src/plugins/cpptools/cppcompletionassist.cpp
@@ -1155,7 +1155,7 @@ bool CppCompletionAssistProcessor::completeInclude(const QTextCursor &cursor)
         includePaths.append(currentFilePath);
 
     const Core::MimeType mimeType =
-            Core::ICore::mimeDatabase()->findByType(QLatin1String("text/x-c++hdr"));
+            Core::MimeDatabase::findByType(QLatin1String("text/x-c++hdr"));
     const QStringList suffixes = mimeType.suffixes();
 
     foreach (const QString &includePath, includePaths) {
@@ -1213,8 +1213,7 @@ bool CppCompletionAssistProcessor::objcKeywordsWanted() const
 
     const QString fileName = m_interface->fileName();
 
-    const Core::MimeDatabase *mdb = Core::ICore::mimeDatabase();
-    const QString mt = mdb->findByFile(fileName).type();
+    const QString mt = Core::MimeDatabase::findByFile(fileName).type();
     return mt == QLatin1String(CppTools::Constants::OBJECTIVE_C_SOURCE_MIMETYPE)
             || mt == QLatin1String(CppTools::Constants::OBJECTIVE_CPP_SOURCE_MIMETYPE);
 }
diff --git a/src/plugins/cpptools/cppfilesettingspage.cpp b/src/plugins/cpptools/cppfilesettingspage.cpp
index fcc5f288612..e11cfdf55ea 100644
--- a/src/plugins/cpptools/cppfilesettingspage.cpp
+++ b/src/plugins/cpptools/cppfilesettingspage.cpp
@@ -93,9 +93,8 @@ void CppFileSettings::fromSettings(QSettings *s)
 
 bool CppFileSettings::applySuffixesToMimeDB()
 {
-    Core::MimeDatabase *mdb = Core::ICore::mimeDatabase();
-    return mdb->setPreferredSuffix(QLatin1String(CppTools::Constants::CPP_SOURCE_MIMETYPE), sourceSuffix)
-            && mdb->setPreferredSuffix(QLatin1String(CppTools::Constants::CPP_HEADER_MIMETYPE), headerSuffix);
+    return Core::MimeDatabase::setPreferredSuffix(QLatin1String(CppTools::Constants::CPP_SOURCE_MIMETYPE), sourceSuffix)
+            && Core::MimeDatabase::setPreferredSuffix(QLatin1String(CppTools::Constants::CPP_HEADER_MIMETYPE), headerSuffix);
 }
 
 bool CppFileSettings::equals(const CppFileSettings &rhs) const
@@ -226,13 +225,12 @@ CppFileSettingsWidget::CppFileSettingsWidget(QWidget *parent) :
     m_ui(new Internal::Ui::CppFileSettingsPage)
 {
     m_ui->setupUi(this);
-    const Core::MimeDatabase *mdb = Core::ICore::mimeDatabase();
     // populate suffix combos
-    if (const Core::MimeType sourceMt = mdb->findByType(QLatin1String(CppTools::Constants::CPP_SOURCE_MIMETYPE)))
+    if (const Core::MimeType sourceMt = Core::MimeDatabase::findByType(QLatin1String(CppTools::Constants::CPP_SOURCE_MIMETYPE)))
         foreach (const QString &suffix, sourceMt.suffixes())
             m_ui->sourceSuffixComboBox->addItem(suffix);
 
-    if (const Core::MimeType headerMt = mdb->findByType(QLatin1String(CppTools::Constants::CPP_HEADER_MIMETYPE)))
+    if (const Core::MimeType headerMt = Core::MimeDatabase::findByType(QLatin1String(CppTools::Constants::CPP_HEADER_MIMETYPE)))
         foreach (const QString &suffix, headerMt.suffixes())
             m_ui->headerSuffixComboBox->addItem(suffix);
     m_ui->licenseTemplatePathChooser->setExpectedKind(Utils::PathChooser::File);
diff --git a/src/plugins/cpptools/cppprojectfile.cpp b/src/plugins/cpptools/cppprojectfile.cpp
index fc223bf2c49..22b995c9479 100644
--- a/src/plugins/cpptools/cppprojectfile.cpp
+++ b/src/plugins/cpptools/cppprojectfile.cpp
@@ -50,9 +50,8 @@ ProjectFile::ProjectFile(const QString &file, Kind kind)
 
 ProjectFile::Kind ProjectFile::classify(const QString &file)
 {
-    const Core::MimeDatabase *mimeDatabase = Core::ICore::mimeDatabase();
     const QFileInfo fi(file);
-    const Core::MimeType mimeType = mimeDatabase->findByFile(fi);
+    const Core::MimeType mimeType = Core::MimeDatabase::findByFile(fi);
     if (!mimeType)
         return Unclassified;
     const QString mt = mimeType.type();
@@ -130,8 +129,7 @@ bool ProjectFileAdder::maybeAdd(const QString &path)
 
 void ProjectFileAdder::addMapping(const char *mimeName, ProjectFile::Kind kind)
 {
-    const Core::MimeDatabase *mimeDatabase = Core::ICore::mimeDatabase();
-    Core::MimeType mimeType = mimeDatabase->findByType(QLatin1String(mimeName));
+    Core::MimeType mimeType = Core::MimeDatabase::findByType(QLatin1String(mimeName));
     if (!mimeType.isNull())
         m_mapping.append(Pair(mimeType, kind));
 }
diff --git a/src/plugins/cpptools/cpptoolsplugin.cpp b/src/plugins/cpptools/cpptoolsplugin.cpp
index f73b0444ca4..159697d3d72 100644
--- a/src/plugins/cpptools/cpptoolsplugin.cpp
+++ b/src/plugins/cpptools/cpptoolsplugin.cpp
@@ -60,6 +60,7 @@
 #include <QMenu>
 #include <QAction>
 
+using namespace Core;
 using namespace CPlusPlus;
 
 namespace CppTools {
@@ -96,10 +97,10 @@ bool CppToolsPlugin::initialize(const QStringList &arguments, QString *error)
 
     // Objects
     CppModelManager *modelManager = CppModelManager::instance();
-    Core::VcsManager *vcsManager = Core::ICore::vcsManager();
+    VcsManager *vcsManager = ICore::vcsManager();
     connect(vcsManager, SIGNAL(repositoryChanged(QString)),
             modelManager, SLOT(updateModifiedSourceFiles()));
-    connect(Core::DocumentManager::instance(), SIGNAL(filesChangedInternally(QStringList)),
+    connect(DocumentManager::instance(), SIGNAL(filesChangedInternally(QStringList)),
             modelManager, SLOT(updateSourceFiles(QStringList)));
 
     CppLocatorData *locatorData = new CppLocatorData(modelManager);
@@ -113,24 +114,24 @@ bool CppToolsPlugin::initialize(const QStringList &arguments, QString *error)
     addAutoReleasedObject(new CppCodeStyleSettingsPage);
 
     // Menus
-    Core::ActionContainer *mtools = Core::ActionManager::actionContainer(Core::Constants::M_TOOLS);
-    Core::ActionContainer *mcpptools = Core::ActionManager::createMenu(CppTools::Constants::M_TOOLS_CPP);
+    ActionContainer *mtools = ActionManager::actionContainer(Core::Constants::M_TOOLS);
+    ActionContainer *mcpptools = ActionManager::createMenu(CppTools::Constants::M_TOOLS_CPP);
     QMenu *menu = mcpptools->menu();
     menu->setTitle(tr("&C++"));
     menu->setEnabled(true);
     mtools->addMenu(mcpptools);
 
     // Actions
-    Core::Context context(CppEditor::Constants::C_CPPEDITOR);
+    Context context(CppEditor::Constants::C_CPPEDITOR);
 
     QAction *switchAction = new QAction(tr("Switch Header/Source"), this);
-    Core::Command *command = Core::ActionManager::registerAction(switchAction, Constants::SWITCH_HEADER_SOURCE, context, true);
+    Command *command = ActionManager::registerAction(switchAction, Constants::SWITCH_HEADER_SOURCE, context, true);
     command->setDefaultKeySequence(QKeySequence(Qt::Key_F4));
     mcpptools->addAction(command);
     connect(switchAction, SIGNAL(triggered()), this, SLOT(switchHeaderSource()));
 
     QAction *openInNextSplitAction = new QAction(tr("Open Corresponding Header/Source in Next Split"), this);
-    command = Core::ActionManager::registerAction(openInNextSplitAction, Constants::OPEN_HEADER_SOURCE_IN_NEXT_SPLIT, context, true);
+    command = ActionManager::registerAction(openInNextSplitAction, Constants::OPEN_HEADER_SOURCE_IN_NEXT_SPLIT, context, true);
     command->setDefaultKeySequence(QKeySequence(Utils::HostOsInfo::isMacHost()
                                                 ? tr("Meta+E, F4")
                                                 : tr("Ctrl+E, F4")));
@@ -144,7 +145,7 @@ void CppToolsPlugin::extensionsInitialized()
 {
     // The Cpp editor plugin, which is loaded later on, registers the Cpp mime types,
     // so, apply settings here
-    m_fileSettings->fromSettings(Core::ICore::settings());
+    m_fileSettings->fromSettings(ICore::settings());
     if (!m_fileSettings->applySuffixesToMimeDB())
         qWarning("Unable to apply cpp suffixes to mime database (cpp mime types not found).\n");
 }
@@ -157,17 +158,17 @@ ExtensionSystem::IPlugin::ShutdownFlag CppToolsPlugin::aboutToShutdown()
 void CppToolsPlugin::switchHeaderSource()
 {
     QString otherFile = correspondingHeaderOrSource(
-                Core::EditorManager::currentDocument()->filePath());
+                EditorManager::currentDocument()->filePath());
     if (!otherFile.isEmpty())
-        Core::EditorManager::openEditor(otherFile);
+        EditorManager::openEditor(otherFile);
 }
 
 void CppToolsPlugin::switchHeaderSourceInNextSplit()
 {
     QString otherFile = correspondingHeaderOrSource(
-                Core::EditorManager::currentDocument()->filePath());
+                EditorManager::currentDocument()->filePath());
     if (!otherFile.isEmpty())
-        Core::EditorManager::openEditor(otherFile, Core::Id(), Core::EditorManager::OpenInOtherSplit);
+        EditorManager::openEditor(otherFile, Id(), EditorManager::OpenInOtherSplit);
 }
 
 static QStringList findFilesInProject(const QString &name,
@@ -195,25 +196,24 @@ static QStringList findFilesInProject(const QString &name,
 // source belonging to a header and vice versa
 static QStringList matchingCandidateSuffixes(ProjectFile::Kind kind)
 {
-    Core::MimeDatabase *md = Core::ICore::instance()->mimeDatabase();
     switch (kind) {
      // Note that C/C++ headers are undistinguishable
     case ProjectFile::CHeader:
     case ProjectFile::CXXHeader:
     case ProjectFile::ObjCHeader:
     case ProjectFile::ObjCXXHeader:
-        return md->findByType(QLatin1String(Constants::C_SOURCE_MIMETYPE)).suffixes()
-                + md->findByType(QLatin1String(Constants::CPP_SOURCE_MIMETYPE)).suffixes()
-                + md->findByType(QLatin1String(Constants::OBJECTIVE_C_SOURCE_MIMETYPE)).suffixes()
-                + md->findByType(QLatin1String(Constants::OBJECTIVE_CPP_SOURCE_MIMETYPE)).suffixes();
+        return MimeDatabase::findByType(QLatin1String(Constants::C_SOURCE_MIMETYPE)).suffixes()
+                + MimeDatabase::findByType(QLatin1String(Constants::CPP_SOURCE_MIMETYPE)).suffixes()
+                + MimeDatabase::findByType(QLatin1String(Constants::OBJECTIVE_C_SOURCE_MIMETYPE)).suffixes()
+                + MimeDatabase::findByType(QLatin1String(Constants::OBJECTIVE_CPP_SOURCE_MIMETYPE)).suffixes();
     case ProjectFile::CSource:
     case ProjectFile::ObjCSource:
-        return md->findByType(QLatin1String(Constants::C_HEADER_MIMETYPE)).suffixes();
+        return MimeDatabase::findByType(QLatin1String(Constants::C_HEADER_MIMETYPE)).suffixes();
     case ProjectFile::CXXSource:
     case ProjectFile::ObjCXXSource:
     case ProjectFile::CudaSource:
     case ProjectFile::OpenCLSource:
-        return md->findByType(QLatin1String(Constants::CPP_HEADER_MIMETYPE)).suffixes();
+        return MimeDatabase::findByType(QLatin1String(Constants::CPP_HEADER_MIMETYPE)).suffixes();
     default:
         return QStringList();
     }
diff --git a/src/plugins/cvs/cvsplugin.cpp b/src/plugins/cvs/cvsplugin.cpp
index 2f452695221..4f996089be1 100644
--- a/src/plugins/cvs/cvsplugin.cpp
+++ b/src/plugins/cvs/cvsplugin.cpp
@@ -231,7 +231,7 @@ bool CvsPlugin::initialize(const QStringList &arguments, QString *errorMessage)
 
     m_cvsPluginInstance = this;
 
-    if (!ICore::mimeDatabase()->addMimeTypes(QLatin1String(":/trolltech.cvs/CVS.mimetypes.xml"), errorMessage))
+    if (!MimeDatabase::addMimeTypes(QLatin1String(":/trolltech.cvs/CVS.mimetypes.xml"), errorMessage))
         return false;
 
     m_settings.fromSettings(ICore::settings());
diff --git a/src/plugins/debugger/disassembleragent.cpp b/src/plugins/debugger/disassembleragent.cpp
index f2b388acbb9..3dd14440bb1 100644
--- a/src/plugins/debugger/disassembleragent.cpp
+++ b/src/plugins/debugger/disassembleragent.cpp
@@ -255,7 +255,7 @@ void DisassemblerAgentPrivate::configureMimeType()
         qobject_cast<TextEditor::PlainTextEditorWidget *>(editor->widget());
     QTC_ASSERT(pe, return);
 
-    MimeType mtype = ICore::mimeDatabase()->findByType(mimeType);
+    MimeType mtype = MimeDatabase::findByType(mimeType);
     if (mtype)
         pe->configure(mtype);
     else
diff --git a/src/plugins/designer/cpp/formclasswizardpage.cpp b/src/plugins/designer/cpp/formclasswizardpage.cpp
index 7feb379f776..c62746ad5e2 100644
--- a/src/plugins/designer/cpp/formclasswizardpage.cpp
+++ b/src/plugins/designer/cpp/formclasswizardpage.cpp
@@ -79,9 +79,8 @@ bool FormClassWizardPage::lowercaseHeaderFiles()
 // Set up new class widget from settings
 void FormClassWizardPage::initFileGenerationSettings()
 {
-    const Core::MimeDatabase *mdb = Core::ICore::mimeDatabase();
-    m_ui->newClassWidget->setHeaderExtension(mdb->preferredSuffixByType(QLatin1String(CppTools::Constants::CPP_HEADER_MIMETYPE)));
-    m_ui->newClassWidget->setSourceExtension(mdb->preferredSuffixByType(QLatin1String(CppTools::Constants::CPP_SOURCE_MIMETYPE)));
+    m_ui->newClassWidget->setHeaderExtension(Core::MimeDatabase::preferredSuffixByType(QLatin1String(CppTools::Constants::CPP_HEADER_MIMETYPE)));
+    m_ui->newClassWidget->setSourceExtension(Core::MimeDatabase::preferredSuffixByType(QLatin1String(CppTools::Constants::CPP_SOURCE_MIMETYPE)));
     m_ui->newClassWidget->setLowerCaseFiles(lowercaseHeaderFiles());
 }
 
diff --git a/src/plugins/designer/formeditorplugin.cpp b/src/plugins/designer/formeditorplugin.cpp
index cc831566863..ab836215726 100644
--- a/src/plugins/designer/formeditorplugin.cpp
+++ b/src/plugins/designer/formeditorplugin.cpp
@@ -50,6 +50,7 @@
 #include <QTranslator>
 #include <QtPlugin>
 
+using namespace Core;
 using namespace Designer::Internal;
 using namespace Designer::Constants;
 
@@ -70,9 +71,8 @@ FormEditorPlugin::~FormEditorPlugin()
 bool FormEditorPlugin::initialize(const QStringList &arguments, QString *error)
 {
     Q_UNUSED(arguments)
-    Q_UNUSED(error)
 
-    if (!Core::ICore::mimeDatabase()->addMimeTypes(QLatin1String(":/formeditor/Designer.mimetypes.xml"), error))
+    if (!MimeDatabase::addMimeTypes(QLatin1String(":/formeditor/Designer.mimetypes.xml"), error))
         return false;
 
     initializeTemplates();
@@ -81,11 +81,11 @@ bool FormEditorPlugin::initialize(const QStringList &arguments, QString *error)
     addAutoReleasedObject(new SettingsPageProvider);
     addAutoReleasedObject(new QtDesignerFormClassCodeGenerator);
     // Ensure that loading designer translations is done before FormEditorW is instantiated
-    const QString locale = Core::ICore::userInterfaceLanguage();
+    const QString locale = ICore::userInterfaceLanguage();
     if (!locale.isEmpty()) {
         QTranslator *qtr = new QTranslator(this);
         const QString &creatorTrPath =
-                Core::ICore::resourcePath() + QLatin1String("/translations");
+                ICore::resourcePath() + QLatin1String("/translations");
         const QString &qtTrPath = QLibraryInfo::location(QLibraryInfo::TranslationsPath);
         const QString &trFile = QLatin1String("designer_") + locale;
         if (qtr->load(trFile, qtTrPath) || qtr->load(trFile, creatorTrPath))
@@ -97,7 +97,7 @@ bool FormEditorPlugin::initialize(const QStringList &arguments, QString *error)
 
 void FormEditorPlugin::extensionsInitialized()
 {
-    Core::DesignMode::instance()->setDesignModeIsRequired();
+    DesignMode::instance()->setDesignModeIsRequired();
     // 4) test and make sure everything works (undo, saving, editors, opening/closing multiple files, dirtiness etc)
 }
 
@@ -109,7 +109,7 @@ void FormEditorPlugin::extensionsInitialized()
 
 void FormEditorPlugin::initializeTemplates()
 {
-    FormWizard::BaseFileWizardParameters wizardParameters(Core::IWizard::FileWizard);
+    FormWizard::BaseFileWizardParameters wizardParameters(IWizard::FileWizard);
     wizardParameters.setCategory(QLatin1String(Core::Constants::WIZARD_CATEGORY_QT));
     wizardParameters.setDisplayCategory(QCoreApplication::translate("Core", Core::Constants::WIZARD_TR_CATEGORY_QT));
     const QString formFileType = QLatin1String(Constants::FORM_FILE_TYPE);
@@ -120,7 +120,7 @@ void FormEditorPlugin::initializeTemplates()
     addAutoReleasedObject(new FormWizard(wizardParameters, this));
 
 #ifdef CPP_ENABLED
-    wizardParameters.setKind(Core::IWizard::ClassWizard);
+    wizardParameters.setKind(IWizard::ClassWizard);
     wizardParameters.setDisplayName(tr("Qt Designer Form Class"));
     wizardParameters.setId(QLatin1String("C.FormClass"));
     wizardParameters.setDescription(tr("Creates a Qt Designer form along with a matching class (C++ header and source file) "
diff --git a/src/plugins/designer/formeditorw.cpp b/src/plugins/designer/formeditorw.cpp
index 1b1a9001c39..554774e6cc0 100644
--- a/src/plugins/designer/formeditorw.cpp
+++ b/src/plugins/designer/formeditorw.cpp
@@ -113,6 +113,7 @@ static inline QIcon designerIcon(const QString &iconName)
     return icon;
 }
 
+using namespace Core;
 using namespace Designer::Constants;
 
 namespace Designer {
@@ -150,7 +151,7 @@ FormEditorW::FormEditorW() :
     qFill(m_designerSubWindows, m_designerSubWindows + Designer::Constants::DesignerSubWindowCount,
           static_cast<QWidget *>(0));
 
-    m_formeditor->setTopLevel(Core::ICore::mainWindow());
+    m_formeditor->setTopLevel(ICore::mainWindow());
     m_formeditor->setSettingsManager(new SettingsManager());
 
 #if QT_VERSION >= 0x050000
@@ -169,7 +170,7 @@ FormEditorW::FormEditorW() :
         m_settingsPages.append(settingsPage);
     }
 
-    connect(Core::EditorManager::instance(), SIGNAL(currentEditorChanged(Core::IEditor*)),
+    connect(EditorManager::instance(), SIGNAL(currentEditorChanged(Core::IEditor*)),
             this, SLOT(currentEditorChanged(Core::IEditor*)));
     connect(m_shortcutMapper, SIGNAL(mapped(QObject*)),
             this, SLOT(updateShortcut(QObject*)));
@@ -178,9 +179,9 @@ FormEditorW::FormEditorW() :
 FormEditorW::~FormEditorW()
 {
     if (m_context)
-        Core::ICore::removeContextObject(m_context);
+        ICore::removeContextObject(m_context);
     if (m_initStage == FullyInitialized) {
-        QSettings *s = Core::ICore::settings();
+        QSettings *s = ICore::settings();
         s->beginGroup(QLatin1String(settingsGroupC));
         m_editorWidget->saveSettings(s);
         s->endGroup();
@@ -199,51 +200,51 @@ FormEditorW::~FormEditorW()
 }
 
 // Add an actioon to toggle the view state of a dock window
-void FormEditorW::addDockViewAction(Core::ActionContainer *viewMenu,
-                                    int index, const Core::Context &context,
-                                    const QString &title, const Core::Id &id)
+void FormEditorW::addDockViewAction(ActionContainer *viewMenu,
+                                    int index, const Context &context,
+                                    const QString &title, const Id &id)
 {
     if (const QDockWidget *dw = m_editorWidget->designerDockWidgets()[index]) {
         QAction *action = dw->toggleViewAction();
         action->setText(title);
-        Core::Command *cmd = addToolAction(action, context, id, viewMenu, QString());
-        cmd->setAttribute(Core::Command::CA_Hide);
+        Command *cmd = addToolAction(action, context, id, viewMenu, QString());
+        cmd->setAttribute(Command::CA_Hide);
     }
 }
 
 void FormEditorW::setupViewActions()
 {
     // Populate "View" menu of form editor menu
-    Core::ActionContainer *viewMenu = Core::ActionManager::actionContainer(Core::Id(Core::Constants::M_WINDOW_VIEWS));
+    ActionContainer *viewMenu = ActionManager::actionContainer(Core::Constants::M_WINDOW_VIEWS);
     QTC_ASSERT(viewMenu, return);
 
     addDockViewAction(viewMenu, WidgetBoxSubWindow, m_contexts,
-                      tr("Widget box"), Core::Id("FormEditor.WidgetBox"));
+                      tr("Widget box"), "FormEditor.WidgetBox");
 
     addDockViewAction(viewMenu, ObjectInspectorSubWindow, m_contexts,
-                      tr("Object Inspector"), Core::Id("FormEditor.ObjectInspector"));
+                      tr("Object Inspector"), "FormEditor.ObjectInspector");
 
     addDockViewAction(viewMenu, PropertyEditorSubWindow, m_contexts,
-                      tr("Property Editor"), Core::Id("FormEditor.PropertyEditor"));
+                      tr("Property Editor"), "FormEditor.PropertyEditor");
 
     addDockViewAction(viewMenu, SignalSlotEditorSubWindow, m_contexts,
-                      tr("Signals && Slots Editor"), Core::Id("FormEditor.SignalsAndSlotsEditor"));
+                      tr("Signals && Slots Editor"), "FormEditor.SignalsAndSlotsEditor");
 
     addDockViewAction(viewMenu, ActionEditorSubWindow, m_contexts,
-                      tr("Action Editor"), Core::Id("FormEditor.ActionEditor"));
+                      tr("Action Editor"), "FormEditor.ActionEditor");
     // Lock/Reset
-    Core::Command *cmd = addToolAction(m_editorWidget->menuSeparator1(), m_contexts, Core::Id("FormEditor.SeparatorLock"), viewMenu, QString());
-    cmd->setAttribute(Core::Command::CA_Hide);
+    Command *cmd = addToolAction(m_editorWidget->menuSeparator1(), m_contexts, "FormEditor.SeparatorLock", viewMenu);
+    cmd->setAttribute(Command::CA_Hide);
 
-    cmd = addToolAction(m_editorWidget->toggleLockedAction(), m_contexts, Core::Id("FormEditor.Locked"), viewMenu, QString());
-    cmd->setAttribute(Core::Command::CA_Hide);
+    cmd = addToolAction(m_editorWidget->toggleLockedAction(), m_contexts, "FormEditor.Locked", viewMenu);
+    cmd->setAttribute(Command::CA_Hide);
 
-    cmd = addToolAction(m_editorWidget->menuSeparator2(), m_contexts, Core::Id("FormEditor.SeparatorReset"), viewMenu, QString());
-    cmd->setAttribute(Core::Command::CA_Hide);
+    cmd = addToolAction(m_editorWidget->menuSeparator2(), m_contexts, "FormEditor.SeparatorReset", viewMenu);
+    cmd->setAttribute(Command::CA_Hide);
 
-    cmd = addToolAction(m_editorWidget->resetLayoutAction(), m_contexts, Core::Id("FormEditor.ResetToDefaultLayout"), viewMenu, QString());
+    cmd = addToolAction(m_editorWidget->resetLayoutAction(), m_contexts, "FormEditor.ResetToDefaultLayout", viewMenu);
     connect(m_editorWidget, SIGNAL(resetLayout()), m_editorWidget, SLOT(resetToDefaultLayout()));
-    cmd->setAttribute(Core::Command::CA_Hide);
+    cmd->setAttribute(Command::CA_Hide);
 }
 
 void FormEditorW::fullInit()
@@ -263,7 +264,7 @@ void FormEditorW::fullInit()
     m_formeditor->setIntegration(m_integration);
     // Connect Qt Designer help request to HelpManager.
     connect(m_integration, SIGNAL(creatorHelpRequested(QUrl)),
-        Core::HelpManager::instance(), SIGNAL(helpRequested(QUrl)));
+        HelpManager::instance(), SIGNAL(helpRequested(QUrl)));
 
     /**
      * This will initialize our TabOrder, Signals and slots and Buddy editors.
@@ -289,22 +290,22 @@ void FormEditorW::fullInit()
         delete initTime;
     }
 
-    connect(Core::EditorManager::instance(), SIGNAL(editorsClosed(QList<Core::IEditor*>)),
+    connect(EditorManager::instance(), SIGNAL(editorsClosed(QList<Core::IEditor*>)),
             SLOT(closeFormEditorsForXmlEditors(QList<Core::IEditor*>)));
     // Nest toolbar and editor widget
     m_editorWidget = new EditorWidget(this);
-    QSettings *settings = Core::ICore::settings();
+    QSettings *settings = ICore::settings();
     settings->beginGroup(QLatin1String(settingsGroupC));
     m_editorWidget->restoreSettings(settings);
     settings->endGroup();
 
     m_editorToolBar = createEditorToolBar();
-    m_toolBar = Core::EditorManager::createToolBar();
-    m_toolBar->setToolbarCreationFlags(Core::EditorToolBar::FlagsStandalone);
+    m_toolBar = EditorManager::createToolBar();
+    m_toolBar->setToolbarCreationFlags(EditorToolBar::FlagsStandalone);
     m_toolBar->setNavigationVisible(false);
     m_toolBar->addCenterToolBar(m_editorToolBar);
 
-    m_designMode = Core::DesignMode::instance();
+    m_designMode = DesignMode::instance();
     m_modeWidget = new QWidget;
     m_modeWidget->setObjectName(QLatin1String("DesignerModeWidget"));
     QVBoxLayout *layout = new QVBoxLayout;
@@ -313,18 +314,18 @@ void FormEditorW::fullInit()
     layout->addWidget(m_toolBar);
     // Avoid mode switch to 'Edit' mode when the application started by
     // 'Run' in 'Design' mode emits output.
-    Core::MiniSplitter *splitter = new Core::MiniSplitter(Qt::Vertical);
+    MiniSplitter *splitter = new MiniSplitter(Qt::Vertical);
     splitter->addWidget(m_editorWidget);
-    QWidget *outputPane = new Core::OutputPanePlaceHolder(m_designMode, splitter);
+    QWidget *outputPane = new OutputPanePlaceHolder(m_designMode, splitter);
     outputPane->setObjectName(QLatin1String("DesignerOutputPanePlaceHolder"));
     splitter->addWidget(outputPane);
     layout->addWidget(splitter);
     m_modeWidget->setLayout(layout);
 
-    Core::Context designerContexts = m_contexts;
+    Context designerContexts = m_contexts;
     designerContexts.add(Core::Constants::C_EDITORMANAGER);
     m_context = new DesignerContext(designerContexts, m_modeWidget, this);
-    Core::ICore::addContextObject(m_context);
+    ICore::addContextObject(m_context);
 
     m_designMode->registerDesignWidget(m_modeWidget, QStringList(QLatin1String(FORM_MIMETYPE)), m_contexts);
 
@@ -398,37 +399,33 @@ void FormEditorW::deleteInstance()
 
 void FormEditorW::setupActions()
 {
-    Core::Command *command;
-
     //menus
-    Core::ActionContainer *medit =
-        Core::ActionManager::actionContainer(Core::Constants::M_EDIT);
-    Core::ActionContainer *mtools =
-        Core::ActionManager::actionContainer(Core::Constants::M_TOOLS);
+    ActionContainer *medit = ActionManager::actionContainer(Core::Constants::M_EDIT);
+    ActionContainer *mtools = ActionManager::actionContainer(Core::Constants::M_TOOLS);
 
-    Core::ActionContainer *mformtools =
-        Core::ActionManager::createMenu(M_FORMEDITOR);
+    ActionContainer *mformtools = ActionManager::createMenu(M_FORMEDITOR);
     mformtools->menu()->setTitle(tr("For&m Editor"));
     mtools->addMenu(mformtools);
 
     //overridden actions
-    bindShortcut(Core::ActionManager::registerAction(m_fwm->actionUndo(), Core::Constants::UNDO, m_contexts), m_fwm->actionUndo());
-    bindShortcut(Core::ActionManager::registerAction(m_fwm->actionRedo(), Core::Constants::REDO, m_contexts), m_fwm->actionRedo());
-    bindShortcut(Core::ActionManager::registerAction(m_fwm->actionCut(), Core::Constants::CUT, m_contexts), m_fwm->actionCut());
-    bindShortcut(Core::ActionManager::registerAction(m_fwm->actionCopy(), Core::Constants::COPY, m_contexts), m_fwm->actionCopy());
-    bindShortcut(Core::ActionManager::registerAction(m_fwm->actionPaste(), Core::Constants::PASTE, m_contexts), m_fwm->actionPaste());
-    bindShortcut(Core::ActionManager::registerAction(m_fwm->actionSelectAll(), Core::Constants::SELECTALL, m_contexts), m_fwm->actionSelectAll());
+    bindShortcut(ActionManager::registerAction(m_fwm->actionUndo(), Core::Constants::UNDO, m_contexts), m_fwm->actionUndo());
+    bindShortcut(ActionManager::registerAction(m_fwm->actionRedo(), Core::Constants::REDO, m_contexts), m_fwm->actionRedo());
+    bindShortcut(ActionManager::registerAction(m_fwm->actionCut(), Core::Constants::CUT, m_contexts), m_fwm->actionCut());
+    bindShortcut(ActionManager::registerAction(m_fwm->actionCopy(), Core::Constants::COPY, m_contexts), m_fwm->actionCopy());
+    bindShortcut(ActionManager::registerAction(m_fwm->actionPaste(), Core::Constants::PASTE, m_contexts), m_fwm->actionPaste());
+    bindShortcut(ActionManager::registerAction(m_fwm->actionSelectAll(), Core::Constants::SELECTALL, m_contexts), m_fwm->actionSelectAll());
 
     m_actionPrint = new QAction(this);
-    bindShortcut(Core::ActionManager::registerAction(m_actionPrint, Core::Constants::PRINT, m_contexts), m_actionPrint);
+    bindShortcut(ActionManager::registerAction(m_actionPrint, Core::Constants::PRINT, m_contexts), m_actionPrint);
     connect(m_actionPrint, SIGNAL(triggered()), this, SLOT(print()));
 
     //'delete' action. Do not set a shortcut as Designer handles
     // the 'Delete' key by event filter. Setting a shortcut triggers
     // buggy behaviour on Mac (Pressing Delete in QLineEdit removing the widget).
-    command = Core::ActionManager::registerAction(m_fwm->actionDelete(), Core::Id("FormEditor.Edit.Delete"), m_contexts);
+    Command *command;
+    command = ActionManager::registerAction(m_fwm->actionDelete(), Id("FormEditor.Edit.Delete"), m_contexts);
     bindShortcut(command, m_fwm->actionDelete());
-    command->setAttribute(Core::Command::CA_Hide);
+    command->setAttribute(Command::CA_Hide);
     medit->addAction(command, Core::Constants::G_EDIT_COPYPASTE);
 
     m_actionGroupEditMode = new QActionGroup(this);
@@ -437,74 +434,74 @@ void FormEditorW::setupActions()
 
     medit->addSeparator(m_contexts, Core::Constants::G_EDIT_OTHER);
 
-    m_toolActionIds.push_back(Core::Id("FormEditor.WidgetEditor"));
+    m_toolActionIds.push_back(Id("FormEditor.WidgetEditor"));
     createEditModeAction(m_actionGroupEditMode, m_contexts, medit,
                          tr("Edit Widgets"), m_toolActionIds.back(),
                          EditModeWidgetEditor, QLatin1String("widgettool.png"), tr("F3"));
 
-    m_toolActionIds.push_back(Core::Id("FormEditor.SignalsSlotsEditor"));
+    m_toolActionIds.push_back(Id("FormEditor.SignalsSlotsEditor"));
     createEditModeAction(m_actionGroupEditMode, m_contexts, medit,
                          tr("Edit Signals/Slots"), m_toolActionIds.back(),
                          EditModeSignalsSlotEditor, QLatin1String("signalslottool.png"), tr("F4"));
 
-    m_toolActionIds.push_back(Core::Id("FormEditor.BuddyEditor"));
+    m_toolActionIds.push_back(Id("FormEditor.BuddyEditor"));
     createEditModeAction(m_actionGroupEditMode, m_contexts, medit,
                          tr("Edit Buddies"), m_toolActionIds.back(),
                          EditModeBuddyEditor, QLatin1String("buddytool.png"));
 
-    m_toolActionIds.push_back(Core::Id("FormEditor.TabOrderEditor"));
+    m_toolActionIds.push_back(Id("FormEditor.TabOrderEditor"));
     createEditModeAction(m_actionGroupEditMode, m_contexts, medit,
                          tr("Edit Tab Order"),  m_toolActionIds.back(),
                          EditModeTabOrderEditor, QLatin1String("tabordertool.png"));
 
     //tool actions
-    m_toolActionIds.push_back(Core::Id("FormEditor.LayoutHorizontally"));
-    const QString horizLayoutShortcut = Core::UseMacShortcuts ? tr("Meta+Shift+H") : tr("Ctrl+H");
+    m_toolActionIds.push_back(Id("FormEditor.LayoutHorizontally"));
+    const QString horizLayoutShortcut = UseMacShortcuts ? tr("Meta+Shift+H") : tr("Ctrl+H");
     addToolAction(m_fwm->actionHorizontalLayout(), m_contexts,
                   m_toolActionIds.back(), mformtools, horizLayoutShortcut);
 
-    m_toolActionIds.push_back(Core::Id("FormEditor.LayoutVertically"));
-    const QString vertLayoutShortcut = Core::UseMacShortcuts ? tr("Meta+L") : tr("Ctrl+L");
+    m_toolActionIds.push_back(Id("FormEditor.LayoutVertically"));
+    const QString vertLayoutShortcut = UseMacShortcuts ? tr("Meta+L") : tr("Ctrl+L");
     addToolAction(m_fwm->actionVerticalLayout(), m_contexts,
                   m_toolActionIds.back(),  mformtools, vertLayoutShortcut);
 
-    m_toolActionIds.push_back(Core::Id("FormEditor.SplitHorizontal"));
+    m_toolActionIds.push_back(Id("FormEditor.SplitHorizontal"));
     addToolAction(m_fwm->actionSplitHorizontal(), m_contexts,
                   m_toolActionIds.back(), mformtools);
 
-    m_toolActionIds.push_back(Core::Id("FormEditor.SplitVertical"));
+    m_toolActionIds.push_back(Id("FormEditor.SplitVertical"));
     addToolAction(m_fwm->actionSplitVertical(), m_contexts,
                   m_toolActionIds.back(), mformtools);
 
-    m_toolActionIds.push_back(Core::Id("FormEditor.LayoutForm"));
+    m_toolActionIds.push_back(Id("FormEditor.LayoutForm"));
     addToolAction(m_fwm->actionFormLayout(), m_contexts,
                   m_toolActionIds.back(),  mformtools);
 
-    m_toolActionIds.push_back(Core::Id("FormEditor.LayoutGrid"));
-    const QString gridShortcut = Core::UseMacShortcuts ? tr("Meta+Shift+G") : tr("Ctrl+G");
+    m_toolActionIds.push_back(Id("FormEditor.LayoutGrid"));
+    const QString gridShortcut = UseMacShortcuts ? tr("Meta+Shift+G") : tr("Ctrl+G");
     addToolAction(m_fwm->actionGridLayout(), m_contexts,
                   m_toolActionIds.back(),  mformtools, gridShortcut);
 
-    m_toolActionIds.push_back(Core::Id("FormEditor.LayoutBreak"));
+    m_toolActionIds.push_back(Id("FormEditor.LayoutBreak"));
     addToolAction(m_fwm->actionBreakLayout(), m_contexts,
                   m_toolActionIds.back(), mformtools);
 
-    m_toolActionIds.push_back(Core::Id("FormEditor.LayoutAdjustSize"));
-    const QString adjustShortcut = Core::UseMacShortcuts ? tr("Meta+J") : tr("Ctrl+J");
+    m_toolActionIds.push_back(Id("FormEditor.LayoutAdjustSize"));
+    const QString adjustShortcut = UseMacShortcuts ? tr("Meta+J") : tr("Ctrl+J");
     addToolAction(m_fwm->actionAdjustSize(), m_contexts,
                   m_toolActionIds.back(),  mformtools, adjustShortcut);
 
-    m_toolActionIds.push_back(Core::Id("FormEditor.SimplifyLayout"));
+    m_toolActionIds.push_back(Id("FormEditor.SimplifyLayout"));
     addToolAction(m_fwm->actionSimplifyLayout(), m_contexts,
                   m_toolActionIds.back(),  mformtools);
 
     mformtools->addSeparator(m_contexts);
 
     addToolAction(m_fwm->actionLower(), m_contexts,
-                  Core::Id("FormEditor.Lower"), mformtools);
+                  Id("FormEditor.Lower"), mformtools);
 
     addToolAction(m_fwm->actionRaise(), m_contexts,
-                  Core::Id("FormEditor.Raise"), mformtools);
+                  Id("FormEditor.Raise"), mformtools);
 
     // Commands that do not go into the editor toolbar
     mformtools->addSeparator(m_contexts);
@@ -516,7 +513,7 @@ void FormEditorW::setupActions()
 #endif
     QTC_ASSERT(m_actionPreview, return);
     addToolAction(m_actionPreview, m_contexts,
-                   Core::Id("FormEditor.Preview"), mformtools, tr("Alt+Shift+R"));
+                   Id("FormEditor.Preview"), mformtools, tr("Alt+Shift+R"));
 
     // Preview in style...
 #if QT_VERSION >= 0x050000
@@ -525,7 +522,7 @@ void FormEditorW::setupActions()
     m_actionGroupPreviewInStyle = m_fwm->actionGroupPreviewInStyle();
 #endif
 
-    Core::ActionContainer *previewAC = createPreviewStyleMenu(m_actionGroupPreviewInStyle);
+    ActionContainer *previewAC = createPreviewStyleMenu(m_actionGroupPreviewInStyle);
     m_previewInStyleMenu = previewAC->menu();
     mformtools->addMenu(previewAC);
     setPreviewMenuEnabled(false);
@@ -539,9 +536,9 @@ void FormEditorW::setupActions()
     connect(m_actionSwitchSource, SIGNAL(triggered()), this, SLOT(switchSourceForm()));
 
     // Switch form/source in editor/design contexts.
-    Core::Context switchContexts = m_contexts;
+    Context switchContexts = m_contexts;
     switchContexts.add(Core::Constants::C_EDITORMANAGER);
-    addToolAction(m_actionSwitchSource, switchContexts, Core::Id("FormEditor.FormSwitchSource"), mformtools,
+    addToolAction(m_actionSwitchSource, switchContexts, Id("FormEditor.FormSwitchSource"), mformtools,
                   tr("Shift+F4"));
 
     mformtools->addSeparator(m_contexts);
@@ -550,13 +547,13 @@ void FormEditorW::setupActions()
 #else
     QAction *actionFormSettings = m_fwm->actionShowFormWindowSettingsDialog();
 #endif
-    addToolAction(actionFormSettings, m_contexts, Core::Id("FormEditor.FormSettings"), mformtools);
+    addToolAction(actionFormSettings, m_contexts, Id("FormEditor.FormSettings"), mformtools);
 
     mformtools->addSeparator(m_contexts);
     m_actionAboutPlugins = new QAction(tr("About Qt Designer Plugins..."), this);
     m_actionAboutPlugins->setMenuRole(QAction::NoRole);
     addToolAction(m_actionAboutPlugins, m_contexts,
-                   Core::Id("FormEditor.AboutPlugins"), mformtools);
+                   Id("FormEditor.AboutPlugins"), mformtools);
     connect(m_actionAboutPlugins,  SIGNAL(triggered()), m_fwm,
 #if QT_VERSION >= 0x050000
             SLOT(showPluginDialog())
@@ -573,9 +570,9 @@ void FormEditorW::setupActions()
 QToolBar *FormEditorW::createEditorToolBar() const
 {
     QToolBar *editorToolBar = new QToolBar;
-    const QList<Core::Id>::const_iterator cend = m_toolActionIds.constEnd();
-    for (QList<Core::Id>::const_iterator it = m_toolActionIds.constBegin(); it != cend; ++it) {
-        Core::Command *cmd = Core::ActionManager::command(*it);
+    const QList<Id>::const_iterator cend = m_toolActionIds.constEnd();
+    for (QList<Id>::const_iterator it = m_toolActionIds.constBegin(); it != cend; ++it) {
+        Command *cmd = ActionManager::command(*it);
         QTC_ASSERT(cmd, continue);
         QAction *action = cmd->action();
         if (!action->icon().isNull()) // Simplify grid has no action yet
@@ -587,10 +584,10 @@ QToolBar *FormEditorW::createEditorToolBar() const
     return editorToolBar;
 }
 
-Core::ActionContainer *FormEditorW::createPreviewStyleMenu(QActionGroup *actionGroup)
+ActionContainer *FormEditorW::createPreviewStyleMenu(QActionGroup *actionGroup)
 {
     const QString menuId = QLatin1String(M_FORMEDITOR_PREVIEW);
-    Core::ActionContainer *menuPreviewStyle = Core::ActionManager::createMenu(M_FORMEDITOR_PREVIEW);
+    ActionContainer *menuPreviewStyle = ActionManager::createMenu(M_FORMEDITOR_PREVIEW);
     menuPreviewStyle->menu()->setTitle(tr("Preview in"));
 
     // The preview menu is a list of invisible actions for the embedded design
@@ -612,11 +609,11 @@ Core::ActionContainer *FormEditorW::createPreviewStyleMenu(QActionGroup *actionG
             name += dot;
         }
         name += data.toString();
-        Core::Command *command = Core::ActionManager::registerAction(a, Core::Id::fromString(name), m_contexts);
+        Command *command = ActionManager::registerAction(a, Id::fromString(name), m_contexts);
         bindShortcut(command, a);
         if (isDeviceProfile) {
-            command->setAttribute(Core::Command::CA_UpdateText);
-            command->setAttribute(Core::Command::CA_NonConfigurable);
+            command->setAttribute(Command::CA_UpdateText);
+            command->setAttribute(Command::CA_NonConfigurable);
         }
         menuPreviewStyle->addAction(command);
     }
@@ -638,11 +635,11 @@ void FormEditorW::saveSettings(QSettings *s)
 
 void FormEditorW::critical(const QString &errorMessage)
 {
-    QMessageBox::critical(Core::ICore::mainWindow(), tr("Designer"),  errorMessage);
+    QMessageBox::critical(ICore::mainWindow(), tr("Designer"),  errorMessage);
 }
 
 // Apply the command shortcut to the action and connects to the command's keySequenceChanged signal
-void FormEditorW::bindShortcut(Core::Command *command, QAction *action)
+void FormEditorW::bindShortcut(Command *command, QAction *action)
 {
     m_commandToDesignerAction.insert(command, action);
     connect(command, SIGNAL(keySequenceChanged()),
@@ -653,10 +650,10 @@ void FormEditorW::bindShortcut(Core::Command *command, QAction *action)
 
 // Create an action to activate a designer tool
 QAction *FormEditorW::createEditModeAction(QActionGroup *ag,
-                                     const Core::Context &context,
-                                     Core::ActionContainer *medit,
+                                     const Context &context,
+                                     ActionContainer *medit,
                                      const QString &actionName,
-                                     const Core::Id &id,
+                                     const Id &id,
                                      int toolNumber,
                                      const QString &iconName,
                                      const QString &keySequence)
@@ -665,7 +662,7 @@ QAction *FormEditorW::createEditModeAction(QActionGroup *ag,
     rc->setCheckable(true);
     if (!iconName.isEmpty())
          rc->setIcon(designerIcon(iconName));
-    Core::Command *command = Core::ActionManager::registerAction(rc, id, context);
+    Command *command = ActionManager::registerAction(rc, id, context);
     command->setAttribute(Core::Command::CA_Hide);
     if (!keySequence.isEmpty())
         command->setDefaultKeySequence(QKeySequence(keySequence));
@@ -677,11 +674,10 @@ QAction *FormEditorW::createEditModeAction(QActionGroup *ag,
 }
 
 // Create a tool action
-Core::Command *FormEditorW::addToolAction(QAction *a,
-                                          const Core::Context &context, const Core::Id &id,
-                                          Core::ActionContainer *c1, const QString &keySequence)
+Command *FormEditorW::addToolAction(QAction *a, const Context &context, const Id &id,
+                                          ActionContainer *c1, const QString &keySequence)
 {
-    Core::Command *command = Core::ActionManager::registerAction(a, id, context);
+    Command *command = ActionManager::registerAction(a, id, context);
     if (!keySequence.isEmpty())
         command->setDefaultKeySequence(QKeySequence(keySequence));
     if (!a->isSeparator())
@@ -726,7 +722,7 @@ EditorData FormEditorW::createEditor(QWidget *parent)
 
 void FormEditorW::updateShortcut(QObject *command)
 {
-    Core::Command *c = qobject_cast<Core::Command *>(command);
+    Command *c = qobject_cast<Command *>(command);
     if (!c)
         return;
     QAction *a = m_commandToDesignerAction.value(c);
@@ -735,7 +731,7 @@ void FormEditorW::updateShortcut(QObject *command)
     a->setShortcut(c->action()->shortcut());
 }
 
-void FormEditorW::currentEditorChanged(Core::IEditor *editor)
+void FormEditorW::currentEditorChanged(IEditor *editor)
 {
     if (Designer::Constants::Internal::debug)
         qDebug() << Q_FUNC_INFO << editor << " of " << m_fwm->formWindowCount();
@@ -794,11 +790,10 @@ void FormEditorW::toolChanged(int t)
         }
 }
 
-void FormEditorW::closeFormEditorsForXmlEditors(QList<Core::IEditor*> editors)
+void FormEditorW::closeFormEditorsForXmlEditors(QList<IEditor*> editors)
 {
-    foreach (Core::IEditor *editor, editors) {
+    foreach (IEditor *editor, editors)
         m_editorWidget->removeFormWindowEditor(editor);
-    }
 }
 
 void FormEditorW::print()
@@ -808,7 +803,7 @@ void FormEditorW::print()
     if (!fw)
         return;
 
-    QPrinter *printer = Core::ICore::printer();
+    QPrinter *printer = ICore::printer();
     const bool oldFullPage =  printer->fullPage();
     const QPrinter::Orientation oldOrientation =  printer->orientation ();
     printer->setFullPage(false);
@@ -833,7 +828,7 @@ void FormEditorW::print()
         if (!dialog.exec())
            break;
 
-        QWidget *mainWindow = Core::ICore::mainWindow();
+        QWidget *mainWindow = ICore::mainWindow();
         const QCursor oldCursor = mainWindow->cursor();
         mainWindow->setCursor(Qt::WaitCursor);
         // Estimate of required scaling to make form look the same on screen and printer.
@@ -864,7 +859,7 @@ void FormEditorW::print()
 // Find out current existing editor file
 static QString currentFile()
 {
-    if (const Core::IDocument *document = Core::EditorManager::currentDocument()) {
+    if (const IDocument *document = EditorManager::currentDocument()) {
         const QString fileName = document->filePath();
         if (!fileName.isEmpty() && QFileInfo(fileName).isFile())
             return fileName;
@@ -880,18 +875,17 @@ static QString otherFile()
     const QString current = currentFile();
     if (current.isEmpty())
         return QString();
-    const Core::MimeDatabase *mdb = Core::ICore::mimeDatabase();
-    const Core::MimeType currentMimeType = mdb->findByFile(current);
+    const MimeType currentMimeType = MimeDatabase::findByFile(current);
     if (!currentMimeType)
         return QString();
     // Determine potential suffixes of candidate files
     // 'ui' -> 'cpp', 'cpp/h' -> 'ui'.
     QStringList candidateSuffixes;
     if (currentMimeType.type() == QLatin1String(FORM_MIMETYPE)) {
-        candidateSuffixes += mdb->findByType(QLatin1String(CppTools::Constants::CPP_SOURCE_MIMETYPE)).suffixes();
+        candidateSuffixes += MimeDatabase::findByType(QLatin1String(CppTools::Constants::CPP_SOURCE_MIMETYPE)).suffixes();
     } else if (currentMimeType.type() == QLatin1String(CppTools::Constants::CPP_SOURCE_MIMETYPE)
                || currentMimeType.type() == QLatin1String(CppTools::Constants::CPP_HEADER_MIMETYPE)) {
-        candidateSuffixes += mdb->findByType(QLatin1String(FORM_MIMETYPE)).suffixes();
+        candidateSuffixes += MimeDatabase::findByType(QLatin1String(FORM_MIMETYPE)).suffixes();
     } else {
         return QString();
     }
@@ -911,7 +905,7 @@ void FormEditorW::switchSourceForm()
 {
     const QString fileToOpen = otherFile();
     if (!fileToOpen.isEmpty())
-        Core::EditorManager::openEditor(fileToOpen);
+        EditorManager::openEditor(fileToOpen);
 }
 
 } // namespace Internal
diff --git a/src/plugins/designer/qtcreatorintegration.cpp b/src/plugins/designer/qtcreatorintegration.cpp
index 699d5cd46f0..569e1a3a7a1 100644
--- a/src/plugins/designer/qtcreatorintegration.cpp
+++ b/src/plugins/designer/qtcreatorintegration.cpp
@@ -647,8 +647,7 @@ void QtCreatorIntegration::slotSyncSettingsToDesigner()
 {
 #if QT_VERSION > 0x040800
     // Set promotion-relevant parameters on integration.
-    const Core::MimeDatabase *mdb = Core::ICore::mimeDatabase();
-    setHeaderSuffix(mdb->preferredSuffixByType(QLatin1String(CppTools::Constants::CPP_HEADER_MIMETYPE)));
+    setHeaderSuffix(Core::MimeDatabase::preferredSuffixByType(QLatin1String(CppTools::Constants::CPP_HEADER_MIMETYPE)));
     setHeaderLowercase(FormClassWizardPage::lowercaseHeaderFiles());
 #endif
 }
diff --git a/src/plugins/diffeditor/diffeditorwidget.cpp b/src/plugins/diffeditor/diffeditorwidget.cpp
index 56e8fc2377a..1481c7825ce 100644
--- a/src/plugins/diffeditor/diffeditorwidget.cpp
+++ b/src/plugins/diffeditor/diffeditorwidget.cpp
@@ -266,14 +266,12 @@ void MultiHighlighter::setDocuments(const QList<QPair<DiffEditorWidget::DiffFile
     qDeleteAll(m_highlighters);
     m_highlighters.clear();
 
-    const MimeDatabase *mimeDatabase = ICore::mimeDatabase();
-
     // create new documents
     for (int i = 0; i < documents.count(); i++) {
         DiffEditorWidget::DiffFileInfo fileInfo = documents.at(i).first;
         const QString contents = documents.at(i).second;
         QTextDocument *document = new QTextDocument(contents);
-        const MimeType mimeType = mimeDatabase->findByFile(QFileInfo(fileInfo.fileName));
+        const MimeType mimeType = MimeDatabase::findByFile(QFileInfo(fileInfo.fileName));
         SyntaxHighlighter *highlighter = 0;
         if (const IHighlighterFactory *factory = m_mimeTypeToHighlighterFactory.value(mimeType.type())) {
             highlighter = factory->createHighlighter();
diff --git a/src/plugins/genericprojectmanager/genericprojectplugin.cpp b/src/plugins/genericprojectmanager/genericprojectplugin.cpp
index 90ee574c866..08695a063bd 100644
--- a/src/plugins/genericprojectmanager/genericprojectplugin.cpp
+++ b/src/plugins/genericprojectmanager/genericprojectplugin.cpp
@@ -69,11 +69,9 @@ bool GenericProjectPlugin::initialize(const QStringList &, QString *errorMessage
 {
     using namespace Core;
 
-    Core::MimeDatabase *mimeDB = ICore::mimeDatabase();
-
     const QLatin1String mimetypesXml(":genericproject/GenericProjectManager.mimetypes.xml");
 
-    if (! mimeDB->addMimeTypes(mimetypesXml, errorMessage))
+    if (!MimeDatabase::addMimeTypes(mimetypesXml, errorMessage))
         return false;
 
     Manager *manager = new Manager;
@@ -89,13 +87,13 @@ bool GenericProjectPlugin::initialize(const QStringList &, QString *errorMessage
     addAutoReleasedObject(new GenericProjectWizard);
     addAutoReleasedObject(new GenericBuildConfigurationFactory);
 
-    const Core::Context projectContext(Constants::PROJECTCONTEXT);
-    Core::ActionContainer *mproject =
-            Core::ActionManager::actionContainer(ProjectExplorer::Constants::M_PROJECTCONTEXT);
+    const Context projectContext(Constants::PROJECTCONTEXT);
+    ActionContainer *mproject =
+            ActionManager::actionContainer(ProjectExplorer::Constants::M_PROJECTCONTEXT);
     m_editFilesAction = new QAction(tr("Edit Files..."), this);
 
-    Core::Command *command = Core::ActionManager::registerAction(m_editFilesAction, "GenericProjectManager.EditFiles", projectContext);
-    command->setAttribute(Core::Command::CA_Hide);
+    Command *command = ActionManager::registerAction(m_editFilesAction, "GenericProjectManager.EditFiles", projectContext);
+    command->setAttribute(Command::CA_Hide);
     mproject->addAction(command, ProjectExplorer::Constants::G_PROJECT_FILES);
     connect(m_editFilesAction, SIGNAL(triggered()), this, SLOT(editFiles()));
 
diff --git a/src/plugins/genericprojectmanager/genericprojectwizard.cpp b/src/plugins/genericprojectmanager/genericprojectwizard.cpp
index e2e2874e4e3..2cd45ab264c 100644
--- a/src/plugins/genericprojectmanager/genericprojectwizard.cpp
+++ b/src/plugins/genericprojectmanager/genericprojectwizard.cpp
@@ -166,9 +166,7 @@ Core::GeneratedFiles GenericProjectWizard::generateFiles(const QWizard *w,
     const QString configFileName = QFileInfo(dir, projectName + QLatin1String(".config")).absoluteFilePath();
     const QStringList paths = wizard->selectedPaths();
 
-    Core::MimeDatabase *mimeDatabase = Core::ICore::mimeDatabase();
-
-    Core::MimeType headerTy = mimeDatabase->findByType(QLatin1String("text/x-chdr"));
+    Core::MimeType headerTy = Core::MimeDatabase::findByType(QLatin1String("text/x-chdr"));
 
     QStringList nameFilters;
     foreach (const Core::MimeGlobPattern &gp, headerTy.globPatterns())
diff --git a/src/plugins/git/gitplugin.cpp b/src/plugins/git/gitplugin.cpp
index f3e567e42ba..35d8e89fe2c 100644
--- a/src/plugins/git/gitplugin.cpp
+++ b/src/plugins/git/gitplugin.cpp
@@ -703,7 +703,7 @@ bool GitPlugin::initialize(const QStringList &arguments, QString *errorMessage)
     connect(Core::ICore::vcsManager(), SIGNAL(repositoryChanged(QString)),
             this, SLOT(updateBranches(QString)), Qt::QueuedConnection);
 
-    if (!Core::ICore::mimeDatabase()->addMimeTypes(QLatin1String(RC_GIT_MIME_XML), errorMessage))
+    if (!Core::MimeDatabase::addMimeTypes(QLatin1String(RC_GIT_MIME_XML), errorMessage))
         return false;
 
     /* "Gerrit" */
diff --git a/src/plugins/glsleditor/glsleditor.cpp b/src/plugins/glsleditor/glsleditor.cpp
index 7e01ccb9f14..dd507e89d83 100644
--- a/src/plugins/glsleditor/glsleditor.cpp
+++ b/src/plugins/glsleditor/glsleditor.cpp
@@ -197,12 +197,12 @@ Core::IEditor *GLSLEditorEditable::duplicate(QWidget *parent)
 
 Core::Id GLSLEditorEditable::id() const
 {
-    return Core::Id(GLSLEditor::Constants::C_GLSLEDITOR_ID);
+    return GLSLEditor::Constants::C_GLSLEDITOR_ID;
 }
 
 bool GLSLEditorEditable::open(QString *errorString, const QString &fileName, const QString &realFileName)
 {
-    editorWidget()->setMimeType(Core::ICore::mimeDatabase()->findByFile(QFileInfo(fileName)).type());
+    editorWidget()->setMimeType(Core::MimeDatabase::findByFile(QFileInfo(fileName)).type());
     bool b = TextEditor::BaseTextEditor::open(errorString, fileName, realFileName);
     return b;
 }
diff --git a/src/plugins/glsleditor/glsleditorplugin.cpp b/src/plugins/glsleditor/glsleditorplugin.cpp
index 88ee6d36c4c..e8a4e814e23 100644
--- a/src/plugins/glsleditor/glsleditorplugin.cpp
+++ b/src/plugins/glsleditor/glsleditorplugin.cpp
@@ -107,7 +107,7 @@ GLSLEditorPlugin::~GLSLEditorPlugin()
 
 bool GLSLEditorPlugin::initialize(const QStringList & /*arguments*/, QString *errorMessage)
 {
-    if (!ICore::mimeDatabase()->addMimeTypes(QLatin1String(":/glsleditor/GLSLEditor.mimetypes.xml"), errorMessage))
+    if (!MimeDatabase::addMimeTypes(QLatin1String(":/glsleditor/GLSLEditor.mimetypes.xml"), errorMessage))
         return false;
 
 //    m_modelManager = new ModelManager(this);
@@ -148,17 +148,16 @@ bool GLSLEditorPlugin::initialize(const QStringList & /*arguments*/, QString *er
     errorMessage->clear();
 
     FileIconProvider *iconProvider = FileIconProvider::instance();
-    MimeDatabase *mimeDatabase = ICore::mimeDatabase();
     iconProvider->registerIconOverlayForMimeType(QIcon(QLatin1String(":/glsleditor/images/glslfile.png")),
-                                                 mimeDatabase->findByType(QLatin1String(GLSLEditor::Constants::GLSL_MIMETYPE)));
+                                                 MimeDatabase::findByType(QLatin1String(GLSLEditor::Constants::GLSL_MIMETYPE)));
     iconProvider->registerIconOverlayForMimeType(QIcon(QLatin1String(":/glsleditor/images/glslfile.png")),
-                                                 mimeDatabase->findByType(QLatin1String(GLSLEditor::Constants::GLSL_MIMETYPE_VERT)));
+                                                 MimeDatabase::findByType(QLatin1String(GLSLEditor::Constants::GLSL_MIMETYPE_VERT)));
     iconProvider->registerIconOverlayForMimeType(QIcon(QLatin1String(":/glsleditor/images/glslfile.png")),
-                                                 mimeDatabase->findByType(QLatin1String(GLSLEditor::Constants::GLSL_MIMETYPE_FRAG)));
+                                                 MimeDatabase::findByType(QLatin1String(GLSLEditor::Constants::GLSL_MIMETYPE_FRAG)));
     iconProvider->registerIconOverlayForMimeType(QIcon(QLatin1String(":/glsleditor/images/glslfile.png")),
-                                                 mimeDatabase->findByType(QLatin1String(GLSLEditor::Constants::GLSL_MIMETYPE_VERT_ES)));
+                                                 MimeDatabase::findByType(QLatin1String(GLSLEditor::Constants::GLSL_MIMETYPE_VERT_ES)));
     iconProvider->registerIconOverlayForMimeType(QIcon(QLatin1String(":/glsleditor/images/glslfile.png")),
-                                                 mimeDatabase->findByType(QLatin1String(GLSLEditor::Constants::GLSL_MIMETYPE_FRAG_ES)));
+                                                 MimeDatabase::findByType(QLatin1String(GLSLEditor::Constants::GLSL_MIMETYPE_FRAG_ES)));
 
     QObject *core = ICore::instance();
     BaseFileWizardParameters fragWizardParameters(IWizard::FileWizard);
diff --git a/src/plugins/imageviewer/imageviewerplugin.cpp b/src/plugins/imageviewer/imageviewerplugin.cpp
index 81f22d76508..a0a68394116 100644
--- a/src/plugins/imageviewer/imageviewerplugin.cpp
+++ b/src/plugins/imageviewer/imageviewerplugin.cpp
@@ -64,7 +64,7 @@ bool ImageViewerPlugin::initialize(const QStringList &arguments, QString *errorM
 {
     Q_UNUSED(arguments)
 
-    if (!Core::ICore::mimeDatabase()->addMimeTypes(QLatin1String(":/imageviewer/ImageViewer.mimetypes.xml"), errorMessage))
+    if (!Core::MimeDatabase::addMimeTypes(QLatin1String(":/imageviewer/ImageViewer.mimetypes.xml"), errorMessage))
         return false;
 
     d->factory = new ImageViewerFactory(this);
diff --git a/src/plugins/perforce/perforceplugin.cpp b/src/plugins/perforce/perforceplugin.cpp
index 0e19f1c31e1..aea7c94654e 100644
--- a/src/plugins/perforce/perforceplugin.cpp
+++ b/src/plugins/perforce/perforceplugin.cpp
@@ -210,7 +210,7 @@ bool PerforcePlugin::initialize(const QStringList & /* arguments */, QString *er
 
     initializeVcs(new PerforceVersionControl(this));
 
-    if (!Core::ICore::mimeDatabase()->addMimeTypes(QLatin1String(":/trolltech.perforce/Perforce.mimetypes.xml"), errorMessage))
+    if (!Core::MimeDatabase::addMimeTypes(QLatin1String(":/trolltech.perforce/Perforce.mimetypes.xml"), errorMessage))
         return false;
     m_instance = this;
 
diff --git a/src/plugins/projectexplorer/customwizard/customwizardparameters.cpp b/src/plugins/projectexplorer/customwizard/customwizardparameters.cpp
index 3f3c6cbfe98..d14573a5d1a 100644
--- a/src/plugins/projectexplorer/customwizard/customwizardparameters.cpp
+++ b/src/plugins/projectexplorer/customwizard/customwizardparameters.cpp
@@ -998,11 +998,10 @@ void CustomWizardContext::reset()
 {
     // Basic replacement fields: Suffixes.
     baseReplacements.clear();
-    const MimeDatabase *mdb = ICore::mimeDatabase();
     baseReplacements.insert(QLatin1String("CppSourceSuffix"),
-                            mdb->preferredSuffixByType(QLatin1String(CppTools::Constants::CPP_SOURCE_MIMETYPE)));
+                            MimeDatabase::preferredSuffixByType(QLatin1String(CppTools::Constants::CPP_SOURCE_MIMETYPE)));
     baseReplacements.insert(QLatin1String("CppHeaderSuffix"),
-                            mdb->preferredSuffixByType(QLatin1String(CppTools::Constants::CPP_HEADER_MIMETYPE)));
+                            MimeDatabase::preferredSuffixByType(QLatin1String(CppTools::Constants::CPP_HEADER_MIMETYPE)));
     replacements.clear();
     path.clear();
     targetPath.clear();
diff --git a/src/plugins/projectexplorer/pluginfilefactory.cpp b/src/plugins/projectexplorer/pluginfilefactory.cpp
index 12721374433..f3393f19738 100644
--- a/src/plugins/projectexplorer/pluginfilefactory.cpp
+++ b/src/plugins/projectexplorer/pluginfilefactory.cpp
@@ -82,7 +82,7 @@ QList<ProjectFileFactory *> ProjectFileFactory::createFactories(QString *filterS
         if (!filterString->isEmpty())
             *filterString += filterSeparator;
         const QString mimeType = manager->mimeType();
-        Core::MimeType mime = Core::ICore::mimeDatabase()->findByType(mimeType);
+        Core::MimeType mime = Core::MimeDatabase::findByType(mimeType);
         const QString pFilterString = mime.filterString();
         allGlobPatterns.append(mime.globPatterns());
         *filterString += pFilterString;
diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp
index a8daf6ebba1..6acd6329d97 100644
--- a/src/plugins/projectexplorer/projectexplorer.cpp
+++ b/src/plugins/projectexplorer/projectexplorer.cpp
@@ -1364,7 +1364,7 @@ QList<Project *> ProjectExplorerPlugin::openProjects(const QStringList &fileName
             continue;
         }
 
-        if (const Core::MimeType mt = Core::ICore::mimeDatabase()->findByFile(QFileInfo(fileName))) {
+        if (const Core::MimeType mt = Core::MimeDatabase::findByFile(QFileInfo(fileName))) {
             foreach (IProjectManager *manager, projectManagers) {
                 if (manager->mimeType() == mt.type()) {
                     QString tmp;
@@ -1505,9 +1505,8 @@ void ProjectExplorerPlugin::determineSessionToRestoreAtStartup()
 static inline QStringList projectFileGlobs()
 {
     QStringList result;
-    const Core::MimeDatabase *mimeDatabase = Core::ICore::instance()->mimeDatabase();
     foreach (const IProjectManager *ipm, ExtensionSystem::PluginManager::getObjects<IProjectManager>()) {
-        if (const Core::MimeType mimeType = mimeDatabase->findByType(ipm->mimeType())) {
+        if (const Core::MimeType mimeType = Core::MimeDatabase::findByType(ipm->mimeType())) {
             const QList<Core::MimeGlobPattern> patterns = mimeType.globPatterns();
             if (!patterns.isEmpty())
                 result.push_back(patterns.front().pattern());
@@ -3030,9 +3029,8 @@ Internal::ProjectExplorerSettings ProjectExplorerPlugin::projectExplorerSettings
 QStringList ProjectExplorerPlugin::projectFilePatterns()
 {
     QStringList patterns;
-    const Core::MimeDatabase *mdb = Core::ICore::mimeDatabase();
     foreach (const IProjectManager *pm, allProjectManagers())
-        if (const Core::MimeType mt = mdb->findByType(pm->mimeType()))
+        if (const Core::MimeType mt = Core::MimeDatabase::findByType(pm->mimeType()))
             foreach (const Core::MimeGlobPattern &gp, mt.globPatterns())
                 patterns.append(gp.pattern());
     return patterns;
diff --git a/src/plugins/projectexplorer/projectfilewizardextension.cpp b/src/plugins/projectexplorer/projectfilewizardextension.cpp
index 2475c90b487..87b4aa4408b 100644
--- a/src/plugins/projectexplorer/projectfilewizardextension.cpp
+++ b/src/plugins/projectexplorer/projectfilewizardextension.cpp
@@ -546,8 +546,7 @@ void ProjectFileWizardExtension::applyCodeStyle(Core::GeneratedFile *file) const
     if (file->isBinary() || file->contents().isEmpty())
         return; // nothing to do
 
-    const Core::MimeDatabase *mdb = Core::ICore::mimeDatabase();
-    Core::MimeType mt = mdb->findByFile(QFileInfo(file->path()));
+    Core::MimeType mt = Core::MimeDatabase::findByFile(QFileInfo(file->path()));
     Core::Id languageId = TextEditor::TextEditorSettings::instance()->languageId(mt.type());
 
     if (!languageId.isValid())
diff --git a/src/plugins/pythoneditor/pythoneditor.cpp b/src/plugins/pythoneditor/pythoneditor.cpp
index d00cb871822..6afb318e7b5 100644
--- a/src/plugins/pythoneditor/pythoneditor.cpp
+++ b/src/plugins/pythoneditor/pythoneditor.cpp
@@ -79,16 +79,9 @@ bool PythonEditor::open(QString *errorString,
                         const QString &fileName,
                         const QString &realFileName)
 {
-    Core::MimeType mimeType;
-    Core::MimeDatabase *mimeDB = Core::ICore::instance()->mimeDatabase();
-
-    mimeType = mimeDB->findByFile(QFileInfo(fileName));
+    Core::MimeType mimeType = Core::MimeDatabase::findByFile(QFileInfo(fileName));
     editorWidget()->setMimeType(mimeType.type());
-
-    bool status = TextEditor::BaseTextEditor::open(errorString,
-                                                   fileName,
-                                                   realFileName);
-    return status;
+    return TextEditor::BaseTextEditor::open(errorString, fileName, realFileName);
 }
 
 } // namespace Internal
diff --git a/src/plugins/pythoneditor/pythoneditorplugin.cpp b/src/plugins/pythoneditor/pythoneditorplugin.cpp
index 1f8ec02163b..6e77c2fba9d 100644
--- a/src/plugins/pythoneditor/pythoneditorplugin.cpp
+++ b/src/plugins/pythoneditor/pythoneditorplugin.cpp
@@ -212,17 +212,12 @@ PythonEditorPlugin::~PythonEditorPlugin()
     m_instance = 0;
 }
 
-bool PythonEditorPlugin::initialize(
-        const QStringList &arguments, QString *errorMessage)
+bool PythonEditorPlugin::initialize(const QStringList &arguments, QString *errorMessage)
 {
     Q_UNUSED(arguments)
 
-    if (! Core::ICore::mimeDatabase()->addMimeTypes(
-            QLatin1String(RC_PY_MIME_XML),
-            errorMessage))
-    {
+    if (!Core::MimeDatabase::addMimeTypes(QLatin1String(RC_PY_MIME_XML), errorMessage))
         return false;
-    }
 
     m_factory = new EditorFactory(this);
     addObject(m_factory);
@@ -243,9 +238,8 @@ bool PythonEditorPlugin::initialize(
     const QIcon icon = QIcon::fromTheme(QLatin1String(C_PY_MIME_ICON));
     if (!icon.isNull()) {
         Core::FileIconProvider *iconProv = Core::FileIconProvider::instance();
-        Core::MimeDatabase *mimeDB = Core::ICore::instance()->mimeDatabase();
         iconProv->registerIconOverlayForMimeType(
-                    icon, mimeDB->findByType(QLatin1String(C_PY_MIMETYPE)));
+                    icon, Core::MimeDatabase::findByType(QLatin1String(C_PY_MIMETYPE)));
     }
 
     ////////////////////////////////////////////////////////////////////////////
diff --git a/src/plugins/qmljseditor/qmljseditor.cpp b/src/plugins/qmljseditor/qmljseditor.cpp
index 8f0f4eafab6..f54d440834b 100644
--- a/src/plugins/qmljseditor/qmljseditor.cpp
+++ b/src/plugins/qmljseditor/qmljseditor.cpp
@@ -93,6 +93,7 @@ enum {
     UPDATE_OUTLINE_INTERVAL = 500 // msecs after new semantic info has been arrived / cursor has moved
 };
 
+using namespace Core;
 using namespace QmlJS;
 using namespace QmlJS::AST;
 using namespace QmlJSTools;
@@ -578,7 +579,7 @@ QModelIndex QmlJSTextEditorWidget::outlineModelIndex()
     return m_outlineModelIndex;
 }
 
-Core::IEditor *QmlJSEditor::duplicate(QWidget *parent)
+IEditor *QmlJSEditor::duplicate(QWidget *parent)
 {
     QmlJSTextEditorWidget *newEditor = new QmlJSTextEditorWidget(parent);
     newEditor->duplicateFrom(editorWidget());
@@ -586,15 +587,15 @@ Core::IEditor *QmlJSEditor::duplicate(QWidget *parent)
     return newEditor->editor();
 }
 
-Core::Id QmlJSEditor::id() const
+Id QmlJSEditor::id() const
 {
-    return Core::Id(Constants::C_QMLJSEDITOR_ID);
+    return Constants::C_QMLJSEDITOR_ID;
 }
 
 bool QmlJSEditor::open(QString *errorString, const QString &fileName, const QString &realFileName)
 {
     bool b = TextEditor::BaseTextEditor::open(errorString, fileName, realFileName);
-    editorWidget()->setMimeType(Core::ICore::mimeDatabase()->findByFile(QFileInfo(fileName)).type());
+    editorWidget()->setMimeType(MimeDatabase::findByFile(QFileInfo(fileName)).type());
     return b;
 }
 
@@ -692,8 +693,8 @@ void QmlJSTextEditorWidget::jumpToOutlineElement(int /*index*/)
     if (!location.isValid())
         return;
 
-    Core::EditorManager::cutForwardNavigationHistory();
-    Core::EditorManager::addCurrentPositionToNavigationHistory();
+    EditorManager::cutForwardNavigationHistory();
+    EditorManager::addCurrentPositionToNavigationHistory();
 
     QTextCursor cursor = textCursor();
     cursor.setPosition(location.offset);
@@ -1207,7 +1208,7 @@ void QmlJSTextEditorWidget::contextMenuEvent(QContextMenuEvent *e)
 
     refactoringMenu->setEnabled(!refactoringMenu->isEmpty());
 
-    if (Core::ActionContainer *mcontext = Core::ActionManager::actionContainer(Constants::M_CONTEXT)) {
+    if (ActionContainer *mcontext = ActionManager::actionContainer(Constants::M_CONTEXT)) {
         QMenu *contextMenu = mcontext->menu();
         foreach (QAction *action, contextMenu->actions()) {
             menu->addAction(action);
@@ -1293,7 +1294,7 @@ void QmlJSTextEditorWidget::updateSemanticInfo()
         return;
 
     // Save time by not doing it for non-active editors.
-    if (Core::EditorManager::currentEditor() != editor())
+    if (EditorManager::currentEditor() != editor())
         return;
 
     m_updateSemanticInfoTimer->start();
@@ -1342,7 +1343,7 @@ void QmlJSTextEditorWidget::acceptNewSemanticInfo(const SemanticInfo &semanticIn
     // update outline
     m_updateOutlineTimer->start();
 
-    if (Core::EditorManager::currentEditor() == editor())
+    if (EditorManager::currentEditor() == editor())
         m_semanticHighlighter->rerun(m_semanticInfo);
 
     emit semanticInfoUpdated();
diff --git a/src/plugins/qmljstools/qmljsmodelmanager.cpp b/src/plugins/qmljstools/qmljsmodelmanager.cpp
index db1d7059259..1f3f0b50f0d 100644
--- a/src/plugins/qmljstools/qmljsmodelmanager.cpp
+++ b/src/plugins/qmljstools/qmljsmodelmanager.cpp
@@ -75,10 +75,8 @@ ModelManagerInterface::ProjectInfo QmlJSTools::defaultProjectInfoForProject(
     ModelManagerInterface::ProjectInfo projectInfo(project);
     ProjectExplorer::Target *activeTarget = 0;
     if (project) {
-        MimeDatabase *db = ICore::mimeDatabase();
         QList<MimeGlobPattern> globs;
-        QList<MimeType> mimeTypes = db->mimeTypes();
-        foreach (const MimeType &mimeType, mimeTypes)
+        foreach (const MimeType &mimeType, MimeDatabase::mimeTypes())
             if (mimeType.type() == QLatin1String(Constants::QML_MIMETYPE)
                     || mimeType.subClassesOf().contains(QLatin1String(Constants::QML_MIMETYPE)))
                 globs << mimeType.globPatterns();
@@ -189,16 +187,15 @@ QmlJS::Document::Language QmlJSTools::languageOfFile(const QString &fileName)
     QStringList qbsSuffixes(QLatin1String("qbs"));
 
     if (ICore::instance()) {
-        MimeDatabase *db = ICore::mimeDatabase();
-        MimeType jsSourceTy = db->findByType(QLatin1String(Constants::JS_MIMETYPE));
+        MimeType jsSourceTy = MimeDatabase::findByType(QLatin1String(Constants::JS_MIMETYPE));
         mergeSuffixes(jsSuffixes, jsSourceTy.suffixes());
-        MimeType qmlSourceTy = db->findByType(QLatin1String(Constants::QML_MIMETYPE));
+        MimeType qmlSourceTy = MimeDatabase::findByType(QLatin1String(Constants::QML_MIMETYPE));
         mergeSuffixes(qmlSuffixes, qmlSourceTy.suffixes());
-        MimeType qbsSourceTy = db->findByType(QLatin1String(Constants::QBS_MIMETYPE));
+        MimeType qbsSourceTy = MimeDatabase::findByType(QLatin1String(Constants::QBS_MIMETYPE));
         mergeSuffixes(qbsSuffixes, qbsSourceTy.suffixes());
-        MimeType qmlProjectSourceTy = db->findByType(QLatin1String(Constants::QMLPROJECT_MIMETYPE));
+        MimeType qmlProjectSourceTy = MimeDatabase::findByType(QLatin1String(Constants::QMLPROJECT_MIMETYPE));
         mergeSuffixes(qmlProjectSuffixes, qmlProjectSourceTy.suffixes());
-        MimeType jsonSourceTy = db->findByType(QLatin1String(Constants::JSON_MIMETYPE));
+        MimeType jsonSourceTy = MimeDatabase::findByType(QLatin1String(Constants::JSON_MIMETYPE));
         mergeSuffixes(jsonSuffixes, jsonSourceTy.suffixes());
     }
 
@@ -219,9 +216,8 @@ QStringList QmlJSTools::qmlAndJsGlobPatterns()
 {
     QStringList pattern;
     if (ICore::instance()) {
-        MimeDatabase *db = ICore::mimeDatabase();
-        MimeType jsSourceTy = db->findByType(QLatin1String(Constants::JS_MIMETYPE));
-        MimeType qmlSourceTy = db->findByType(QLatin1String(Constants::QML_MIMETYPE));
+        MimeType jsSourceTy = MimeDatabase::findByType(QLatin1String(Constants::JS_MIMETYPE));
+        MimeType qmlSourceTy = MimeDatabase::findByType(QLatin1String(Constants::QML_MIMETYPE));
 
         QStringList pattern;
         foreach (const MimeGlobPattern &glob, jsSourceTy.globPatterns())
@@ -892,8 +888,6 @@ void ModelManager::parse(QFutureInterface<void> &future,
 // Check whether fileMimeType is the same or extends knownMimeType
 bool ModelManager::matchesMimeType(const MimeType &fileMimeType, const MimeType &knownMimeType)
 {
-    MimeDatabase *db = ICore::mimeDatabase();
-
     const QStringList knownTypeNames = QStringList(knownMimeType.type()) + knownMimeType.aliases();
 
     foreach (const QString &knownTypeName, knownTypeNames)
@@ -901,10 +895,9 @@ bool ModelManager::matchesMimeType(const MimeType &fileMimeType, const MimeType
             return true;
 
     // recursion to parent types of fileMimeType
-    foreach (const QString &parentMimeType, fileMimeType.subClassesOf()) {
-        if (matchesMimeType(db->findByType(parentMimeType), knownMimeType))
+    foreach (const QString &parentMimeType, fileMimeType.subClassesOf())
+        if (matchesMimeType(MimeDatabase::findByType(parentMimeType), knownMimeType))
             return true;
-    }
 
     return false;
 }
diff --git a/src/plugins/qmljstools/qmljstoolsplugin.cpp b/src/plugins/qmljstools/qmljstoolsplugin.cpp
index b1180581588..9321fd86c77 100644
--- a/src/plugins/qmljstools/qmljstoolsplugin.cpp
+++ b/src/plugins/qmljstools/qmljstoolsplugin.cpp
@@ -72,9 +72,8 @@ QmlJSToolsPlugin::~QmlJSToolsPlugin()
 bool QmlJSToolsPlugin::initialize(const QStringList &arguments, QString *error)
 {
     Q_UNUSED(arguments)
-    Q_UNUSED(error)
 
-    if (!ICore::mimeDatabase()->addMimeTypes(QLatin1String(":/qmljstools/QmlJSTools.mimetypes.xml"), error))
+    if (!MimeDatabase::addMimeTypes(QLatin1String(":/qmljstools/QmlJSTools.mimetypes.xml"), error))
         return false;
 
     m_settings = new QmlJSToolsSettings(this); // force registration of qmljstools settings
diff --git a/src/plugins/qmlprojectmanager/qmlprojectplugin.cpp b/src/plugins/qmlprojectmanager/qmlprojectplugin.cpp
index 00470d2c223..867274fd1cc 100644
--- a/src/plugins/qmlprojectmanager/qmlprojectplugin.cpp
+++ b/src/plugins/qmlprojectmanager/qmlprojectplugin.cpp
@@ -60,23 +60,18 @@ bool QmlProjectPlugin::initialize(const QStringList &, QString *errorMessage)
 {
     using namespace Core;
 
-    Core::MimeDatabase *mimeDB = Core::ICore::mimeDatabase();
-
     const QLatin1String mimetypesXml(":/qmlproject/QmlProjectManager.mimetypes.xml");
 
-    if (! mimeDB->addMimeTypes(mimetypesXml, errorMessage))
+    if (!MimeDatabase::addMimeTypes(mimetypesXml, errorMessage))
         return false;
 
-    Internal::Manager *manager = new Internal::Manager;
-
-    addAutoReleasedObject(manager);
+    addAutoReleasedObject(new Internal::Manager);
     addAutoReleasedObject(new Internal::QmlProjectRunConfigurationFactory);
     addAutoReleasedObject(new Internal::QmlProjectRunControlFactory);
 
-
     Internal::QmlApplicationWizard::createInstances(this);
 
-    Core::FileIconProvider *iconProvider = Core::FileIconProvider::instance();
+    FileIconProvider *iconProvider = FileIconProvider::instance();
     iconProvider->registerIconOverlayForSuffix(QIcon(QLatin1String(":/qmlproject/images/qmlproject.png")),
                                                QLatin1String("qmlproject"));
     return true;
diff --git a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp
index 58f11579be7..803c67bcb00 100644
--- a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp
+++ b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp
@@ -46,18 +46,14 @@
 #include <utils/winutils.h>
 #endif
 
-using Core::EditorManager;
-using Core::ICore;
-using Core::IEditor;
-
+using namespace Core;
 using namespace QmlProjectManager::Internal;
 
 namespace QmlProjectManager {
 
-const char * const M_CURRENT_FILE = "CurrentFile";
+const char M_CURRENT_FILE[] = "CurrentFile";
 
-QmlProjectRunConfiguration::QmlProjectRunConfiguration(ProjectExplorer::Target *parent,
-                                                       Core::Id id) :
+QmlProjectRunConfiguration::QmlProjectRunConfiguration(ProjectExplorer::Target *parent, Id id) :
     ProjectExplorer::RunConfiguration(parent, id),
     m_scriptFile(QLatin1String(M_CURRENT_FILE)),
     m_isEnabled(false)
@@ -90,7 +86,7 @@ QString QmlProjectRunConfiguration::disabledReason() const
 void QmlProjectRunConfiguration::ctor()
 {
     // reset default settings in constructor
-    connect(Core::EditorManager::instance(), SIGNAL(currentEditorChanged(Core::IEditor*)),
+    connect(EditorManager::instance(), SIGNAL(currentEditorChanged(Core::IEditor*)),
             this, SLOT(changeCurrentFile(Core::IEditor*)));
 
     connect(target(), SIGNAL(kitChanged()),
@@ -269,7 +265,7 @@ bool QmlProjectRunConfiguration::fromMap(const QVariantMap &map)
     return RunConfiguration::fromMap(map);
 }
 
-void QmlProjectRunConfiguration::changeCurrentFile(Core::IEditor *editor)
+void QmlProjectRunConfiguration::changeCurrentFile(IEditor *editor)
 {
     if (editor)
         m_currentFileFilename = editor->document()->filePath();
@@ -280,22 +276,21 @@ void QmlProjectRunConfiguration::updateEnabled()
 {
     bool qmlFileFound = false;
     if (mainScriptSource() == FileInEditor) {
-        Core::IDocument *document= Core::EditorManager::currentDocument();
-        Core::MimeDatabase *db = ICore::mimeDatabase();
+        IDocument *document = EditorManager::currentDocument();
         if (document) {
             m_currentFileFilename = document->filePath();
-            if (db->findByFile(mainScript()).type() == QLatin1String("application/x-qml"))
+            if (MimeDatabase::findByFile(mainScript()).type() == QLatin1String("application/x-qml"))
                 qmlFileFound = true;
         }
         if (!document
-                || db->findByFile(mainScript()).type() == QLatin1String("application/x-qmlproject")) {
+                || MimeDatabase::findByFile(mainScript()).type() == QLatin1String("application/x-qmlproject")) {
             // find a qml file with lowercase filename. This is slow, but only done
             // in initialization/other border cases.
             foreach (const QString &filename, target()->project()->files(ProjectExplorer::Project::AllFiles)) {
                 const QFileInfo fi(filename);
 
                 if (!filename.isEmpty() && fi.baseName()[0].isLower()
-                        && db->findByFile(fi).type() == QLatin1String("application/x-qml"))
+                        && MimeDatabase::findByFile(fi).type() == QLatin1String("application/x-qml"))
                 {
                     m_currentFileFilename = filename;
                     qmlFileFound = true;
diff --git a/src/plugins/qnx/qnxplugin.cpp b/src/plugins/qnx/qnxplugin.cpp
index 745693604c8..26098b43b9a 100644
--- a/src/plugins/qnx/qnxplugin.cpp
+++ b/src/plugins/qnx/qnxplugin.cpp
@@ -108,7 +108,7 @@ bool QNXPlugin::initialize(const QStringList &arguments, QString *errorString)
     barDescriptorMimeType.addMagicMatcher(QSharedPointer<Core::IMagicMatcher>(new BarDescriptorMagicMatcher));
     barDescriptorMimeType.setSubClassesOf(QStringList() << QLatin1String("application/xml"));
 
-    if (!Core::ICore::mimeDatabase()->addMimeType(barDescriptorMimeType)) {
+    if (!Core::MimeDatabase::addMimeType(barDescriptorMimeType)) {
         *errorString = tr("Could not add mime-type for bar-descriptor.xml editor.");
         return false;
     }
diff --git a/src/plugins/qt4projectmanager/qt4nodes.cpp b/src/plugins/qt4projectmanager/qt4nodes.cpp
index be3c7b4a21f..e3201389453 100644
--- a/src/plugins/qt4projectmanager/qt4nodes.cpp
+++ b/src/plugins/qt4projectmanager/qt4nodes.cpp
@@ -944,9 +944,8 @@ bool Qt4PriFileNode::addFiles(const QStringList &filePaths, QStringList *notAdde
     typedef QMap<QString, QStringList> TypeFileMap;
     // Split into lists by file type and bulk-add them.
     TypeFileMap typeFileMap;
-    const Core::MimeDatabase *mdb = Core::ICore::mimeDatabase();
     foreach (const QString file, filePaths) {
-        const Core::MimeType mt = mdb->findByFile(file);
+        const Core::MimeType mt = Core::MimeDatabase::findByFile(file);
         typeFileMap[mt.type()] << file;
     }
 
@@ -992,9 +991,8 @@ bool Qt4PriFileNode::removeFiles(const QStringList &filePaths,
     typedef QMap<QString, QStringList> TypeFileMap;
     // Split into lists by file type and bulk-add them.
     TypeFileMap typeFileMap;
-    const Core::MimeDatabase *mdb = Core::ICore::mimeDatabase();
     foreach (const QString file, filePaths) {
-        const Core::MimeType mt = mdb->findByFile(file);
+        const Core::MimeType mt = Core::MimeDatabase::findByFile(file);
         typeFileMap[mt.type()] << file;
     }
     foreach (const QString &type, typeFileMap.keys()) {
@@ -1012,9 +1010,8 @@ bool Qt4PriFileNode::deleteFiles(const QStringList &filePaths)
     typedef QMap<QString, QStringList> TypeFileMap;
     // Split into lists by file type and bulk-add them.
     TypeFileMap typeFileMap;
-    const Core::MimeDatabase *mdb = Core::ICore::mimeDatabase();
     foreach (const QString file, filePaths) {
-        const Core::MimeType mt = mdb->findByFile(file);
+        const Core::MimeType mt = Core::MimeDatabase::findByFile(file);
         typeFileMap[mt.type()] << file;
     }
     foreach (const QString &type, typeFileMap.keys()) {
@@ -1030,8 +1027,7 @@ bool Qt4PriFileNode::renameFile(const QString &filePath, const QString &newFileP
         return false;
 
     bool changeProFileOptional = deploysFolder(QFileInfo(filePath).absolutePath());
-    const Core::MimeDatabase *mdb = Core::ICore::mimeDatabase();
-    const Core::MimeType mt = mdb->findByFile(newFilePath);
+    const Core::MimeType mt = Core::MimeDatabase::findByFile(newFilePath);
     QStringList dummy;
 
     changeFiles(mt.type(), QStringList() << filePath, &dummy, RemoveFromProFile);
diff --git a/src/plugins/qt4projectmanager/qt4projectmanagerplugin.cpp b/src/plugins/qt4projectmanager/qt4projectmanagerplugin.cpp
index f7c48c6972d..e44e004aede 100644
--- a/src/plugins/qt4projectmanager/qt4projectmanagerplugin.cpp
+++ b/src/plugins/qt4projectmanager/qt4projectmanagerplugin.cpp
@@ -106,7 +106,7 @@ bool Qt4ProjectManagerPlugin::initialize(const QStringList &arguments, QString *
     const Core::Context projectContext(Qt4ProjectManager::Constants::PROJECT_ID);
     Core::Context projecTreeContext(ProjectExplorer::Constants::C_PROJECT_TREE);
 
-    if (!Core::ICore::mimeDatabase()->addMimeTypes(QLatin1String(":qt4projectmanager/Qt4ProjectManager.mimetypes.xml"), errorMessage))
+    if (!Core::MimeDatabase::addMimeTypes(QLatin1String(":qt4projectmanager/Qt4ProjectManager.mimetypes.xml"), errorMessage))
         return false;
 
     m_projectExplorer = ProjectExplorer::ProjectExplorerPlugin::instance();
diff --git a/src/plugins/qtsupport/qtsupportplugin.cpp b/src/plugins/qtsupport/qtsupportplugin.cpp
index 79e5c765e95..ac2bccae381 100644
--- a/src/plugins/qtsupport/qtsupportplugin.cpp
+++ b/src/plugins/qtsupport/qtsupportplugin.cpp
@@ -52,6 +52,7 @@
 static const char kHostBins[] = "CurrentProject:QT_HOST_BINS";
 static const char kInstallBins[] = "CurrentProject:QT_INSTALL_BINS";
 
+using namespace Core;
 using namespace QtSupport;
 using namespace QtSupport::Internal;
 
@@ -63,7 +64,7 @@ bool QtSupportPlugin::initialize(const QStringList &arguments, QString *errorMes
     ProFileEvaluator::initialize();
     new ProFileCacheManager(this);
 
-    if (!Core::ICore::mimeDatabase()->addMimeTypes(QLatin1String(":qtsupport/QtSupport.mimetypes.xml"), errorMessage))
+    if (!MimeDatabase::addMimeTypes(QLatin1String(":qtsupport/QtSupport.mimetypes.xml"), errorMessage))
         return false;
 
     addAutoReleasedObject(new QtVersionManager);
@@ -94,12 +95,12 @@ bool QtSupportPlugin::initialize(const QStringList &arguments, QString *errorMes
 
 void QtSupportPlugin::extensionsInitialized()
 {
-    Core::VariableManager::registerVariable(kHostBins,
+    VariableManager::registerVariable(kHostBins,
         tr("Full path to the host bin directory of the current project's Qt version."));
-    Core::VariableManager::registerVariable(kInstallBins,
+    VariableManager::registerVariable(kInstallBins,
         tr("Full path to the target bin directory of the current project's Qt version."
            " You probably want %1 instead.").arg(QString::fromLatin1(kHostBins)));
-    connect(Core::VariableManager::instance(), SIGNAL(variableUpdateRequested(QByteArray)),
+    connect(VariableManager::instance(), SIGNAL(variableUpdateRequested(QByteArray)),
             this, SLOT(updateVariable(QByteArray)));
 
     QtVersionManager::extensionsInitialized();
@@ -117,18 +118,18 @@ void QtSupportPlugin::updateVariable(const QByteArray &variable)
 
     ProjectExplorer::Project *project = ProjectExplorer::ProjectExplorerPlugin::currentProject();
     if (!project || !project->activeTarget()) {
-        Core::VariableManager::remove(variable);
+        VariableManager::remove(variable);
         return;
     }
 
     const BaseQtVersion *qtVersion = QtKitInformation::qtVersion(project->activeTarget()->kit());
     if (!qtVersion) {
-        Core::VariableManager::remove(variable);
+        VariableManager::remove(variable);
         return;
     }
 
     QString value = qtVersion->qmakeProperty(variable == kHostBins ? "QT_HOST_BINS" : "QT_INSTALL_BINS");
-    Core::VariableManager::insert(variable, value);
+    VariableManager::insert(variable, value);
 }
 
 Q_EXPORT_PLUGIN(QtSupportPlugin)
diff --git a/src/plugins/resourceeditor/resourceeditorplugin.cpp b/src/plugins/resourceeditor/resourceeditorplugin.cpp
index fda1eeb80a0..7996b1c827a 100644
--- a/src/plugins/resourceeditor/resourceeditorplugin.cpp
+++ b/src/plugins/resourceeditor/resourceeditorplugin.cpp
@@ -67,7 +67,7 @@ ResourceEditorPlugin::~ResourceEditorPlugin()
 bool ResourceEditorPlugin::initialize(const QStringList &arguments, QString *errorMessage)
 {
     Q_UNUSED(arguments)
-    if (!Core::ICore::mimeDatabase()->addMimeTypes(QLatin1String(":/resourceeditor/ResourceEditor.mimetypes.xml"), errorMessage))
+    if (!Core::MimeDatabase::addMimeTypes(QLatin1String(":/resourceeditor/ResourceEditor.mimetypes.xml"), errorMessage))
         return false;
 
     m_editor = new ResourceEditorFactory(this);
diff --git a/src/plugins/subversion/subversionplugin.cpp b/src/plugins/subversion/subversionplugin.cpp
index da17e539a1b..d7dade6679a 100644
--- a/src/plugins/subversion/subversionplugin.cpp
+++ b/src/plugins/subversion/subversionplugin.cpp
@@ -248,7 +248,7 @@ bool SubversionPlugin::initialize(const QStringList & /*arguments */, QString *e
 
     m_subversionPluginInstance = this;
 
-    if (!Core::ICore::mimeDatabase()->addMimeTypes(QLatin1String(":/trolltech.subversion/Subversion.mimetypes.xml"), errorMessage))
+    if (!Core::MimeDatabase::addMimeTypes(QLatin1String(":/trolltech.subversion/Subversion.mimetypes.xml"), errorMessage))
         return false;
 
     m_settings.readSettings(Core::ICore::settings());
diff --git a/src/plugins/tasklist/tasklistplugin.cpp b/src/plugins/tasklist/tasklistplugin.cpp
index 8ba78e24a36..e22ad4e23b1 100644
--- a/src/plugins/tasklist/tasklistplugin.cpp
+++ b/src/plugins/tasklist/tasklistplugin.cpp
@@ -165,7 +165,7 @@ bool TaskListPlugin::initialize(const QStringList &arguments, QString *errorMess
     //: Category under which tasklist tasks are listed in Issues view
     TaskHub::addCategory(Constants::TASKLISTTASK_ID, tr("My Tasks"));
 
-    if (!Core::ICore::mimeDatabase()->addMimeTypes(QLatin1String(":tasklist/TaskList.mimetypes.xml"), errorMessage))
+    if (!Core::MimeDatabase::addMimeTypes(QLatin1String(":tasklist/TaskList.mimetypes.xml"), errorMessage))
         return false;
 
     m_fileFactory = new TaskFileFactory(this);
diff --git a/src/plugins/texteditor/generichighlighter/highlighterutils.cpp b/src/plugins/texteditor/generichighlighter/highlighterutils.cpp
index bc5eae06f8a..4ecd5b675cf 100644
--- a/src/plugins/texteditor/generichighlighter/highlighterutils.cpp
+++ b/src/plugins/texteditor/generichighlighter/highlighterutils.cpp
@@ -44,8 +44,7 @@ QString TextEditor::findDefinitionId(const Core::MimeType &mimeType,
         definitionId = Manager::instance()->definitionIdByAnyMimeType(mimeType.subClassesOf());
         if (definitionId.isEmpty()) {
             foreach (const QString &parent, mimeType.subClassesOf()) {
-                const Core::MimeType &parentMimeType =
-                    Core::ICore::mimeDatabase()->findByType(parent);
+                const Core::MimeType &parentMimeType = Core::MimeDatabase::findByType(parent);
                 definitionId = findDefinitionId(parentMimeType, considerParents);
             }
         }
diff --git a/src/plugins/texteditor/generichighlighter/manager.cpp b/src/plugins/texteditor/generichighlighter/manager.cpp
index 1a578362340..a05c36c444d 100644
--- a/src/plugins/texteditor/generichighlighter/manager.cpp
+++ b/src/plugins/texteditor/generichighlighter/manager.cpp
@@ -183,17 +183,16 @@ bool priorityComp(const QSharedPointer<HighlightDefinitionMetaData> &a,
 const int ManagerProcessor::kMaxProgress = 200;
 
 ManagerProcessor::ManagerProcessor()
-    : m_knownSuffixes(QSet<QString>::fromList(ICore::mimeDatabase()->suffixes()))
+    : m_knownSuffixes(QSet<QString>::fromList(MimeDatabase::suffixes()))
 {
     const HighlighterSettings &settings = TextEditorSettings::instance()->highlighterSettings();
     m_definitionsPaths.append(settings.definitionFilesPath());
     if (settings.useFallbackLocation())
         m_definitionsPaths.append(settings.fallbackDefinitionFilesPath());
 
-    MimeDatabase *mimeDatabase = ICore::mimeDatabase();
-    foreach (const MimeType &userMimeType, mimeDatabase->readUserModifiedMimeTypes())
+    foreach (const MimeType &userMimeType, MimeDatabase::readUserModifiedMimeTypes())
         m_userModified.insert(userMimeType.type(), userMimeType);
-    foreach (const MimeType &mimeType, mimeDatabase->mimeTypes())
+    foreach (const MimeType &mimeType, MimeDatabase::mimeTypes())
         m_knownMimeTypes.insert(mimeType.type());
 }
 
@@ -331,7 +330,7 @@ void Manager::registerMimeTypesFinished()
         PlainTextEditorFactory *factory = TextEditorPlugin::instance()->editorFactory();
         const QSet<QString> &inFactory = factory->mimeTypes().toSet();
         foreach (const MimeType &mimeType, result.second) {
-            ICore::mimeDatabase()->addMimeType(mimeType);
+            MimeDatabase::addMimeType(mimeType);
             if (!inFactory.contains(mimeType.type()))
                 factory->addMimeType(mimeType.type());
         }
diff --git a/src/plugins/texteditor/plaintexteditor.cpp b/src/plugins/texteditor/plaintexteditor.cpp
index 649b5f3bf61..410032a6ac9 100644
--- a/src/plugins/texteditor/plaintexteditor.cpp
+++ b/src/plugins/texteditor/plaintexteditor.cpp
@@ -74,7 +74,7 @@ PlainTextEditorWidget::PlainTextEditorWidget(QWidget *parent)
     connect(Manager::instance(), SIGNAL(mimeTypesRegistered()), this, SLOT(configure()));
 }
 
-Core::IEditor *PlainTextEditor::duplicate(QWidget *parent)
+IEditor *PlainTextEditor::duplicate(QWidget *parent)
 {
     PlainTextEditorWidget *newWidget = new PlainTextEditorWidget(parent);
     newWidget->duplicateFrom(editorWidget());
@@ -82,9 +82,9 @@ Core::IEditor *PlainTextEditor::duplicate(QWidget *parent)
     return newWidget->editor();
 }
 
-Core::Id PlainTextEditor::id() const
+Id PlainTextEditor::id() const
 {
-    return Core::Id(Core::Constants::K_DEFAULT_TEXT_EDITOR_ID);
+    return Core::Constants::K_DEFAULT_TEXT_EDITOR_ID;
 }
 
 void PlainTextEditorWidget::unCommentSelection()
@@ -105,18 +105,18 @@ void PlainTextEditorWidget::setTabSettings(const TextEditor::TabSettings &ts)
 
 void PlainTextEditorWidget::configure()
 {
-    Core::MimeType mimeType;
+    MimeType mimeType;
     if (editorDocument())
-        mimeType = Core::ICore::mimeDatabase()->findByFile(editorDocument()->filePath());
+        mimeType = MimeDatabase::findByFile(editorDocument()->filePath());
     configure(mimeType);
 }
 
 void PlainTextEditorWidget::configure(const QString &mimeType)
 {
-    configure(Core::ICore::mimeDatabase()->findByType(mimeType));
+    configure(MimeDatabase::findByType(mimeType));
 }
 
-void PlainTextEditorWidget::configure(const Core::MimeType &mimeType)
+void PlainTextEditorWidget::configure(const MimeType &mimeType)
 {
     Highlighter *highlighter = new Highlighter();
     baseTextDocument()->setSyntaxHighlighter(highlighter);
diff --git a/src/plugins/texteditor/texteditorplugin.cpp b/src/plugins/texteditor/texteditorplugin.cpp
index f1ab8582acb..f07a2f6f10f 100644
--- a/src/plugins/texteditor/texteditorplugin.cpp
+++ b/src/plugins/texteditor/texteditorplugin.cpp
@@ -145,7 +145,7 @@ bool TextEditorPlugin::initialize(const QStringList &arguments, QString *errorMe
 {
     Q_UNUSED(arguments)
 
-    if (!Core::ICore::mimeDatabase()->addMimeTypes(QLatin1String(":/texteditor/TextEditor.mimetypes.xml"), errorMessage))
+    if (!Core::MimeDatabase::addMimeTypes(QLatin1String(":/texteditor/TextEditor.mimetypes.xml"), errorMessage))
         return false;
 
     Core::BaseFileWizardParameters wizardParameters(Core::IWizard::FileWizard);
diff --git a/src/plugins/vcsbase/vcsplugin.cpp b/src/plugins/vcsbase/vcsplugin.cpp
index 23d87fad909..08612e9709d 100644
--- a/src/plugins/vcsbase/vcsplugin.cpp
+++ b/src/plugins/vcsbase/vcsplugin.cpp
@@ -33,7 +33,6 @@
 #include "vcsbaseoutputwindow.h"
 #include "corelistener.h"
 
-#include <coreplugin/icore.h>
 #include <coreplugin/mimedatabase.h>
 
 #include <QtPlugin>
@@ -61,7 +60,7 @@ bool VcsPlugin::initialize(const QStringList &arguments, QString *errorMessage)
 {
     Q_UNUSED(arguments)
 
-    if (!Core::ICore::mimeDatabase()->addMimeTypes(QLatin1String(":/vcsbase/VcsBase.mimetypes.xml"), errorMessage))
+    if (!Core::MimeDatabase::addMimeTypes(QLatin1String(":/vcsbase/VcsBase.mimetypes.xml"), errorMessage))
         return false;
 
     m_coreListener = new CoreListener;
-- 
GitLab