diff --git a/src/plugins/cppeditor/cppeditor.cpp b/src/plugins/cppeditor/cppeditor.cpp index f53b7aae75993b8c70a470b1c0e691bd3dfe0f9a..a9f9ea958823f676433aa0571273dfa5416a6f00 100644 --- a/src/plugins/cppeditor/cppeditor.cpp +++ b/src/plugins/cppeditor/cppeditor.cpp @@ -67,6 +67,7 @@ #include <coreplugin/actionmanager/actionmanager.h> #include <coreplugin/editormanager/ieditor.h> #include <coreplugin/editormanager/editormanager.h> +#include <coreplugin/mimedatabase.h> #include <utils/uncommentselection.h> #include <extensionsystem/pluginmanager.h> #include <projectexplorer/projectexplorerconstants.h> @@ -1751,6 +1752,13 @@ const char *CPPEditorEditable::kind() const return CppEditor::Constants::CPPEDITOR_KIND; } +bool CPPEditorEditable::open(const QString & fileName) +{ + bool b = TextEditor::BaseTextEditorEditable::open(fileName); + editor()->setMimeType(Core::ICore::instance()->mimeDatabase()->findByFile(QFileInfo(fileName)).type()); + return b; +} + void CPPEditor::setFontSettings(const TextEditor::FontSettings &fs) { TextEditor::BaseTextEditor::setFontSettings(fs); diff --git a/src/plugins/cppeditor/cppeditor.h b/src/plugins/cppeditor/cppeditor.h index 699cb9e49fa791fb4c6e58be9c3be9ec1f97e3c1..68159ee9100dbcb828c695f6d5feb16ddb71ce35 100644 --- a/src/plugins/cppeditor/cppeditor.h +++ b/src/plugins/cppeditor/cppeditor.h @@ -164,6 +164,7 @@ public: const char *kind() const; bool isTemporary() const { return false; } + virtual bool open(const QString & fileName); private: QList<int> m_context; diff --git a/src/plugins/cppeditor/cppplugin.cpp b/src/plugins/cppeditor/cppplugin.cpp index 3372fd336d1cae57d37bcb51f2ec9ea0062d9980..f27e82bdb9634786af68fd9d225fb4be2edc3f3d 100644 --- a/src/plugins/cppeditor/cppplugin.cpp +++ b/src/plugins/cppeditor/cppplugin.cpp @@ -97,7 +97,6 @@ Core::IEditor *CppEditorFactory::createEditor(QWidget *parent) { CPPEditor *editor = new CPPEditor(parent); editor->setRevisionsVisible(true); - editor->setMimeType(CppEditor::Constants::CPP_SOURCE_MIMETYPE); m_owner->initializeEditor(editor); return editor->editableInterface(); }