forked from qt-creator/qt-creator
ProjectExplorer: Allow users to remove all run configurations
Change-Id: Ib70bb1a658edcd6996e98e391b9b938618747ed3 Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
@@ -53,6 +53,7 @@ RunSettingsWidget::RunSettingsWidget(Target *target) :
|
||||
|
||||
m_addRunToolButton = new QPushButton(Tr::tr("Add..."), this);
|
||||
m_removeRunToolButton = new QPushButton(Tr::tr("Remove"), this);
|
||||
m_removeAllRunConfigsButton = new QPushButton(Tr::tr("Remove All"), this);
|
||||
m_renameRunButton = new QPushButton(Tr::tr("Rename..."), this);
|
||||
m_cloneRunButton = new QPushButton(Tr::tr("Clone..."), this);
|
||||
|
||||
@@ -92,9 +93,10 @@ RunSettingsWidget::RunSettingsWidget(Target *target) :
|
||||
m_gridLayout->addWidget(m_runConfigurationCombo, 4, 1, 1, 1);
|
||||
m_gridLayout->addWidget(m_addRunToolButton, 4, 2, 1, 1);
|
||||
m_gridLayout->addWidget(m_removeRunToolButton, 4, 3, 1, 1);
|
||||
m_gridLayout->addWidget(m_renameRunButton, 4, 4, 1, 1);
|
||||
m_gridLayout->addWidget(m_cloneRunButton, 4, 5, 1, 1);
|
||||
m_gridLayout->addItem(spacer1, 4, 6, 1, 1);
|
||||
m_gridLayout->addWidget(m_removeAllRunConfigsButton, 4, 4, 1, 1);
|
||||
m_gridLayout->addWidget(m_renameRunButton, 4, 5, 1, 1);
|
||||
m_gridLayout->addWidget(m_cloneRunButton, 4, 6, 1, 1);
|
||||
m_gridLayout->addItem(spacer1, 4, 7, 1, 1);
|
||||
m_gridLayout->addWidget(runWidget, 5, 0, 1, -1);
|
||||
m_gridLayout->addItem(spacer2, 6, 0, 1, 1);
|
||||
|
||||
@@ -144,7 +146,7 @@ RunSettingsWidget::RunSettingsWidget(Target *target) :
|
||||
m_runConfigurationCombo->setModel(model);
|
||||
m_runConfigurationCombo->setCurrentIndex(model->indexFor(rc));
|
||||
|
||||
updateRemoveToolButton();
|
||||
updateRemoveToolButtons();
|
||||
m_renameRunButton->setEnabled(rc);
|
||||
m_cloneRunButton->setEnabled(rc);
|
||||
|
||||
@@ -156,20 +158,22 @@ RunSettingsWidget::RunSettingsWidget(Target *target) :
|
||||
this, &RunSettingsWidget::currentRunConfigurationChanged);
|
||||
connect(m_removeRunToolButton, &QAbstractButton::clicked,
|
||||
this, &RunSettingsWidget::removeRunConfiguration);
|
||||
connect(m_removeAllRunConfigsButton, &QAbstractButton::clicked,
|
||||
this, &RunSettingsWidget::removeAllRunConfigurations);
|
||||
connect(m_renameRunButton, &QAbstractButton::clicked,
|
||||
this, &RunSettingsWidget::renameRunConfiguration);
|
||||
connect(m_cloneRunButton, &QAbstractButton::clicked,
|
||||
this, &RunSettingsWidget::cloneRunConfiguration);
|
||||
|
||||
connect(m_target, &Target::addedRunConfiguration,
|
||||
this, &RunSettingsWidget::updateRemoveToolButton);
|
||||
this, &RunSettingsWidget::updateRemoveToolButtons);
|
||||
connect(m_target, &Target::removedRunConfiguration,
|
||||
this, &RunSettingsWidget::updateRemoveToolButton);
|
||||
this, &RunSettingsWidget::updateRemoveToolButtons);
|
||||
|
||||
connect(m_target, &Target::addedDeployConfiguration,
|
||||
this, &RunSettingsWidget::updateRemoveToolButton);
|
||||
this, &RunSettingsWidget::updateRemoveToolButtons);
|
||||
connect(m_target, &Target::removedDeployConfiguration,
|
||||
this, &RunSettingsWidget::updateRemoveToolButton);
|
||||
this, &RunSettingsWidget::updateRemoveToolButtons);
|
||||
|
||||
connect(m_target, &Target::activeRunConfigurationChanged,
|
||||
this, &RunSettingsWidget::activeRunConfigurationChanged);
|
||||
@@ -188,7 +192,7 @@ void RunSettingsWidget::showAddRunConfigDialog()
|
||||
QTC_CHECK(newRC->id() == rci.factory->runConfigurationId());
|
||||
m_target->addRunConfiguration(newRC);
|
||||
m_target->setActiveRunConfiguration(newRC);
|
||||
updateRemoveToolButton();
|
||||
updateRemoveToolButtons();
|
||||
}
|
||||
|
||||
void RunSettingsWidget::cloneRunConfiguration()
|
||||
@@ -226,11 +230,27 @@ void RunSettingsWidget::removeRunConfiguration()
|
||||
return;
|
||||
|
||||
m_target->removeRunConfiguration(rc);
|
||||
updateRemoveToolButton();
|
||||
updateRemoveToolButtons();
|
||||
m_renameRunButton->setEnabled(m_target->activeRunConfiguration());
|
||||
m_cloneRunButton->setEnabled(m_target->activeRunConfiguration());
|
||||
}
|
||||
|
||||
void RunSettingsWidget::removeAllRunConfigurations()
|
||||
{
|
||||
QMessageBox msgBox(QMessageBox::Question, Tr::tr("Remove Run Configurations?"),
|
||||
Tr::tr("Do you really want to delete all run configurations?"),
|
||||
QMessageBox::Yes|QMessageBox::No, this);
|
||||
msgBox.setDefaultButton(QMessageBox::No);
|
||||
msgBox.setEscapeButton(QMessageBox::No);
|
||||
if (msgBox.exec() == QMessageBox::No)
|
||||
return;
|
||||
|
||||
m_target->removeAllRunConfigurations();
|
||||
updateRemoveToolButtons();
|
||||
m_renameRunButton->setEnabled(false);
|
||||
m_cloneRunButton->setEnabled(false);
|
||||
}
|
||||
|
||||
void RunSettingsWidget::activeRunConfigurationChanged()
|
||||
{
|
||||
if (m_ignoreChanges.isLocked())
|
||||
@@ -367,10 +387,12 @@ void RunSettingsWidget::renameDeployConfiguration()
|
||||
m_target->activeDeployConfiguration()->setDisplayName(name);
|
||||
}
|
||||
|
||||
void RunSettingsWidget::updateRemoveToolButton()
|
||||
void RunSettingsWidget::updateRemoveToolButtons()
|
||||
{
|
||||
m_removeDeployToolButton->setEnabled(m_target->deployConfigurations().count() > 1);
|
||||
m_removeRunToolButton->setEnabled(!m_target->runConfigurations().isEmpty());
|
||||
const bool hasRunConfigs = !m_target->runConfigurations().isEmpty();
|
||||
m_removeRunToolButton->setEnabled(hasRunConfigs);
|
||||
m_removeAllRunConfigsButton->setEnabled(hasRunConfigs);
|
||||
}
|
||||
|
||||
void RunSettingsWidget::updateDeployConfiguration(DeployConfiguration *dc)
|
||||
|
@@ -41,6 +41,7 @@ private:
|
||||
void showAddRunConfigDialog();
|
||||
void cloneRunConfiguration();
|
||||
void removeRunConfiguration();
|
||||
void removeAllRunConfigurations();
|
||||
void activeRunConfigurationChanged();
|
||||
void renameRunConfiguration();
|
||||
void currentDeployConfigurationChanged(int index);
|
||||
@@ -49,7 +50,7 @@ private:
|
||||
void activeDeployConfigurationChanged();
|
||||
void renameDeployConfiguration();
|
||||
|
||||
void updateRemoveToolButton();
|
||||
void updateRemoveToolButtons();
|
||||
|
||||
QString uniqueDCName(const QString &name);
|
||||
QString uniqueRCName(const QString &name);
|
||||
@@ -82,6 +83,7 @@ private:
|
||||
QPushButton *m_removeDeployToolButton;
|
||||
QPushButton *m_addRunToolButton;
|
||||
QPushButton *m_removeRunToolButton;
|
||||
QPushButton *m_removeAllRunConfigsButton;
|
||||
QPushButton *m_renameRunButton;
|
||||
QPushButton *m_cloneRunButton;
|
||||
QPushButton *m_renameDeployButton;
|
||||
|
@@ -525,6 +525,20 @@ void Target::removeRunConfiguration(RunConfiguration *rc)
|
||||
delete rc;
|
||||
}
|
||||
|
||||
void Target::removeAllRunConfigurations()
|
||||
{
|
||||
QList<RunConfiguration *> runConfigs = d->m_runConfigurations;
|
||||
d->m_runConfigurations.clear();
|
||||
setActiveRunConfiguration(nullptr);
|
||||
while (!runConfigs.isEmpty()) {
|
||||
RunConfiguration * const rc = runConfigs.takeFirst();
|
||||
emit removedRunConfiguration(rc);
|
||||
ProjectExplorerPlugin::targetSelector()->removedRunConfiguration(rc);
|
||||
d->m_runConfigurationModel.removeProjectConfiguration(rc);
|
||||
delete rc;
|
||||
}
|
||||
}
|
||||
|
||||
RunConfiguration *Target::activeRunConfiguration() const
|
||||
{
|
||||
return d->m_activeRunConfiguration;
|
||||
|
@@ -77,6 +77,7 @@ public:
|
||||
const QList<RunConfiguration *> runConfigurations() const;
|
||||
void addRunConfiguration(RunConfiguration *rc);
|
||||
void removeRunConfiguration(RunConfiguration *rc);
|
||||
void removeAllRunConfigurations();
|
||||
|
||||
RunConfiguration *activeRunConfiguration() const;
|
||||
void setActiveRunConfiguration(RunConfiguration *rc);
|
||||
|
Reference in New Issue
Block a user