forked from qt-creator/qt-creator
qmlproject: add convenience method to QmlMultiLanguageAspect
Change-Id: I88799aa1c5caa5c967b7c680ef9ddcbdd4b01bf5 Reviewed-by: Marco Bubke <marco.bubke@qt.io>
This commit is contained in:
@@ -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,
|
||||
|
@@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -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
|
||||
|
@@ -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);
|
||||
|
||||
|
Reference in New Issue
Block a user