From 7f3ac4614b2756975283e4268fcb73af8fbb3d2d Mon Sep 17 00:00:00 2001 From: hjk <qtc-committer@nokia.com> Date: Fri, 3 Apr 2009 15:46:40 +0200 Subject: [PATCH] debugger: use a new action for "executing a line" --- src/plugins/debugger/debuggeractions.cpp | 4 +++ src/plugins/debugger/debuggeractions.h | 1 + src/plugins/debugger/debuggermanager.cpp | 14 +++++--- src/plugins/debugger/debuggermanager.h | 2 ++ src/plugins/debugger/debuggeroutputwindow.cpp | 36 ++++--------------- src/plugins/debugger/debuggeroutputwindow.h | 4 --- 6 files changed, 23 insertions(+), 38 deletions(-) diff --git a/src/plugins/debugger/debuggeractions.cpp b/src/plugins/debugger/debuggeractions.cpp index 6d90a3f7bed..95f9c3b1104 100644 --- a/src/plugins/debugger/debuggeractions.cpp +++ b/src/plugins/debugger/debuggeractions.cpp @@ -314,6 +314,10 @@ DebuggerSettings *theDebuggerSettings() item->setDefaultValue(20); instance->insertItem(MaximalStackDepth, item); + item = new SavedAction(instance); + item->setText(QObject::tr("Execute line")); + instance->insertItem(ExecuteCommand, item); + return instance; } diff --git a/src/plugins/debugger/debuggeractions.h b/src/plugins/debugger/debuggeractions.h index 95167153e18..31e04199f53 100644 --- a/src/plugins/debugger/debuggeractions.h +++ b/src/plugins/debugger/debuggeractions.h @@ -75,6 +75,7 @@ enum DebuggerActionCode GdbLocation, GdbEnvironment, GdbScriptFile, + ExecuteCommand, // Stack MaximalStackDepth, diff --git a/src/plugins/debugger/debuggermanager.cpp b/src/plugins/debugger/debuggermanager.cpp index 078692f7312..ea973c0c692 100644 --- a/src/plugins/debugger/debuggermanager.cpp +++ b/src/plugins/debugger/debuggermanager.cpp @@ -358,9 +358,6 @@ void DebuggerManager::init() m_watchAction->setText(tr("Add to Watch Window")); // For usuage hints oin focus{In,Out} - //connect(m_outputWindow, SIGNAL(statusMessageRequested(QString,int)), - // this, SLOT(showStatusMessage(QString,int))); - connect(m_continueAction, SIGNAL(triggered()), this, SLOT(continueExec())); @@ -401,8 +398,8 @@ void DebuggerManager::init() connect(m_statusTimer, SIGNAL(timeout()), this, SLOT(clearStatusMessage())); - connect(m_outputWindow, SIGNAL(commandExecutionRequested(QString)), - this, SLOT(executeDebuggerCommand(QString))); + connect(theDebuggerAction(ExecuteCommand), SIGNAL(triggered()), + this, SLOT(executeDebuggerCommand())); m_breakDock = createDockForWidget(m_breakWindow); @@ -971,6 +968,7 @@ void DebuggerManager::assignValueInDebugger() assignValueInDebugger(str.left(i), str.mid(i + 1)); } } + void DebuggerManager::assignValueInDebugger(const QString &expr, const QString &value) { QTC_ASSERT(m_engine, return); @@ -1036,6 +1034,12 @@ void DebuggerManager::nextIExec() m_engine->nextIExec(); } +void DebuggerManager::executeDebuggerCommand() +{ + if (QAction *action = qobject_cast<QAction *>(sender())) + executeDebuggerCommand(action->data().toString()); +} + void DebuggerManager::executeDebuggerCommand(const QString &command) { if (Debugger::Constants::Internal::debug) diff --git a/src/plugins/debugger/debuggermanager.h b/src/plugins/debugger/debuggermanager.h index fb6bc9e36cf..77150b452b2 100644 --- a/src/plugins/debugger/debuggermanager.h +++ b/src/plugins/debugger/debuggermanager.h @@ -238,6 +238,8 @@ public slots: void assignValueInDebugger(); void assignValueInDebugger(const QString &expr, const QString &value); + + void executeDebuggerCommand(); void executeDebuggerCommand(const QString &command); void showStatusMessage(const QString &msg, int timeout = -1); // -1 forever diff --git a/src/plugins/debugger/debuggeroutputwindow.cpp b/src/plugins/debugger/debuggeroutputwindow.cpp index 11b2a1fb0a3..b9d3fc9e3d2 100644 --- a/src/plugins/debugger/debuggeroutputwindow.cpp +++ b/src/plugins/debugger/debuggeroutputwindow.cpp @@ -84,6 +84,8 @@ public: menu->addAction(m_clearContentsAction); //menu->addAction(m_saveContentsAction); addContextActions(menu); + theDebuggerAction(ExecuteCommand)->setData(textCursor().block().text()); + menu->addAction(theDebuggerAction(ExecuteCommand)); menu->addSeparator(); menu->addAction(theDebuggerAction(SettingsDialog)); menu->exec(ev->globalPos()); @@ -101,35 +103,20 @@ class InputPane : public DebuggerPane { Q_OBJECT public: - InputPane(QWidget *parent) : DebuggerPane(parent) - { - m_commandExecutionAction = new QAction(this); - m_commandExecutionAction->setText("Execute line"); - m_commandExecutionAction->setEnabled(true); - //m_commandExecutionAction->setShortcut - // (Qt::ControlModifier + Qt::Key_Return); - - connect(m_commandExecutionAction, SIGNAL(triggered(bool)), - this, SLOT(executeCommand())); - } + InputPane(QWidget *parent) + : DebuggerPane(parent) + {} signals: - void commandExecutionRequested(const QString &); void clearContentsRequested(); void statusMessageRequested(const QString &, int); void commandSelected(int); -private slots: - void executeCommand() - { - emit commandExecutionRequested(textCursor().block().text()); - } - private: void keyPressEvent(QKeyEvent *ev) { if (ev->modifiers() == Qt::ControlModifier && ev->key() == Qt::Key_Return) - emit commandExecutionRequested(textCursor().block().text()); + theDebuggerAction(ExecuteCommand)->trigger(textCursor().block().text()); else if (ev->modifiers() == Qt::ControlModifier && ev->key() == Qt::Key_R) emit clearContentsRequested(); else @@ -157,7 +144,7 @@ private: void addContextActions(QMenu *menu) { - menu->addAction(m_commandExecutionAction); + menu->addAction(theDebuggerAction(ExecuteCommand)); } void focusInEvent(QFocusEvent *ev) @@ -171,8 +158,6 @@ private: emit statusMessageRequested(QString(), -1); QPlainTextEdit::focusOutEvent(ev); } - - QAction *m_commandExecutionAction; }; @@ -252,19 +237,12 @@ DebuggerOutputWindow::DebuggerOutputWindow(QWidget *parent) aggregate->add(new BaseTextFind(m_inputText)); #endif - connect(m_inputText, SIGNAL(commandExecutionRequested(QString)), - this, SIGNAL(commandExecutionRequested(QString))); connect(m_inputText, SIGNAL(statusMessageRequested(QString,int)), this, SIGNAL(statusMessageRequested(QString,int))); connect(m_inputText, SIGNAL(commandSelected(int)), m_combinedText, SLOT(gotoResult(int))); }; -void DebuggerOutputWindow::onReturnPressed() -{ - emit commandExecutionRequested(m_commandEdit->text()); -} - void DebuggerOutputWindow::showOutput(const QString &prefix, const QString &output) { if (output.isEmpty()) diff --git a/src/plugins/debugger/debuggeroutputwindow.h b/src/plugins/debugger/debuggeroutputwindow.h index 50df8f10177..904e0456199 100644 --- a/src/plugins/debugger/debuggeroutputwindow.h +++ b/src/plugins/debugger/debuggeroutputwindow.h @@ -65,10 +65,6 @@ public slots: signals: void showPage(); void statusMessageRequested(const QString &msg, int); - void commandExecutionRequested(const QString &cmd); - -private slots: - void onReturnPressed(); private: QPlainTextEdit *m_combinedText; // combined input/output -- GitLab