forked from qt-creator/qt-creator
ProjectExplorer: Simplify update logic after active target change
Change-Id: Ia1d9366b1f2ff2b7ae02604bc43b38ca4b914c17 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
@@ -340,6 +340,7 @@ void Project::setActiveTarget(Target *target)
|
|||||||
(target && Utils::contains(d->m_targets, target))) {
|
(target && Utils::contains(d->m_targets, target))) {
|
||||||
d->m_activeTarget = target;
|
d->m_activeTarget = target;
|
||||||
emit activeTargetChanged(d->m_activeTarget);
|
emit activeTargetChanged(d->m_activeTarget);
|
||||||
|
ProjectExplorerPlugin::updateActions();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -448,8 +448,6 @@ public:
|
|||||||
void projectAdded(ProjectExplorer::Project *pro);
|
void projectAdded(ProjectExplorer::Project *pro);
|
||||||
void projectRemoved(ProjectExplorer::Project *pro);
|
void projectRemoved(ProjectExplorer::Project *pro);
|
||||||
void projectDisplayNameChanged(ProjectExplorer::Project *pro);
|
void projectDisplayNameChanged(ProjectExplorer::Project *pro);
|
||||||
void startupProjectChanged(); // Calls updateRunAction
|
|
||||||
void activeTargetChanged();
|
|
||||||
|
|
||||||
void doUpdateRunActions();
|
void doUpdateRunActions();
|
||||||
|
|
||||||
@@ -727,8 +725,6 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er
|
|||||||
dd, &ProjectExplorerPluginPrivate::projectAdded);
|
dd, &ProjectExplorerPluginPrivate::projectAdded);
|
||||||
connect(sessionManager, &SessionManager::projectRemoved,
|
connect(sessionManager, &SessionManager::projectRemoved,
|
||||||
dd, &ProjectExplorerPluginPrivate::projectRemoved);
|
dd, &ProjectExplorerPluginPrivate::projectRemoved);
|
||||||
connect(sessionManager, &SessionManager::startupProjectChanged,
|
|
||||||
dd, &ProjectExplorerPluginPrivate::startupProjectChanged);
|
|
||||||
connect(sessionManager, &SessionManager::projectDisplayNameChanged,
|
connect(sessionManager, &SessionManager::projectDisplayNameChanged,
|
||||||
dd, &ProjectExplorerPluginPrivate::projectDisplayNameChanged);
|
dd, &ProjectExplorerPluginPrivate::projectDisplayNameChanged);
|
||||||
connect(sessionManager, &SessionManager::dependencyChanged,
|
connect(sessionManager, &SessionManager::dependencyChanged,
|
||||||
@@ -2922,43 +2918,6 @@ void ProjectExplorerPluginPrivate::projectDisplayNameChanged(Project *pro)
|
|||||||
updateActions();
|
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()
|
void ProjectExplorerPluginPrivate::updateDeployActions()
|
||||||
{
|
{
|
||||||
Project *project = SessionManager::startupProject();
|
Project *project = SessionManager::startupProject();
|
||||||
|
Reference in New Issue
Block a user