ProjectExplorer: Simplify update logic after active target change

Change-Id: Ia1d9366b1f2ff2b7ae02604bc43b38ca4b914c17
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
hjk
2020-02-28 15:54:54 +01:00
parent df2525a54e
commit 8a8c49eb2e
2 changed files with 1 additions and 41 deletions

View File

@@ -340,6 +340,7 @@ void Project::setActiveTarget(Target *target)
(target && Utils::contains(d->m_targets, target))) {
d->m_activeTarget = target;
emit activeTargetChanged(d->m_activeTarget);
ProjectExplorerPlugin::updateActions();
}
}

View File

@@ -448,8 +448,6 @@ public:
void projectAdded(ProjectExplorer::Project *pro);
void projectRemoved(ProjectExplorer::Project *pro);
void projectDisplayNameChanged(ProjectExplorer::Project *pro);
void startupProjectChanged(); // Calls updateRunAction
void activeTargetChanged();
void doUpdateRunActions();
@@ -727,8 +725,6 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er
dd, &ProjectExplorerPluginPrivate::projectAdded);
connect(sessionManager, &SessionManager::projectRemoved,
dd, &ProjectExplorerPluginPrivate::projectRemoved);
connect(sessionManager, &SessionManager::startupProjectChanged,
dd, &ProjectExplorerPluginPrivate::startupProjectChanged);
connect(sessionManager, &SessionManager::projectDisplayNameChanged,
dd, &ProjectExplorerPluginPrivate::projectDisplayNameChanged);
connect(sessionManager, &SessionManager::dependencyChanged,
@@ -2922,43 +2918,6 @@ void ProjectExplorerPluginPrivate::projectDisplayNameChanged(Project *pro)
updateActions();
}
void ProjectExplorerPluginPrivate::startupProjectChanged()
{
static QPointer<Project> previousStartupProject = nullptr;
Project *project = SessionManager::startupProject();
if (project == previousStartupProject)
return;
if (previousStartupProject) {
disconnect(previousStartupProject.data(), &Project::activeTargetChanged,
this, &ProjectExplorerPluginPrivate::activeTargetChanged);
}
previousStartupProject = project;
if (project) {
connect(project, &Project::activeTargetChanged,
this, &ProjectExplorerPluginPrivate::activeTargetChanged);
}
activeTargetChanged();
updateActions();
}
void ProjectExplorerPluginPrivate::activeTargetChanged()
{
static QPointer<Target> previousTarget = nullptr;
Target *target = nullptr;
Project *startupProject = SessionManager::startupProject();
if (startupProject)
target = startupProject->activeTarget();
if (target == previousTarget)
return;
previousTarget = target;
updateActions();
}
void ProjectExplorerPluginPrivate::updateDeployActions()
{
Project *project = SessionManager::startupProject();