From ea6ff5913a4286f2a7033cf733c0b6c20b729c7e Mon Sep 17 00:00:00 2001 From: hjk <qtc-committer@nokia.com> Date: Tue, 1 Jun 2010 13:12:03 +0200 Subject: [PATCH] debugger: switch off reverse debugging tool button if not useful --- src/plugins/debugger/debuggermanager.cpp | 8 ++++++-- src/plugins/debugger/debuggerplugin.cpp | 4 ++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/plugins/debugger/debuggermanager.cpp b/src/plugins/debugger/debuggermanager.cpp index c6bf0494bd1..f9878aa2942 100644 --- a/src/plugins/debugger/debuggermanager.cpp +++ b/src/plugins/debugger/debuggermanager.cpp @@ -1113,8 +1113,11 @@ void DebuggerManager::startNewDebugger(const DebuggerStartParametersPtr &sp) const unsigned engineCapabilities = d->m_engine->debuggerCapabilities(); theDebuggerAction(OperateByInstruction) ->setEnabled(engineCapabilities & DisassemblerCapability); - d->m_actions.reverseDirectionAction - ->setEnabled(engineCapabilities & ReverseSteppingCapability); + + const bool canReverse = (engineCapabilities & ReverseSteppingCapability) + && theDebuggerBoolSetting(EnableReverseDebugging); + d->m_actions.reverseDirectionAction->setChecked(false); + d->m_actions.reverseDirectionAction->setEnabled(canReverse); } void DebuggerManager::startFailed() @@ -1136,6 +1139,7 @@ void DebuggerManager::cleanupViews() d->m_sourceFilesWindow->removeAll(); d->m_disassemblerViewAgent.cleanup(); d->m_actions.reverseDirectionAction->setChecked(false); + d->m_actions.reverseDirectionAction->setEnabled(false); // FIXME: Move to plugin? using namespace Core; diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp index 530eca53e4e..914d5f90448 100644 --- a/src/plugins/debugger/debuggerplugin.cpp +++ b/src/plugins/debugger/debuggerplugin.cpp @@ -1506,8 +1506,8 @@ void DebuggerPlugin::enableReverseDebuggingTriggered(const QVariant &value) { QTC_ASSERT(m_reverseToolButton, return); m_reverseToolButton->setVisible(value.toBool()); - if (!value.toBool()) - m_manager->debuggerManagerActions().reverseDirectionAction->setChecked(false); + m_manager->debuggerManagerActions().reverseDirectionAction->setChecked(false); + m_manager->debuggerManagerActions().reverseDirectionAction->setEnabled(value.toBool()); } void DebuggerPlugin::toggleBreakpoint() -- GitLab