debugger: switch off reverse debugging tool button if not useful

This commit is contained in:
hjk
2010-06-01 13:12:03 +02:00
parent 210652912b
commit ea6ff5913a
2 changed files with 8 additions and 4 deletions

View File

@@ -1113,8 +1113,11 @@ void DebuggerManager::startNewDebugger(const DebuggerStartParametersPtr &sp)
const unsigned engineCapabilities = d->m_engine->debuggerCapabilities(); const unsigned engineCapabilities = d->m_engine->debuggerCapabilities();
theDebuggerAction(OperateByInstruction) theDebuggerAction(OperateByInstruction)
->setEnabled(engineCapabilities & DisassemblerCapability); ->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() void DebuggerManager::startFailed()
@@ -1136,6 +1139,7 @@ void DebuggerManager::cleanupViews()
d->m_sourceFilesWindow->removeAll(); d->m_sourceFilesWindow->removeAll();
d->m_disassemblerViewAgent.cleanup(); d->m_disassemblerViewAgent.cleanup();
d->m_actions.reverseDirectionAction->setChecked(false); d->m_actions.reverseDirectionAction->setChecked(false);
d->m_actions.reverseDirectionAction->setEnabled(false);
// FIXME: Move to plugin? // FIXME: Move to plugin?
using namespace Core; using namespace Core;

View File

@@ -1506,8 +1506,8 @@ void DebuggerPlugin::enableReverseDebuggingTriggered(const QVariant &value)
{ {
QTC_ASSERT(m_reverseToolButton, return); QTC_ASSERT(m_reverseToolButton, return);
m_reverseToolButton->setVisible(value.toBool()); 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() void DebuggerPlugin::toggleBreakpoint()