diff --git a/src/plugins/projectexplorer/buildsettingspropertiespage.cpp b/src/plugins/projectexplorer/buildsettingspropertiespage.cpp index 16e518b7dca..a6fa2d5d1c9 100644 --- a/src/plugins/projectexplorer/buildsettingspropertiespage.cpp +++ b/src/plugins/projectexplorer/buildsettingspropertiespage.cpp @@ -163,6 +163,11 @@ void BuildSettingsWidget::setupUi() m_removeButton->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); hbox->addWidget(m_removeButton); + m_renameButton = new QPushButton(this); + m_renameButton->setText(tr("Rename")); + m_renameButton->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); + hbox->addWidget(m_renameButton); + hbox->addSpacerItem(new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Fixed)); vbox->addLayout(hbox); } @@ -180,6 +185,9 @@ void BuildSettingsWidget::setupUi() connect(m_removeButton, SIGNAL(clicked()), this, SLOT(deleteConfiguration())); + connect(m_renameButton, SIGNAL(clicked()), + this, SLOT(renameConfiguration())); + connect(m_target, SIGNAL(activeBuildConfigurationChanged(ProjectExplorer::BuildConfiguration*)), this, SLOT(updateActiveConfiguration())); @@ -311,6 +319,28 @@ void BuildSettingsWidget::deleteConfiguration() deleteConfiguration(m_buildConfiguration); } +void BuildSettingsWidget::renameConfiguration() +{ + bool ok; + QString name = QInputDialog::getText(this, tr("Rename..."), + tr("New name for build configuration %1:"). + arg(m_buildConfiguration->displayName()), + QLineEdit::Normal, + m_buildConfiguration->displayName(), &ok); + if (!ok || !this || name.isEmpty()) + return; + + QStringList bcNames; + foreach (BuildConfiguration *bc, m_target->buildConfigurations()) { + if (bc == m_buildConfiguration) + continue; + bcNames.append(bc->displayName()); + } + name = Project::makeUnique(name, bcNames); + m_buildConfiguration->setDisplayName(name); + +} + void BuildSettingsWidget::cloneConfiguration(BuildConfiguration *sourceConfiguration) { if (!sourceConfiguration || diff --git a/src/plugins/projectexplorer/buildsettingspropertiespage.h b/src/plugins/projectexplorer/buildsettingspropertiespage.h index bb661615d7e..16af2ba6069 100644 --- a/src/plugins/projectexplorer/buildsettingspropertiespage.h +++ b/src/plugins/projectexplorer/buildsettingspropertiespage.h @@ -99,6 +99,7 @@ private slots: void createConfiguration(); void cloneConfiguration(); void deleteConfiguration(); + void renameConfiguration(); void updateAddButtonMenu(); void updateActiveConfiguration(); @@ -112,6 +113,7 @@ private: QPushButton *m_addButton; QPushButton *m_removeButton; + QPushButton *m_renameButton; QPushButton *m_makeActiveButton; QComboBox *m_buildConfigurationComboBox; QMenu *m_addButtonMenu; diff --git a/src/plugins/projectexplorer/runsettingspropertiespage.cpp b/src/plugins/projectexplorer/runsettingspropertiespage.cpp index 3745ca910f3..c8c765ec168 100644 --- a/src/plugins/projectexplorer/runsettingspropertiespage.cpp +++ b/src/plugins/projectexplorer/runsettingspropertiespage.cpp @@ -44,6 +44,7 @@ #include #include +#include #include namespace ProjectExplorer { @@ -138,9 +139,9 @@ RunSettingsWidget::RunSettingsWidget(Target *target) m_ui = new Ui::RunSettingsPropertiesPage; m_ui->setupUi(this); - m_ui->deployWidget->setContentsMargins(0, 0, 0, 25); // deploy part + m_ui->deployWidget->setContentsMargins(0, 10, 0, 25); m_deployLayout = new QVBoxLayout(m_ui->deployWidget); m_deployLayout->setMargin(0); m_deployLayout->setSpacing(5); @@ -151,9 +152,12 @@ RunSettingsWidget::RunSettingsWidget(Target *target) updateDeployConfiguration(m_target->activeDeployConfiguration()); + // Some projects may not support deployment, so we need this: m_ui->addDeployToolButton->setEnabled(m_target->activeDeployConfiguration()); m_ui->deployConfigurationCombo->setEnabled(m_target->activeDeployConfiguration()); + m_ui->removeDeployToolButton->setEnabled(m_target->deployConfigurations().count() > 1); + m_ui->renameDeployButton->setEnabled(m_target->activeDeployConfiguration()); connect(m_addDeployMenu, SIGNAL(aboutToShow()), this, SLOT(aboutToShowDeployMenu())); @@ -161,11 +165,14 @@ RunSettingsWidget::RunSettingsWidget(Target *target) this, SLOT(currentDeployConfigurationChanged(int))); connect(m_ui->removeDeployToolButton, SIGNAL(clicked(bool)), this, SLOT(removeDeployConfiguration())); + connect(m_ui->renameDeployButton, SIGNAL(clicked()), + this, SLOT(renameDeployConfiguration())); connect(m_target, SIGNAL(activeDeployConfigurationChanged(ProjectExplorer::DeployConfiguration*)), this, SLOT(activeDeployConfigurationChanged())); // run part + m_ui->runWidget->setContentsMargins(0, 10, 0, 25); m_runLayout = new QVBoxLayout(m_ui->runWidget); m_runLayout->setMargin(0); m_runLayout->setSpacing(5); @@ -177,6 +184,7 @@ RunSettingsWidget::RunSettingsWidget(Target *target) m_runConfigurationsModel->indexFor(m_target->activeRunConfiguration()).row()); m_ui->removeRunToolButton->setEnabled(m_target->runConfigurations().size() > 1); + m_ui->renameRunButton->setEnabled(m_target->activeRunConfiguration()); m_runConfigurationWidget = m_target->activeRunConfiguration()->createConfigurationWidget(); m_runLayout->addWidget(m_runConfigurationWidget); @@ -187,6 +195,8 @@ RunSettingsWidget::RunSettingsWidget(Target *target) this, SLOT(currentRunConfigurationChanged(int))); connect(m_ui->removeRunToolButton, SIGNAL(clicked(bool)), this, SLOT(removeRunConfiguration())); + connect(m_ui->renameRunButton, SIGNAL(clicked()), + this, SLOT(renameRunConfiguration())); connect(m_target, SIGNAL(activeRunConfigurationChanged(ProjectExplorer::RunConfiguration*)), this, SLOT(activeRunConfigurationChanged())); @@ -246,6 +256,7 @@ void RunSettingsWidget::removeRunConfiguration() RunConfiguration *rc = m_target->activeRunConfiguration(); m_target->removeRunConfiguration(rc); m_ui->removeRunToolButton->setEnabled(m_target->runConfigurations().size() > 1); + m_ui->renameRunButton->setEnabled(m_target->activeRunConfiguration()); } void RunSettingsWidget::activeRunConfigurationChanged() @@ -262,6 +273,27 @@ void RunSettingsWidget::activeRunConfigurationChanged() m_runLayout->addWidget(m_runConfigurationWidget); } +void RunSettingsWidget::renameRunConfiguration() +{ + bool ok; + QString name = QInputDialog::getText(this, tr("Rename..."), + tr("New name for run configuration %1:"). + arg(m_target->activeRunConfiguration()->displayName()), + QLineEdit::Normal, + m_target->activeRunConfiguration()->displayName(), &ok); + if (!ok || !this || name.isEmpty()) + return; + + QStringList rcNames; + foreach (RunConfiguration *rc, m_target->runConfigurations()) { + if (rc == m_target->activeRunConfiguration()) + continue; + rcNames.append(rc->displayName()); + } + name = Project::makeUnique(name, rcNames); + m_target->activeRunConfiguration()->setDisplayName(name); +} + void RunSettingsWidget::currentRunConfigurationChanged(int index) { if (m_ignoreChange) @@ -331,6 +363,27 @@ void RunSettingsWidget::activeDeployConfigurationChanged() updateDeployConfiguration(m_target->activeDeployConfiguration()); } +void RunSettingsWidget::renameDeployConfiguration() +{ + bool ok; + QString name = QInputDialog::getText(this, tr("Rename..."), + tr("New name for deploy configuration %1:"). + arg(m_target->activeDeployConfiguration()->displayName()), + QLineEdit::Normal, + m_target->activeDeployConfiguration()->displayName(), &ok); + if (!ok || !this || name.isEmpty()) + return; + + QStringList dcNames; + foreach (DeployConfiguration *dc, m_target->deployConfigurations()) { + if (dc == m_target->activeDeployConfiguration()) + continue; + dcNames.append(dc->displayName()); + } + name = Project::makeUnique(name, dcNames); + m_target->activeDeployConfiguration()->setDisplayName(name); +} + void RunSettingsWidget::updateDeployConfiguration(DeployConfiguration *dc) { delete m_deployConfigurationWidget; diff --git a/src/plugins/projectexplorer/runsettingspropertiespage.h b/src/plugins/projectexplorer/runsettingspropertiespage.h index 9883b1add6e..f90548c1eaa 100644 --- a/src/plugins/projectexplorer/runsettingspropertiespage.h +++ b/src/plugins/projectexplorer/runsettingspropertiespage.h @@ -95,11 +95,13 @@ private slots: void addRunConfiguration(); void removeRunConfiguration(); void activeRunConfigurationChanged(); + void renameRunConfiguration(); void currentDeployConfigurationChanged(int index); void aboutToShowDeployMenu(); void addDeployConfiguration(); void removeDeployConfiguration(); void activeDeployConfigurationChanged(); + void renameDeployConfiguration(); private: void updateDeployConfiguration(DeployConfiguration *); diff --git a/src/plugins/projectexplorer/runsettingspropertiespage.ui b/src/plugins/projectexplorer/runsettingspropertiespage.ui index 8b2d408e20c..ffaea67ba75 100644 --- a/src/plugins/projectexplorer/runsettingspropertiespage.ui +++ b/src/plugins/projectexplorer/runsettingspropertiespage.ui @@ -6,15 +6,12 @@ 0 0 - 474 + 485 191 - - 0 - - + 6 @@ -41,7 +38,14 @@ - + + + + Rename + + + + @@ -91,6 +95,13 @@ + + + Rename + + + + Qt::Horizontal @@ -103,7 +114,7 @@ - +