From e3d9ba8f59a10692fc90ed737b84b9f3c48957c7 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Mon, 11 Oct 2021 14:58:11 +0200 Subject: [PATCH] QmlProject: Add support for supportedLanguages Task-number: QDS-5187 Change-Id: Ieb1cb90225db4093178fafe4ebe948d5967a529d Reviewed-by: Miikka Heikkinen --- .../fileformat/qmlprojectfileformat.cpp | 4 ++++ .../qmlprojectmanager/fileformat/qmlprojectitem.cpp | 6 ++++++ .../qmlprojectmanager/fileformat/qmlprojectitem.h | 4 ++++ src/plugins/qmlprojectmanager/qmlproject.cpp | 9 +++++++++ src/plugins/qmlprojectmanager/qmlproject.h | 1 + src/plugins/qmlprojectmanager/qmlprojectconstants.h | 1 + 6 files changed, 25 insertions(+) diff --git a/src/plugins/qmlprojectmanager/fileformat/qmlprojectfileformat.cpp b/src/plugins/qmlprojectmanager/fileformat/qmlprojectfileformat.cpp index 53c76263a2f..d12aa87be75 100644 --- a/src/plugins/qmlprojectmanager/fileformat/qmlprojectfileformat.cpp +++ b/src/plugins/qmlprojectmanager/fileformat/qmlprojectfileformat.cpp @@ -99,6 +99,10 @@ QmlProjectItem *QmlProjectFileFormat::parseProjectFile(const Utils::FilePath &fi if (fileSelectorsProperty.isValid()) projectItem->setFileSelectors(fileSelectorsProperty.value.toStringList()); + const auto languagesProperty = rootNode->property(QLatin1String("supportedLanguages")); + if (languagesProperty.isValid()) + projectItem->setSupportedLanguages(languagesProperty.value.toStringList()); + const auto forceFreeTypeProperty = rootNode->property("forceFreeType"); if (forceFreeTypeProperty.isValid()) projectItem->setForceFreeType(forceFreeTypeProperty.value.toBool()); diff --git a/src/plugins/qmlprojectmanager/fileformat/qmlprojectitem.cpp b/src/plugins/qmlprojectmanager/fileformat/qmlprojectitem.cpp index b7aa7ec434c..3815db6f102 100644 --- a/src/plugins/qmlprojectmanager/fileformat/qmlprojectitem.cpp +++ b/src/plugins/qmlprojectmanager/fileformat/qmlprojectitem.cpp @@ -77,6 +77,12 @@ void QmlProjectItem::setFileSelectors(const QStringList &selectors) m_fileSelectors = selectors; } +void QmlProjectItem::setSupportedLanguages(const QStringList &languages) +{ + if (m_supportedLanguages != languages) + m_supportedLanguages = languages; +} + /* Returns list of absolute paths */ QStringList QmlProjectItem::files() const { diff --git a/src/plugins/qmlprojectmanager/fileformat/qmlprojectitem.h b/src/plugins/qmlprojectmanager/fileformat/qmlprojectitem.h index 2f0f8786ef7..b234117aa0d 100644 --- a/src/plugins/qmlprojectmanager/fileformat/qmlprojectitem.h +++ b/src/plugins/qmlprojectmanager/fileformat/qmlprojectitem.h @@ -63,6 +63,9 @@ public: QStringList fileSelectors() const { return m_fileSelectors; } void setFileSelectors(const QStringList &selectors); + QStringList supportedLanguages() const { return m_supportedLanguages; } + void setSupportedLanguages(const QStringList &languages); + QStringList files() const; bool matchesFile(const QString &filePath) const; @@ -85,6 +88,7 @@ protected: QString m_targetDirectory; QStringList m_importPaths; QStringList m_fileSelectors; + QStringList m_supportedLanguages; QString m_mainFile; Utils::EnvironmentItems m_environment; QVector m_content; // content property diff --git a/src/plugins/qmlprojectmanager/qmlproject.cpp b/src/plugins/qmlprojectmanager/qmlproject.cpp index c1b8c6dc430..76c405bfb60 100644 --- a/src/plugins/qmlprojectmanager/qmlproject.cpp +++ b/src/plugins/qmlprojectmanager/qmlproject.cpp @@ -340,6 +340,13 @@ QStringList QmlBuildSystem::customFileSelectors() const return {}; } +QStringList QmlBuildSystem::supportedLanguages() const +{ + if (m_projectItem) + return m_projectItem.data()->supportedLanguages(); + return {}; +} + void QmlBuildSystem::refreshProjectFile() { refresh(QmlBuildSystem::ProjectFile | Files); @@ -509,6 +516,8 @@ QVariant QmlBuildSystem::additionalData(Id id) const { if (id == Constants::customFileSelectorsData) return customFileSelectors(); + if (id == Constants::supportedLanguagesData) + return supportedLanguages(); if (id == Constants::customForceFreeTypeData) return forceFreeType(); if (id == Constants::customQtForMCUs) diff --git a/src/plugins/qmlprojectmanager/qmlproject.h b/src/plugins/qmlprojectmanager/qmlproject.h index 51028b0d549..f6f2b54f2d3 100644 --- a/src/plugins/qmlprojectmanager/qmlproject.h +++ b/src/plugins/qmlprojectmanager/qmlproject.h @@ -88,6 +88,7 @@ public: Utils::EnvironmentItems environment() const; QStringList customImportPaths() const; QStringList customFileSelectors() const; + QStringList supportedLanguages() const; bool forceFreeType() const; bool addFiles(const QStringList &filePaths); diff --git a/src/plugins/qmlprojectmanager/qmlprojectconstants.h b/src/plugins/qmlprojectmanager/qmlprojectconstants.h index 7a8df1f4f80..beb5cde0160 100644 --- a/src/plugins/qmlprojectmanager/qmlprojectconstants.h +++ b/src/plugins/qmlprojectmanager/qmlprojectconstants.h @@ -32,6 +32,7 @@ namespace Constants { const char * const QMLPROJECT_MIMETYPE = QmlJSTools::Constants::QMLPROJECT_MIMETYPE; const char customFileSelectorsData[] = "CustomFileSelectorsData"; +const char supportedLanguagesData[] = "SupportedLanguagesData"; const char customForceFreeTypeData[] = "CustomForceFreeType"; const char customQtForMCUs[] = "CustomQtForMCUs"; const char customQt6Project[] = "CustomQt6Project";