Add button to rename Build-/Deploy-/RunConfigurations

* Add a rename button for Build-, Deploy- and RunConfigurations.

Reviewed-by: dt
This commit is contained in:
Tobias Hunger
2010-08-18 15:37:26 +02:00
parent 54f9654bd3
commit efe4d80772
5 changed files with 106 additions and 8 deletions

View File

@@ -163,6 +163,11 @@ void BuildSettingsWidget::setupUi()
m_removeButton->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); m_removeButton->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
hbox->addWidget(m_removeButton); 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)); hbox->addSpacerItem(new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Fixed));
vbox->addLayout(hbox); vbox->addLayout(hbox);
} }
@@ -180,6 +185,9 @@ void BuildSettingsWidget::setupUi()
connect(m_removeButton, SIGNAL(clicked()), connect(m_removeButton, SIGNAL(clicked()),
this, SLOT(deleteConfiguration())); this, SLOT(deleteConfiguration()));
connect(m_renameButton, SIGNAL(clicked()),
this, SLOT(renameConfiguration()));
connect(m_target, SIGNAL(activeBuildConfigurationChanged(ProjectExplorer::BuildConfiguration*)), connect(m_target, SIGNAL(activeBuildConfigurationChanged(ProjectExplorer::BuildConfiguration*)),
this, SLOT(updateActiveConfiguration())); this, SLOT(updateActiveConfiguration()));
@@ -311,6 +319,28 @@ void BuildSettingsWidget::deleteConfiguration()
deleteConfiguration(m_buildConfiguration); deleteConfiguration(m_buildConfiguration);
} }
void BuildSettingsWidget::renameConfiguration()
{
bool ok;
QString name = QInputDialog::getText(this, tr("Rename..."),
tr("New name for build configuration <b>%1</b>:").
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) void BuildSettingsWidget::cloneConfiguration(BuildConfiguration *sourceConfiguration)
{ {
if (!sourceConfiguration || if (!sourceConfiguration ||

View File

@@ -99,6 +99,7 @@ private slots:
void createConfiguration(); void createConfiguration();
void cloneConfiguration(); void cloneConfiguration();
void deleteConfiguration(); void deleteConfiguration();
void renameConfiguration();
void updateAddButtonMenu(); void updateAddButtonMenu();
void updateActiveConfiguration(); void updateActiveConfiguration();
@@ -112,6 +113,7 @@ private:
QPushButton *m_addButton; QPushButton *m_addButton;
QPushButton *m_removeButton; QPushButton *m_removeButton;
QPushButton *m_renameButton;
QPushButton *m_makeActiveButton; QPushButton *m_makeActiveButton;
QComboBox *m_buildConfigurationComboBox; QComboBox *m_buildConfigurationComboBox;
QMenu *m_addButtonMenu; QMenu *m_addButtonMenu;

View File

@@ -44,6 +44,7 @@
#include <utils/qtcassert.h> #include <utils/qtcassert.h>
#include <QtCore/QPair> #include <QtCore/QPair>
#include <QtGui/QInputDialog>
#include <QtGui/QMenu> #include <QtGui/QMenu>
namespace ProjectExplorer { namespace ProjectExplorer {
@@ -138,9 +139,9 @@ RunSettingsWidget::RunSettingsWidget(Target *target)
m_ui = new Ui::RunSettingsPropertiesPage; m_ui = new Ui::RunSettingsPropertiesPage;
m_ui->setupUi(this); m_ui->setupUi(this);
m_ui->deployWidget->setContentsMargins(0, 0, 0, 25);
// deploy part // deploy part
m_ui->deployWidget->setContentsMargins(0, 10, 0, 25);
m_deployLayout = new QVBoxLayout(m_ui->deployWidget); m_deployLayout = new QVBoxLayout(m_ui->deployWidget);
m_deployLayout->setMargin(0); m_deployLayout->setMargin(0);
m_deployLayout->setSpacing(5); m_deployLayout->setSpacing(5);
@@ -151,9 +152,12 @@ RunSettingsWidget::RunSettingsWidget(Target *target)
updateDeployConfiguration(m_target->activeDeployConfiguration()); updateDeployConfiguration(m_target->activeDeployConfiguration());
// Some projects may not support deployment, so we need this:
m_ui->addDeployToolButton->setEnabled(m_target->activeDeployConfiguration()); m_ui->addDeployToolButton->setEnabled(m_target->activeDeployConfiguration());
m_ui->deployConfigurationCombo->setEnabled(m_target->activeDeployConfiguration()); m_ui->deployConfigurationCombo->setEnabled(m_target->activeDeployConfiguration());
m_ui->removeDeployToolButton->setEnabled(m_target->deployConfigurations().count() > 1); m_ui->removeDeployToolButton->setEnabled(m_target->deployConfigurations().count() > 1);
m_ui->renameDeployButton->setEnabled(m_target->activeDeployConfiguration());
connect(m_addDeployMenu, SIGNAL(aboutToShow()), connect(m_addDeployMenu, SIGNAL(aboutToShow()),
this, SLOT(aboutToShowDeployMenu())); this, SLOT(aboutToShowDeployMenu()));
@@ -161,11 +165,14 @@ RunSettingsWidget::RunSettingsWidget(Target *target)
this, SLOT(currentDeployConfigurationChanged(int))); this, SLOT(currentDeployConfigurationChanged(int)));
connect(m_ui->removeDeployToolButton, SIGNAL(clicked(bool)), connect(m_ui->removeDeployToolButton, SIGNAL(clicked(bool)),
this, SLOT(removeDeployConfiguration())); this, SLOT(removeDeployConfiguration()));
connect(m_ui->renameDeployButton, SIGNAL(clicked()),
this, SLOT(renameDeployConfiguration()));
connect(m_target, SIGNAL(activeDeployConfigurationChanged(ProjectExplorer::DeployConfiguration*)), connect(m_target, SIGNAL(activeDeployConfigurationChanged(ProjectExplorer::DeployConfiguration*)),
this, SLOT(activeDeployConfigurationChanged())); this, SLOT(activeDeployConfigurationChanged()));
// run part // run part
m_ui->runWidget->setContentsMargins(0, 10, 0, 25);
m_runLayout = new QVBoxLayout(m_ui->runWidget); m_runLayout = new QVBoxLayout(m_ui->runWidget);
m_runLayout->setMargin(0); m_runLayout->setMargin(0);
m_runLayout->setSpacing(5); m_runLayout->setSpacing(5);
@@ -177,6 +184,7 @@ RunSettingsWidget::RunSettingsWidget(Target *target)
m_runConfigurationsModel->indexFor(m_target->activeRunConfiguration()).row()); m_runConfigurationsModel->indexFor(m_target->activeRunConfiguration()).row());
m_ui->removeRunToolButton->setEnabled(m_target->runConfigurations().size() > 1); m_ui->removeRunToolButton->setEnabled(m_target->runConfigurations().size() > 1);
m_ui->renameRunButton->setEnabled(m_target->activeRunConfiguration());
m_runConfigurationWidget = m_target->activeRunConfiguration()->createConfigurationWidget(); m_runConfigurationWidget = m_target->activeRunConfiguration()->createConfigurationWidget();
m_runLayout->addWidget(m_runConfigurationWidget); m_runLayout->addWidget(m_runConfigurationWidget);
@@ -187,6 +195,8 @@ RunSettingsWidget::RunSettingsWidget(Target *target)
this, SLOT(currentRunConfigurationChanged(int))); this, SLOT(currentRunConfigurationChanged(int)));
connect(m_ui->removeRunToolButton, SIGNAL(clicked(bool)), connect(m_ui->removeRunToolButton, SIGNAL(clicked(bool)),
this, SLOT(removeRunConfiguration())); this, SLOT(removeRunConfiguration()));
connect(m_ui->renameRunButton, SIGNAL(clicked()),
this, SLOT(renameRunConfiguration()));
connect(m_target, SIGNAL(activeRunConfigurationChanged(ProjectExplorer::RunConfiguration*)), connect(m_target, SIGNAL(activeRunConfigurationChanged(ProjectExplorer::RunConfiguration*)),
this, SLOT(activeRunConfigurationChanged())); this, SLOT(activeRunConfigurationChanged()));
@@ -246,6 +256,7 @@ void RunSettingsWidget::removeRunConfiguration()
RunConfiguration *rc = m_target->activeRunConfiguration(); RunConfiguration *rc = m_target->activeRunConfiguration();
m_target->removeRunConfiguration(rc); m_target->removeRunConfiguration(rc);
m_ui->removeRunToolButton->setEnabled(m_target->runConfigurations().size() > 1); m_ui->removeRunToolButton->setEnabled(m_target->runConfigurations().size() > 1);
m_ui->renameRunButton->setEnabled(m_target->activeRunConfiguration());
} }
void RunSettingsWidget::activeRunConfigurationChanged() void RunSettingsWidget::activeRunConfigurationChanged()
@@ -262,6 +273,27 @@ void RunSettingsWidget::activeRunConfigurationChanged()
m_runLayout->addWidget(m_runConfigurationWidget); m_runLayout->addWidget(m_runConfigurationWidget);
} }
void RunSettingsWidget::renameRunConfiguration()
{
bool ok;
QString name = QInputDialog::getText(this, tr("Rename..."),
tr("New name for run configuration <b>%1</b>:").
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) void RunSettingsWidget::currentRunConfigurationChanged(int index)
{ {
if (m_ignoreChange) if (m_ignoreChange)
@@ -331,6 +363,27 @@ void RunSettingsWidget::activeDeployConfigurationChanged()
updateDeployConfiguration(m_target->activeDeployConfiguration()); updateDeployConfiguration(m_target->activeDeployConfiguration());
} }
void RunSettingsWidget::renameDeployConfiguration()
{
bool ok;
QString name = QInputDialog::getText(this, tr("Rename..."),
tr("New name for deploy configuration <b>%1</b>:").
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) void RunSettingsWidget::updateDeployConfiguration(DeployConfiguration *dc)
{ {
delete m_deployConfigurationWidget; delete m_deployConfigurationWidget;

View File

@@ -95,11 +95,13 @@ private slots:
void addRunConfiguration(); void addRunConfiguration();
void removeRunConfiguration(); void removeRunConfiguration();
void activeRunConfigurationChanged(); void activeRunConfigurationChanged();
void renameRunConfiguration();
void currentDeployConfigurationChanged(int index); void currentDeployConfigurationChanged(int index);
void aboutToShowDeployMenu(); void aboutToShowDeployMenu();
void addDeployConfiguration(); void addDeployConfiguration();
void removeDeployConfiguration(); void removeDeployConfiguration();
void activeDeployConfigurationChanged(); void activeDeployConfigurationChanged();
void renameDeployConfiguration();
private: private:
void updateDeployConfiguration(DeployConfiguration *); void updateDeployConfiguration(DeployConfiguration *);

View File

@@ -6,15 +6,12 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>474</width> <width>485</width>
<height>191</height> <height>191</height>
</rect> </rect>
</property> </property>
<layout class="QGridLayout" name="gridLayout"> <layout class="QGridLayout" name="gridLayout">
<property name="margin"> <property name="horizontalSpacing">
<number>0</number>
</property>
<property name="spacing">
<number>6</number> <number>6</number>
</property> </property>
<item row="0" column="0"> <item row="0" column="0">
@@ -41,7 +38,14 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="1" column="0" colspan="5"> <item row="0" column="4">
<widget class="QPushButton" name="renameDeployButton">
<property name="text">
<string>Rename</string>
</property>
</widget>
</item>
<item row="1" column="0" colspan="6">
<widget class="QWidget" name="deployWidget" native="true"/> <widget class="QWidget" name="deployWidget" native="true"/>
</item> </item>
<item row="2" column="0"> <item row="2" column="0">
@@ -91,6 +95,13 @@
</widget> </widget>
</item> </item>
<item row="2" column="4"> <item row="2" column="4">
<widget class="QPushButton" name="renameRunButton">
<property name="text">
<string>Rename</string>
</property>
</widget>
</item>
<item row="2" column="5">
<spacer name="runHorizontalSpacer"> <spacer name="runHorizontalSpacer">
<property name="orientation"> <property name="orientation">
<enum>Qt::Horizontal</enum> <enum>Qt::Horizontal</enum>
@@ -103,7 +114,7 @@
</property> </property>
</spacer> </spacer>
</item> </item>
<item row="3" column="0" colspan="5"> <item row="3" column="0" colspan="6">
<widget class="QWidget" name="runWidget" native="true"/> <widget class="QWidget" name="runWidget" native="true"/>
</item> </item>
</layout> </layout>