diff --git a/src/plugins/qmljseditor/qmlfilewizard.cpp b/src/plugins/qmljseditor/qmlfilewizard.cpp index a35236ab52941edbeca450cda1505ab22f1e993f..4bf4cc3321b511bbc461d2fc588080433511c774 100644 --- a/src/plugins/qmljseditor/qmlfilewizard.cpp +++ b/src/plugins/qmljseditor/qmlfilewizard.cpp @@ -46,7 +46,7 @@ Core::GeneratedFiles QmlFileWizard::generateFilesFromPath(const QString &path, QString * /*errorMessage*/) const { - const QString mimeType = QLatin1String(Constants::QMLJSEDITOR_MIMETYPE); + const QString mimeType = QLatin1String(Constants::QML_MIMETYPE); const QString fileName = Core::BaseFileWizard::buildFileName(path, name, preferredSuffix(mimeType)); Core::GeneratedFile file(fileName); diff --git a/src/plugins/qmljseditor/qmljseditor.cpp b/src/plugins/qmljseditor/qmljseditor.cpp index 37736abf70ae71f38ecd8844304f3b0e0bb0ea3d..7af2fffbc8dbdbea652b53aabdf4d28a40c9c855 100644 --- a/src/plugins/qmljseditor/qmljseditor.cpp +++ b/src/plugins/qmljseditor/qmljseditor.cpp @@ -46,8 +46,9 @@ #include <qmljs/qmldocument.h> #include <qmljs/qmlidcollector.h> -#include <coreplugin/icore.h> #include <coreplugin/actionmanager/actionmanager.h> +#include <coreplugin/icore.h> +#include <coreplugin/mimedatabase.h> #include <coreplugin/uniqueidmanager.h> #include <extensionsystem/pluginmanager.h> #include <texteditor/basetextdocument.h> @@ -59,6 +60,7 @@ #include <utils/changeset.h> #include <utils/uncommentselection.h> +#include <QtCore/QFileInfo> #include <QtCore/QTimer> #include <QtGui/QMenu> @@ -317,7 +319,6 @@ QmlJSTextEditor::QmlJSTextEditor(QWidget *parent) : setMarksVisible(true); setCodeFoldingSupported(true); setCodeFoldingVisible(true); - setMimeType(QmlJSEditor::Constants::QMLJSEDITOR_MIMETYPE); m_updateDocumentTimer = new QTimer(this); m_updateDocumentTimer->setInterval(UPDATE_DOCUMENT_DEFAULT_INTERVAL); @@ -363,6 +364,13 @@ QString QmlJSEditorEditable::id() const return QLatin1String(QmlJSEditor::Constants::C_QMLJSEDITOR_ID); } +bool QmlJSEditorEditable::open(const QString &fileName) +{ + bool b = TextEditor::BaseTextEditorEditable::open(fileName); + editor()->setMimeType(Core::ICore::instance()->mimeDatabase()->findByFile(QFileInfo(fileName)).type()); + return b; +} + QmlJSTextEditor::Context QmlJSEditorEditable::context() const { return m_context; diff --git a/src/plugins/qmljseditor/qmljseditor.h b/src/plugins/qmljseditor/qmljseditor.h index c3541a975f3654c3711320cc798f947016c166d2..a99826834ce3377b29141a481887c7f4e4b26dfb 100644 --- a/src/plugins/qmljseditor/qmljseditor.h +++ b/src/plugins/qmljseditor/qmljseditor.h @@ -68,6 +68,7 @@ public: Core::IEditor *duplicate(QWidget *parent); QString id() const; bool isTemporary() const { return false; } + virtual bool open(const QString & fileName); private: QList<int> m_context; diff --git a/src/plugins/qmljseditor/qmljseditorconstants.h b/src/plugins/qmljseditor/qmljseditorconstants.h index df82492d165ce4531410fbe71ef4b61e1a424da4..7996a6c9f96e4a546ffdc59dc7b4cbf012b9adab 100644 --- a/src/plugins/qmljseditor/qmljseditorconstants.h +++ b/src/plugins/qmljseditor/qmljseditorconstants.h @@ -41,7 +41,8 @@ const char * const C_QMLJSEDITOR_ID = "QMLProjectManager.QMLJSEditor"; const char * const C_QMLJSEDITOR_DISPLAY_NAME = QT_TRANSLATE_NOOP("OpenWith::Editors", "QMLJS Editor"); const char * const TASK_INDEX = "QmlJSEditor.TaskIndex"; -const char * const QMLJSEDITOR_MIMETYPE = "application/x-qml"; +const char * const QML_MIMETYPE = "application/x-qml"; +const char * const JS_MIMETYPE = "application/javascript"; } // namespace Constants } // namespace QmlJSEditor diff --git a/src/plugins/qmljseditor/qmljseditorfactory.cpp b/src/plugins/qmljseditor/qmljseditorfactory.cpp index 56654e5d2411892fb58d8596d766e9bbcede57f6..bcb27f872732e9419abc93c70d294a178c825fa6 100644 --- a/src/plugins/qmljseditor/qmljseditorfactory.cpp +++ b/src/plugins/qmljseditor/qmljseditorfactory.cpp @@ -42,9 +42,12 @@ using namespace QmlJSEditor::Internal; using namespace QmlJSEditor::Constants; QmlJSEditorFactory::QmlJSEditorFactory(QObject *parent) - : Core::IEditorFactory(parent), - m_mimeTypes(QLatin1String(QmlJSEditor::Constants::QMLJSEDITOR_MIMETYPE)) + : Core::IEditorFactory(parent) { + m_mimeTypes + << QLatin1String(QmlJSEditor::Constants::QML_MIMETYPE) + << QLatin1String(QmlJSEditor::Constants::JS_MIMETYPE) + ; } QmlJSEditorFactory::~QmlJSEditorFactory() diff --git a/src/plugins/qmljseditor/qmljseditorfactory.h b/src/plugins/qmljseditor/qmljseditorfactory.h index 4c3158bd07356350684f51d11f22119e9fe9e6dd..3af7fe1e226536f2f596f2fdc3d0a695a6bc9d45 100644 --- a/src/plugins/qmljseditor/qmljseditorfactory.h +++ b/src/plugins/qmljseditor/qmljseditorfactory.h @@ -59,7 +59,7 @@ public: Core::IEditor *createEditor(QWidget *parent); private: - const QStringList m_mimeTypes; + QStringList m_mimeTypes; }; } // namespace Internal