forked from qt-creator/qt-creator
QmlProjectManager: Prepare special aspects for auto-registration
Change-Id: I9b5e019dfeaf394107a190e78e8880b4f16b9ee9 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -14,6 +14,11 @@
|
||||
#include <projectexplorer/runcontrol.h>
|
||||
#include <projectexplorer/target.h>
|
||||
|
||||
using namespace ProjectExplorer;
|
||||
using namespace Utils;
|
||||
|
||||
namespace QmlProjectManager {
|
||||
|
||||
static bool isMultilanguagePresent()
|
||||
{
|
||||
const QVector<ExtensionSystem::PluginSpec *> &specs = ExtensionSystem::PluginManager::plugins();
|
||||
@@ -24,7 +29,7 @@ static bool isMultilanguagePresent()
|
||||
!= specs.cend();
|
||||
}
|
||||
|
||||
static Utils::FilePath getMultilanguageDatabaseFilePath(ProjectExplorer::Target *target)
|
||||
static FilePath getMultilanguageDatabaseFilePath(ProjectExplorer::Target *target)
|
||||
{
|
||||
if (target) {
|
||||
auto filePath = target->project()->projectDirectory().pathAppended("translations.db");
|
||||
@@ -48,11 +53,8 @@ static QObject *getPreviewPlugin()
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
|
||||
namespace QmlProjectManager {
|
||||
|
||||
QmlMultiLanguageAspect::QmlMultiLanguageAspect(ProjectExplorer::Target *target)
|
||||
: m_target(target)
|
||||
QmlMultiLanguageAspect::QmlMultiLanguageAspect(AspectContainer *container)
|
||||
: BoolAspect(container)
|
||||
{
|
||||
setVisible(isMultilanguagePresent());
|
||||
setSettingsKey(Constants::USE_MULTILANGUAGE_KEY);
|
||||
@@ -66,8 +68,7 @@ QmlMultiLanguageAspect::QmlMultiLanguageAspect(ProjectExplorer::Target *target)
|
||||
addDataExtractor(this, &QmlMultiLanguageAspect::origin, &Data::origin);
|
||||
|
||||
connect(this, &BoolAspect::changed, this, [this] {
|
||||
for (ProjectExplorer::RunControl *runControl :
|
||||
ProjectExplorer::ProjectExplorerPlugin::allRunControls()) {
|
||||
for (RunControl *runControl : ProjectExplorerPlugin::allRunControls()) {
|
||||
if (runControl->aspect<QmlMultiLanguageAspect>()->origin == this)
|
||||
runControl->initiateStop();
|
||||
}
|
||||
@@ -78,6 +79,11 @@ QmlMultiLanguageAspect::~QmlMultiLanguageAspect()
|
||||
{
|
||||
}
|
||||
|
||||
void QmlMultiLanguageAspect::setTarget(Target *target)
|
||||
{
|
||||
m_target = target;
|
||||
}
|
||||
|
||||
void QmlMultiLanguageAspect::setCurrentLocale(const QString &locale)
|
||||
{
|
||||
if (m_currentLocale == locale)
|
||||
@@ -114,19 +120,19 @@ void QmlMultiLanguageAspect::fromMap(const QVariantMap &map)
|
||||
|
||||
QmlMultiLanguageAspect *QmlMultiLanguageAspect::current()
|
||||
{
|
||||
if (auto project = ProjectExplorer::ProjectManager::startupProject())
|
||||
if (auto project = ProjectManager::startupProject())
|
||||
return current(project);
|
||||
return {};
|
||||
}
|
||||
|
||||
QmlMultiLanguageAspect *QmlMultiLanguageAspect::current(ProjectExplorer::Project *project)
|
||||
QmlMultiLanguageAspect *QmlMultiLanguageAspect::current(Project *project)
|
||||
{
|
||||
if (auto target = project->activeTarget())
|
||||
return current(target);
|
||||
return {};
|
||||
}
|
||||
|
||||
QmlMultiLanguageAspect *QmlMultiLanguageAspect::current(ProjectExplorer::Target *target)
|
||||
QmlMultiLanguageAspect *QmlMultiLanguageAspect::current(Target *target)
|
||||
{
|
||||
if (!target)
|
||||
return {};
|
||||
|
||||
Reference in New Issue
Block a user