diff --git a/src/plugins/debugger/breakhandler.cpp b/src/plugins/debugger/breakhandler.cpp index f1d1a0140a122cd8a2b6ca841cf9a55449b4979e..d6822717628b2b52e3d6a5b56b20519032a244d8 100644 --- a/src/plugins/debugger/breakhandler.cpp +++ b/src/plugins/debugger/breakhandler.cpp @@ -707,11 +707,6 @@ void BreakHandler::toggleBreakpointEnabled(BreakpointData *data) updateMarkers(); } -void BreakHandler::toggleBreakpointEnabled(const QString &fileName, int lineNumber) -{ - toggleBreakpointEnabled(at(findBreakpoint(fileName, lineNumber))); -} - void BreakHandler::appendBreakpoint(BreakpointData *data) { append(data); diff --git a/src/plugins/debugger/breakhandler.h b/src/plugins/debugger/breakhandler.h index 638ec497c9ecf1681a1ced5f600ab2d093eedb0f..35904fbaf67f786a507126652dbbd46e4f14c3f8 100644 --- a/src/plugins/debugger/breakhandler.h +++ b/src/plugins/debugger/breakhandler.h @@ -159,7 +159,6 @@ public: public slots: void appendBreakpoint(BreakpointData *data); void toggleBreakpointEnabled(BreakpointData *data); - void toggleBreakpointEnabled(const QString &fileName, int lineNumber); void breakByFunction(const QString &functionName); void activateBreakpoint(int index); void removeBreakpoint(int index); diff --git a/src/plugins/debugger/debuggermanager.cpp b/src/plugins/debugger/debuggermanager.cpp index dea5e4f482b07ef13c730b1c5e21548a9fc34851..08c7fd062877170226adeb5170afc9d9f9c8ec8d 100644 --- a/src/plugins/debugger/debuggermanager.cpp +++ b/src/plugins/debugger/debuggermanager.cpp @@ -566,8 +566,6 @@ void DebuggerManager::init() this, SLOT(addToWatchWindow())); connect(d->m_actions.watchAction2, SIGNAL(triggered()), this, SLOT(addToWatchWindow())); - connect(d->m_actions.breakAction, SIGNAL(triggered()), - this, SLOT(toggleBreakpoint())); connect(d->m_actions.snapshotAction, SIGNAL(triggered()), this, SLOT(makeSnapshot())); @@ -889,16 +887,6 @@ BreakpointData *DebuggerManager::findBreakpoint(const QString &fileName, int lin return index == -1 ? 0 : d->m_breakHandler->at(index); } -void DebuggerManager::toggleBreakpoint() -{ - ITextEditor *textEditor = d->m_plugin->currentTextEditor(); - QTC_ASSERT(textEditor, return); - QString fileName = textEditor->file()->fileName(); - int lineNumber = textEditor->currentLine(); - if (lineNumber >= 0) - toggleBreakpoint(fileName, lineNumber); -} - // FIXME: move further up the plugin where there's more specific context // information available. static BreakpointData *createBreakpointByFileAndLine @@ -946,23 +934,6 @@ void DebuggerManager::toggleBreakpoint(const QString &fileName, int lineNumber) attemptBreakpointSynchronization(); } -void DebuggerManager::toggleBreakpointEnabled(const QString &fileName, int lineNumber) -{ - STATE_DEBUG(fileName << lineNumber); - QTC_ASSERT(d->m_breakHandler, return); - if (state() != InferiorRunning - && state() != InferiorStopped - && state() != DebuggerNotReady) { - showStatusMessage(tr("Changing breakpoint state requires either a " - "fully running or fully stopped application.")); - return; - } - - d->m_breakHandler->toggleBreakpointEnabled(fileName, lineNumber); - - attemptBreakpointSynchronization(); -} - void DebuggerManager::attemptBreakpointSynchronization() { if (d->m_engine) diff --git a/src/plugins/debugger/debuggermanager.h b/src/plugins/debugger/debuggermanager.h index 955ca1aa4b204c08034ea05ccffbfc110dbb34d9..6f3fbfece8977238eeb4a7b96502ebe05882c79c 100644 --- a/src/plugins/debugger/debuggermanager.h +++ b/src/plugins/debugger/debuggermanager.h @@ -216,7 +216,6 @@ public slots: void executeJumpToLine(); void executeRunToLine(); void executeRunToFunction(); - void toggleBreakpoint(); void breakByFunction(const QString &functionName); void breakByFunctionMain(); void activateFrame(int index); @@ -341,7 +340,6 @@ private: void shutdown(); void toggleBreakpoint(const QString &fileName, int lineNumber); - void toggleBreakpointEnabled(const QString &fileName, int lineNumber); Internal::BreakpointData *findBreakpoint(const QString &fileName, int lineNumber); void setToolTipExpression(const QPoint &mousePos, TextEditor::ITextEditor *editor, int cursorPos); diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp index 2eb7529fd500b011e612c4a3218b0c9fb22b9068..c455d4f89cfefea5b075125352dbf66acc73887b 100644 --- a/src/plugins/debugger/debuggerplugin.cpp +++ b/src/plugins/debugger/debuggerplugin.cpp @@ -890,6 +890,8 @@ bool DebuggerPlugin::initialize(const QStringList &arguments, QString *errorMess Constants::TOGGLE_BREAK, cppeditorcontext); cmd->setDefaultKeySequence(QKeySequence(Constants::TOGGLE_BREAK_KEY)); m_uiSwitcher->addMenuAction(cmd, Constants::LANG_CPP); + connect(actions.breakAction, SIGNAL(triggered()), + this, SLOT(toggleBreakpoint())); //mcppcontext->addAction(cmd); @@ -1181,11 +1183,20 @@ void DebuggerPlugin::breakpointSetRemoveMarginActionTriggered() void DebuggerPlugin::breakpointEnableDisableMarginActionTriggered() { - if (QAction *act = qobject_cast<QAction *>(sender())) { - QString str = act->data().toString(); - int pos = str.lastIndexOf(':'); - m_manager->toggleBreakpointEnabled(str.left(pos), str.mid(pos + 1).toInt()); - } + QAction *act = qobject_cast<QAction *>(sender()); + QTC_ASSERT(act, return); + BreakHandler *handler = m_manager->breakHandler(); + QTC_ASSERT(handler, return); + + QString str = act->data().toString(); + int pos = str.lastIndexOf(':'); + QString fileName = str.left(pos); + int lineNumber = str.mid(pos + 1).toInt(); + + BreakpointData *data = handler->at(handler->findBreakpoint(fileName, lineNumber)); + handler->toggleBreakpointEnabled(data); + + m_manager->attemptBreakpointSynchronization(); } void DebuggerPlugin::requestMark(ITextEditor *editor, int lineNumber) @@ -1487,6 +1498,16 @@ void DebuggerPlugin::enableReverseDebuggingTriggered(const QVariant &value) m_manager->debuggerManagerActions().reverseDirectionAction->setChecked(false); } +void DebuggerPlugin::toggleBreakpoint() +{ + ITextEditor *textEditor = currentTextEditor(); + QTC_ASSERT(textEditor, return); + QString fileName = textEditor->file()->fileName(); + int lineNumber = textEditor->currentLine(); + if (lineNumber >= 0) + m_manager->toggleBreakpoint(fileName, lineNumber); +} + #include "debuggerplugin.moc" Q_EXPORT_PLUGIN(DebuggerPlugin) diff --git a/src/plugins/debugger/debuggerplugin.h b/src/plugins/debugger/debuggerplugin.h index 061a7a60e5a8fe68007df30b630d5399f83a2e1e..56b8457b250c332cb877f1a64bac70e44251c8d1 100644 --- a/src/plugins/debugger/debuggerplugin.h +++ b/src/plugins/debugger/debuggerplugin.h @@ -109,6 +109,7 @@ private slots: void openTextEditor(const QString &titlePattern, const QString &contents); + void toggleBreakpoint(); void breakpointSetRemoveMarginActionTriggered(); void breakpointEnableDisableMarginActionTriggered(); void onModeChanged(Core::IMode *mode);