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();
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;

View File

@@ -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()