From 9e3b5bd0a023483adeae9e9ce2cd1bb7ae46cfbf Mon Sep 17 00:00:00 2001 From: Leandro Melo <leandro.melo@nokia.com> Date: Thu, 20 Jan 2011 10:42:19 +0100 Subject: [PATCH] Temporary "feature" to allow user specific MIME types We need a feature which allows a more flexible binding of MIME types and editors. This is definetely not the way to handle it, but a temporary workaround. Reviewed-by: con --- src/plugins/coreplugin/mainwindow.cpp | 15 +++++++++++++++ src/plugins/coreplugin/mainwindow.h | 2 ++ 2 files changed, 17 insertions(+) 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 <QtCore/QtPlugin> #include <QtCore/QUrl> #include <QtCore/QDir> +#include <QtCore/QFile> #include <QtGui/QApplication> #include <QtGui/QCloseEvent> @@ -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; -- GitLab