aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTuomo Pelkonen <tuomo.pelkonen@qt.io>2021-10-13 15:50:23 +0300
committerTuomo Pelkonen <tuomo.pelkonen@qt.io>2021-10-14 04:57:22 +0000
commitb996bae04d89ae47d9e113e2f0bffdeb2949a563 (patch)
tree21f11a74a6290cfd0214fc621d843acf84603059
parent631b7f2815a9878434c05693792b2cfb771a6d76 (diff)
QmlProject: Add support for primaryLanguage
Task-number: QDS-5187 Change-Id: I05aafa726fd6c2b586d57b64239cf08c1f2342ab Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
-rw-r--r--src/plugins/qmlprojectmanager/fileformat/qmlprojectfileformat.cpp4
-rw-r--r--src/plugins/qmlprojectmanager/fileformat/qmlprojectitem.cpp6
-rw-r--r--src/plugins/qmlprojectmanager/fileformat/qmlprojectitem.h4
-rw-r--r--src/plugins/qmlprojectmanager/qmlmultilanguageaspect.cpp3
-rw-r--r--src/plugins/qmlprojectmanager/qmlproject.cpp9
-rw-r--r--src/plugins/qmlprojectmanager/qmlproject.h1
-rw-r--r--src/plugins/qmlprojectmanager/qmlprojectconstants.h1
7 files changed, 26 insertions, 2 deletions
diff --git a/src/plugins/qmlprojectmanager/fileformat/qmlprojectfileformat.cpp b/src/plugins/qmlprojectmanager/fileformat/qmlprojectfileformat.cpp
index d12aa87be7..962b403492 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 3815db6f10..249474a224 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 b234117aa0..90d17e4859 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<QmlProjectContentItem *> m_content; // content property
diff --git a/src/plugins/qmlprojectmanager/qmlmultilanguageaspect.cpp b/src/plugins/qmlprojectmanager/qmlmultilanguageaspect.cpp
index dc8940844b..662e904974 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 76c405bfb6..876fa4e188 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 f6f2b54f2d..64c0cc90ec 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 beb5cde016..184469f243 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";