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;
|
QPixmap targetPixmap;
|
||||||
const qreal appDevicePixelRatio = qApp->devicePixelRatio();
|
const qreal appDevicePixelRatio = qApp->devicePixelRatio();
|
||||||
targetPixmap = QPixmap(Core::Constants::MODEBAR_ICON_SIZE * appDevicePixelRatio,
|
const int deviceSpaceIconSize = static_cast<int>(Core::Constants::MODEBAR_ICON_SIZE * appDevicePixelRatio);
|
||||||
Core::Constants::MODEBAR_ICON_SIZE * appDevicePixelRatio);
|
targetPixmap = QPixmap(deviceSpaceIconSize, deviceSpaceIconSize);
|
||||||
targetPixmap.setDevicePixelRatio(appDevicePixelRatio);
|
targetPixmap.setDevicePixelRatio(appDevicePixelRatio);
|
||||||
targetPixmap.fill(Qt::transparent);
|
targetPixmap.fill(Qt::transparent);
|
||||||
QPainter painter(&targetPixmap); // painter in user space
|
QPainter painter(&targetPixmap); // painter in user space
|
||||||
@@ -696,10 +696,10 @@ MiniProjectTargetSelector::MiniProjectTargetSelector(QAction *targetSelectorActi
|
|||||||
m_listWidgets[i] = new GenericListWidget(this);
|
m_listWidgets[i] = new GenericListWidget(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Validate state: At this point the session is still empty!
|
||||||
Project *startup = SessionManager::startupProject();
|
Project *startup = SessionManager::startupProject();
|
||||||
changeStartupProject(startup);
|
QTC_CHECK(!startup);
|
||||||
if (startup)
|
QTC_CHECK(SessionManager::projects().isEmpty());
|
||||||
activeTargetChanged(startup->activeTarget());
|
|
||||||
|
|
||||||
connect(m_summaryLabel, &QLabel::linkActivated,
|
connect(m_summaryLabel, &QLabel::linkActivated,
|
||||||
this, &MiniProjectTargetSelector::switchToProjectsMode);
|
this, &MiniProjectTargetSelector::switchToProjectsMode);
|
||||||
@@ -1017,18 +1017,18 @@ void MiniProjectTargetSelector::handleNewProjectConfiguration(ProjectConfigurati
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (auto bc = qobject_cast<BuildConfiguration *>(pc)) {
|
if (auto bc = qobject_cast<BuildConfiguration *>(pc)) {
|
||||||
addedBuildConfiguration(bc);
|
if (addedBuildConfiguration(bc))
|
||||||
updateBuildListVisible();
|
updateBuildListVisible();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (auto dc = qobject_cast<DeployConfiguration *>(pc)) {
|
if (auto dc = qobject_cast<DeployConfiguration *>(pc)) {
|
||||||
addedDeployConfiguration(dc);
|
if (addedDeployConfiguration(dc))
|
||||||
updateDeployListVisible();
|
updateDeployListVisible();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (auto rc = qobject_cast<RunConfiguration *>(pc)) {
|
if (auto rc = qobject_cast<RunConfiguration *>(pc)) {
|
||||||
addedRunConfiguration(rc);
|
if (addedRunConfiguration(rc))
|
||||||
updateRunListVisible();
|
updateRunListVisible();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1045,26 +1045,28 @@ void MiniProjectTargetSelector::handleRemovalOfProjectConfiguration(ProjectConfi
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (auto bc = qobject_cast<BuildConfiguration *>(pc)) {
|
if (auto bc = qobject_cast<BuildConfiguration *>(pc)) {
|
||||||
removedBuildConfiguration(bc);
|
if (removedBuildConfiguration(bc))
|
||||||
updateBuildListVisible();
|
updateBuildListVisible();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (auto dc = qobject_cast<DeployConfiguration *>(pc)) {
|
if (auto dc = qobject_cast<DeployConfiguration *>(pc)) {
|
||||||
removedDeployConfiguration(dc);
|
if (removedDeployConfiguration(dc))
|
||||||
updateDeployListVisible();
|
updateDeployListVisible();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (auto rc = qobject_cast<RunConfiguration *>(pc)) {
|
if (auto rc = qobject_cast<RunConfiguration *>(pc)) {
|
||||||
removedRunConfiguration(rc);
|
if (removedRunConfiguration(rc))
|
||||||
updateRunListVisible();
|
updateRunListVisible();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MiniProjectTargetSelector::addedTarget(Target *target)
|
void MiniProjectTargetSelector::addedTarget(Target *target)
|
||||||
{
|
{
|
||||||
if (target->project() == m_project)
|
if (target->project() != m_project)
|
||||||
m_listWidgets[TARGET]->addProjectConfiguration(target);
|
return;
|
||||||
|
|
||||||
|
m_listWidgets[TARGET]->addProjectConfiguration(target);
|
||||||
|
|
||||||
foreach (BuildConfiguration *bc, target->buildConfigurations())
|
foreach (BuildConfiguration *bc, target->buildConfigurations())
|
||||||
addedBuildConfiguration(bc);
|
addedBuildConfiguration(bc);
|
||||||
@@ -1076,8 +1078,10 @@ void MiniProjectTargetSelector::addedTarget(Target *target)
|
|||||||
|
|
||||||
void MiniProjectTargetSelector::removedTarget(Target *target)
|
void MiniProjectTargetSelector::removedTarget(Target *target)
|
||||||
{
|
{
|
||||||
if (target->project() == m_project)
|
if (target->project() != m_project)
|
||||||
m_listWidgets[TARGET]->removeProjectConfiguration(target);
|
return;
|
||||||
|
|
||||||
|
m_listWidgets[TARGET]->removeProjectConfiguration(target);
|
||||||
|
|
||||||
foreach (BuildConfiguration *bc, target->buildConfigurations())
|
foreach (BuildConfiguration *bc, target->buildConfigurations())
|
||||||
removedBuildConfiguration(bc);
|
removedBuildConfiguration(bc);
|
||||||
@@ -1087,39 +1091,57 @@ void MiniProjectTargetSelector::removedTarget(Target *target)
|
|||||||
removedRunConfiguration(rc);
|
removedRunConfiguration(rc);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MiniProjectTargetSelector::addedBuildConfiguration(BuildConfiguration *bc)
|
bool MiniProjectTargetSelector::addedBuildConfiguration(BuildConfiguration *bc)
|
||||||
{
|
{
|
||||||
if (bc->target() == m_target)
|
if (bc->target() != m_project->activeTarget())
|
||||||
m_listWidgets[BUILD]->addProjectConfiguration(bc);
|
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())
|
||||||
m_listWidgets[BUILD]->removeProjectConfiguration(bc);
|
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())
|
||||||
m_listWidgets[DEPLOY]->addProjectConfiguration(dc);
|
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())
|
||||||
m_listWidgets[DEPLOY]->removeProjectConfiguration(dc);
|
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())
|
||||||
m_listWidgets[RUN]->addProjectConfiguration(rc);
|
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())
|
||||||
m_listWidgets[RUN]->removeProjectConfiguration(rc);
|
return false;
|
||||||
|
|
||||||
|
m_listWidgets[RUN]->removeProjectConfiguration(rc);
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void MiniProjectTargetSelector::updateProjectListVisible()
|
void MiniProjectTargetSelector::updateProjectListVisible()
|
||||||
|
@@ -163,12 +163,12 @@ private:
|
|||||||
void switchToProjectsMode();
|
void switchToProjectsMode();
|
||||||
void addedTarget(Target *target);
|
void addedTarget(Target *target);
|
||||||
void removedTarget(Target *target);
|
void removedTarget(Target *target);
|
||||||
void addedBuildConfiguration(BuildConfiguration* bc);
|
bool addedBuildConfiguration(BuildConfiguration* bc);
|
||||||
void removedBuildConfiguration(BuildConfiguration* bc);
|
bool removedBuildConfiguration(BuildConfiguration* bc);
|
||||||
void addedDeployConfiguration(DeployConfiguration *dc);
|
bool addedDeployConfiguration(DeployConfiguration *dc);
|
||||||
void removedDeployConfiguration(DeployConfiguration *dc);
|
bool removedDeployConfiguration(DeployConfiguration *dc);
|
||||||
void addedRunConfiguration(RunConfiguration *rc);
|
bool addedRunConfiguration(RunConfiguration *rc);
|
||||||
void removedRunConfiguration(RunConfiguration *rc);
|
bool removedRunConfiguration(RunConfiguration *rc);
|
||||||
|
|
||||||
void updateProjectListVisible();
|
void updateProjectListVisible();
|
||||||
void updateTargetListVisible();
|
void updateTargetListVisible();
|
||||||
|
Reference in New Issue
Block a user