From 596bb0c9cf88fc356be9dff141c74b71a2a2d754 Mon Sep 17 00:00:00 2001 From: Leonardo Zide Date: Sun, 5 Apr 2026 22:14:33 -0700 Subject: [PATCH] Add Zoom and SmartZoom gesture. --- common/lc_viewwidget.cpp | 24 ++++++++++++++++++++++++ common/lc_viewwidget.h | 1 + 2 files changed, 25 insertions(+) diff --git a/common/lc_viewwidget.cpp b/common/lc_viewwidget.cpp index 823f3bc7..e313601d 100644 --- a/common/lc_viewwidget.cpp +++ b/common/lc_viewwidget.cpp @@ -87,6 +87,30 @@ void lcViewWidget::paintGL() mView->OnDraw(); } +bool lcViewWidget::event(QEvent* Event) +{ + if (Event->type() == QEvent::NativeGesture) + { + QNativeGestureEvent* GestureEvent = static_cast(Event); + + switch (GestureEvent->gestureType()) + { + case Qt::ZoomNativeGesture: + mView->Zoom(GestureEvent->value() * 100.0f); + break; + + case Qt::SmartZoomNativeGesture: + mView->ZoomExtents(); + break; + + default: + break; + } + } + + return QWidget::event(Event); +} + void lcViewWidget::focusInEvent(QFocusEvent* FocusEvent) { if (mView) diff --git a/common/lc_viewwidget.h b/common/lc_viewwidget.h index af177aad..856aecfe 100644 --- a/common/lc_viewwidget.h +++ b/common/lc_viewwidget.h @@ -28,6 +28,7 @@ protected: void initializeGL() override; void resizeGL(int Width, int Height) override; void paintGL() override; + bool event(QEvent* Event) override; void focusInEvent(QFocusEvent* FocusEvent) override; void focusOutEvent(QFocusEvent* FocusEvent) override; void keyPressEvent(QKeyEvent* KeyEvent) override;