From 3ba5cd569de87da8be539d94c845333cd0b5705a Mon Sep 17 00:00:00 2001 From: wmayer Date: Thu, 12 Oct 2023 08:37:05 +0200 Subject: [PATCH] Gui: port new code to Qt6 --- src/Gui/DlgPreferencesImp.cpp | 2 +- src/Gui/OverlayManager.cpp | 14 ++++++-- src/Gui/OverlayWidgets.cpp | 67 +++++++++++++++++++++++++++++------ src/Gui/OverlayWidgets.h | 16 +++++++-- src/Gui/Tree.cpp | 12 +++++-- 5 files changed, 92 insertions(+), 19 deletions(-) diff --git a/src/Gui/DlgPreferencesImp.cpp b/src/Gui/DlgPreferencesImp.cpp index f212ed93cf..84990104f9 100644 --- a/src/Gui/DlgPreferencesImp.cpp +++ b/src/Gui/DlgPreferencesImp.cpp @@ -86,7 +86,7 @@ DlgPreferencesImp::DlgPreferencesImp(QWidget* parent, Qt::WindowFlags fl) auto ResetGroup = new QLabel(ui->buttonResetGroup); ResetGroup->setAlignment(Qt::AlignCenter); ResetGroup->setWordWrap(true); - ui->buttonResetGroup->layout()->setMargin(0); + ui->buttonResetGroup->layout()->setContentsMargins(0, 0, 0, 0); ui->buttonResetGroup->layout()->addWidget(ResetGroup); ui->buttonResetAll->setFixedWidth(Base::clamp(length + 20, 108, 120)); diff --git a/src/Gui/OverlayManager.cpp b/src/Gui/OverlayManager.cpp index b89071c4a3..634440d7cb 100644 --- a/src/Gui/OverlayManager.cpp +++ b/src/Gui/OverlayManager.cpp @@ -27,6 +27,7 @@ # include # include # include +# include # include # include # include @@ -1894,10 +1895,17 @@ void OverlayManager::Private::interceptEvent(QWidget *widget, QEvent *ev) case QEvent::MouseMove: case QEvent::MouseButtonDblClick: { auto me = static_cast(ev); - lastIntercept = getChildAt(widget, me->globalPos()); +#if QT_VERSION < QT_VERSION_CHECK(6,0,0) + QPointF screenPos = me->screenPos(); + QPoint point = me->globalPos(); +#else + QPointF screenPos = me->globalPosition(); + QPoint point = screenPos.toPoint(); +#endif + lastIntercept = getChildAt(widget, point); QMouseEvent mouseEvent(ev->type(), - lastIntercept->mapFromGlobal(me->globalPos()), - me->screenPos(), + lastIntercept->mapFromGlobal(point), + screenPos, me->button(), me->buttons(), me->modifiers()); diff --git a/src/Gui/OverlayWidgets.cpp b/src/Gui/OverlayWidgets.cpp index 9144cc0b63..8c9b32347d 100644 --- a/src/Gui/OverlayWidgets.cpp +++ b/src/Gui/OverlayWidgets.cpp @@ -215,7 +215,11 @@ void OverlayProxyWidget::onTimer() hitTest(QCursor::pos(), false); } +#if QT_VERSION < QT_VERSION_CHECK(6,0,0) void OverlayProxyWidget::enterEvent(QEvent *) +#else +void OverlayProxyWidget::enterEvent(QEnterEvent *) +#endif { if(!owner->count()) return; @@ -1017,7 +1021,11 @@ void OverlayTabWidget::leaveEvent(QEvent*) OverlayManager::instance()->refresh(); } +#if QT_VERSION < QT_VERSION_CHECK(6,0,0) void OverlayTabWidget::enterEvent(QEvent*) +#else +void OverlayTabWidget::enterEvent(QEnterEvent*) +#endif { revealTime = QTime(); OverlayManager::instance()->refresh(); @@ -1890,7 +1898,14 @@ void OverlayTitleBar::mouseMoveEvent(QMouseEvent *me) endDrag(); return; } - OverlayManager::instance()->dragDockWidget(me->globalPos(), + +#if QT_VERSION < QT_VERSION_CHECK(6,0,0) + QPoint point = me->globalPos(); +#else + QPoint point = me->globalPosition().toPoint(); +#endif + + OverlayManager::instance()->dragDockWidget(point, parentWidget(), dragOffset, dragSize); @@ -1954,8 +1969,14 @@ void OverlayTitleBar::mouseReleaseEvent(QMouseEvent *me) if (me->button() != Qt::LeftButton) return; +#if QT_VERSION < QT_VERSION_CHECK(6,0,0) + QPoint point = me->globalPos(); +#else + QPoint point = me->globalPosition().toPoint(); +#endif + OverlayTabWidget::_Dragging = nullptr; - OverlayManager::instance()->dragDockWidget(me->globalPos(), + OverlayManager::instance()->dragDockWidget(point, parentWidget(), dragOffset, dragSize, @@ -2029,8 +2050,15 @@ void OverlaySizeGrip::paintEvent(QPaintEvent*) void OverlaySizeGrip::mouseMoveEvent(QMouseEvent *me) { - if ((me->buttons() & Qt::LeftButton)) - Q_EMIT dragMove(me->globalPos()); +#if QT_VERSION < QT_VERSION_CHECK(6,0,0) + QPoint point = me->globalPos(); +#else + QPoint point = me->globalPosition().toPoint(); +#endif + + if ((me->buttons() & Qt::LeftButton)) { + Q_EMIT dragMove(point); + } } void OverlaySizeGrip::mousePressEvent(QMouseEvent *) @@ -2091,7 +2119,11 @@ void OverlaySplitterHandle::showEvent(QShowEvent *ev) QSplitterHandle::showEvent(ev); } +#if QT_VERSION < QT_VERSION_CHECK(6,0,0) void OverlaySplitterHandle::enterEvent(QEvent *ev) +#else +void OverlaySplitterHandle::enterEvent(QEnterEvent *ev) +#endif { timer.stop(); QSplitterHandle::enterEvent(ev); @@ -2262,6 +2294,12 @@ void OverlaySplitterHandle::mouseMoveEvent(QMouseEvent *me) return; } +#if QT_VERSION < QT_VERSION_CHECK(6,0,0) + QPoint point = me->globalPos(); +#else + QPoint point = me->globalPosition().toPoint(); +#endif + if (dragging == 1) { OverlayTabWidget *overlay = qobject_cast( splitter()->parentWidget()); @@ -2283,14 +2321,14 @@ void OverlaySplitterHandle::mouseMoveEvent(QMouseEvent *me) } } if (dragging == 1) { - QPoint offset = parentWidget()->mapFromGlobal(me->globalPos()) - dragOffset; + QPoint offset = parentWidget()->mapFromGlobal(point) - dragOffset; moveSplitter(this->orientation() == Qt::Horizontal ? offset.x() : offset.y()); return; } setCursor(Qt::ClosedHandCursor); } - OverlayManager::instance()->dragDockWidget(me->globalPos(), + OverlayManager::instance()->dragDockWidget(point, dockWidget(), dragOffset, dragSize); @@ -2329,11 +2367,18 @@ void OverlaySplitterHandle::mouseReleaseEvent(QMouseEvent *me) return; } endDrag(); - OverlayManager::instance()->dragDockWidget(me->globalPos(), - dockWidget(), - dragOffset, - dragSize, - true); + +#if QT_VERSION < QT_VERSION_CHECK(6,0,0) + QPoint point = me->globalPos(); +#else + QPoint point = me->globalPosition().toPoint(); +#endif + + OverlayManager::instance()->dragDockWidget(point, + dockWidget(), + dragOffset, + dragSize, + true); // Warning! the handle itself maybe deleted after return from // dragDockWidget(). } diff --git a/src/Gui/OverlayWidgets.h b/src/Gui/OverlayWidgets.h index e6bc7d370a..32831bd7de 100644 --- a/src/Gui/OverlayWidgets.h +++ b/src/Gui/OverlayWidgets.h @@ -298,8 +298,12 @@ public: static QLayoutItem *prepareTitleWidget(QWidget *widget, const QList &actions); protected: - void leaveEvent(QEvent*); +#if QT_VERSION < QT_VERSION_CHECK(6,0,0) void enterEvent(QEvent*); +#else + void enterEvent(QEnterEvent*); +#endif + void leaveEvent(QEvent*); void changeEvent(QEvent*); void resizeEvent(QResizeEvent*); void paintEvent(QPaintEvent *); @@ -486,8 +490,12 @@ public: void endDrag(); protected: - virtual void showEvent(QShowEvent *); +#if QT_VERSION < QT_VERSION_CHECK(6,0,0) virtual void enterEvent(QEvent *); +#else + virtual void enterEvent(QEnterEvent *); +#endif + virtual void showEvent(QShowEvent *); virtual void leaveEvent(QEvent *); virtual void paintEvent(QPaintEvent*); virtual void changeEvent(QEvent*); @@ -567,7 +575,11 @@ public: void onMousePress(); protected: +#if QT_VERSION < QT_VERSION_CHECK(6,0,0) void enterEvent(QEvent*); +#else + void enterEvent(QEnterEvent*); +#endif void hideEvent(QHideEvent*); void paintEvent(QPaintEvent*); diff --git a/src/Gui/Tree.cpp b/src/Gui/Tree.cpp index d1b25390c4..3fa911e9b0 100644 --- a/src/Gui/Tree.cpp +++ b/src/Gui/Tree.cpp @@ -1298,10 +1298,18 @@ int TreeWidget::iconSize() { static int defaultSize; if (defaultSize == 0) { auto tree = instance(); - if(tree) + if(tree) { +#if QT_VERSION < QT_VERSION_CHECK(6,0,0) defaultSize = tree->viewOptions().decorationSize.width(); - else +#else + QStyleOptionViewItem opt; + tree->initViewItemOption(&opt); + defaultSize = opt.decorationSize.width(); +#endif + } + else { defaultSize = QApplication::style()->pixelMetric(QStyle::PM_SmallIconSize); + } } if (treeIconSize() > 0) return std::max(10, treeIconSize());