aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/qmldesigner/designercore
diff options
context:
space:
mode:
authorTim Jenssen <tim.jenssen@qt.io>2020-06-18 08:49:29 +0200
committerTim Jenssen <tim.jenssen@qt.io>2020-06-18 13:02:37 +0000
commit52316578f837ca38c6631222808af4288affe40f (patch)
tree962db1fb4286564f78eab7bbcd0eb904102e0179 /src/plugins/qmldesigner/designercore
parentaaf51d1cfbf26bac09ea670291a0c0003dfc8a8e (diff)
qml: introduce QmlMultiLanguageAspect
This aspect is only available if the special multilanguage plugin is available. Translation changes in that plugin changes this aspect, which results in environment variables which activate the use of a multilanguage created sqlite to provide the translations. Change-Id: I38250b69165eb7ec3e4f82dc34b3cc4ba0a33f8f Reviewed-by: hjk <hjk@qt.io> Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Diffstat (limited to 'src/plugins/qmldesigner/designercore')
-rw-r--r--src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp20
-rw-r--r--src/plugins/qmldesigner/designercore/instances/puppetcreator.cpp33
-rw-r--r--src/plugins/qmldesigner/designercore/instances/puppetcreator.h1
3 files changed, 31 insertions, 23 deletions
diff --git a/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp b/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp
index 96dd127f28..d87bc128d2 100644
--- a/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp
+++ b/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp
@@ -83,6 +83,10 @@
#include <coreplugin/documentmanager.h>
#endif
+#include <projectexplorer/target.h>
+
+#include <qmlprojectmanager/qmlmultilanguageaspect.h>
+
#include <utils/algorithm.h>
#include <utils/qtcassert.h>
@@ -542,7 +546,12 @@ void NodeInstanceView::auxiliaryDataChanged(const ModelNode &node,
}
} else if (node.isRootNode() && name == "language@Internal") {
const QString languageAsString = value.toString();
- DesignerSettings::setValue(DesignerSettingsKey::LAST_USED_TRANSLATION_LANGUAGE, languageAsString);
+ if (m_currentTarget) {
+ if (auto rc = m_currentTarget->activeRunConfiguration()) {
+ if (auto multiLanguageAspect = rc->aspect<QmlProjectManager::QmlMultiLanguageAspect>())
+ multiLanguageAspect->setLastUsedLanguage(languageAsString);
+ }
+ }
nodeInstanceServer()->changeLanguage({languageAsString});
} else if (node.isRootNode() && name == "previewSize@Internal") {
nodeInstanceServer()->changePreviewImageSize(value.toSize());
@@ -984,6 +993,13 @@ CreateSceneCommand NodeInstanceView::createCreateSceneCommand()
}
}
+ QString lastUsedLanguage;
+ if (m_currentTarget) {
+ if (auto rc = m_currentTarget->activeRunConfiguration()) {
+ if (auto multiLanguageAspect = rc->aspect<QmlProjectManager::QmlMultiLanguageAspect>())
+ lastUsedLanguage = multiLanguageAspect->lastUsedLanguage();
+ }
+ }
return CreateSceneCommand(
instanceContainerList,
@@ -996,7 +1012,7 @@ CreateSceneCommand NodeInstanceView::createCreateSceneCommand()
mockupTypesVector,
model()->fileUrl(),
m_edit3DToolStates[model()->fileUrl()],
- DesignerSettings::getValue(DesignerSettingsKey::LAST_USED_TRANSLATION_LANGUAGE).toString()
+ lastUsedLanguage
);
}
diff --git a/src/plugins/qmldesigner/designercore/instances/puppetcreator.cpp b/src/plugins/qmldesigner/designercore/instances/puppetcreator.cpp
index a33d7f1f5a..943e21e6f7 100644
--- a/src/plugins/qmldesigner/designercore/instances/puppetcreator.cpp
+++ b/src/plugins/qmldesigner/designercore/instances/puppetcreator.cpp
@@ -36,17 +36,20 @@
#include <app/app_version.h>
+#include <coreplugin/messagebox.h>
+#include <coreplugin/icore.h>
+
#include <projectexplorer/kit.h>
#include <projectexplorer/project.h>
#include <projectexplorer/projectexplorerconstants.h>
#include <projectexplorer/target.h>
#include <projectexplorer/toolchain.h>
-#include <coreplugin/messagebox.h>
-#include <coreplugin/icore.h>
+
+#include <qmlprojectmanager/qmlmultilanguageaspect.h>
+
#include <qtsupport/baseqtversion.h>
#include <qtsupport/qtkitinformation.h>
#include <qtsupport/qtsupportconstants.h>
-#include <coreplugin/icore.h>
#include <utils/algorithm.h>
#include <utils/environment.h>
@@ -162,18 +165,6 @@ QString PuppetCreator::getStyleConfigFileName() const
return QString();
}
-QString PuppetCreator::getMultilanguageDatabaseFilePath() const
-{
-#ifndef QMLDESIGNER_TEST
- if (m_target) {
- auto filePath = m_target->project()->projectDirectory().pathAppended("/multilanguage-experimental-v1.db");
- if (filePath.exists())
- return filePath.toString();
- }
-#endif
- return {};
-}
-
PuppetCreator::PuppetCreator(ProjectExplorer::Target *target, const Model *model)
: m_target(target)
@@ -494,11 +485,6 @@ QProcessEnvironment PuppetCreator::processEnvironment() const
environment.set("QMLDESIGNER_RC_PATHS", m_qrcMapping);
}
- const QString multilanguageDatabaseFilePath = getMultilanguageDatabaseFilePath();
-
- if (!multilanguageDatabaseFilePath.isEmpty())
- environment.set("QT_MULTILANGUAGE_DATABASE", multilanguageDatabaseFilePath);
-
#ifndef QMLDESIGNER_TEST
auto view = QmlDesignerPlugin::instance()->viewManager().nodeInstanceView();
view->emitCustomNotification("PuppetStatus", {}, {QVariant(m_qrcMapping)});
@@ -525,6 +511,13 @@ QProcessEnvironment PuppetCreator::processEnvironment() const
importPaths.append(designerImports);
customFileSelectors = m_target->additionalData("CustomFileSelectorsData").toStringList();
+
+ if (auto *rc = m_target->activeRunConfiguration()) {
+ if (auto multiLanguageAspect = rc->aspect<QmlProjectManager::QmlMultiLanguageAspect>()) {
+ if (!multiLanguageAspect->databaseFilePath().isEmpty())
+ environment.set("QT_MULTILANGUAGE_DATABASE", multiLanguageAspect->databaseFilePath().toString());
+ }
+ }
}
customFileSelectors.append("DesignMode");
diff --git a/src/plugins/qmldesigner/designercore/instances/puppetcreator.h b/src/plugins/qmldesigner/designercore/instances/puppetcreator.h
index f8033fd3e1..bafea8fa3e 100644
--- a/src/plugins/qmldesigner/designercore/instances/puppetcreator.h
+++ b/src/plugins/qmldesigner/designercore/instances/puppetcreator.h
@@ -102,7 +102,6 @@ protected:
bool useOnlyFallbackPuppet() const;
QString getStyleConfigFileName() const;
- QString getMultilanguageDatabaseFilePath() const;
private:
mutable QString m_compileLog;