forked from qt-creator/qt-creator
MiniProjectTargetSelector: Trigger less list updates
Change-Id: I39634ef201ac4a12d5ea114843c73e4558015c05 Reviewed-by: Tim Jenssen <tim.jenssen@qt.io> Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
@@ -65,8 +65,8 @@ static QIcon createCenteredIcon(const QIcon &icon, const QIcon &overlay)
|
||||
{
|
||||
QPixmap targetPixmap;
|
||||
const qreal appDevicePixelRatio = qApp->devicePixelRatio();
|
||||
targetPixmap = QPixmap(Core::Constants::MODEBAR_ICON_SIZE * appDevicePixelRatio,
|
||||
Core::Constants::MODEBAR_ICON_SIZE * appDevicePixelRatio);
|
||||
const int deviceSpaceIconSize = static_cast<int>(Core::Constants::MODEBAR_ICON_SIZE * appDevicePixelRatio);
|
||||
targetPixmap = QPixmap(deviceSpaceIconSize, deviceSpaceIconSize);
|
||||
targetPixmap.setDevicePixelRatio(appDevicePixelRatio);
|
||||
targetPixmap.fill(Qt::transparent);
|
||||
QPainter painter(&targetPixmap); // painter in user space
|
||||
@@ -696,10 +696,10 @@ MiniProjectTargetSelector::MiniProjectTargetSelector(QAction *targetSelectorActi
|
||||
m_listWidgets[i] = new GenericListWidget(this);
|
||||
}
|
||||
|
||||
// Validate state: At this point the session is still empty!
|
||||
Project *startup = SessionManager::startupProject();
|
||||
changeStartupProject(startup);
|
||||
if (startup)
|
||||
activeTargetChanged(startup->activeTarget());
|
||||
QTC_CHECK(!startup);
|
||||
QTC_CHECK(SessionManager::projects().isEmpty());
|
||||
|
||||
connect(m_summaryLabel, &QLabel::linkActivated,
|
||||
this, &MiniProjectTargetSelector::switchToProjectsMode);
|
||||
@@ -1017,17 +1017,17 @@ void MiniProjectTargetSelector::handleNewProjectConfiguration(ProjectConfigurati
|
||||
return;
|
||||
}
|
||||
if (auto bc = qobject_cast<BuildConfiguration *>(pc)) {
|
||||
addedBuildConfiguration(bc);
|
||||
if (addedBuildConfiguration(bc))
|
||||
updateBuildListVisible();
|
||||
return;
|
||||
}
|
||||
if (auto dc = qobject_cast<DeployConfiguration *>(pc)) {
|
||||
addedDeployConfiguration(dc);
|
||||
if (addedDeployConfiguration(dc))
|
||||
updateDeployListVisible();
|
||||
return;
|
||||
}
|
||||
if (auto rc = qobject_cast<RunConfiguration *>(pc)) {
|
||||
addedRunConfiguration(rc);
|
||||
if (addedRunConfiguration(rc))
|
||||
updateRunListVisible();
|
||||
return;
|
||||
}
|
||||
@@ -1045,17 +1045,17 @@ void MiniProjectTargetSelector::handleRemovalOfProjectConfiguration(ProjectConfi
|
||||
return;
|
||||
}
|
||||
if (auto bc = qobject_cast<BuildConfiguration *>(pc)) {
|
||||
removedBuildConfiguration(bc);
|
||||
if (removedBuildConfiguration(bc))
|
||||
updateBuildListVisible();
|
||||
return;
|
||||
}
|
||||
if (auto dc = qobject_cast<DeployConfiguration *>(pc)) {
|
||||
removedDeployConfiguration(dc);
|
||||
if (removedDeployConfiguration(dc))
|
||||
updateDeployListVisible();
|
||||
return;
|
||||
}
|
||||
if (auto rc = qobject_cast<RunConfiguration *>(pc)) {
|
||||
removedRunConfiguration(rc);
|
||||
if (removedRunConfiguration(rc))
|
||||
updateRunListVisible();
|
||||
return;
|
||||
}
|
||||
@@ -1063,7 +1063,9 @@ void MiniProjectTargetSelector::handleRemovalOfProjectConfiguration(ProjectConfi
|
||||
|
||||
void MiniProjectTargetSelector::addedTarget(Target *target)
|
||||
{
|
||||
if (target->project() == m_project)
|
||||
if (target->project() != m_project)
|
||||
return;
|
||||
|
||||
m_listWidgets[TARGET]->addProjectConfiguration(target);
|
||||
|
||||
foreach (BuildConfiguration *bc, target->buildConfigurations())
|
||||
@@ -1076,7 +1078,9 @@ void MiniProjectTargetSelector::addedTarget(Target *target)
|
||||
|
||||
void MiniProjectTargetSelector::removedTarget(Target *target)
|
||||
{
|
||||
if (target->project() == m_project)
|
||||
if (target->project() != m_project)
|
||||
return;
|
||||
|
||||
m_listWidgets[TARGET]->removeProjectConfiguration(target);
|
||||
|
||||
foreach (BuildConfiguration *bc, target->buildConfigurations())
|
||||
@@ -1087,39 +1091,57 @@ void MiniProjectTargetSelector::removedTarget(Target *target)
|
||||
removedRunConfiguration(rc);
|
||||
}
|
||||
|
||||
void MiniProjectTargetSelector::addedBuildConfiguration(BuildConfiguration *bc)
|
||||
bool MiniProjectTargetSelector::addedBuildConfiguration(BuildConfiguration *bc)
|
||||
{
|
||||
if (bc->target() == m_target)
|
||||
if (bc->target() != m_project->activeTarget())
|
||||
return false;
|
||||
|
||||
m_listWidgets[BUILD]->addProjectConfiguration(bc);
|
||||
return true;
|
||||
}
|
||||
|
||||
void MiniProjectTargetSelector::removedBuildConfiguration(BuildConfiguration *bc)
|
||||
bool MiniProjectTargetSelector::removedBuildConfiguration(BuildConfiguration *bc)
|
||||
{
|
||||
if (bc->target() == m_target)
|
||||
if (bc->target() == m_project->activeTarget())
|
||||
return false;
|
||||
|
||||
m_listWidgets[BUILD]->removeProjectConfiguration(bc);
|
||||
return true;
|
||||
}
|
||||
|
||||
void MiniProjectTargetSelector::addedDeployConfiguration(DeployConfiguration *dc)
|
||||
bool MiniProjectTargetSelector::addedDeployConfiguration(DeployConfiguration *dc)
|
||||
{
|
||||
if (dc->target() == m_target)
|
||||
if (dc->target() != m_project->activeTarget())
|
||||
return false;
|
||||
|
||||
m_listWidgets[DEPLOY]->addProjectConfiguration(dc);
|
||||
return true;
|
||||
}
|
||||
|
||||
void MiniProjectTargetSelector::removedDeployConfiguration(DeployConfiguration *dc)
|
||||
bool MiniProjectTargetSelector::removedDeployConfiguration(DeployConfiguration *dc)
|
||||
{
|
||||
if (dc->target() == m_target)
|
||||
if (dc->target() != m_project->activeTarget())
|
||||
return false;
|
||||
|
||||
m_listWidgets[DEPLOY]->removeProjectConfiguration(dc);
|
||||
return true;
|
||||
}
|
||||
void MiniProjectTargetSelector::addedRunConfiguration(RunConfiguration *rc)
|
||||
bool MiniProjectTargetSelector::addedRunConfiguration(RunConfiguration *rc)
|
||||
{
|
||||
if (rc->target() == m_target)
|
||||
if (rc->target() != m_project->activeTarget())
|
||||
return false;
|
||||
|
||||
m_listWidgets[RUN]->addProjectConfiguration(rc);
|
||||
return true;
|
||||
}
|
||||
|
||||
void MiniProjectTargetSelector::removedRunConfiguration(RunConfiguration *rc)
|
||||
bool MiniProjectTargetSelector::removedRunConfiguration(RunConfiguration *rc)
|
||||
{
|
||||
if (rc->target() == m_target)
|
||||
if (rc->target() != m_project->activeTarget())
|
||||
return false;
|
||||
|
||||
m_listWidgets[RUN]->removeProjectConfiguration(rc);
|
||||
return true;
|
||||
}
|
||||
|
||||
void MiniProjectTargetSelector::updateProjectListVisible()
|
||||
|
@@ -163,12 +163,12 @@ private:
|
||||
void switchToProjectsMode();
|
||||
void addedTarget(Target *target);
|
||||
void removedTarget(Target *target);
|
||||
void addedBuildConfiguration(BuildConfiguration* bc);
|
||||
void removedBuildConfiguration(BuildConfiguration* bc);
|
||||
void addedDeployConfiguration(DeployConfiguration *dc);
|
||||
void removedDeployConfiguration(DeployConfiguration *dc);
|
||||
void addedRunConfiguration(RunConfiguration *rc);
|
||||
void removedRunConfiguration(RunConfiguration *rc);
|
||||
bool addedBuildConfiguration(BuildConfiguration* bc);
|
||||
bool removedBuildConfiguration(BuildConfiguration* bc);
|
||||
bool addedDeployConfiguration(DeployConfiguration *dc);
|
||||
bool removedDeployConfiguration(DeployConfiguration *dc);
|
||||
bool addedRunConfiguration(RunConfiguration *rc);
|
||||
bool removedRunConfiguration(RunConfiguration *rc);
|
||||
|
||||
void updateProjectListVisible();
|
||||
void updateTargetListVisible();
|
||||
|
Reference in New Issue
Block a user