From 23e4fe2d8e3de4c6276b7da47f6f8506c55b99dd Mon Sep 17 00:00:00 2001 From: xtemp09 Date: Thu, 17 Apr 2025 01:42:24 +0700 Subject: [PATCH] [Spreadsheet] Add usage of override cursor in SheetViewHeader (#20786) * [Spreadsheet] Add usage of override cursor in SheetViewHeader Closes #19863 * Update src/Mod/Spreadsheet/Gui/SheetTableView.cpp Co-authored-by: Kacper Donat * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --------- Co-authored-by: Kacper Donat Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --- src/Mod/Spreadsheet/Gui/SheetTableView.cpp | 13 ++++++++++++- src/Mod/Spreadsheet/Gui/SheetTableView.h | 1 + 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/Mod/Spreadsheet/Gui/SheetTableView.cpp b/src/Mod/Spreadsheet/Gui/SheetTableView.cpp index dc8b7623c1..e0f26d9be2 100644 --- a/src/Mod/Spreadsheet/Gui/SheetTableView.cpp +++ b/src/Mod/Spreadsheet/Gui/SheetTableView.cpp @@ -56,7 +56,18 @@ using namespace SpreadsheetGui; using namespace Spreadsheet; using namespace App; -namespace sp = std::placeholders; + +void SheetViewHeader::mouseMoveEvent(QMouseEvent* e) +{ + // for some reason QWidget::setCursor() has no effect in QGraphicsView + // therefore we resort to override cursor + const QCursor currentCursor = this->cursor(); + QHeaderView::mouseMoveEvent(e); + const QCursor newerCursor = this->cursor(); + if (newerCursor != currentCursor) { + qApp->setOverrideCursor(newerCursor); + } +} void SheetViewHeader::mouseReleaseEvent(QMouseEvent* event) { diff --git a/src/Mod/Spreadsheet/Gui/SheetTableView.h b/src/Mod/Spreadsheet/Gui/SheetTableView.h index e63af97da9..078b0aa61f 100644 --- a/src/Mod/Spreadsheet/Gui/SheetTableView.h +++ b/src/Mod/Spreadsheet/Gui/SheetTableView.h @@ -47,6 +47,7 @@ Q_SIGNALS: void resizeFinished(); protected: + void mouseMoveEvent(QMouseEvent* e) override; void mouseReleaseEvent(QMouseEvent* event) override; bool viewportEvent(QEvent* e) override;