From 3057c6ecf7b40a7d2d6c4ec0cb07ee6cbcdc7ed7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thorbj=C3=B8rn=20Lindeijer?= <thorbjorn.lindeijer@nokia.com> Date: Fri, 16 Apr 2010 16:45:50 +0200 Subject: [PATCH] Offer to force quit an application when closing its output window Reviewed-by: dt Task-number: QTCREATORBUG-1093 --- src/plugins/projectexplorer/outputwindow.cpp | 16 +++++++++++++--- src/plugins/projectexplorer/runconfiguration.h | 2 +- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/plugins/projectexplorer/outputwindow.cpp b/src/plugins/projectexplorer/outputwindow.cpp index 809823cd07b..2a048971791 100644 --- a/src/plugins/projectexplorer/outputwindow.cpp +++ b/src/plugins/projectexplorer/outputwindow.cpp @@ -257,9 +257,19 @@ void OutputPane::closeTab(int index) RunControl *rc = m_outputWindows.key(ow); if (rc->isRunning()) { - QString msg = tr("The application is still running. Close it first."); - QMessageBox::critical(0, tr("Unable to close"), msg); - return; + QMessageBox messageBox(QMessageBox::Warning, + tr("Unable to close"), + tr("The application is still running."), + QMessageBox::Cancel | QMessageBox::Yes, + ow->window()); + messageBox.setInformativeText(tr("Force it to quit?")); + messageBox.setDefaultButton(QMessageBox::Yes); + messageBox.button(QMessageBox::Yes)->setText(tr("Force Quit")); + + if (messageBox.exec() != QMessageBox::Yes) + return; + + rc->stop(); } m_tabWidget->removeTab(index); diff --git a/src/plugins/projectexplorer/runconfiguration.h b/src/plugins/projectexplorer/runconfiguration.h index cb38d2a32e9..ea563e4229d 100644 --- a/src/plugins/projectexplorer/runconfiguration.h +++ b/src/plugins/projectexplorer/runconfiguration.h @@ -162,7 +162,7 @@ public: explicit RunControl(RunConfiguration *runConfiguration); virtual ~RunControl(); virtual void start() = 0; - virtual void stop() = 0; + virtual void stop() = 0; // Warning: assumed to be synchroneous! virtual bool isRunning() const = 0; virtual QString displayName() const; -- GitLab