diff --git a/src/plugins/qmlprojectmanager/fileformat/qmlprojectfileformat.cpp b/src/plugins/qmlprojectmanager/fileformat/qmlprojectfileformat.cpp index d12aa87be75..962b4034925 100644 --- a/src/plugins/qmlprojectmanager/fileformat/qmlprojectfileformat.cpp +++ b/src/plugins/qmlprojectmanager/fileformat/qmlprojectfileformat.cpp @@ -103,6 +103,10 @@ QmlProjectItem *QmlProjectFileFormat::parseProjectFile(const Utils::FilePath &fi if (languagesProperty.isValid()) projectItem->setSupportedLanguages(languagesProperty.value.toStringList()); + const auto primaryLanguageProperty = rootNode->property(QLatin1String("primaryLanguage")); + if (primaryLanguageProperty.isValid()) + projectItem->setPrimaryLanguage(primaryLanguageProperty.value.toString()); + 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 3815db6f102..249474a224f 100644 --- a/src/plugins/qmlprojectmanager/fileformat/qmlprojectitem.cpp +++ b/src/plugins/qmlprojectmanager/fileformat/qmlprojectitem.cpp @@ -83,6 +83,12 @@ void QmlProjectItem::setSupportedLanguages(const QStringList &languages) m_supportedLanguages = languages; } +void QmlProjectItem::setPrimaryLanguage(const QString &language) +{ + if (m_primaryLanguage != language) + m_primaryLanguage = language; +} + /* 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 b234117aa0d..90d17e48591 100644 --- a/src/plugins/qmlprojectmanager/fileformat/qmlprojectitem.h +++ b/src/plugins/qmlprojectmanager/fileformat/qmlprojectitem.h @@ -66,6 +66,9 @@ public: QStringList supportedLanguages() const { return m_supportedLanguages; } void setSupportedLanguages(const QStringList &languages); + QString primaryLanguage() const { return m_primaryLanguage; } + void setPrimaryLanguage(const QString &language); + QStringList files() const; bool matchesFile(const QString &filePath) const; @@ -89,6 +92,7 @@ protected: QStringList m_importPaths; QStringList m_fileSelectors; QStringList m_supportedLanguages; + QString m_primaryLanguage; QString m_mainFile; Utils::EnvironmentItems m_environment; QVector m_content; // content property diff --git a/src/plugins/qmlprojectmanager/qmlmultilanguageaspect.cpp b/src/plugins/qmlprojectmanager/qmlmultilanguageaspect.cpp index dc8940844b3..662e904974f 100644 --- a/src/plugins/qmlprojectmanager/qmlmultilanguageaspect.cpp +++ b/src/plugins/qmlprojectmanager/qmlmultilanguageaspect.cpp @@ -46,8 +46,7 @@ static bool isMultilanguagePresent() static Utils::FilePath getMultilanguageDatabaseFilePath(ProjectExplorer::Target *target) { if (target) { - auto filePath = target->project()->projectDirectory().pathAppended( - "multilanguage-experimental-v6.db"); + auto filePath = target->project()->projectDirectory().pathAppended("translations.db"); if (filePath.exists()) return filePath; } diff --git a/src/plugins/qmlprojectmanager/qmlproject.cpp b/src/plugins/qmlprojectmanager/qmlproject.cpp index 76c405bfb60..876fa4e1882 100644 --- a/src/plugins/qmlprojectmanager/qmlproject.cpp +++ b/src/plugins/qmlprojectmanager/qmlproject.cpp @@ -347,6 +347,13 @@ QStringList QmlBuildSystem::supportedLanguages() const return {}; } +QString QmlBuildSystem::primaryLanguage() const +{ + if (m_projectItem) + return m_projectItem.data()->primaryLanguage(); + return {}; +} + void QmlBuildSystem::refreshProjectFile() { refresh(QmlBuildSystem::ProjectFile | Files); @@ -518,6 +525,8 @@ QVariant QmlBuildSystem::additionalData(Id id) const return customFileSelectors(); if (id == Constants::supportedLanguagesData) return supportedLanguages(); + if (id == Constants::primaryLanguageData) + return primaryLanguage(); 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 f6f2b54f2d3..64c0cc90ecb 100644 --- a/src/plugins/qmlprojectmanager/qmlproject.h +++ b/src/plugins/qmlprojectmanager/qmlproject.h @@ -89,6 +89,7 @@ public: QStringList customImportPaths() const; QStringList customFileSelectors() const; QStringList supportedLanguages() const; + QString primaryLanguage() const; bool forceFreeType() const; bool addFiles(const QStringList &filePaths); diff --git a/src/plugins/qmlprojectmanager/qmlprojectconstants.h b/src/plugins/qmlprojectmanager/qmlprojectconstants.h index beb5cde0160..184469f2430 100644 --- a/src/plugins/qmlprojectmanager/qmlprojectconstants.h +++ b/src/plugins/qmlprojectmanager/qmlprojectconstants.h @@ -33,6 +33,7 @@ namespace Constants { const char * const QMLPROJECT_MIMETYPE = QmlJSTools::Constants::QMLPROJECT_MIMETYPE; const char customFileSelectorsData[] = "CustomFileSelectorsData"; const char supportedLanguagesData[] = "SupportedLanguagesData"; +const char primaryLanguageData[] = "PrimaryLanguageData"; const char customForceFreeTypeData[] = "CustomForceFreeType"; const char customQtForMCUs[] = "CustomQtForMCUs"; const char customQt6Project[] = "CustomQt6Project";