summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Jenssen <tim.jenssen@qt.io>2020-07-20 20:45:08 +0200
committerTim Jenssen <tim.jenssen@qt.io>2020-07-23 09:14:31 +0000
commitbde420f7b7373ad5602ce80383cfe4db6602aa6d (patch)
treefbc8e6bb4773559d2c6e2e2b904fa62fa658712d
parent03307d8cb4ecc15f4bf1ac5c7424b35ef7b1a7cf (diff)
downloadqt-creator-bde420f7b7373ad5602ce80383cfe4db6602aa6d.tar.gz
qmlproject: rename lastUsedLanguage -> currentLocale
removed the connection from plugin to QmlMultiLanguageAspect::setCurrentLocale but calling it directly in QmlPreviewPlugin::setLocale Does not matter which method is called it will change the right thing only once because it is checking if it already have the set locale. Change-Id: I6cb4b115788adc103481dcda45e3214a0cd73401 Reviewed-by: Marco Bubke <marco.bubke@qt.io>
-rw-r--r--src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp4
-rw-r--r--src/plugins/qmlpreview/qmlpreviewplugin.cpp7
-rw-r--r--src/plugins/qmlprojectmanager/qmlmultilanguageaspect.cpp23
-rw-r--r--src/plugins/qmlprojectmanager/qmlmultilanguageaspect.h9
-rw-r--r--src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp2
5 files changed, 24 insertions, 21 deletions
diff --git a/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp b/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp
index 2f491e8f6b..063a2d1e7d 100644
--- a/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp
+++ b/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp
@@ -547,7 +547,7 @@ void NodeInstanceView::auxiliaryDataChanged(const ModelNode &node,
} else if (node.isRootNode() && name == "language@Internal") {
const QString languageAsString = value.toString();
if (auto multiLanguageAspect = QmlProjectManager::QmlMultiLanguageAspect::current(m_currentTarget))
- multiLanguageAspect->setLastUsedLanguage(languageAsString);
+ multiLanguageAspect->setCurrentLocale(languageAsString);
nodeInstanceServer()->changeLanguage({languageAsString});
} else if (node.isRootNode() && name == "previewSize@Internal") {
nodeInstanceServer()->changePreviewImageSize(value.toSize());
@@ -991,7 +991,7 @@ CreateSceneCommand NodeInstanceView::createCreateSceneCommand()
QString lastUsedLanguage;
if (auto multiLanguageAspect = QmlProjectManager::QmlMultiLanguageAspect::current(m_currentTarget))
- lastUsedLanguage = multiLanguageAspect->lastUsedLanguage();
+ lastUsedLanguage = multiLanguageAspect->currentLocale();
return CreateSceneCommand(
instanceContainerList,
diff --git a/src/plugins/qmlpreview/qmlpreviewplugin.cpp b/src/plugins/qmlpreview/qmlpreviewplugin.cpp
index b578be4ac0..72927f8cdf 100644
--- a/src/plugins/qmlpreview/qmlpreviewplugin.cpp
+++ b/src/plugins/qmlpreview/qmlpreviewplugin.cpp
@@ -193,7 +193,10 @@ QmlPreviewPluginPrivate::QmlPreviewPluginPrivate(QmlPreviewPlugin *parent)
action->setEnabled(SessionManager::startupProject() != nullptr);
connect(SessionManager::instance(), &SessionManager::startupProjectChanged, action,
&QAction::setEnabled);
- connect(action, &QAction::triggered, this, []() {
+ connect(action, &QAction::triggered, this, [this]() {
+ if (auto multiLanguageAspect = QmlProjectManager::QmlMultiLanguageAspect::current())
+ m_locale = multiLanguageAspect->currentLocale();
+
ProjectExplorerPlugin::runStartupProject(Constants::QML_PREVIEW_RUN_MODE);
});
menu->addAction(Core::ActionManager::registerAction(action, "QmlPreview.Internal"),
@@ -334,6 +337,8 @@ QString QmlPreviewPlugin::locale() const
void QmlPreviewPlugin::setLocale(const QString &locale)
{
+ if (auto multiLanguageAspect = QmlProjectManager::QmlMultiLanguageAspect::current())
+ multiLanguageAspect->setCurrentLocale(locale);
if (d->m_locale == locale)
return;
diff --git a/src/plugins/qmlprojectmanager/qmlmultilanguageaspect.cpp b/src/plugins/qmlprojectmanager/qmlmultilanguageaspect.cpp
index 623e51c66e..1e5e88712e 100644
--- a/src/plugins/qmlprojectmanager/qmlmultilanguageaspect.cpp
+++ b/src/plugins/qmlprojectmanager/qmlmultilanguageaspect.cpp
@@ -83,27 +83,24 @@ QmlMultiLanguageAspect::QmlMultiLanguageAspect(ProjectExplorer::Target *target)
setDefaultValue(!databaseFilePath().isEmpty());
QVariantMap getDefaultValues;
fromMap(getDefaultValues);
-
- if (auto previewPlugin = getPreviewPlugin())
- connect(previewPlugin, SIGNAL(localeChanged(QString)), this, SLOT(setLastUsedLanguage(QString)));
}
QmlMultiLanguageAspect::~QmlMultiLanguageAspect()
{
}
-void QmlMultiLanguageAspect::setLastUsedLanguage(const QString &language)
+void QmlMultiLanguageAspect::setCurrentLocale(const QString &locale)
{
+ if (m_currentLocale == locale)
+ return;
+ m_currentLocale = locale;
if (auto previewPlugin = getPreviewPlugin())
- previewPlugin->setProperty("locale", language);
- if (m_lastUsedLanguage != language) {
- m_lastUsedLanguage = language;
- }
+ previewPlugin->setProperty("locale", locale);
}
-QString QmlMultiLanguageAspect::lastUsedLanguage() const
+QString QmlMultiLanguageAspect::currentLocale() const
{
- return m_lastUsedLanguage;
+ return m_currentLocale;
}
Utils::FilePath QmlMultiLanguageAspect::databaseFilePath() const
@@ -116,14 +113,14 @@ Utils::FilePath QmlMultiLanguageAspect::databaseFilePath() const
void QmlMultiLanguageAspect::toMap(QVariantMap &map) const
{
BaseBoolAspect::toMap(map);
- if (!m_lastUsedLanguage.isEmpty())
- map.insert(Constants::LAST_USED_LANGUAGE, m_lastUsedLanguage);
+ if (!m_currentLocale.isEmpty())
+ map.insert(Constants::LAST_USED_LANGUAGE, m_currentLocale);
}
void QmlMultiLanguageAspect::fromMap(const QVariantMap &map)
{
BaseBoolAspect::fromMap(map);
- setLastUsedLanguage(map.value(Constants::LAST_USED_LANGUAGE, "en").toString());
+ setCurrentLocale(map.value(Constants::LAST_USED_LANGUAGE, "en").toString());
}
QmlMultiLanguageAspect *QmlMultiLanguageAspect::current()
diff --git a/src/plugins/qmlprojectmanager/qmlmultilanguageaspect.h b/src/plugins/qmlprojectmanager/qmlmultilanguageaspect.h
index 20db028ed2..c98c5e2aec 100644
--- a/src/plugins/qmlprojectmanager/qmlmultilanguageaspect.h
+++ b/src/plugins/qmlprojectmanager/qmlmultilanguageaspect.h
@@ -40,7 +40,8 @@ public:
explicit QmlMultiLanguageAspect(ProjectExplorer::Target *target);
~QmlMultiLanguageAspect() override;
- QString lastUsedLanguage() const;
+ QString currentLocale() const;
+ void setCurrentLocale(const QString &locale);
Utils::FilePath databaseFilePath() const;
void toMap(QVariantMap &map) const final;
void fromMap(const QVariantMap &map) final;
@@ -49,13 +50,13 @@ public:
static QmlMultiLanguageAspect *current(ProjectExplorer::Project *project);
static QmlMultiLanguageAspect *current(ProjectExplorer::Target *target);
-public slots:
- void setLastUsedLanguage(const QString &language);
+signals:
+ void currentLocaleChanged(const QString &locale);
private:
ProjectExplorer::Target *m_target = nullptr;
mutable Utils::FilePath m_databaseFilePath;
- QString m_lastUsedLanguage;
+ QString m_currentLocale;
};
} // namespace QmlProjectManager
diff --git a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp
index a0bfa81211..f7bce125a6 100644
--- a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp
+++ b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp
@@ -117,7 +117,7 @@ QmlProjectRunConfiguration::QmlProjectRunConfiguration(Target *target, Id id)
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->lastUsedLanguage());
+ env.set("QT_MULTILANGUAGE_LANGUAGE", m_multiLanguageAspect->currentLocale());
} else {
env.unset("QT_MULTILANGUAGE_DATABASE");
env.unset("QT_MULTILANGUAGE_LANGUAGE");