From 8617bf70ac00b26b3adfaad7a62022d2096ee3ea Mon Sep 17 00:00:00 2001 From: Ernie Pasveer Date: Sun, 10 Oct 2021 12:57:30 -0500 Subject: [PATCH] Add ToolTips to the important browsers. --- notes/README.arrays | 29 +++++++++++++++++ src/SeerRegisterValuesBrowserWidget.cpp | 13 ++++++++ src/SeerRegisterValuesBrowserWidget.h | 1 + src/SeerSourceBrowserWidget.cpp | 24 ++++++++++++-- src/SeerSourceBrowserWidget.h | 7 ++-- src/SeerStackArgumentsBrowserWidget.cpp | 22 +++++++++++++ src/SeerStackArgumentsBrowserWidget.h | 3 ++ src/SeerStackFramesBrowserWidget.cpp | 39 ++++++++++++++-------- src/SeerStackFramesBrowserWidget.h | 5 ++- src/SeerStackLocalsBrowserWidget.cpp | 13 ++++++++ src/SeerStackLocalsBrowserWidget.h | 1 + src/SeerThreadFramesBrowserWidget.cpp | 41 ++++++++++++++++-------- src/SeerThreadFramesBrowserWidget.h | 5 ++- src/SeerVariableLoggerBrowserWidget.cpp | 21 +++++++++--- src/SeerVariableLoggerBrowserWidget.h | 1 + src/SeerVariableTrackerBrowserWidget.cpp | 19 +++++++++-- src/SeerVariableTrackerBrowserWidget.h | 1 + 17 files changed, 205 insertions(+), 40 deletions(-) create mode 100644 notes/README.arrays diff --git a/notes/README.arrays b/notes/README.arrays new file mode 100644 index 0000000..7dab43b --- /dev/null +++ b/notes/README.arrays @@ -0,0 +1,29 @@ + +-data-read-memory [-o offset] address word-format word-size nr-rows nr-cols + +word-format + d signed int + u unsigned int + f float + +word-size + 2,4,8,16 + + "^done,addr=\"0x0000000000657c90\", + nr-bytes=\"40\", + total-bytes=\"40\", + next-row=\"0x0000000000657c94\", + prev-row=\"0x0000000000657c8c\", + next-page=\"0x0000000000657cb8\", + prev-page=\"0x0000000000657c68\", + memory=[{addr=\"0x0000000000657c90\",data=[\"0\"]}, + {addr=\"0x0000000000657c94\",data=[\"0\"]}, + {addr=\"0x0000000000657c98\",data=[\"0\"]}, + {addr=\"0x0000000000657c9c\",data=[\"0\"]}, + {addr=\"0x0000000000657ca0\",data=[\"0\"]}, + {addr=\"0x0000000000657ca4\",data=[\"0\"]}, + {addr=\"0x0000000000657ca8\",data=[\"0\"]}, + {addr=\"0x0000000000657cac\",data=[\"0\"]}, + {addr=\"0x0000000000657cb0\",data=[\"0\"]}, + {addr=\"0x0000000000657cb4\",data=[\"0\"]}]" + diff --git a/src/SeerRegisterValuesBrowserWidget.cpp b/src/SeerRegisterValuesBrowserWidget.cpp index 8c7ac5b..ab492df 100644 --- a/src/SeerRegisterValuesBrowserWidget.cpp +++ b/src/SeerRegisterValuesBrowserWidget.cpp @@ -11,6 +11,7 @@ SeerRegisterValuesBrowserWidget::SeerRegisterValuesBrowserWidget (QWidget* paren setupUi(this); // Setup the widgets + registersTreeWidget->setMouseTracking(true); registersTreeWidget->setSortingEnabled(false); registersTreeWidget->resizeColumnToContents(0); // number registersTreeWidget->resizeColumnToContents(1); // name @@ -23,6 +24,7 @@ SeerRegisterValuesBrowserWidget::SeerRegisterValuesBrowserWidget (QWidget* paren registersTreeWidget->clear(); // Connect things. + QObject::connect(registersTreeWidget, &QTreeWidget::itemEntered, this, &SeerRegisterValuesBrowserWidget::handleItemEntered); } SeerRegisterValuesBrowserWidget::~SeerRegisterValuesBrowserWidget () { @@ -151,6 +153,17 @@ void SeerRegisterValuesBrowserWidget::refresh () { emit refreshRegisterValues(); } +void SeerRegisterValuesBrowserWidget::handleItemEntered (QTreeWidgetItem* item, int column) { + + //qDebug() << __PRETTY_FUNCTION__ << ":" << item->text(0) << column; + + item->setToolTip(0, item->text(1) + " : " + item->text(2)); + + for (int i=1; icolumnCount(); i++) { // Copy tooltip to other columns. + item->setToolTip(i, item->toolTip(0)); + } +} + void SeerRegisterValuesBrowserWidget::showEvent (QShowEvent* event) { QWidget::showEvent(event); diff --git a/src/SeerRegisterValuesBrowserWidget.h b/src/SeerRegisterValuesBrowserWidget.h index abead7f..435fd0a 100644 --- a/src/SeerRegisterValuesBrowserWidget.h +++ b/src/SeerRegisterValuesBrowserWidget.h @@ -18,6 +18,7 @@ class SeerRegisterValuesBrowserWidget : public QWidget, protected Ui::SeerRegist void refresh (); protected slots: + void handleItemEntered (QTreeWidgetItem* item, int column); signals: void refreshRegisterNames (); diff --git a/src/SeerSourceBrowserWidget.cpp b/src/SeerSourceBrowserWidget.cpp index 5d6a8bd..18f96af 100644 --- a/src/SeerSourceBrowserWidget.cpp +++ b/src/SeerSourceBrowserWidget.cpp @@ -16,6 +16,7 @@ SeerSourceBrowserWidget::SeerSourceBrowserWidget (QWidget* parent) : QWidget(par // Setup the widgets sourceSearchLineEdit->setPlaceholderText("Search..."); sourceSearchLineEdit->setClearButtonEnabled(true); + sourceTreeWidget->setMouseTracking(true); sourceTreeWidget->resizeColumnToContents(0); sourceTreeWidget->resizeColumnToContents(1); sourceTreeWidget->clear(); @@ -26,8 +27,9 @@ SeerSourceBrowserWidget::SeerSourceBrowserWidget (QWidget* parent) : QWidget(par _miscFilesItems = 0; // Connect things. - QObject::connect(sourceTreeWidget, &QTreeWidget::itemDoubleClicked, this, &SeerSourceBrowserWidget::handleItemDoubleClicked); - QObject::connect(sourceSearchLineEdit, &QLineEdit::textChanged, this, &SeerSourceBrowserWidget::handleSearchLineEdit); + QObject::connect(sourceTreeWidget, &QTreeWidget::itemDoubleClicked, this, &SeerSourceBrowserWidget::handleItemDoubleClicked); + QObject::connect(sourceTreeWidget, &QTreeWidget::itemEntered, this, &SeerSourceBrowserWidget::handleItemEntered); + QObject::connect(sourceSearchLineEdit, &QLineEdit::textChanged, this, &SeerSourceBrowserWidget::handleSearchLineEdit); } SeerSourceBrowserWidget::~SeerSourceBrowserWidget () { @@ -129,6 +131,24 @@ void SeerSourceBrowserWidget::handleItemDoubleClicked (QTreeWidgetItem* item, in emit selectedFile(item->text(0), item->text(1), 0); } +void SeerSourceBrowserWidget::handleItemEntered (QTreeWidgetItem* item, int column) { + + //qDebug() << __PRETTY_FUNCTION__ << ":" << item->text(0) << column; + + if (item->text(1) == "") { // Look at the FullName. + for (int i=0; icolumnCount(); i++) { // The top-level items do not have a tooltip. + item->setToolTip(i, ""); + } + + }else{ + item->setToolTip(0, item->text(0) + " : " + item->text(1)); + + for (int i=1; icolumnCount(); i++) { // Copy tooltip to the other columns. + item->setToolTip(i, item->toolTip(0)); + } + } +} + void SeerSourceBrowserWidget::handleSearchLineEdit (const QString& text) { // Set everything to a normal font. If there is no search text, unhide everything. diff --git a/src/SeerSourceBrowserWidget.h b/src/SeerSourceBrowserWidget.h index f845a3f..095f0fc 100644 --- a/src/SeerSourceBrowserWidget.h +++ b/src/SeerSourceBrowserWidget.h @@ -14,10 +14,13 @@ class SeerSourceBrowserWidget : public QWidget, protected Ui::SeerSourceBrowserW public slots: void handleText (const QString& text); - void handleItemDoubleClicked (QTreeWidgetItem* item, int column); - void handleSearchLineEdit (const QString& text); void refresh (); + protected slots: + void handleSearchLineEdit (const QString& text); + void handleItemDoubleClicked (QTreeWidgetItem* item, int column); + void handleItemEntered (QTreeWidgetItem* item, int column); + signals: void refreshSourceList (); void selectedFile (QString file, QString fullname, int lineno); diff --git a/src/SeerStackArgumentsBrowserWidget.cpp b/src/SeerStackArgumentsBrowserWidget.cpp index ae022f8..758739b 100644 --- a/src/SeerStackArgumentsBrowserWidget.cpp +++ b/src/SeerStackArgumentsBrowserWidget.cpp @@ -11,6 +11,7 @@ SeerStackArgumentsBrowserWidget::SeerStackArgumentsBrowserWidget (QWidget* paren setupUi(this); // Setup the widgets + argumentsTreeWidget->setMouseTracking(true); argumentsTreeWidget->setSortingEnabled(false); argumentsTreeWidget->resizeColumnToContents(0); // level argumentsTreeWidget->resizeColumnToContents(1); // Name @@ -19,6 +20,7 @@ SeerStackArgumentsBrowserWidget::SeerStackArgumentsBrowserWidget (QWidget* paren argumentsTreeWidget->clear(); // Connect things. + QObject::connect(argumentsTreeWidget, &QTreeWidget::itemEntered, this, &SeerStackArgumentsBrowserWidget::handleItemEntered); } SeerStackArgumentsBrowserWidget::~SeerStackArgumentsBrowserWidget () { @@ -127,6 +129,26 @@ void SeerStackArgumentsBrowserWidget::refresh () { emit refreshStackArguments(); } +void SeerStackArgumentsBrowserWidget::handleItemEntered (QTreeWidgetItem* item, int column) { + + //qDebug() << __PRETTY_FUNCTION__ << ":" << item->text(0) << column; + + if (item->text(0) != "") { + for (int i=0; icolumnCount(); i++) { // The "level" item does not have a tooltip. + item->setToolTip(i, ""); + } + + }else{ + QTreeWidgetItem* parent = item->parent(); // Get parent item, which is the level. + + item->setToolTip(0, parent->text(0) + " : " + item->text(1) + " : " + item->text(2)); + + for (int i=1; icolumnCount(); i++) { // Copy tooltip to the other columns. + item->setToolTip(i, item->toolTip(0)); + } + } +} + void SeerStackArgumentsBrowserWidget::showEvent (QShowEvent* event) { QWidget::showEvent(event); diff --git a/src/SeerStackArgumentsBrowserWidget.h b/src/SeerStackArgumentsBrowserWidget.h index fde02b7..2f39145 100644 --- a/src/SeerStackArgumentsBrowserWidget.h +++ b/src/SeerStackArgumentsBrowserWidget.h @@ -17,6 +17,9 @@ class SeerStackArgumentsBrowserWidget : public QWidget, protected Ui::SeerStackA void handleStoppingPointReached (); void refresh (); + protected slots: + void handleItemEntered (QTreeWidgetItem* item, int column); + signals: void refreshStackArguments (); diff --git a/src/SeerStackFramesBrowserWidget.cpp b/src/SeerStackFramesBrowserWidget.cpp index 6558a80..fdc5530 100644 --- a/src/SeerStackFramesBrowserWidget.cpp +++ b/src/SeerStackFramesBrowserWidget.cpp @@ -13,6 +13,7 @@ SeerStackFramesBrowserWidget::SeerStackFramesBrowserWidget (QWidget* parent) : Q _previousStackFrameText = ""; // Setup the widgets + stackTreeWidget->setMouseTracking(true); stackTreeWidget->setSortingEnabled(false); stackTreeWidget->resizeColumnToContents(0); // level stackTreeWidget->resizeColumnToContents(1); // addr @@ -30,7 +31,8 @@ SeerStackFramesBrowserWidget::SeerStackFramesBrowserWidget (QWidget* parent) : Q stackTreeWidget->clear(); // Connect things. - QObject::connect(stackTreeWidget, &QTreeWidget::itemDoubleClicked, this, &SeerStackFramesBrowserWidget::handleItemDoubleClicked); + QObject::connect(stackTreeWidget, &QTreeWidget::itemDoubleClicked, this, &SeerStackFramesBrowserWidget::handleItemDoubleClicked); + QObject::connect(stackTreeWidget, &QTreeWidget::itemEntered, this, &SeerStackFramesBrowserWidget::handleItemEntered); } SeerStackFramesBrowserWidget::~SeerStackFramesBrowserWidget () { @@ -123,18 +125,6 @@ void SeerStackFramesBrowserWidget::handleText (const QString& text) { QApplication::restoreOverrideCursor(); } -void SeerStackFramesBrowserWidget::handleItemDoubleClicked (QTreeWidgetItem* item, int column) { - - Q_UNUSED(column); - - int lineno = item->text(5).toInt(); - - //qDebug() << __PRETTY_FUNCTION__ << ":" << "Emit selectedFile and selectedFrame"; - - emit selectedFile(item->text(3), item->text(4), lineno); - emit selectedFrame(item->text(0).toInt()); -} - void SeerStackFramesBrowserWidget::handleStoppingPointReached () { // Don't do any work if the widget is hidden. @@ -149,6 +139,29 @@ void SeerStackFramesBrowserWidget::refresh () { emit refreshStackFrames(); } +void SeerStackFramesBrowserWidget::handleItemDoubleClicked (QTreeWidgetItem* item, int column) { + + Q_UNUSED(column); + + int lineno = item->text(5).toInt(); + + //qDebug() << __PRETTY_FUNCTION__ << ":" << "Emit selectedFile and selectedFrame"; + + emit selectedFile(item->text(3), item->text(4), lineno); + emit selectedFrame(item->text(0).toInt()); +} + +void SeerStackFramesBrowserWidget::handleItemEntered (QTreeWidgetItem* item, int column) { + + //qDebug() << __PRETTY_FUNCTION__ << ":" << item->text(0) << column; + + item->setToolTip(0, item->text(0) + " : " + item->text(2) + " : " + item->text(3) + " : " + item->text(5)); + + for (int i=1; icolumnCount(); i++) { // Copy tooltip to other columns. + item->setToolTip(i, item->toolTip(0)); + } +} + void SeerStackFramesBrowserWidget::showEvent (QShowEvent* event) { QWidget::showEvent(event); diff --git a/src/SeerStackFramesBrowserWidget.h b/src/SeerStackFramesBrowserWidget.h index 75ef9ff..62edf7d 100644 --- a/src/SeerStackFramesBrowserWidget.h +++ b/src/SeerStackFramesBrowserWidget.h @@ -14,10 +14,13 @@ class SeerStackFramesBrowserWidget : public QWidget, protected Ui::SeerStackFram public slots: void handleText (const QString& text); - void handleItemDoubleClicked (QTreeWidgetItem* item, int column); void handleStoppingPointReached (); void refresh (); + protected slots: + void handleItemDoubleClicked (QTreeWidgetItem* item, int column); + void handleItemEntered (QTreeWidgetItem* item, int column); + signals: void refreshStackFrames (); void selectedFile (QString file, QString fullname, int lineno); diff --git a/src/SeerStackLocalsBrowserWidget.cpp b/src/SeerStackLocalsBrowserWidget.cpp index 48ab51e..5d2fa17 100644 --- a/src/SeerStackLocalsBrowserWidget.cpp +++ b/src/SeerStackLocalsBrowserWidget.cpp @@ -11,6 +11,7 @@ SeerStackLocalsBrowserWidget::SeerStackLocalsBrowserWidget (QWidget* parent) : Q setupUi(this); // Setup the widgets + localsTreeWidget->setMouseTracking(true); localsTreeWidget->setSortingEnabled(false); localsTreeWidget->resizeColumnToContents(0); // name localsTreeWidget->resizeColumnToContents(1); // arg @@ -26,6 +27,7 @@ SeerStackLocalsBrowserWidget::SeerStackLocalsBrowserWidget (QWidget* parent) : Q // Connect things. QObject::connect(localsTreeWidget, &QTreeWidget::itemCollapsed, this, &SeerStackLocalsBrowserWidget::handleItemCollapsed); QObject::connect(localsTreeWidget, &QTreeWidget::itemExpanded, this, &SeerStackLocalsBrowserWidget::handleItemExpanded); + QObject::connect(localsTreeWidget, &QTreeWidget::itemEntered, this, &SeerStackLocalsBrowserWidget::handleItemEntered); } SeerStackLocalsBrowserWidget::~SeerStackLocalsBrowserWidget () { @@ -205,6 +207,17 @@ void SeerStackLocalsBrowserWidget::handleItemCollapsed (QTreeWidgetItem* item) { localsTreeWidget->resizeColumnToContents(3); } +void SeerStackLocalsBrowserWidget::handleItemEntered (QTreeWidgetItem* item, int column) { + + //qDebug() << __PRETTY_FUNCTION__ << ":" << item->text(0) << column; + + item->setToolTip(0, item->text(0) + " : " + item->text(2)); + + for (int i=1; icolumnCount(); i++) { // Copy tooltip to the other columns. + item->setToolTip(i, item->toolTip(0)); + } +} + void SeerStackLocalsBrowserWidget::showEvent (QShowEvent* event) { QWidget::showEvent(event); diff --git a/src/SeerStackLocalsBrowserWidget.h b/src/SeerStackLocalsBrowserWidget.h index 26b7985..1d6a030 100644 --- a/src/SeerStackLocalsBrowserWidget.h +++ b/src/SeerStackLocalsBrowserWidget.h @@ -20,6 +20,7 @@ class SeerStackLocalsBrowserWidget : public QWidget, protected Ui::SeerStackLoca protected slots: void handleItemExpanded (QTreeWidgetItem* item); void handleItemCollapsed (QTreeWidgetItem* item); + void handleItemEntered (QTreeWidgetItem* item, int column); signals: void refreshStackLocals (); diff --git a/src/SeerThreadFramesBrowserWidget.cpp b/src/SeerThreadFramesBrowserWidget.cpp index bbebf3d..cbd0dbe 100644 --- a/src/SeerThreadFramesBrowserWidget.cpp +++ b/src/SeerThreadFramesBrowserWidget.cpp @@ -11,6 +11,7 @@ SeerThreadFramesBrowserWidget::SeerThreadFramesBrowserWidget (QWidget* parent) : setupUi(this); // Setup the widgets + threadTreeWidget->setMouseTracking(true); threadTreeWidget->setSortingEnabled(false); threadTreeWidget->resizeColumnToContents(0); // id threadTreeWidget->resizeColumnToContents(1); // target-id @@ -30,6 +31,7 @@ SeerThreadFramesBrowserWidget::SeerThreadFramesBrowserWidget (QWidget* parent) : // Connect things. QObject::connect(threadTreeWidget, &QTreeWidget::itemDoubleClicked, this, &SeerThreadFramesBrowserWidget::handleItemDoubleClicked); + QObject::connect(threadTreeWidget, &QTreeWidget::itemEntered, this, &SeerThreadFramesBrowserWidget::handleItemEntered); } SeerThreadFramesBrowserWidget::~SeerThreadFramesBrowserWidget () { @@ -171,20 +173,6 @@ void SeerThreadFramesBrowserWidget::handleText (const QString& text) { QApplication::restoreOverrideCursor(); } -void SeerThreadFramesBrowserWidget::handleItemDoubleClicked (QTreeWidgetItem* item, int column) { - - Q_UNUSED(column); - - int lineno = item->text(9).toInt(); - - //qDebug() << __PRETTY_FUNCTION__ << ":" << "Emit selectedFile and selectedFrame"; - - emit selectedFile(item->text(7), item->text(8), lineno); - - // Comment out this signal. The frame number is always 0 from gdb. Why? - //emit selectedFrame(item->text(3).toInt()); -} - void SeerThreadFramesBrowserWidget::handleStoppingPointReached () { // Don't do any work if the widget is hidden. @@ -199,6 +187,31 @@ void SeerThreadFramesBrowserWidget::refresh () { emit refreshThreadFrames(); } +void SeerThreadFramesBrowserWidget::handleItemDoubleClicked (QTreeWidgetItem* item, int column) { + + Q_UNUSED(column); + + int lineno = item->text(9).toInt(); + + //qDebug() << __PRETTY_FUNCTION__ << ":" << "Emit selectedFile and selectedFrame"; + + emit selectedFile(item->text(7), item->text(8), lineno); + + // Comment out this signal. The frame number is always 0 from gdb. Why? + //emit selectedFrame(item->text(3).toInt()); +} + +void SeerThreadFramesBrowserWidget::handleItemEntered (QTreeWidgetItem* item, int column) { + + //qDebug() << __PRETTY_FUNCTION__ << ":" << item->text(0) << column; + + item->setToolTip(0, item->text(0) + " : " + item->text(11) + " : " + item->text(5) + " : " + item->text(7) + " : " + item->text(9)); + + for (int i=1; icolumnCount(); i++) { // Copy tooltip to other columns. + item->setToolTip(i, item->toolTip(0)); + } +} + void SeerThreadFramesBrowserWidget::showEvent (QShowEvent* event) { QWidget::showEvent(event); diff --git a/src/SeerThreadFramesBrowserWidget.h b/src/SeerThreadFramesBrowserWidget.h index e90ded2..a6d14ca 100644 --- a/src/SeerThreadFramesBrowserWidget.h +++ b/src/SeerThreadFramesBrowserWidget.h @@ -14,10 +14,13 @@ class SeerThreadFramesBrowserWidget : public QWidget, protected Ui::SeerThreadFr public slots: void handleText (const QString& text); - void handleItemDoubleClicked (QTreeWidgetItem* item, int column); void handleStoppingPointReached (); void refresh (); + protected slots: + void handleItemDoubleClicked (QTreeWidgetItem* item, int column); + void handleItemEntered (QTreeWidgetItem* item, int column); + signals: void refreshThreadFrames (); void selectedFile (QString file, QString fullname, int lineno); diff --git a/src/SeerVariableLoggerBrowserWidget.cpp b/src/SeerVariableLoggerBrowserWidget.cpp index 178bbbb..309b9dc 100644 --- a/src/SeerVariableLoggerBrowserWidget.cpp +++ b/src/SeerVariableLoggerBrowserWidget.cpp @@ -14,6 +14,7 @@ SeerVariableLoggerBrowserWidget::SeerVariableLoggerBrowserWidget (QWidget* paren setupUi(this); // Setup the widgets + variablesTreeWidget->setMouseTracking(true); variablesTreeWidget->setSortingEnabled(false); variablesTreeWidget->setSelectionMode(QAbstractItemView::ExtendedSelection); variablesTreeWidget->resizeColumnToContents(0); // id @@ -26,10 +27,11 @@ SeerVariableLoggerBrowserWidget::SeerVariableLoggerBrowserWidget (QWidget* paren variablesTreeWidget->clear(); // Connect things. - QObject::connect(this, &SeerVariableLoggerBrowserWidget::evaluateVariableExpression, this, &SeerVariableLoggerBrowserWidget::handleEvaluateVariableExpression); - QObject::connect(variableAddLineEdit, &QLineEdit::returnPressed, this, &SeerVariableLoggerBrowserWidget::handleAddLineEdit); - QObject::connect(variableDeleteToolButton, &QToolButton::clicked, this, &SeerVariableLoggerBrowserWidget::handleDeleteToolButton); - QObject::connect(variableDeleteAllToolButton, &QToolButton::clicked, this, &SeerVariableLoggerBrowserWidget::handleDeleteAllToolButton); + QObject::connect(this, &SeerVariableLoggerBrowserWidget::evaluateVariableExpression, this, &SeerVariableLoggerBrowserWidget::handleEvaluateVariableExpression); + QObject::connect(variableAddLineEdit, &QLineEdit::returnPressed, this, &SeerVariableLoggerBrowserWidget::handleAddLineEdit); + QObject::connect(variableDeleteToolButton, &QToolButton::clicked, this, &SeerVariableLoggerBrowserWidget::handleDeleteToolButton); + QObject::connect(variableDeleteAllToolButton, &QToolButton::clicked, this, &SeerVariableLoggerBrowserWidget::handleDeleteAllToolButton); + QObject::connect(variablesTreeWidget, &QTreeWidget::itemEntered, this, &SeerVariableLoggerBrowserWidget::handleItemEntered); } SeerVariableLoggerBrowserWidget::~SeerVariableLoggerBrowserWidget () { @@ -167,3 +169,14 @@ void SeerVariableLoggerBrowserWidget::handleDeleteAllToolButton () { variablesTreeWidget->resizeColumnToContents(3); } +void SeerVariableLoggerBrowserWidget::handleItemEntered (QTreeWidgetItem* item, int column) { + + //qDebug() << __PRETTY_FUNCTION__ << ":" << item->text(0) << column; + + item->setToolTip(0, item->text(1) + " : " + item->text(2) + " : " + item->text(3)); + + for (int i=1; icolumnCount(); i++) { // Copy tooltip to other columns. + item->setToolTip(i, item->toolTip(0)); + } +} + diff --git a/src/SeerVariableLoggerBrowserWidget.h b/src/SeerVariableLoggerBrowserWidget.h index aa9c2ac..e58c3fb 100644 --- a/src/SeerVariableLoggerBrowserWidget.h +++ b/src/SeerVariableLoggerBrowserWidget.h @@ -20,6 +20,7 @@ class SeerVariableLoggerBrowserWidget : public QWidget, protected Ui::SeerVariab void handleAddLineEdit (); void handleDeleteToolButton (); void handleDeleteAllToolButton (); + void handleItemEntered (QTreeWidgetItem* item, int column); signals: void evaluateVariableExpression (int expressionid, QString expression); diff --git a/src/SeerVariableTrackerBrowserWidget.cpp b/src/SeerVariableTrackerBrowserWidget.cpp index 4beee68..598dc4d 100644 --- a/src/SeerVariableTrackerBrowserWidget.cpp +++ b/src/SeerVariableTrackerBrowserWidget.cpp @@ -14,6 +14,7 @@ SeerVariableTrackerBrowserWidget::SeerVariableTrackerBrowserWidget (QWidget* par setupUi(this); // Setup the widgets + variablesTreeWidget->setMouseTracking(true); variablesTreeWidget->setSortingEnabled(false); variablesTreeWidget->setSelectionMode(QAbstractItemView::ExtendedSelection); variablesTreeWidget->resizeColumnToContents(0); // id @@ -25,9 +26,10 @@ SeerVariableTrackerBrowserWidget::SeerVariableTrackerBrowserWidget (QWidget* par variablesTreeWidget->clear(); // Connect things. - QObject::connect(variableAddLineEdit, &QLineEdit::returnPressed, this, &SeerVariableTrackerBrowserWidget::handleAddLineEdit); - QObject::connect(variableDeleteToolButton, &QToolButton::clicked, this, &SeerVariableTrackerBrowserWidget::handleDeleteToolButton); - QObject::connect(variableDeleteAllToolButton, &QToolButton::clicked, this, &SeerVariableTrackerBrowserWidget::handleDeleteAllToolButton); + QObject::connect(variableAddLineEdit, &QLineEdit::returnPressed, this, &SeerVariableTrackerBrowserWidget::handleAddLineEdit); + QObject::connect(variableDeleteToolButton, &QToolButton::clicked, this, &SeerVariableTrackerBrowserWidget::handleDeleteToolButton); + QObject::connect(variableDeleteAllToolButton, &QToolButton::clicked, this, &SeerVariableTrackerBrowserWidget::handleDeleteAllToolButton); + QObject::connect(variablesTreeWidget, &QTreeWidget::itemEntered, this, &SeerVariableTrackerBrowserWidget::handleItemEntered); } SeerVariableTrackerBrowserWidget::~SeerVariableTrackerBrowserWidget () { @@ -232,6 +234,17 @@ void SeerVariableTrackerBrowserWidget::handleDeleteAllToolButton () { emit deleteVariableExpressions("*"); } +void SeerVariableTrackerBrowserWidget::handleItemEntered (QTreeWidgetItem* item, int column) { + + //qDebug() << __PRETTY_FUNCTION__ << ":" << item->text(0) << column; + + item->setToolTip(0, item->text(1) + " : " + item->text(2)); + + for (int i=1; icolumnCount(); i++) { // Copy tooltip to other columns. + item->setToolTip(i, item->toolTip(0)); + } +} + void SeerVariableTrackerBrowserWidget::showEvent (QShowEvent* event) { QWidget::showEvent(event); diff --git a/src/SeerVariableTrackerBrowserWidget.h b/src/SeerVariableTrackerBrowserWidget.h index 7c7965a..20e320f 100644 --- a/src/SeerVariableTrackerBrowserWidget.h +++ b/src/SeerVariableTrackerBrowserWidget.h @@ -22,6 +22,7 @@ class SeerVariableTrackerBrowserWidget : public QWidget, protected Ui::SeerVaria void handleAddLineEdit (); void handleDeleteToolButton (); void handleDeleteAllToolButton (); + void handleItemEntered (QTreeWidgetItem* item, int column); signals: void refreshVariableNames ();