From 34f4b712d804366730701d15cc61ffba9dc011d0 Mon Sep 17 00:00:00 2001 From: wmayer Date: Sun, 18 Oct 2020 12:44:23 +0200 Subject: [PATCH] Qt5: fix deprecation warnings of QWheelEvent in Qt 5.15 --- src/Gui/GraphicsViewZoom.cpp | 12 ++++++++++++ src/Gui/InputField.cpp | 4 ++++ src/Gui/Quarter/Mouse.cpp | 9 +++++++++ src/Gui/View3DInventorViewer.cpp | 5 +++++ src/Mod/Drawing/Gui/DrawingView.cpp | 4 ++++ src/Mod/Image/Gui/ImageView.cpp | 10 ++++++++++ src/Mod/TechDraw/Gui/QGVPage.cpp | 7 ++++++- src/Mod/Web/Gui/BrowserView.cpp | 4 ++++ 8 files changed, 54 insertions(+), 1 deletion(-) diff --git a/src/Gui/GraphicsViewZoom.cpp b/src/Gui/GraphicsViewZoom.cpp index d18fa1e269..f41638a75e 100644 --- a/src/Gui/GraphicsViewZoom.cpp +++ b/src/Gui/GraphicsViewZoom.cpp @@ -79,6 +79,17 @@ bool GraphicsViewZoom::eventFilter(QObject *object, QEvent *event) { } else if (event->type() == QEvent::Wheel) { QWheelEvent* wheel_event = static_cast(event); if (QApplication::keyboardModifiers() == _modifiers) { +#if QT_VERSION >= QT_VERSION_CHECK(5,0,0) + QPoint delta = wheel_event->angleDelta(); + if (qAbs(delta.y()) > qAbs(delta.x())) { // vertical + double angle = -delta.y(); + if (m_invert_zoom) + angle = -angle; + double factor = qPow(_zoom_factor_base, angle); + gentle_zoom(factor); + return true; + } +#else if (wheel_event->orientation() == Qt::Vertical) { double angle = -wheel_event->delta(); if (m_invert_zoom) @@ -87,6 +98,7 @@ bool GraphicsViewZoom::eventFilter(QObject *object, QEvent *event) { gentle_zoom(factor); return true; } +#endif } } Q_UNUSED(object); diff --git a/src/Gui/InputField.cpp b/src/Gui/InputField.cpp index 2b2089e035..ecc5f72961 100644 --- a/src/Gui/InputField.cpp +++ b/src/Gui/InputField.cpp @@ -692,7 +692,11 @@ void InputField::wheelEvent (QWheelEvent * event) } double factor = event->modifiers() & Qt::ControlModifier ? 10 : 1; +#if QT_VERSION >= QT_VERSION_CHECK(5,0,0) + double step = event->angleDelta().y() > 0 ? StepSize : -StepSize; +#else double step = event->delta() > 0 ? StepSize : -StepSize; +#endif double val = actUnitValue + factor * step; if (val > Maximum) val = Maximum; diff --git a/src/Gui/Quarter/Mouse.cpp b/src/Gui/Quarter/Mouse.cpp index 63b2edb30e..ce4a1e8ea1 100644 --- a/src/Gui/Quarter/Mouse.cpp +++ b/src/Gui/Quarter/Mouse.cpp @@ -168,7 +168,12 @@ const SoEvent * MouseP::mouseWheelEvent(QWheelEvent * event) { PUBLIC(this)->setModifiers(this->wheel, event); +#if QT_VERSION >= QT_VERSION_CHECK(5,15,0) + QPoint pos = event->position().toPoint(); + SbVec2s pos(pos.x(), PUBLIC(this)->windowsize[1] - pos.y() - 1); +#else SbVec2s pos(event->pos().x(), PUBLIC(this)->windowsize[1] - event->pos().y() - 1); +#endif // the following corrects for high-dpi displays (e.g. mac retina) #if QT_VERSION >= 0x050000 pos *= publ->quarter->devicePixelRatio(); @@ -182,7 +187,11 @@ MouseP::mouseWheelEvent(QWheelEvent * event) // value indicates that the wheel was rotated backwards toward the // user. A typical wheel click is 120, but values coming from touchpad // can be a lot lower +#if QT_VERSION >= QT_VERSION_CHECK(5,0,0) + this->wheel->setDelta(event->angleDelta().y()); +#else this->wheel->setDelta(event->delta()); +#endif return this->wheel; } diff --git a/src/Gui/View3DInventorViewer.cpp b/src/Gui/View3DInventorViewer.cpp index 5102af85d1..ba853256cd 100644 --- a/src/Gui/View3DInventorViewer.cpp +++ b/src/Gui/View3DInventorViewer.cpp @@ -270,8 +270,13 @@ public: // Thus, we filter out horizontal scrolling. if (event->type() == QEvent::Wheel) { QWheelEvent* we = static_cast(event); +#if QT_VERSION >= QT_VERSION_CHECK(5,0,0) + if (qAbs(we->angleDelta().x()) > qAbs(we->angleDelta().y())) + return true; +#else if (we->orientation() == Qt::Horizontal) return true; +#endif } else if (event->type() == QEvent::KeyPress) { QKeyEvent* ke = static_cast(event); diff --git a/src/Mod/Drawing/Gui/DrawingView.cpp b/src/Mod/Drawing/Gui/DrawingView.cpp index 5e8cc3de4b..bb72a81107 100644 --- a/src/Mod/Drawing/Gui/DrawingView.cpp +++ b/src/Mod/Drawing/Gui/DrawingView.cpp @@ -197,7 +197,11 @@ void SvgView::paintEvent(QPaintEvent *event) void SvgView::wheelEvent(QWheelEvent *event) { +#if QT_VERSION >= QT_VERSION_CHECK(5,0,0) + int delta = -event->angleDelta().y(); +#else int delta = -event->delta(); +#endif if (m_invertZoom) delta = -delta; qreal factor = std::pow(1.2, delta / 240.0); diff --git a/src/Mod/Image/Gui/ImageView.cpp b/src/Mod/Image/Gui/ImageView.cpp index 33d9ca1e3d..3cd607f449 100644 --- a/src/Mod/Image/Gui/ImageView.cpp +++ b/src/Mod/Image/Gui/ImageView.cpp @@ -476,11 +476,21 @@ void ImageView::wheelEvent(QWheelEvent * cEvent) // Mouse event coordinates are relative to top-left of image view (including toolbar!) // Get current cursor position relative to top-left of image box QPoint offset = _pGLImageBox->pos(); +#if QT_VERSION >= QT_VERSION_CHECK(5,15,0) + QPoint pos = cEvent->position().toPoint(); + int box_x = pos.x() - offset.x(); + int box_y = pos.y() - offset.y(); +#else int box_x = cEvent->x() - offset.x(); int box_y = cEvent->y() - offset.y(); +#endif // Zoom around centrally displayed image point +#if QT_VERSION >= QT_VERSION_CHECK(5,0,0) + int numTicks = cEvent->angleDelta().y() / 120; +#else int numTicks = cEvent->delta() / 120; +#endif if (_invertZoom) numTicks = -numTicks; diff --git a/src/Mod/TechDraw/Gui/QGVPage.cpp b/src/Mod/TechDraw/Gui/QGVPage.cpp index 3a61eb3fa9..56f211b8e9 100644 --- a/src/Mod/TechDraw/Gui/QGVPage.cpp +++ b/src/Mod/TechDraw/Gui/QGVPage.cpp @@ -1026,7 +1026,12 @@ void QGVPage::wheelEvent(QWheelEvent *event) } QPointF center = mapToScene(viewport()->rect().center()); - qreal factor = std::pow(mouseBase, event->delta() / mouseAdjust); +#if QT_VERSION >= QT_VERSION_CHECK(5,0,0) + int delta = event->angleDelta().y(); +#else + int delta = event->delta(); +#endif + qreal factor = std::pow(mouseBase, delta / mouseAdjust); scale(factor, factor); QPointF newCenter = mapToScene(viewport()->rect().center()); diff --git a/src/Mod/Web/Gui/BrowserView.cpp b/src/Mod/Web/Gui/BrowserView.cpp index 33fe64f7cb..a281c79f9c 100644 --- a/src/Mod/Web/Gui/BrowserView.cpp +++ b/src/Mod/Web/Gui/BrowserView.cpp @@ -277,7 +277,11 @@ void WebView::mousePressEvent(QMouseEvent *event) void WebView::wheelEvent(QWheelEvent *event) { if (QApplication::keyboardModifiers() & Qt::ControlModifier) { +#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0) + qreal factor = zoomFactor() + (-event->angleDelta().y() / 800.0); +#else qreal factor = zoomFactor() + (-event->delta() / 800.0); +#endif setZoomFactor(factor); event->accept(); return;