diff --git a/src/plugins/projectexplorer/buildconfiguration.cpp b/src/plugins/projectexplorer/buildconfiguration.cpp index 71be4ba0ab4..0de4ddd69d3 100644 --- a/src/plugins/projectexplorer/buildconfiguration.cpp +++ b/src/plugins/projectexplorer/buildconfiguration.cpp @@ -148,8 +148,6 @@ public: , m_cleanSteps(bc, Constants::BUILDSTEPS_CLEAN) , m_buildDirectoryAspect(bc, bc) , m_tooltipAspect(bc) - , m_deployConfigurationModel(bc->target()) - , m_runConfigurationModel(bc->target()) {} bool m_clearSystemEnvironment = false; @@ -770,8 +768,7 @@ void BuildConfiguration::updateDefaultRunConfigurations() removeRunConfiguration(rc); emit runConfigurationsUpdated(); - if (this == target()->activeBuildConfiguration()) - emit target()->runConfigurationsUpdated(); + runConfigurationModel()->triggerUpdate(); } const QList BuildConfiguration::runConfigurations() const diff --git a/src/plugins/projectexplorer/projectconfigurationmodel.cpp b/src/plugins/projectexplorer/projectconfigurationmodel.cpp index 0e9633e2155..2cb9a1651e5 100644 --- a/src/plugins/projectexplorer/projectconfigurationmodel.cpp +++ b/src/plugins/projectexplorer/projectconfigurationmodel.cpp @@ -3,12 +3,9 @@ #include "projectconfigurationmodel.h" -#include "buildconfiguration.h" -#include "deployconfiguration.h" #include "projectconfiguration.h" #include "projectexplorertr.h" #include "runconfiguration.h" -#include "target.h" #include @@ -27,13 +24,6 @@ static bool isOrderedBefore(const ProjectConfiguration *a, const ProjectConfigur return Utils::caseFriendlyCompare(a->displayName(), b->displayName()) < 0; } -ProjectConfigurationModel::ProjectConfigurationModel(Target *target) -{ - connect(target, &Target::runConfigurationsUpdated, this, [this] { - emit dataChanged(index(0, 0), index(rowCount(), 0)); - }); -} - int ProjectConfigurationModel::rowCount(const QModelIndex &parent) const { return parent.isValid() ? 0 : m_projectConfigurations.size(); @@ -141,4 +131,9 @@ void ProjectConfigurationModel::removeProjectConfiguration(ProjectConfiguration endRemoveRows(); } +void ProjectConfigurationModel::triggerUpdate() +{ + emit dataChanged(index(0, 0), index(rowCount(), 0)); +} + } // ProjectExplorer diff --git a/src/plugins/projectexplorer/projectconfigurationmodel.h b/src/plugins/projectexplorer/projectconfigurationmodel.h index 8027e832685..7b3851367e8 100644 --- a/src/plugins/projectexplorer/projectconfigurationmodel.h +++ b/src/plugins/projectexplorer/projectconfigurationmodel.h @@ -5,10 +5,7 @@ #include -#include - namespace ProjectExplorer { -class Target; class ProjectConfiguration; // Documentation inside. @@ -17,8 +14,6 @@ class ProjectConfigurationModel : public QAbstractListModel Q_OBJECT public: - explicit ProjectConfigurationModel(Target *target); - int rowCount(const QModelIndex &parent = QModelIndex()) const override; int columnCount(const QModelIndex &parent = QModelIndex()) const override; QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; @@ -29,6 +24,8 @@ public: void addProjectConfiguration(ProjectConfiguration *pc); void removeProjectConfiguration(ProjectConfiguration *pc); + void triggerUpdate(); + private: void displayNameChanged(ProjectConfiguration *pc); diff --git a/src/plugins/projectexplorer/target.cpp b/src/plugins/projectexplorer/target.cpp index 051694dfe85..902f23cfd33 100644 --- a/src/plugins/projectexplorer/target.cpp +++ b/src/plugins/projectexplorer/target.cpp @@ -61,9 +61,8 @@ static QString formatDeviceInfo(const ProjectExplorer::IDevice::DeviceInfo &inpu class TargetPrivate { public: - TargetPrivate(Target *t, Kit *k) : - m_kit(k), - m_buildConfigurationModel(t) + TargetPrivate(Kit *k) + : m_kit(k) { } QIcon m_overlayIcon; @@ -83,7 +82,7 @@ public: Target::Target(Project *project, Kit *k, _constructor_tag) : QObject(project), - d(std::make_unique(this, k)) + d(std::make_unique(k)) { QTC_CHECK(d->m_kit); connect(DeviceManager::instance(), &DeviceManager::updated, this, &Target::updateDeviceState); diff --git a/src/plugins/projectexplorer/target.h b/src/plugins/projectexplorer/target.h index 220f40d4847..13f89c0225f 100644 --- a/src/plugins/projectexplorer/target.h +++ b/src/plugins/projectexplorer/target.h @@ -107,7 +107,6 @@ signals: void removedRunConfiguration(ProjectExplorer::RunConfiguration *rc); void addedRunConfiguration(ProjectExplorer::RunConfiguration *rc); void activeRunConfigurationChanged(ProjectExplorer::RunConfiguration *rc); - void runConfigurationsUpdated(); void removedBuildConfiguration(ProjectExplorer::BuildConfiguration *bc); void addedBuildConfiguration(ProjectExplorer::BuildConfiguration *bc);