diff options
Diffstat (limited to 'src/plugins/qmlprojectmanager')
-rw-r--r-- | src/plugins/qmlprojectmanager/qmlmultilanguageaspect.cpp | 24 | ||||
-rw-r--r-- | src/plugins/qmlprojectmanager/qmlmultilanguageaspect.h | 4 |
2 files changed, 28 insertions, 0 deletions
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); |