forked from qt-creator/qt-creator
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>
This commit is contained in:
@@ -547,7 +547,7 @@ void NodeInstanceView::auxiliaryDataChanged(const ModelNode &node,
|
|||||||
} else if (node.isRootNode() && name == "language@Internal") {
|
} else if (node.isRootNode() && name == "language@Internal") {
|
||||||
const QString languageAsString = value.toString();
|
const QString languageAsString = value.toString();
|
||||||
if (auto multiLanguageAspect = QmlProjectManager::QmlMultiLanguageAspect::current(m_currentTarget))
|
if (auto multiLanguageAspect = QmlProjectManager::QmlMultiLanguageAspect::current(m_currentTarget))
|
||||||
multiLanguageAspect->setLastUsedLanguage(languageAsString);
|
multiLanguageAspect->setCurrentLocale(languageAsString);
|
||||||
nodeInstanceServer()->changeLanguage({languageAsString});
|
nodeInstanceServer()->changeLanguage({languageAsString});
|
||||||
} else if (node.isRootNode() && name == "previewSize@Internal") {
|
} else if (node.isRootNode() && name == "previewSize@Internal") {
|
||||||
nodeInstanceServer()->changePreviewImageSize(value.toSize());
|
nodeInstanceServer()->changePreviewImageSize(value.toSize());
|
||||||
@@ -991,7 +991,7 @@ CreateSceneCommand NodeInstanceView::createCreateSceneCommand()
|
|||||||
|
|
||||||
QString lastUsedLanguage;
|
QString lastUsedLanguage;
|
||||||
if (auto multiLanguageAspect = QmlProjectManager::QmlMultiLanguageAspect::current(m_currentTarget))
|
if (auto multiLanguageAspect = QmlProjectManager::QmlMultiLanguageAspect::current(m_currentTarget))
|
||||||
lastUsedLanguage = multiLanguageAspect->lastUsedLanguage();
|
lastUsedLanguage = multiLanguageAspect->currentLocale();
|
||||||
|
|
||||||
return CreateSceneCommand(
|
return CreateSceneCommand(
|
||||||
instanceContainerList,
|
instanceContainerList,
|
||||||
|
@@ -193,7 +193,10 @@ QmlPreviewPluginPrivate::QmlPreviewPluginPrivate(QmlPreviewPlugin *parent)
|
|||||||
action->setEnabled(SessionManager::startupProject() != nullptr);
|
action->setEnabled(SessionManager::startupProject() != nullptr);
|
||||||
connect(SessionManager::instance(), &SessionManager::startupProjectChanged, action,
|
connect(SessionManager::instance(), &SessionManager::startupProjectChanged, action,
|
||||||
&QAction::setEnabled);
|
&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);
|
ProjectExplorerPlugin::runStartupProject(Constants::QML_PREVIEW_RUN_MODE);
|
||||||
});
|
});
|
||||||
menu->addAction(Core::ActionManager::registerAction(action, "QmlPreview.Internal"),
|
menu->addAction(Core::ActionManager::registerAction(action, "QmlPreview.Internal"),
|
||||||
@@ -334,6 +337,8 @@ QString QmlPreviewPlugin::locale() const
|
|||||||
|
|
||||||
void QmlPreviewPlugin::setLocale(const QString &locale)
|
void QmlPreviewPlugin::setLocale(const QString &locale)
|
||||||
{
|
{
|
||||||
|
if (auto multiLanguageAspect = QmlProjectManager::QmlMultiLanguageAspect::current())
|
||||||
|
multiLanguageAspect->setCurrentLocale(locale);
|
||||||
if (d->m_locale == locale)
|
if (d->m_locale == locale)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@@ -83,27 +83,24 @@ QmlMultiLanguageAspect::QmlMultiLanguageAspect(ProjectExplorer::Target *target)
|
|||||||
setDefaultValue(!databaseFilePath().isEmpty());
|
setDefaultValue(!databaseFilePath().isEmpty());
|
||||||
QVariantMap getDefaultValues;
|
QVariantMap getDefaultValues;
|
||||||
fromMap(getDefaultValues);
|
fromMap(getDefaultValues);
|
||||||
|
|
||||||
if (auto previewPlugin = getPreviewPlugin())
|
|
||||||
connect(previewPlugin, SIGNAL(localeChanged(QString)), this, SLOT(setLastUsedLanguage(QString)));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
QmlMultiLanguageAspect::~QmlMultiLanguageAspect()
|
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())
|
if (auto previewPlugin = getPreviewPlugin())
|
||||||
previewPlugin->setProperty("locale", language);
|
previewPlugin->setProperty("locale", locale);
|
||||||
if (m_lastUsedLanguage != language) {
|
|
||||||
m_lastUsedLanguage = language;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
QString QmlMultiLanguageAspect::lastUsedLanguage() const
|
QString QmlMultiLanguageAspect::currentLocale() const
|
||||||
{
|
{
|
||||||
return m_lastUsedLanguage;
|
return m_currentLocale;
|
||||||
}
|
}
|
||||||
|
|
||||||
Utils::FilePath QmlMultiLanguageAspect::databaseFilePath() const
|
Utils::FilePath QmlMultiLanguageAspect::databaseFilePath() const
|
||||||
@@ -116,14 +113,14 @@ Utils::FilePath QmlMultiLanguageAspect::databaseFilePath() const
|
|||||||
void QmlMultiLanguageAspect::toMap(QVariantMap &map) const
|
void QmlMultiLanguageAspect::toMap(QVariantMap &map) const
|
||||||
{
|
{
|
||||||
BaseBoolAspect::toMap(map);
|
BaseBoolAspect::toMap(map);
|
||||||
if (!m_lastUsedLanguage.isEmpty())
|
if (!m_currentLocale.isEmpty())
|
||||||
map.insert(Constants::LAST_USED_LANGUAGE, m_lastUsedLanguage);
|
map.insert(Constants::LAST_USED_LANGUAGE, m_currentLocale);
|
||||||
}
|
}
|
||||||
|
|
||||||
void QmlMultiLanguageAspect::fromMap(const QVariantMap &map)
|
void QmlMultiLanguageAspect::fromMap(const QVariantMap &map)
|
||||||
{
|
{
|
||||||
BaseBoolAspect::fromMap(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()
|
QmlMultiLanguageAspect *QmlMultiLanguageAspect::current()
|
||||||
|
@@ -40,7 +40,8 @@ public:
|
|||||||
explicit QmlMultiLanguageAspect(ProjectExplorer::Target *target);
|
explicit QmlMultiLanguageAspect(ProjectExplorer::Target *target);
|
||||||
~QmlMultiLanguageAspect() override;
|
~QmlMultiLanguageAspect() override;
|
||||||
|
|
||||||
QString lastUsedLanguage() const;
|
QString currentLocale() const;
|
||||||
|
void setCurrentLocale(const QString &locale);
|
||||||
Utils::FilePath databaseFilePath() const;
|
Utils::FilePath databaseFilePath() const;
|
||||||
void toMap(QVariantMap &map) const final;
|
void toMap(QVariantMap &map) const final;
|
||||||
void fromMap(const QVariantMap &map) final;
|
void fromMap(const QVariantMap &map) final;
|
||||||
@@ -49,13 +50,13 @@ public:
|
|||||||
static QmlMultiLanguageAspect *current(ProjectExplorer::Project *project);
|
static QmlMultiLanguageAspect *current(ProjectExplorer::Project *project);
|
||||||
static QmlMultiLanguageAspect *current(ProjectExplorer::Target *target);
|
static QmlMultiLanguageAspect *current(ProjectExplorer::Target *target);
|
||||||
|
|
||||||
public slots:
|
signals:
|
||||||
void setLastUsedLanguage(const QString &language);
|
void currentLocaleChanged(const QString &locale);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
ProjectExplorer::Target *m_target = nullptr;
|
ProjectExplorer::Target *m_target = nullptr;
|
||||||
mutable Utils::FilePath m_databaseFilePath;
|
mutable Utils::FilePath m_databaseFilePath;
|
||||||
QString m_lastUsedLanguage;
|
QString m_currentLocale;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace QmlProjectManager
|
} // namespace QmlProjectManager
|
||||||
|
@@ -117,7 +117,7 @@ QmlProjectRunConfiguration::QmlProjectRunConfiguration(Target *target, Id id)
|
|||||||
|
|
||||||
if (m_multiLanguageAspect && m_multiLanguageAspect->value() && !m_multiLanguageAspect->databaseFilePath().isEmpty()) {
|
if (m_multiLanguageAspect && m_multiLanguageAspect->value() && !m_multiLanguageAspect->databaseFilePath().isEmpty()) {
|
||||||
env.set("QT_MULTILANGUAGE_DATABASE", m_multiLanguageAspect->databaseFilePath().toString());
|
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 {
|
} else {
|
||||||
env.unset("QT_MULTILANGUAGE_DATABASE");
|
env.unset("QT_MULTILANGUAGE_DATABASE");
|
||||||
env.unset("QT_MULTILANGUAGE_LANGUAGE");
|
env.unset("QT_MULTILANGUAGE_LANGUAGE");
|
||||||
|
Reference in New Issue
Block a user