summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTuomo Pelkonen <tuomo.pelkonen@qt.io>2022-01-19 08:24:14 +0200
committerTuomo Pelkonen <tuomo.pelkonen@qt.io>2022-01-20 09:41:36 +0000
commitbdba99c61b2a797f5c903250293949208943a9d7 (patch)
tree72bbc061d4837d6dc68439992952f5ef639bb5bf
parentd023dfca1e93e0945a1cd2477540873b1aa86277 (diff)
downloadqt-creator-bdba99c61b2a797f5c903250293949208943a9d7.tar.gz
Multilanguage: Add multilanguageSupport option to qmlproject
Change-Id: I1fc1861e17dc62cec91f5fa27f7e01360a42de78 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
-rw-r--r--src/plugins/qmlprojectmanager/fileformat/qmlprojectfileformat.cpp5
-rw-r--r--src/plugins/qmlprojectmanager/fileformat/qmlprojectitem.cpp5
-rw-r--r--src/plugins/qmlprojectmanager/fileformat/qmlprojectitem.h4
-rw-r--r--src/plugins/qmlprojectmanager/qmlmultilanguageaspect.cpp5
-rw-r--r--src/plugins/qmlprojectmanager/qmlproject.cpp7
-rw-r--r--src/plugins/qmlprojectmanager/qmlproject.h1
-rw-r--r--src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp16
7 files changed, 37 insertions, 6 deletions
diff --git a/src/plugins/qmlprojectmanager/fileformat/qmlprojectfileformat.cpp b/src/plugins/qmlprojectmanager/fileformat/qmlprojectfileformat.cpp
index 80b2d08ca7..0b637e24a7 100644
--- a/src/plugins/qmlprojectmanager/fileformat/qmlprojectfileformat.cpp
+++ b/src/plugins/qmlprojectmanager/fileformat/qmlprojectfileformat.cpp
@@ -99,6 +99,11 @@ QmlProjectItem *QmlProjectFileFormat::parseProjectFile(const Utils::FilePath &fi
if (fileSelectorsProperty.isValid())
projectItem->setFileSelectors(fileSelectorsProperty.value.toStringList());
+ const auto multilanguageSupportProperty = rootNode->property(
+ QLatin1String("multilanguageSupport"));
+ if (multilanguageSupportProperty.isValid())
+ projectItem->setMultilanguageSupport(multilanguageSupportProperty.value.toBool());
+
const auto languagesProperty = rootNode->property(QLatin1String("supportedLanguages"));
if (languagesProperty.isValid())
projectItem->setSupportedLanguages(languagesProperty.value.toStringList());
diff --git a/src/plugins/qmlprojectmanager/fileformat/qmlprojectitem.cpp b/src/plugins/qmlprojectmanager/fileformat/qmlprojectitem.cpp
index 249474a224..806c873817 100644
--- a/src/plugins/qmlprojectmanager/fileformat/qmlprojectitem.cpp
+++ b/src/plugins/qmlprojectmanager/fileformat/qmlprojectitem.cpp
@@ -77,6 +77,11 @@ void QmlProjectItem::setFileSelectors(const QStringList &selectors)
m_fileSelectors = selectors;
}
+void QmlProjectItem::setMultilanguageSupport(const bool isEnabled)
+{
+ m_multilanguageSupport = isEnabled;
+}
+
void QmlProjectItem::setSupportedLanguages(const QStringList &languages)
{
if (m_supportedLanguages != languages)
diff --git a/src/plugins/qmlprojectmanager/fileformat/qmlprojectitem.h b/src/plugins/qmlprojectmanager/fileformat/qmlprojectitem.h
index a104e90646..01d3b8572e 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);
+ bool multilanguageSupport() const { return m_multilanguageSupport; }
+ void setMultilanguageSupport(const bool isEnabled);
+
QStringList supportedLanguages() const { return m_supportedLanguages; }
void setSupportedLanguages(const QStringList &languages);
@@ -94,6 +97,7 @@ protected:
QString m_targetDirectory;
QStringList m_importPaths;
QStringList m_fileSelectors;
+ bool m_multilanguageSupport;
QStringList m_supportedLanguages;
QString m_primaryLanguage;
QString m_mainFile;
diff --git a/src/plugins/qmlprojectmanager/qmlmultilanguageaspect.cpp b/src/plugins/qmlprojectmanager/qmlmultilanguageaspect.cpp
index 662e904974..cfb2bfaf47 100644
--- a/src/plugins/qmlprojectmanager/qmlmultilanguageaspect.cpp
+++ b/src/plugins/qmlprojectmanager/qmlmultilanguageaspect.cpp
@@ -75,8 +75,9 @@ QmlMultiLanguageAspect::QmlMultiLanguageAspect(ProjectExplorer::Target *target)
{
setVisible(isMultilanguagePresent());
setSettingsKey(Constants::USE_MULTILANGUAGE_KEY);
- setLabel(tr("Use MultiLanguage translation database."), BoolAspect::LabelPlacement::AtCheckBox);
- setToolTip(tr("Enable loading application with special desktop SQLite translation database."));
+ setLabel(tr("Use MultiLanguage in Form Editor."), BoolAspect::LabelPlacement::AtCheckBox);
+ setToolTip(tr("By enabling this Form Editor can read translations\n"
+ "from MultiLanguage plugin."));
setDefaultValue(!databaseFilePath().isEmpty());
QVariantMap getDefaultValues;
diff --git a/src/plugins/qmlprojectmanager/qmlproject.cpp b/src/plugins/qmlprojectmanager/qmlproject.cpp
index 8e2dd6048e..83fde3c196 100644
--- a/src/plugins/qmlprojectmanager/qmlproject.cpp
+++ b/src/plugins/qmlprojectmanager/qmlproject.cpp
@@ -340,6 +340,13 @@ QStringList QmlBuildSystem::customFileSelectors() const
return {};
}
+bool QmlBuildSystem::multilanguageSupport() const
+{
+ if (m_projectItem)
+ return m_projectItem->multilanguageSupport();
+ return false;
+}
+
QStringList QmlBuildSystem::supportedLanguages() const
{
if (m_projectItem)
diff --git a/src/plugins/qmlprojectmanager/qmlproject.h b/src/plugins/qmlprojectmanager/qmlproject.h
index 143c1697d1..89f5dd3445 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;
+ bool multilanguageSupport() const;
QStringList supportedLanguages() const;
void setSupportedLanguages(QStringList languages);
QString primaryLanguage() const;
diff --git a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp
index e0c7cb3045..7eb5a4f678 100644
--- a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp
+++ b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp
@@ -120,16 +120,24 @@ QmlProjectRunConfiguration::QmlProjectRunConfiguration(Target *target, Id id)
connect(target, &Target::kitChanged, this, &RunConfiguration::update);
m_multiLanguageAspect = addAspect<QmlMultiLanguageAspect>(target);
+ auto buildSystem = qobject_cast<const QmlBuildSystem *>(activeBuildSystem());
+ if (buildSystem)
+ m_multiLanguageAspect->setValue(buildSystem->multilanguageSupport());
auto envAspect = addAspect<EnvironmentAspect>();
- connect(m_multiLanguageAspect, &QmlMultiLanguageAspect::changed, envAspect, &EnvironmentAspect::environmentChanged);
+ connect(m_multiLanguageAspect,
+ &QmlMultiLanguageAspect::changed,
+ envAspect,
+ &EnvironmentAspect::environmentChanged);
auto envModifier = [this](Environment env) {
- if (auto bs = dynamic_cast<const QmlBuildSystem *>(activeBuildSystem()))
+ if (auto bs = qobject_cast<const QmlBuildSystem *>(activeBuildSystem()))
env.modify(bs->environment());
- if (m_multiLanguageAspect && m_multiLanguageAspect->value() && !m_multiLanguageAspect->databaseFilePath().isEmpty()) {
- env.set("QT_MULTILANGUAGE_DATABASE", m_multiLanguageAspect->databaseFilePath().toString());
+ if (m_multiLanguageAspect && m_multiLanguageAspect->value()
+ && !m_multiLanguageAspect->databaseFilePath().isEmpty()) {
+ env.set("QT_MULTILANGUAGE_DATABASE",
+ m_multiLanguageAspect->databaseFilePath().toString());
env.set("QT_MULTILANGUAGE_LANGUAGE", m_multiLanguageAspect->currentLocale());
} else {
env.unset("QT_MULTILANGUAGE_DATABASE");