diff --git a/src/plugins/coreplugin/mainwindow.cpp b/src/plugins/coreplugin/mainwindow.cpp index 1fc514e6300..44fda415127 100644 --- a/src/plugins/coreplugin/mainwindow.cpp +++ b/src/plugins/coreplugin/mainwindow.cpp @@ -87,6 +87,7 @@ #include #include #include +#include #include #include @@ -339,6 +340,8 @@ void MainWindow::extensionsInitialized() readSettings(); updateContext(); + registerUserMimeTypes(); + emit m_coreImpl->coreAboutToOpen(); show(); emit m_coreImpl->coreOpened(); @@ -1383,3 +1386,15 @@ bool MainWindow::showWarningWithOptions(const QString &title, } return false; } + +void MainWindow::registerUserMimeTypes() const +{ + // This is to temporarily allow user specific MIME types (without recompilation). + // Be careful with the file contents. Otherwise unpredictable behavior might arise. + const QString &fileName = m_coreImpl->userResourcePath() + QLatin1String("/mimetypes.xml"); + if (QFile::exists(fileName)) { + QString error; + if (!m_coreImpl->mimeDatabase()->addMimeTypes(fileName, &error)) + qWarning() << error; + } +} diff --git a/src/plugins/coreplugin/mainwindow.h b/src/plugins/coreplugin/mainwindow.h index dc88545e9ad..22506fd78c3 100644 --- a/src/plugins/coreplugin/mainwindow.h +++ b/src/plugins/coreplugin/mainwindow.h @@ -177,6 +177,8 @@ private: void readSettings(); void writeSettings(); + void registerUserMimeTypes() const; + CoreImpl *m_coreImpl; UniqueIDManager *m_uniqueIDManager; Context m_additionalContexts;