summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobias Hunger <tobias.hunger@digia.com>2013-10-18 17:46:04 +0200
committerTobias Hunger <tobias.hunger@digia.com>2013-10-22 13:28:14 +0200
commitceba333683e64db4b35781e456c73eaf2d677ec7 (patch)
treecb1470fba5837769ea41c2c9e70802b981127f39
parent9dd656914abf49eb1f7bede08191019f36c6e597 (diff)
downloadqt-creator-ceba333683e64db4b35781e456c73eaf2d677ec7.tar.gz
RunSettings: Do not needlessly recreate RunConfiguartionConfigWidgets
Change-Id: I0b8afe05b12123117959eec6f7465ebd4950e197 Reviewed-by: Daniel Teske <daniel.teske@digia.com>
-rw-r--r--src/plugins/projectexplorer/runsettingspropertiespage.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/plugins/projectexplorer/runsettingspropertiespage.cpp b/src/plugins/projectexplorer/runsettingspropertiespage.cpp
index 0cf020a9c7..edf84b03cb 100644
--- a/src/plugins/projectexplorer/runsettingspropertiespage.cpp
+++ b/src/plugins/projectexplorer/runsettingspropertiespage.cpp
@@ -237,14 +237,15 @@ RunSettingsWidget::RunSettingsWidget(Target *target)
m_addRunMenu = new QMenu(m_addRunToolButton);
m_addRunToolButton->setMenu(m_addRunMenu);
+ RunConfiguration *rc = m_target->activeRunConfiguration();
m_runConfigurationCombo->setModel(m_runConfigurationsModel);
m_runConfigurationCombo->setCurrentIndex(
- m_runConfigurationsModel->indexFor(m_target->activeRunConfiguration()).row());
+ m_runConfigurationsModel->indexFor(rc).row());
m_removeRunToolButton->setEnabled(m_target->runConfigurations().size() > 1);
- m_renameRunButton->setEnabled(m_target->activeRunConfiguration());
+ m_renameRunButton->setEnabled(rc);
- setConfigurationWidget(m_target->activeRunConfiguration());
+ setConfigurationWidget(rc);
connect(m_addRunMenu, SIGNAL(aboutToShow()),
this, SLOT(aboutToShowAddMenu()));
@@ -523,12 +524,16 @@ void RunSettingsWidget::updateDeployConfiguration(DeployConfiguration *dc)
void RunSettingsWidget::setConfigurationWidget(RunConfiguration *rc)
{
+ if (rc == m_runConfiguration)
+ return;
+
delete m_runConfigurationWidget;
m_runConfigurationWidget = 0;
removeSubWidgets();
if (!rc)
return;
m_runConfigurationWidget = rc->createConfigurationWidget();
+ m_runConfiguration = rc;
if (m_runConfigurationWidget)
m_runLayout->addWidget(m_runConfigurationWidget);
@@ -567,7 +572,7 @@ QString RunSettingsWidget::uniqueRCName(const QString &name)
void RunSettingsWidget::addRunControlWidgets()
{
- foreach (IRunConfigurationAspect *aspect, m_target->activeRunConfiguration()->extraAspects()) {
+ foreach (IRunConfigurationAspect *aspect, m_runConfiguration->extraAspects()) {
ProjectExplorer::RunConfigWidget *rcw = aspect->createConfigurationWidget();
if (rcw)
addSubWidget(rcw);