From 0bbeb9df7e79032cdac9b1819705ff3b4222bcaa Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Thu, 9 Jun 2022 11:44:41 +0200 Subject: QmlDesigner: Add environment variable to activate project storage QDS_ACTIVATE_PROJECT_STORAGE has to enable project storage updates. Change-Id: Ifc108b60ee248bb44b84247b3acf79fdfa0dd0ea Reviewed-by: Marco Bubke --- .../qmldesigner/qmldesignerprojectmanager.cpp | 33 +++++++++++++--------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/src/plugins/qmldesigner/qmldesignerprojectmanager.cpp b/src/plugins/qmldesigner/qmldesignerprojectmanager.cpp index 7777b79eef..ecbea3f528 100644 --- a/src/plugins/qmldesigner/qmldesignerprojectmanager.cpp +++ b/src/plugins/qmldesigner/qmldesignerprojectmanager.cpp @@ -307,24 +307,26 @@ QStringList qmlTypes(::ProjectExplorer::Target *target) void QmlDesignerProjectManager::projectAdded(::ProjectExplorer::Project *project) { - m_projectData = std::make_unique(m_imageCacheData->storage, - project); - m_projectData->activeTarget = project->activeTarget(); + if (qEnvironmentVariableIsSet("QDS_ACTIVATE_PROJECT_STORAGE")) { + m_projectData = std::make_unique(m_imageCacheData->storage, + project); + m_projectData->activeTarget = project->activeTarget(); - QObject::connect(project, &::ProjectExplorer::Project::fileListChanged, [&]() { - fileListChanged(); - }); + QObject::connect(project, &::ProjectExplorer::Project::fileListChanged, [&]() { + fileListChanged(); + }); - QObject::connect(project, &::ProjectExplorer::Project::activeTargetChanged, [&](auto *target) { - activeTargetChanged(target); - }); + QObject::connect(project, + &::ProjectExplorer::Project::activeTargetChanged, + [&](auto *target) { activeTargetChanged(target); }); - QObject::connect(project, &::ProjectExplorer::Project::aboutToRemoveTarget, [&](auto *target) { - aboutToRemoveTarget(target); - }); + QObject::connect(project, + &::ProjectExplorer::Project::aboutToRemoveTarget, + [&](auto *target) { aboutToRemoveTarget(target); }); - if (auto target = project->activeTarget(); target) - activeTargetChanged(target); + if (auto target = project->activeTarget(); target) + activeTargetChanged(target); + } } void QmlDesignerProjectManager::aboutToRemoveProject(::ProjectExplorer::Project *) @@ -344,6 +346,9 @@ void QmlDesignerProjectManager::fileListChanged() void QmlDesignerProjectManager::activeTargetChanged(ProjectExplorer::Target *target) { + if (m_projectData) + return; + QObject::disconnect(m_projectData->activeTarget, nullptr, nullptr, nullptr); m_projectData->activeTarget = target; -- cgit v1.2.1