Treat .ui.qml mime type the same as .qml

Right now, the qmake project manager offers a "Build" context menu entry
for .ui.qml files and various other things are off because the mime
types are different.

Change-Id: Icc966e56513b9c5aed05f929dc8cb728ed408723
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
This commit is contained in:
Ulf Hermann
2017-10-17 18:53:28 +02:00
parent 371b2bbbab
commit e902980dde
8 changed files with 24 additions and 9 deletions

View File

@@ -95,6 +95,7 @@ Protocol::ContentType Protocol::contentType(const QString &mt)
|| mt == QLatin1String(CppTools::Constants::OBJECTIVE_CPP_SOURCE_MIMETYPE)) || mt == QLatin1String(CppTools::Constants::OBJECTIVE_CPP_SOURCE_MIMETYPE))
return Cpp; return Cpp;
if (mt == QLatin1String(QmlJSTools::Constants::QML_MIMETYPE) if (mt == QLatin1String(QmlJSTools::Constants::QML_MIMETYPE)
|| mt == QLatin1String(QmlJSTools::Constants::QMLUI_MIMETYPE)
|| mt == QLatin1String(QmlJSTools::Constants::QMLPROJECT_MIMETYPE) || mt == QLatin1String(QmlJSTools::Constants::QMLPROJECT_MIMETYPE)
|| mt == QLatin1String(QmlJSTools::Constants::QBS_MIMETYPE) || mt == QLatin1String(QmlJSTools::Constants::QBS_MIMETYPE)
|| mt == QLatin1String(QmlJSTools::Constants::JS_MIMETYPE) || mt == QLatin1String(QmlJSTools::Constants::JS_MIMETYPE)

View File

@@ -92,6 +92,7 @@ const char CPP_HEADER_MIMETYPE[] = "text/x-c++hdr";
const char LINGUIST_MIMETYPE[] = "text/vnd.trolltech.linguist"; const char LINGUIST_MIMETYPE[] = "text/vnd.trolltech.linguist";
const char FORM_MIMETYPE[] = "application/x-designer"; const char FORM_MIMETYPE[] = "application/x-designer";
const char QML_MIMETYPE[] = "text/x-qml"; // separate def also in qmljstoolsconstants.h const char QML_MIMETYPE[] = "text/x-qml"; // separate def also in qmljstoolsconstants.h
const char QMLUI_MIMETYPE[] = "application/x-qt.ui+qml";
const char RESOURCE_MIMETYPE[] = "application/vnd.qt.xml.resource"; const char RESOURCE_MIMETYPE[] = "application/vnd.qt.xml.resource";
const char SCXML_MIMETYPE[] = "application/scxml+xml"; const char SCXML_MIMETYPE[] = "application/scxml+xml";

View File

@@ -290,7 +290,8 @@ FileType Node::fileTypeForMimeType(const Utils::MimeType &mt)
type = FileType::Resource; type = FileType::Resource;
else if (mtName == Constants::SCXML_MIMETYPE) else if (mtName == Constants::SCXML_MIMETYPE)
type = FileType::StateChart; type = FileType::StateChart;
else if (mtName == Constants::QML_MIMETYPE) else if (mtName == Constants::QML_MIMETYPE
|| mtName == Constants::QMLUI_MIMETYPE)
type = FileType::QML; type = FileType::QML;
} else { } else {
type = FileType::Unknown; type = FileType::Unknown;

View File

@@ -912,8 +912,10 @@ QString QmakePriFile::varNameForAdding(const QString &mimeType)
if (mimeType == QLatin1String(ProjectExplorer::Constants::FORM_MIMETYPE)) if (mimeType == QLatin1String(ProjectExplorer::Constants::FORM_MIMETYPE))
return QLatin1String("FORMS"); return QLatin1String("FORMS");
if (mimeType == QLatin1String(ProjectExplorer::Constants::QML_MIMETYPE)) if (mimeType == QLatin1String(ProjectExplorer::Constants::QML_MIMETYPE)
|| mimeType == QLatin1String(ProjectExplorer::Constants::QMLUI_MIMETYPE)) {
return QLatin1String("DISTFILES"); return QLatin1String("DISTFILES");
}
if (mimeType == QLatin1String(ProjectExplorer::Constants::SCXML_MIMETYPE)) if (mimeType == QLatin1String(ProjectExplorer::Constants::SCXML_MIMETYPE))
return QLatin1String("STATECHARTS"); return QLatin1String("STATECHARTS");

View File

@@ -1030,6 +1030,7 @@ QmlJSEditorFactory::QmlJSEditorFactory()
setDisplayName(QCoreApplication::translate("OpenWith::Editors", Constants::C_QMLJSEDITOR_DISPLAY_NAME)); setDisplayName(QCoreApplication::translate("OpenWith::Editors", Constants::C_QMLJSEDITOR_DISPLAY_NAME));
addMimeType(QmlJSTools::Constants::QML_MIMETYPE); addMimeType(QmlJSTools::Constants::QML_MIMETYPE);
addMimeType(QmlJSTools::Constants::QMLUI_MIMETYPE);
addMimeType(QmlJSTools::Constants::QMLPROJECT_MIMETYPE); addMimeType(QmlJSTools::Constants::QMLPROJECT_MIMETYPE);
addMimeType(QmlJSTools::Constants::QBS_MIMETYPE); addMimeType(QmlJSTools::Constants::QBS_MIMETYPE);
addMimeType(QmlJSTools::Constants::QMLTYPES_MIMETYPE); addMimeType(QmlJSTools::Constants::QMLTYPES_MIMETYPE);

View File

@@ -131,6 +131,7 @@ QmlJSToolsSettings::QmlJSToolsSettings(QObject *parent)
// mimetypes to be handled // mimetypes to be handled
TextEditorSettings::registerMimeTypeForLanguageId(Constants::QML_MIMETYPE, Constants::QML_JS_SETTINGS_ID); TextEditorSettings::registerMimeTypeForLanguageId(Constants::QML_MIMETYPE, Constants::QML_JS_SETTINGS_ID);
TextEditorSettings::registerMimeTypeForLanguageId(Constants::QMLUI_MIMETYPE, Constants::QML_JS_SETTINGS_ID);
TextEditorSettings::registerMimeTypeForLanguageId(Constants::QBS_MIMETYPE, Constants::QML_JS_SETTINGS_ID); TextEditorSettings::registerMimeTypeForLanguageId(Constants::QBS_MIMETYPE, Constants::QML_JS_SETTINGS_ID);
TextEditorSettings::registerMimeTypeForLanguageId(Constants::QMLPROJECT_MIMETYPE, Constants::QML_JS_SETTINGS_ID); TextEditorSettings::registerMimeTypeForLanguageId(Constants::QMLPROJECT_MIMETYPE, Constants::QML_JS_SETTINGS_ID);
TextEditorSettings::registerMimeTypeForLanguageId(Constants::QMLTYPES_MIMETYPE, Constants::QML_JS_SETTINGS_ID); TextEditorSettings::registerMimeTypeForLanguageId(Constants::QMLTYPES_MIMETYPE, Constants::QML_JS_SETTINGS_ID);

View File

@@ -265,8 +265,12 @@ void QmlProjectRunConfiguration::updateEnabledState()
Utils::MimeType mainScriptMimeType = Utils::mimeTypeForFile(mainScript()); Utils::MimeType mainScriptMimeType = Utils::mimeTypeForFile(mainScript());
if (document) { if (document) {
m_currentFileFilename = document->filePath().toString(); m_currentFileFilename = document->filePath().toString();
if (mainScriptMimeType.matchesName(QLatin1String(ProjectExplorer::Constants::QML_MIMETYPE))) if (mainScriptMimeType.matchesName(
QLatin1String(ProjectExplorer::Constants::QML_MIMETYPE))
|| mainScriptMimeType.matchesName(
QLatin1String(ProjectExplorer::Constants::QMLUI_MIMETYPE))) {
qmlFileFound = true; qmlFileFound = true;
}
} }
if (!document if (!document
|| mainScriptMimeType.matchesName(QLatin1String(QmlJSTools::Constants::QMLPROJECT_MIMETYPE))) { || mainScriptMimeType.matchesName(QLatin1String(QmlJSTools::Constants::QMLPROJECT_MIMETYPE))) {
@@ -275,12 +279,15 @@ void QmlProjectRunConfiguration::updateEnabledState()
foreach (const QString &filename, target()->project()->files(Project::AllFiles)) { foreach (const QString &filename, target()->project()->files(Project::AllFiles)) {
const QFileInfo fi(filename); const QFileInfo fi(filename);
if (!filename.isEmpty() && fi.baseName()[0].isLower() if (!filename.isEmpty() && fi.baseName()[0].isLower()) {
&& Utils::mimeTypeForFile(fi).matchesName(QLatin1String(ProjectExplorer::Constants::QML_MIMETYPE))) Utils::MimeType type = Utils::mimeTypeForFile(fi);
{ if (type.matchesName(QLatin1String(ProjectExplorer::Constants::QML_MIMETYPE))
m_currentFileFilename = filename; || type.matchesName(
qmlFileFound = true; QLatin1String(ProjectExplorer::Constants::QMLUI_MIMETYPE))) {
break; m_currentFileFilename = filename;
qmlFileFound = true;
break;
}
} }
} }

View File

@@ -113,6 +113,7 @@ static bool hasPriority(const QStringList &files)
QString type = Utils::mimeTypeForFile(files.at(0)).name(); QString type = Utils::mimeTypeForFile(files.at(0)).name();
if (type.startsWith(QLatin1String("image/")) if (type.startsWith(QLatin1String("image/"))
|| type == QLatin1String(QmlJSTools::Constants::QML_MIMETYPE) || type == QLatin1String(QmlJSTools::Constants::QML_MIMETYPE)
|| type == QLatin1String(QmlJSTools::Constants::QMLUI_MIMETYPE)
|| type == QLatin1String(QmlJSTools::Constants::JS_MIMETYPE)) || type == QLatin1String(QmlJSTools::Constants::JS_MIMETYPE))
return true; return true;
return false; return false;