summaryrefslogtreecommitdiff
path: root/src/plugins/projectexplorer/buildsettingspropertiespage.cpp
diff options
context:
space:
mode:
authorDaniel Teske <daniel.teske@nokia.com>2011-10-24 13:10:38 +0000
committerDaniel Teske <daniel.teske@nokia.com>2011-10-31 12:49:06 +0100
commite202e4b8e0c891c362c29905e2f310ff9ee02279 (patch)
treef87159de72e68b55d1ebb227a1e14dde395e1bcd /src/plugins/projectexplorer/buildsettingspropertiespage.cpp
parent2fb8e135297aa061b362d407d5c0a3bcd7f8b71d (diff)
downloadqt-creator-e202e4b8e0c891c362c29905e2f310ff9ee02279.tar.gz
Fix various crashes
Task-Number: QTCREATORBUG-6365 Change-Id: I19a200e3c811eef83d591f6eacca3e48eb0fba8f Reviewed-by: Tobias Hunger <tobias.hunger@nokia.com>
Diffstat (limited to 'src/plugins/projectexplorer/buildsettingspropertiespage.cpp')
-rw-r--r--src/plugins/projectexplorer/buildsettingspropertiespage.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/plugins/projectexplorer/buildsettingspropertiespage.cpp b/src/plugins/projectexplorer/buildsettingspropertiespage.cpp
index 74db6361c5..917033174f 100644
--- a/src/plugins/projectexplorer/buildsettingspropertiespage.cpp
+++ b/src/plugins/projectexplorer/buildsettingspropertiespage.cpp
@@ -42,6 +42,8 @@
#include <coreplugin/coreconstants.h>
#include <extensionsystem/pluginmanager.h>
#include <utils/qtcassert.h>
+#include <projectexplorer/projectexplorer.h>
+#include <projectexplorer/buildmanager.h>
#include <QtCore/QMargins>
#include <QtCore/QTimer>
@@ -370,6 +372,29 @@ void BuildSettingsWidget::deleteConfiguration(BuildConfiguration *deleteConfigur
m_target->buildConfigurations().size() <= 1)
return;
+ ProjectExplorer::BuildManager *bm = ProjectExplorerPlugin::instance()->buildManager();
+ if (bm->isBuilding(deleteConfiguration)) {
+ QMessageBox box;
+ QPushButton *closeAnyway = box.addButton(tr("Cancel Build && Remove Build Configuration"), QMessageBox::AcceptRole);
+ QPushButton *cancelClose = box.addButton(tr("Do Not Remove"), QMessageBox::RejectRole);
+ box.setDefaultButton(cancelClose);
+ box.setWindowTitle(tr("Remove Build Configuration %1?").arg(deleteConfiguration->displayName()));
+ box.setText(tr("The build configuration <b>%1</b> is currently being built.").arg(deleteConfiguration->displayName()));
+ box.setInformativeText(tr("Do you want to cancel the build process and remove the Build Configuration anyway?"));
+ box.exec();
+ if (box.clickedButton() != closeAnyway)
+ return;
+ bm->cancel();
+ } else {
+ QMessageBox msgBox(QMessageBox::Question, tr("Remove Build Configuration?"),
+ tr("Do you really want to delete build configuration <b>%1</b>?").arg(deleteConfiguration->displayName()),
+ QMessageBox::Yes|QMessageBox::No, this);
+ msgBox.setDefaultButton(QMessageBox::No);
+ msgBox.setEscapeButton(QMessageBox::No);
+ if (msgBox.exec() == QMessageBox::No)
+ return;
+ }
+
m_target->removeBuildConfiguration(deleteConfiguration);
updateBuildSettings();