diff options
author | Tobias Hunger <tobias.hunger@digia.com> | 2013-10-18 17:46:04 +0200 |
---|---|---|
committer | Tobias Hunger <tobias.hunger@digia.com> | 2013-10-22 13:28:14 +0200 |
commit | ceba333683e64db4b35781e456c73eaf2d677ec7 (patch) | |
tree | cb1470fba5837769ea41c2c9e70802b981127f39 | |
parent | 9dd656914abf49eb1f7bede08191019f36c6e597 (diff) | |
download | qt-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.cpp | 13 |
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); |