From 87a2b60bd668e486ffcb388d74ef51bc9b6bd752 Mon Sep 17 00:00:00 2001 From: Ernie Pasveer Date: Wed, 3 Nov 2021 16:10:25 -0500 Subject: [PATCH] Add RMB in code editor to add variable to Logger. --- src/SeerEditorManagerWidget.cpp | 26 ++-- src/SeerEditorManagerWidget.h | 10 +- src/SeerEditorWidget.h | 117 ++++++++--------- src/SeerEditorWidgetSourceArea.cpp | 155 +++++++++++++++++------ src/SeerGdbWidget.cpp | 9 +- src/SeerMainWindow.cpp | 3 + src/SeerVariableLoggerBrowserWidget.cpp | 12 ++ src/SeerVariableLoggerBrowserWidget.h | 1 + src/SeerVariableTrackerBrowserWidget.cpp | 6 +- src/SeerVariableTrackerBrowserWidget.h | 4 +- 10 files changed, 224 insertions(+), 119 deletions(-) diff --git a/src/SeerEditorManagerWidget.cpp b/src/SeerEditorManagerWidget.cpp index 2d9e1b2..d345bb1 100644 --- a/src/SeerEditorManagerWidget.cpp +++ b/src/SeerEditorManagerWidget.cpp @@ -617,8 +617,9 @@ SeerEditorWidget* SeerEditorManagerWidget::createEditorWidgetTab (const QString& QObject::connect(editorWidget->sourceArea(), &SeerEditorWidgetSourceArea::enableBreakpoints, this, &SeerEditorManagerWidget::handleEnableBreakpoints); QObject::connect(editorWidget->sourceArea(), &SeerEditorWidgetSourceArea::disableBreakpoints, this, &SeerEditorManagerWidget::handleDisableBreakpoints); QObject::connect(editorWidget->sourceArea(), &SeerEditorWidgetSourceArea::runToLine, this, &SeerEditorManagerWidget::handleRunToLine); - QObject::connect(editorWidget->sourceArea(), &SeerEditorWidgetSourceArea::addVariableExpression, this, &SeerEditorManagerWidget::handleAddVariableExpression); - QObject::connect(editorWidget->sourceArea(), &SeerEditorWidgetSourceArea::refreshVariableValues, this, &SeerEditorManagerWidget::handleRefreshVariableValues); + QObject::connect(editorWidget->sourceArea(), &SeerEditorWidgetSourceArea::addVariableLoggerExpression, this, &SeerEditorManagerWidget::handleAddVariableLoggerExpression); + QObject::connect(editorWidget->sourceArea(), &SeerEditorWidgetSourceArea::addVariableTrackerExpression, this, &SeerEditorManagerWidget::handleAddVariableTrackerExpression); + QObject::connect(editorWidget->sourceArea(), &SeerEditorWidgetSourceArea::refreshVariableTrackerValues , this, &SeerEditorManagerWidget::handleRefreshVariableTrackerValues); QObject::connect(editorWidget->sourceArea(), &SeerEditorWidgetSourceArea::evaluateVariableExpression, this, &SeerEditorManagerWidget::handleEvaluateVariableExpression); QObject::connect(editorWidget->sourceArea(), &SeerEditorWidgetSourceArea::addMemoryVisualize, this, &SeerEditorManagerWidget::handleAddMemoryVisualizer); @@ -653,8 +654,9 @@ SeerEditorWidget* SeerEditorManagerWidget::createEditorWidgetTab (const QString& QObject::connect(editorWidget->sourceArea(), &SeerEditorWidgetSourceArea::enableBreakpoints, this, &SeerEditorManagerWidget::handleEnableBreakpoints); QObject::connect(editorWidget->sourceArea(), &SeerEditorWidgetSourceArea::disableBreakpoints, this, &SeerEditorManagerWidget::handleDisableBreakpoints); QObject::connect(editorWidget->sourceArea(), &SeerEditorWidgetSourceArea::runToLine, this, &SeerEditorManagerWidget::handleRunToLine); - QObject::connect(editorWidget->sourceArea(), &SeerEditorWidgetSourceArea::addVariableExpression, this, &SeerEditorManagerWidget::handleAddVariableExpression); - QObject::connect(editorWidget->sourceArea(), &SeerEditorWidgetSourceArea::refreshVariableValues, this, &SeerEditorManagerWidget::handleRefreshVariableValues); + QObject::connect(editorWidget->sourceArea(), &SeerEditorWidgetSourceArea::addVariableLoggerExpression, this, &SeerEditorManagerWidget::handleAddVariableLoggerExpression); + QObject::connect(editorWidget->sourceArea(), &SeerEditorWidgetSourceArea::addVariableTrackerExpression, this, &SeerEditorManagerWidget::handleAddVariableTrackerExpression); + QObject::connect(editorWidget->sourceArea(), &SeerEditorWidgetSourceArea::refreshVariableTrackerValues, this, &SeerEditorManagerWidget::handleRefreshVariableTrackerValues); QObject::connect(editorWidget->sourceArea(), &SeerEditorWidgetSourceArea::evaluateVariableExpression, this, &SeerEditorManagerWidget::handleEvaluateVariableExpression); QObject::connect(editorWidget->sourceArea(), &SeerEditorWidgetSourceArea::addMemoryVisualize, this, &SeerEditorManagerWidget::handleAddMemoryVisualizer); @@ -760,20 +762,28 @@ void SeerEditorManagerWidget::handleRunToLine (QString fullname, int lineno) { emit runToLine (fullname, lineno); } -void SeerEditorManagerWidget::handleAddVariableExpression (QString expression) { +void SeerEditorManagerWidget::handleAddVariableLoggerExpression (QString expression) { //qDebug() << __PRETTY_FUNCTION__ << ":" << expression; // rethrow - emit addVariableExpression (expression); + emit addVariableLoggerExpression (expression); } -void SeerEditorManagerWidget::handleRefreshVariableValues () { +void SeerEditorManagerWidget::handleAddVariableTrackerExpression (QString expression) { + + //qDebug() << __PRETTY_FUNCTION__ << ":" << expression; + + // rethrow + emit addVariableTrackerExpression (expression); +} + +void SeerEditorManagerWidget::handleRefreshVariableTrackerValues () { //qDebug() << __PRETTY_FUNCTION__ << ":"; // rethrow - emit refreshVariableValues (); + emit refreshVariableTrackerValues (); } void SeerEditorManagerWidget::handleEvaluateVariableExpression (int expressionid, QString expression) { diff --git a/src/SeerEditorManagerWidget.h b/src/SeerEditorManagerWidget.h index 152483d..5e73a41 100644 --- a/src/SeerEditorManagerWidget.h +++ b/src/SeerEditorManagerWidget.h @@ -35,8 +35,9 @@ class SeerEditorManagerWidget : public QWidget, protected Ui::SeerEditorManagerW void handleEnableBreakpoints (QString breakpoints); void handleDisableBreakpoints (QString breakpoints); void handleRunToLine (QString fullname, int lineno); - void handleAddVariableExpression (QString expression); - void handleRefreshVariableValues (); + void handleAddVariableLoggerExpression (QString expression); + void handleAddVariableTrackerExpression (QString expression); + void handleRefreshVariableTrackerValues (); void handleEvaluateVariableExpression (int expressionid, QString expression); void handleAddMemoryVisualizer (QString expression); @@ -52,8 +53,9 @@ class SeerEditorManagerWidget : public QWidget, protected Ui::SeerEditorManagerW void enableBreakpoints (QString breakpoints); void disableBreakpoints (QString breakpoints); void runToLine (QString file, int lineno); - void addVariableExpression (QString expression); - void refreshVariableValues (); + void addVariableLoggerExpression (QString expression); + void addVariableTrackerExpression (QString expression); + void refreshVariableTrackerValues (); void evaluateVariableExpression (int expressionid, QString expression); void addMemoryVisualize (QString expression); diff --git a/src/SeerEditorWidget.h b/src/SeerEditorWidget.h index a729a0c..06d4756 100644 --- a/src/SeerEditorWidget.h +++ b/src/SeerEditorWidget.h @@ -19,83 +19,84 @@ class SeerEditorWidgetSourceArea : public QPlainTextEdit { public: SeerEditorWidgetSourceArea (QWidget* parent = 0); - void enableLineNumberArea (bool flag); - bool lineNumberAreaEnabled () const; + void enableLineNumberArea (bool flag); + bool lineNumberAreaEnabled () const; - void enableBreakPointArea (bool flag); - bool breakPointAreaEnabled () const; + void enableBreakPointArea (bool flag); + bool breakPointAreaEnabled () const; - void enableMiniMapArea (bool flag); - bool miniMapAreaEnabled () const; + void enableMiniMapArea (bool flag); + bool miniMapAreaEnabled () const; - void lineNumberAreaPaintEvent (QPaintEvent* event); - int lineNumberAreaWidth (); + void lineNumberAreaPaintEvent (QPaintEvent* event); + int lineNumberAreaWidth (); - void breakPointAreaPaintEvent (QPaintEvent* event); - int breakPointAreaWidth (); + void breakPointAreaPaintEvent (QPaintEvent* event); + int breakPointAreaWidth (); - void miniMapAreaPaintEvent (QPaintEvent* event); - int miniMapAreaWidth (); + void miniMapAreaPaintEvent (QPaintEvent* event); + int miniMapAreaWidth (); - bool isOpen () const; - void open (const QString& fullname, const QString& file); - const QString& fullname () const; - const QString& file () const; - void close (); - void setCurrentLine (int lineno); - void scrollToLine (int lineno); + bool isOpen () const; + void open (const QString& fullname, const QString& file); + const QString& fullname () const; + const QString& file () const; + void close (); + void setCurrentLine (int lineno); + void scrollToLine (int lineno); - void clearCurrentLines (); - void addCurrentLine (int lineno); + void clearCurrentLines (); + void addCurrentLine (int lineno); - void clearBreakpoints (); - void addBreakpoint (int number, int lineno, bool enabled); - bool hasBreakpointNumber (int number) const; - bool hasBreakpointLine (int lineno) const; - const QVector& breakpointNumbers () const; - const QVector& breakpointLines () const; - const QVector& breakpointEnableds () const; - int breakpointLineToNumber (int lineno) const; - bool breakpointLineEnabled (int lineno) const; + void clearBreakpoints (); + void addBreakpoint (int number, int lineno, bool enabled); + bool hasBreakpointNumber (int number) const; + bool hasBreakpointLine (int lineno) const; + const QVector& breakpointNumbers () const; + const QVector& breakpointLines () const; + const QVector& breakpointEnableds () const; + int breakpointLineToNumber (int lineno) const; + bool breakpointLineEnabled (int lineno) const; - void showContextMenu (QMouseEvent* event); - void showContextMenu (QContextMenuEvent* event); - void showContextMenu (const QPoint& pos, const QPoint& globalPos); - void setQuickBreakpoint (QMouseEvent* event); + void showContextMenu (QMouseEvent* event); + void showContextMenu (QContextMenuEvent* event); + void showContextMenu (const QPoint& pos, const QPoint& globalPos); + void setQuickBreakpoint (QMouseEvent* event); - void clearExpression (); + void clearExpression (); signals: - void insertBreakpoint (QString breakpoint); - void deleteBreakpoints (QString breakpoints); - void enableBreakpoints (QString breakpoints); - void disableBreakpoints (QString breakpoints); - void runToLine (QString fullname, int lineno); - void addVariableExpression (QString expression); - void refreshVariableValues (); - void evaluateVariableExpression (int expressionid, QString expression); - void addMemoryVisualize (QString expression); - void showSearchBar (bool flag); + void insertBreakpoint (QString breakpoint); + void deleteBreakpoints (QString breakpoints); + void enableBreakpoints (QString breakpoints); + void disableBreakpoints (QString breakpoints); + void runToLine (QString fullname, int lineno); + void addVariableLoggerExpression (QString expression); + void addVariableTrackerExpression (QString expression); + void refreshVariableTrackerValues (); + void evaluateVariableExpression (int expressionid, QString expression); + void addMemoryVisualize (QString expression); + void showSearchBar (bool flag); public slots: - void handleText (const QString& text); + void handleText (const QString& text); protected: - void resizeEvent (QResizeEvent* event); - void contextMenuEvent (QContextMenuEvent* event); - void keyPressEvent (QKeyEvent* event); - void mouseReleaseEvent (QMouseEvent* event); - bool event (QEvent* event); + void resizeEvent (QResizeEvent* event); + void contextMenuEvent (QContextMenuEvent* event); + void keyPressEvent (QKeyEvent* event); + void mouseReleaseEvent (QMouseEvent* event); + bool event (QEvent* event); private slots: - void highlightCurrentLines (); - void highlightCurrentLine (); - void unhighlightCurrentLine (); + void highlightCurrentLines (); + void highlightCurrentLine (); + void unhighlightCurrentLine (); - void updateMarginAreasWidth (int newBlockCount); - void updateLineNumberArea (const QRect& rect, int dy); - void updateBreakPointArea (const QRect& rect, int dy); - void updateMiniMapArea (const QRect& rect, int dy); + void updateMarginAreasWidth (int newBlockCount); + void updateLineNumberArea (const QRect& rect, int dy); + void updateBreakPointArea (const QRect& rect, int dy); + void updateMiniMapArea (const QRect& rect, int dy); private: QString _fullname; diff --git a/src/SeerEditorWidgetSourceArea.cpp b/src/SeerEditorWidgetSourceArea.cpp index 593fee9..51947b4 100644 --- a/src/SeerEditorWidgetSourceArea.cpp +++ b/src/SeerEditorWidgetSourceArea.cpp @@ -785,10 +785,14 @@ void SeerEditorWidgetSourceArea::showContextMenu (const QPoint& pos, const QPoin QAction* enableAction; QAction* disableAction; QAction* runToLineAction; - QAction* addVariableExpressionAction; - QAction* addVariableAsteriskExpressionAction; - QAction* addVariableAmpersandExpressionAction; - QAction* addVariableAsteriskAmpersandExpressionAction; + QAction* addVariableLoggerExpressionAction; + QAction* addVariableLoggerAsteriskExpressionAction; + QAction* addVariableLoggerAmpersandExpressionAction; + QAction* addVariableLoggerAsteriskAmpersandExpressionAction; + QAction* addVariableTrackerExpressionAction; + QAction* addVariableTrackerAsteriskExpressionAction; + QAction* addVariableTrackerAmpersandExpressionAction; + QAction* addVariableTrackerAsteriskAmpersandExpressionAction; QAction* addMemoryVisualizerAction; QAction* addMemoryAsteriskVisualizerAction; QAction* addMemoryAmpersandVisualizerAction; @@ -824,13 +828,17 @@ void SeerEditorWidgetSourceArea::showContextMenu (const QPoint& pos, const QPoin runToLineAction->setEnabled(true); } - addVariableExpressionAction = new QAction(QString("\"%1\"").arg(textCursor().selectedText())); - addVariableAsteriskExpressionAction = new QAction(QString("\"*%1\"").arg(textCursor().selectedText())); - addVariableAmpersandExpressionAction = new QAction(QString("\"&&%1\"").arg(textCursor().selectedText())); - addVariableAsteriskAmpersandExpressionAction = new QAction(QString("\"*&&%1\"").arg(textCursor().selectedText())); - addMemoryVisualizerAction = new QAction(QString("\"%1\"").arg(textCursor().selectedText())); - addMemoryAsteriskVisualizerAction = new QAction(QString("\"*%1\"").arg(textCursor().selectedText())); - addMemoryAmpersandVisualizerAction = new QAction(QString("\"&&%1\"").arg(textCursor().selectedText())); + addVariableLoggerExpressionAction = new QAction(QString("\"%1\"").arg(textCursor().selectedText())); + addVariableLoggerAsteriskExpressionAction = new QAction(QString("\"*%1\"").arg(textCursor().selectedText())); + addVariableLoggerAmpersandExpressionAction = new QAction(QString("\"&&%1\"").arg(textCursor().selectedText())); + addVariableLoggerAsteriskAmpersandExpressionAction = new QAction(QString("\"*&&%1\"").arg(textCursor().selectedText())); + addVariableTrackerExpressionAction = new QAction(QString("\"%1\"").arg(textCursor().selectedText())); + addVariableTrackerAsteriskExpressionAction = new QAction(QString("\"*%1\"").arg(textCursor().selectedText())); + addVariableTrackerAmpersandExpressionAction = new QAction(QString("\"&&%1\"").arg(textCursor().selectedText())); + addVariableTrackerAsteriskAmpersandExpressionAction = new QAction(QString("\"*&&%1\"").arg(textCursor().selectedText())); + addMemoryVisualizerAction = new QAction(QString("\"%1\"").arg(textCursor().selectedText())); + addMemoryAsteriskVisualizerAction = new QAction(QString("\"*%1\"").arg(textCursor().selectedText())); + addMemoryAmpersandVisualizerAction = new QAction(QString("\"&&%1\"").arg(textCursor().selectedText())); QMenu menu("Breakpoints", this); menu.setTitle("Breakpoints"); @@ -840,11 +848,18 @@ void SeerEditorWidgetSourceArea::showContextMenu (const QPoint& pos, const QPoin menu.addAction(disableAction); menu.addAction(runToLineAction); + QMenu loggerMenu("Add variable to Logger"); + loggerMenu.addAction(addVariableLoggerExpressionAction); + loggerMenu.addAction(addVariableLoggerAsteriskExpressionAction); + loggerMenu.addAction(addVariableLoggerAmpersandExpressionAction); + loggerMenu.addAction(addVariableLoggerAsteriskAmpersandExpressionAction); + menu.addMenu(&loggerMenu); + QMenu trackerMenu("Add variable to Tracker"); - trackerMenu.addAction(addVariableExpressionAction); - trackerMenu.addAction(addVariableAsteriskExpressionAction); - trackerMenu.addAction(addVariableAmpersandExpressionAction); - trackerMenu.addAction(addVariableAsteriskAmpersandExpressionAction); + trackerMenu.addAction(addVariableTrackerExpressionAction); + trackerMenu.addAction(addVariableTrackerAsteriskExpressionAction); + trackerMenu.addAction(addVariableTrackerAmpersandExpressionAction); + trackerMenu.addAction(addVariableTrackerAsteriskAmpersandExpressionAction); menu.addMenu(&trackerMenu); QMenu memoryVisualizerMenu("Add variable to a Memory Visualizer"); @@ -855,18 +870,26 @@ void SeerEditorWidgetSourceArea::showContextMenu (const QPoint& pos, const QPoin // Enable/disable items based on something being selected or not. if (textCursor().selectedText() == "") { - addVariableExpressionAction->setEnabled(false); - addVariableAsteriskExpressionAction->setEnabled(false); - addVariableAmpersandExpressionAction->setEnabled(false); - addVariableAsteriskAmpersandExpressionAction->setEnabled(false); + addVariableLoggerExpressionAction->setEnabled(false); + addVariableLoggerAsteriskExpressionAction->setEnabled(false); + addVariableLoggerAmpersandExpressionAction->setEnabled(false); + addVariableLoggerAsteriskAmpersandExpressionAction->setEnabled(false); + addVariableTrackerExpressionAction->setEnabled(false); + addVariableTrackerAsteriskExpressionAction->setEnabled(false); + addVariableTrackerAmpersandExpressionAction->setEnabled(false); + addVariableTrackerAsteriskAmpersandExpressionAction->setEnabled(false); addMemoryVisualizerAction->setEnabled(false); addMemoryAsteriskVisualizerAction->setEnabled(false); addMemoryAmpersandVisualizerAction->setEnabled(false); }else{ - addVariableExpressionAction->setEnabled(true); - addVariableAsteriskExpressionAction->setEnabled(true); - addVariableAmpersandExpressionAction->setEnabled(true); - addVariableAsteriskAmpersandExpressionAction->setEnabled(true); + addVariableLoggerExpressionAction->setEnabled(true); + addVariableLoggerAsteriskExpressionAction->setEnabled(true); + addVariableLoggerAmpersandExpressionAction->setEnabled(true); + addVariableLoggerAsteriskAmpersandExpressionAction->setEnabled(true); + addVariableTrackerExpressionAction->setEnabled(true); + addVariableTrackerAsteriskExpressionAction->setEnabled(true); + addVariableTrackerAmpersandExpressionAction->setEnabled(true); + addVariableTrackerAsteriskAmpersandExpressionAction->setEnabled(true); addMemoryVisualizerAction->setEnabled(true); addMemoryAsteriskVisualizerAction->setEnabled(true); addMemoryAmpersandVisualizerAction->setEnabled(true); @@ -945,57 +968,109 @@ void SeerEditorWidgetSourceArea::showContextMenu (const QPoint& pos, const QPoin return; } - // Handle adding a variable to track. - if (action == addVariableExpressionAction) { + // Handle adding a variable to log. + if (action == addVariableLoggerExpressionAction) { - //qDebug() << __PRETTY_FUNCTION__ << ":" << "addVariableExpression" << lineno; + //qDebug() << __PRETTY_FUNCTION__ << ":" << "addVariableLoggerExpression" << lineno; // Emit the signals. if (textCursor().selectedText() != "") { - emit addVariableExpression(textCursor().selectedText()); - emit refreshVariableValues(); + emit addVariableLoggerExpression(textCursor().selectedText()); + } + + return; + } + + // Handle adding a variable to log. + if (action == addVariableLoggerAsteriskExpressionAction) { + + //qDebug() << __PRETTY_FUNCTION__ << ":" << "addVariableLoggerAsteriskExpression" << lineno; + + // Emit the signals. + if (textCursor().selectedText() != "") { + emit addVariableLoggerExpression(QString("*") + textCursor().selectedText()); + } + + return; + } + + // Handle adding a variable to log. + if (action == addVariableLoggerAmpersandExpressionAction) { + + //qDebug() << __PRETTY_FUNCTION__ << ":" << "addVariableLoggerAmpersandExpression" << lineno; + + // Emit the signals. + if (textCursor().selectedText() != "") { + emit addVariableLoggerExpression(QString("&") + textCursor().selectedText()); + } + + return; + } + + // Handle adding a variable to log. + if (action == addVariableLoggerAsteriskAmpersandExpressionAction) { + + //qDebug() << __PRETTY_FUNCTION__ << ":" << "addVariableLoggerAsteriskAmpersandExpression" << lineno; + + // Emit the signals. + if (textCursor().selectedText() != "") { + emit addVariableLoggerExpression(QString("*&") + textCursor().selectedText()); } return; } // Handle adding a variable to track. - if (action == addVariableAsteriskExpressionAction) { + if (action == addVariableTrackerExpressionAction) { - //qDebug() << __PRETTY_FUNCTION__ << ":" << "addVariableAsteriskExpression" << lineno; + //qDebug() << __PRETTY_FUNCTION__ << ":" << "addVariableTrackerExpression" << lineno; // Emit the signals. if (textCursor().selectedText() != "") { - emit addVariableExpression(QString("*") + textCursor().selectedText()); - emit refreshVariableValues(); + emit addVariableTrackerExpression(textCursor().selectedText()); + emit refreshVariableTrackerValues(); } return; } // Handle adding a variable to track. - if (action == addVariableAmpersandExpressionAction) { + if (action == addVariableTrackerAsteriskExpressionAction) { - //qDebug() << __PRETTY_FUNCTION__ << ":" << "addVariableAmpersandExpression" << lineno; + //qDebug() << __PRETTY_FUNCTION__ << ":" << "addVariableTrackerAsteriskExpression" << lineno; // Emit the signals. if (textCursor().selectedText() != "") { - emit addVariableExpression(QString("&") + textCursor().selectedText()); - emit refreshVariableValues(); + emit addVariableTrackerExpression(QString("*") + textCursor().selectedText()); + emit refreshVariableTrackerValues(); } return; } // Handle adding a variable to track. - if (action == addVariableAsteriskAmpersandExpressionAction) { + if (action == addVariableTrackerAmpersandExpressionAction) { - //qDebug() << __PRETTY_FUNCTION__ << ":" << "addVariableAsteriskAmpersandExpression" << lineno; + //qDebug() << __PRETTY_FUNCTION__ << ":" << "addVariableTrackerAmpersandExpression" << lineno; // Emit the signals. if (textCursor().selectedText() != "") { - emit addVariableExpression(QString("*&") + textCursor().selectedText()); - emit refreshVariableValues(); + emit addVariableTrackerExpression(QString("&") + textCursor().selectedText()); + emit refreshVariableTrackerValues(); + } + + return; + } + + // Handle adding a variable to track. + if (action == addVariableTrackerAsteriskAmpersandExpressionAction) { + + //qDebug() << __PRETTY_FUNCTION__ << ":" << "addVariableTrackerAsteriskAmpersandExpression" << lineno; + + // Emit the signals. + if (textCursor().selectedText() != "") { + emit addVariableTrackerExpression(QString("*&") + textCursor().selectedText()); + emit refreshVariableTrackerValues(); } return; diff --git a/src/SeerGdbWidget.cpp b/src/SeerGdbWidget.cpp index 0031524..79e52a9 100644 --- a/src/SeerGdbWidget.cpp +++ b/src/SeerGdbWidget.cpp @@ -95,8 +95,9 @@ SeerGdbWidget::SeerGdbWidget (QWidget* parent) : QWidget(parent) { QObject::connect(editorManagerWidget, &SeerEditorManagerWidget::enableBreakpoints, this, &SeerGdbWidget::handleGdbBreakpointEnable); QObject::connect(editorManagerWidget, &SeerEditorManagerWidget::disableBreakpoints, this, &SeerGdbWidget::handleGdbBreakpointDisable); QObject::connect(editorManagerWidget, &SeerEditorManagerWidget::runToLine, this, &SeerGdbWidget::handleGdbRunToLine); - QObject::connect(editorManagerWidget, &SeerEditorManagerWidget::addVariableExpression, this, &SeerGdbWidget::handleGdbDataAddExpression); - QObject::connect(editorManagerWidget, &SeerEditorManagerWidget::refreshVariableValues, this, &SeerGdbWidget::handleGdbDataListValues); + QObject::connect(editorManagerWidget, &SeerEditorManagerWidget::addVariableLoggerExpression, variableManagerWidget->variableLoggerBrowserWidget(), &SeerVariableLoggerBrowserWidget::addVariableExpression); + QObject::connect(editorManagerWidget, &SeerEditorManagerWidget::addVariableTrackerExpression, this, &SeerGdbWidget::handleGdbDataAddExpression); + QObject::connect(editorManagerWidget, &SeerEditorManagerWidget::refreshVariableTrackerValues, this, &SeerGdbWidget::handleGdbDataListValues); QObject::connect(editorManagerWidget, &SeerEditorManagerWidget::addMemoryVisualize, this, &SeerGdbWidget::handleGdbMemoryAddExpression); QObject::connect(editorManagerWidget, &SeerEditorManagerWidget::evaluateVariableExpression, this, &SeerGdbWidget::handleGdbDataEvaluateExpression); QObject::connect(editorManagerWidget, &SeerEditorManagerWidget::evaluateVariableExpression, variableManagerWidget->variableLoggerBrowserWidget(), &SeerVariableLoggerBrowserWidget::handleEvaluateVariableExpression); @@ -111,8 +112,8 @@ SeerGdbWidget::SeerGdbWidget (QWidget* parent) : QWidget(parent) { QObject::connect(stackManagerWidget->stackArgumentsBrowserWidget(), &SeerStackArgumentsBrowserWidget::refreshStackArguments, this, &SeerGdbWidget::handleGdbStackListArguments); QObject::connect(stackManagerWidget->stackFramesBrowserWidget(), &SeerStackFramesBrowserWidget::selectedFile, editorManagerWidget, &SeerEditorManagerWidget::handleOpenFile); - QObject::connect(variableManagerWidget->variableTrackerBrowserWidget(), &SeerVariableTrackerBrowserWidget::refreshVariableValues, this, &SeerGdbWidget::handleGdbDataListExpressions); - QObject::connect(variableManagerWidget->variableTrackerBrowserWidget(), &SeerVariableTrackerBrowserWidget::refreshVariableNames, this, &SeerGdbWidget::handleGdbDataListValues); + QObject::connect(variableManagerWidget->variableTrackerBrowserWidget(), &SeerVariableTrackerBrowserWidget::refreshVariableTrackerValues, this, &SeerGdbWidget::handleGdbDataListExpressions); + QObject::connect(variableManagerWidget->variableTrackerBrowserWidget(), &SeerVariableTrackerBrowserWidget::refreshVariableTrackerNames, this, &SeerGdbWidget::handleGdbDataListValues); QObject::connect(variableManagerWidget->variableTrackerBrowserWidget(), &SeerVariableTrackerBrowserWidget::addVariableExpression, this, &SeerGdbWidget::handleGdbDataAddExpression); QObject::connect(variableManagerWidget->variableTrackerBrowserWidget(), &SeerVariableTrackerBrowserWidget::deleteVariableExpressions, this, &SeerGdbWidget::handleGdbDataDeleteExpressions); QObject::connect(variableManagerWidget->variableLoggerBrowserWidget(), &SeerVariableLoggerBrowserWidget::evaluateVariableExpression, this, &SeerGdbWidget::handleGdbDataEvaluateExpression); diff --git a/src/SeerMainWindow.cpp b/src/SeerMainWindow.cpp index 34ea699..a9b5421 100644 --- a/src/SeerMainWindow.cpp +++ b/src/SeerMainWindow.cpp @@ -315,6 +315,9 @@ void SeerMainWindow::handleText (const QString& text) { }else if (text == "^exit") { return; + }else if (text.contains(QRegExp("^([0-9]+)\\^done"))) { + return; + }else if (text.contains(QRegExp("^([0-9]+)\\^done,value="))) { return; diff --git a/src/SeerVariableLoggerBrowserWidget.cpp b/src/SeerVariableLoggerBrowserWidget.cpp index 309b9dc..7bf8c20 100644 --- a/src/SeerVariableLoggerBrowserWidget.cpp +++ b/src/SeerVariableLoggerBrowserWidget.cpp @@ -124,6 +124,18 @@ void SeerVariableLoggerBrowserWidget::handleEvaluateVariableExpression (int expr variablesTreeWidget->resizeColumnToContents(3); } +void SeerVariableLoggerBrowserWidget::addVariableExpression (QString expression) { + + //qDebug() << __PRETTY_FUNCTION__ << ":"; + + if (expression != "") { + + int id = Seer::createID(); + + emit evaluateVariableExpression(id, expression); + } +} + void SeerVariableLoggerBrowserWidget::handleAddLineEdit () { //qDebug() << __PRETTY_FUNCTION__ << ":"; diff --git a/src/SeerVariableLoggerBrowserWidget.h b/src/SeerVariableLoggerBrowserWidget.h index e58c3fb..81434d2 100644 --- a/src/SeerVariableLoggerBrowserWidget.h +++ b/src/SeerVariableLoggerBrowserWidget.h @@ -15,6 +15,7 @@ class SeerVariableLoggerBrowserWidget : public QWidget, protected Ui::SeerVariab public slots: void handleText (const QString& text); void handleEvaluateVariableExpression (int expressionid, QString expression); + void addVariableExpression (QString expression); private slots: void handleAddLineEdit (); diff --git a/src/SeerVariableTrackerBrowserWidget.cpp b/src/SeerVariableTrackerBrowserWidget.cpp index 598dc4d..9bb00b8 100644 --- a/src/SeerVariableTrackerBrowserWidget.cpp +++ b/src/SeerVariableTrackerBrowserWidget.cpp @@ -177,12 +177,12 @@ void SeerVariableTrackerBrowserWidget::handleStoppingPointReached () { } void SeerVariableTrackerBrowserWidget::refresh () { - emit refreshVariableNames(); - emit refreshVariableValues(); + emit refreshVariableTrackerNames(); + emit refreshVariableTrackerValues(); } void SeerVariableTrackerBrowserWidget::refreshValues () { - emit refreshVariableValues(); + emit refreshVariableTrackerValues(); } void SeerVariableTrackerBrowserWidget::handleAddLineEdit () { diff --git a/src/SeerVariableTrackerBrowserWidget.h b/src/SeerVariableTrackerBrowserWidget.h index 20e320f..b350314 100644 --- a/src/SeerVariableTrackerBrowserWidget.h +++ b/src/SeerVariableTrackerBrowserWidget.h @@ -25,8 +25,8 @@ class SeerVariableTrackerBrowserWidget : public QWidget, protected Ui::SeerVaria void handleItemEntered (QTreeWidgetItem* item, int column); signals: - void refreshVariableNames (); - void refreshVariableValues (); + void refreshVariableTrackerNames (); + void refreshVariableTrackerValues (); void addVariableExpression (QString expression); void deleteVariableExpressions (QString expressionids);