diff --git a/src/plugins/analyzerbase/analyzerruncontrol.h b/src/plugins/analyzerbase/analyzerruncontrol.h index fd6619a8692..066ea490835 100644 --- a/src/plugins/analyzerbase/analyzerruncontrol.h +++ b/src/plugins/analyzerbase/analyzerruncontrol.h @@ -105,6 +105,8 @@ signals: void starting(const Analyzer::AnalyzerRunControl *); private: + bool supportsReRunning() const { return false; } + ProjectExplorer::RunConfiguration *m_runConfig; AnalyzerStartParameters m_sp; }; diff --git a/src/plugins/projectexplorer/appoutputpane.cpp b/src/plugins/projectexplorer/appoutputpane.cpp index aa2877116a2..8af58af9a38 100644 --- a/src/plugins/projectexplorer/appoutputpane.cpp +++ b/src/plugins/projectexplorer/appoutputpane.cpp @@ -543,7 +543,7 @@ void AppOutputPane::enableButtons() void AppOutputPane::enableButtons(const RunControl *rc /* = 0 */, bool isRunning /* = false */) { if (rc) { - m_reRunButton->setEnabled(!isRunning); + m_reRunButton->setEnabled(!isRunning && rc->supportsReRunning()); m_reRunButton->setIcon(QIcon(rc->icon())); m_stopAction->setEnabled(isRunning); if (isRunning && debuggerPlugin() && rc->applicationProcessHandle().isValid()) { diff --git a/src/plugins/projectexplorer/runconfiguration.h b/src/plugins/projectexplorer/runconfiguration.h index 67bcae61569..4d54fd40771 100644 --- a/src/plugins/projectexplorer/runconfiguration.h +++ b/src/plugins/projectexplorer/runconfiguration.h @@ -287,6 +287,7 @@ public: virtual StopResult stop() = 0; virtual bool isRunning() const = 0; virtual QString displayName() const; + virtual bool supportsReRunning() const { return true; } void setIcon(const QString &icon) { m_icon = icon; } QString icon() const { return m_icon; }