aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTim Jenssen <tim.jenssen@qt.io>2020-07-21 13:47:14 +0200
committerTim Jenssen <tim.jenssen@qt.io>2020-07-21 15:37:41 +0000
commitb45b771581860f26a99950954e5c47e614f36943 (patch)
treed98ffa49a29b7e6ceea79850492887a6f526bcbb
parent3659f5b41d3cf533b7cd7aec67281200a0c5d73f (diff)
qmlproject: add convenience method to QmlMultiLanguageAspect
Change-Id: I88799aa1c5caa5c967b7c680ef9ddcbdd4b01bf5 Reviewed-by: Marco Bubke <marco.bubke@qt.io>
-rw-r--r--src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp16
-rw-r--r--src/plugins/qmldesigner/designercore/instances/puppetcreator.cpp8
-rw-r--r--src/plugins/qmlprojectmanager/qmlmultilanguageaspect.cpp24
-rw-r--r--src/plugins/qmlprojectmanager/qmlmultilanguageaspect.h4
4 files changed, 35 insertions, 17 deletions
diff --git a/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp b/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp
index d87bc128d2..2f491e8f6b 100644
--- a/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp
+++ b/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp
@@ -546,12 +546,8 @@ void NodeInstanceView::auxiliaryDataChanged(const ModelNode &node,
}
} else if (node.isRootNode() && name == "language@Internal") {
const QString languageAsString = value.toString();
- if (m_currentTarget) {
- if (auto rc = m_currentTarget->activeRunConfiguration()) {
- if (auto multiLanguageAspect = rc->aspect<QmlProjectManager::QmlMultiLanguageAspect>())
- multiLanguageAspect->setLastUsedLanguage(languageAsString);
- }
- }
+ if (auto multiLanguageAspect = QmlProjectManager::QmlMultiLanguageAspect::current(m_currentTarget))
+ multiLanguageAspect->setLastUsedLanguage(languageAsString);
nodeInstanceServer()->changeLanguage({languageAsString});
} else if (node.isRootNode() && name == "previewSize@Internal") {
nodeInstanceServer()->changePreviewImageSize(value.toSize());
@@ -994,12 +990,8 @@ CreateSceneCommand NodeInstanceView::createCreateSceneCommand()
}
QString lastUsedLanguage;
- if (m_currentTarget) {
- if (auto rc = m_currentTarget->activeRunConfiguration()) {
- if (auto multiLanguageAspect = rc->aspect<QmlProjectManager::QmlMultiLanguageAspect>())
- lastUsedLanguage = multiLanguageAspect->lastUsedLanguage();
- }
- }
+ if (auto multiLanguageAspect = QmlProjectManager::QmlMultiLanguageAspect::current(m_currentTarget))
+ lastUsedLanguage = multiLanguageAspect->lastUsedLanguage();
return CreateSceneCommand(
instanceContainerList,
diff --git a/src/plugins/qmldesigner/designercore/instances/puppetcreator.cpp b/src/plugins/qmldesigner/designercore/instances/puppetcreator.cpp
index 943e21e6f7..7eefa7f1bc 100644
--- a/src/plugins/qmldesigner/designercore/instances/puppetcreator.cpp
+++ b/src/plugins/qmldesigner/designercore/instances/puppetcreator.cpp
@@ -512,11 +512,9 @@ QProcessEnvironment PuppetCreator::processEnvironment() const
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());
- }
+ if (auto multiLanguageAspect = QmlProjectManager::QmlMultiLanguageAspect::current(m_target)) {
+ if (!multiLanguageAspect->databaseFilePath().isEmpty())
+ environment.set("QT_MULTILANGUAGE_DATABASE", multiLanguageAspect->databaseFilePath().toString());
}
}
diff --git a/src/plugins/qmlprojectmanager/qmlmultilanguageaspect.cpp b/src/plugins/qmlprojectmanager/qmlmultilanguageaspect.cpp
index 94e36919fe..623e51c66e 100644
--- a/src/plugins/qmlprojectmanager/qmlmultilanguageaspect.cpp
+++ b/src/plugins/qmlprojectmanager/qmlmultilanguageaspect.cpp
@@ -30,6 +30,7 @@
#include <projectexplorer/project.h>
#include <projectexplorer/projectexplorer.h>
+#include <projectexplorer/session.h>
#include <projectexplorer/target.h>
static bool isMultilanguagePresent()
@@ -125,4 +126,27 @@ void QmlMultiLanguageAspect::fromMap(const QVariantMap &map)
setLastUsedLanguage(map.value(Constants::LAST_USED_LANGUAGE, "en").toString());
}
+QmlMultiLanguageAspect *QmlMultiLanguageAspect::current()
+{
+ if (auto project = ProjectExplorer::SessionManager::startupProject())
+ return current(project);
+ return {};
+}
+
+QmlMultiLanguageAspect *QmlMultiLanguageAspect::current(ProjectExplorer::Project *project)
+{
+ if (auto target = project->activeTarget())
+ return current(target);
+ return {};
+}
+
+QmlMultiLanguageAspect *QmlMultiLanguageAspect::current(ProjectExplorer::Target *target)
+{
+ if (auto runConfiguration = target->activeRunConfiguration()) {
+ if (auto multiLanguageAspect = runConfiguration->aspect<QmlProjectManager::QmlMultiLanguageAspect>())
+ return multiLanguageAspect;
+ }
+ return {};
+}
+
} // namespace QmlProjectManager
diff --git a/src/plugins/qmlprojectmanager/qmlmultilanguageaspect.h b/src/plugins/qmlprojectmanager/qmlmultilanguageaspect.h
index 163552caf0..20db028ed2 100644
--- a/src/plugins/qmlprojectmanager/qmlmultilanguageaspect.h
+++ b/src/plugins/qmlprojectmanager/qmlmultilanguageaspect.h
@@ -45,6 +45,10 @@ public:
void toMap(QVariantMap &map) const final;
void fromMap(const QVariantMap &map) final;
+ static QmlMultiLanguageAspect *current();
+ static QmlMultiLanguageAspect *current(ProjectExplorer::Project *project);
+ static QmlMultiLanguageAspect *current(ProjectExplorer::Target *target);
+
public slots:
void setLastUsedLanguage(const QString &language);