From d294872b34667199455ca169d68be392942c3b00 Mon Sep 17 00:00:00 2001 From: Shawn Rutledge <shawn.rutledge@qt.io> Date: Mon, 17 Feb 2020 22:28:38 +0100 Subject: [PATCH] Enable mouse wheel scrolling in single-page PdfPageView Change-Id: I20512187dcc872b2e0429968e9ad2a9899aee6c2 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> --- examples/pdf/pdfviewer/viewer.qml | 16 ++++++++++++++++ src/pdf/quick/qml/PdfPageView.qml | 10 ++++++++++ 2 files changed, 26 insertions(+) diff --git a/examples/pdf/pdfviewer/viewer.qml b/examples/pdf/pdfviewer/viewer.qml index c63485dd3..586a822a0 100644 --- a/examples/pdf/pdfviewer/viewer.qml +++ b/examples/pdf/pdfviewer/viewer.qml @@ -53,6 +53,7 @@ import QtQuick.Layouts 1.14 import QtQuick.Pdf 5.15 import QtQuick.Shapes 1.14 import QtQuick.Window 2.14 +import Qt.labs.animation 1.0 import Qt.labs.platform 1.1 as Platform ApplicationWindow { @@ -208,6 +209,21 @@ ApplicationWindow { searchString: searchField.text } + WheelHandler { + rotationScale: 15 + target: pageView + property: "x" + orientation: Qt.Horizontal + acceptedDevices: PointerDevice.Mouse | PointerDevice.TouchPad + } + WheelHandler { + rotationScale: 15 + target: pageView + property: "y" + orientation: Qt.Vertical + acceptedDevices: PointerDevice.Mouse | PointerDevice.TouchPad + } + Drawer { id: searchDrawer edge: Qt.LeftEdge diff --git a/src/pdf/quick/qml/PdfPageView.qml b/src/pdf/quick/qml/PdfPageView.qml index ec3cd78e0..dfd00a1a8 100644 --- a/src/pdf/quick/qml/PdfPageView.qml +++ b/src/pdf/quick/qml/PdfPageView.qml @@ -37,6 +37,7 @@ import QtQuick 2.14 import QtQuick.Controls 2.14 import QtQuick.Pdf 5.15 import QtQuick.Shapes 1.14 +import Qt.labs.animation 1.0 Rectangle { // public API @@ -260,4 +261,13 @@ Rectangle { id: tapHandler acceptedDevices: PointerDevice.Mouse | PointerDevice.Stylus } + // prevent it from being scrolled out of view + BoundaryRule on x { + minimum: 100 - root.width + maximum: root.parent.width - 100 + } + BoundaryRule on y { + minimum: 100 - root.height + maximum: root.parent.height - 100 + } } -- GitLab