From f9590e9f2eb2bdea883986d3cd496e39dc71644a Mon Sep 17 00:00:00 2001 From: Rebecca Breu Date: Sun, 3 Mar 2024 14:14:05 +0100 Subject: [PATCH] Ajdusted modifiers for panning via scroll wheel --- CHANGELOG.rst | 10 ++-------- beeref/documentation/controls.html | 4 ++-- beeref/view.py | 5 +++-- tests/test_view.py | 5 +++-- 4 files changed, 10 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index bb00972..07efd8d 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -10,8 +10,8 @@ Added clipboard in hex format (Images -> Sample Color) * Added notification when attempting to paste from an empty or unusable clipboard -* Panning via scrollwheel: - * Scroll wheel without modifiers: pan vertically +* Added panning via scrollwheel: + * Scroll wheel + Shift + Ctrl: pan vertically * Scroll wheel + Shift: pan horizontally @@ -26,12 +26,6 @@ Fixed would scale with the image and get potentially very thick. -Changed -------- - -* Using the scroll wheel will now only zoom when Ctrl is pressed, - instead of zooming all the time regardless of modifiers. - 0.3.2 - 2024-01-21 ================== diff --git a/beeref/documentation/controls.html b/beeref/documentation/controls.html index 31e1f09..f6f6800 100644 --- a/beeref/documentation/controls.html +++ b/beeref/documentation/controls.html @@ -3,7 +3,7 @@

Middle Click + Drag
Alt + Left Click + Drag
- Mouse Wheel (pan vertically)
+ Shift + Ctrl + Mouse Wheel (pan vertically)
Shift + Mouse wheel (pan horizontally)

@@ -29,7 +29,7 @@ Rubberband Selection: Left Click + Drag

-

Move Selection

+

Move Selected Items

Left Click + Drag diff --git a/beeref/view.py b/beeref/view.py index 3dbdedc..5366e61 100644 --- a/beeref/view.py +++ b/beeref/view.py @@ -748,11 +748,12 @@ class BeeGraphicsView(MainControlsMixin, self.reset_previous_transform() def wheelEvent(self, event): - if event.modifiers() == Qt.KeyboardModifier.ControlModifier: + if event.modifiers() == Qt.KeyboardModifier.NoModifier: self.zoom(event.angleDelta().y(), event.position()) event.accept() return - if event.modifiers() == Qt.KeyboardModifier.NoModifier: + if event.modifiers() == (Qt.KeyboardModifier.ShiftModifier + | Qt.KeyboardModifier.ControlModifier): self.pan(QtCore.QPointF(0, 0.5 * event.angleDelta().y())) event.accept() return diff --git a/tests/test_view.py b/tests/test_view.py index 490809b..1d4434c 100644 --- a/tests/test_view.py +++ b/tests/test_view.py @@ -934,7 +934,7 @@ def test_wheel_event_zoom(zoom_mock, view): event = MagicMock() event.angleDelta.return_value = QtCore.QPointF(0.0, 40.0) event.position.return_value = QtCore.QPointF(10.0, 20.0) - event.modifiers.return_value = Qt.KeyboardModifier.ControlModifier + event.modifiers.return_value = Qt.KeyboardModifier.NoModifier view.wheelEvent(event) zoom_mock.assert_called_once_with(40, QtCore.QPointF(10.0, 20.0)) event.accept.assert_called_once_with() @@ -945,7 +945,8 @@ def test_wheel_event_pan_vertically(pan_mock, view): event = MagicMock() event.angleDelta.return_value = QtCore.QPointF(0.0, 40.0) event.position.return_value = QtCore.QPointF(10.0, 20.0) - event.modifiers.return_value = Qt.KeyboardModifier.NoModifier + event.modifiers.return_value = (Qt.KeyboardModifier.ShiftModifier + | Qt.KeyboardModifier.ControlModifier) view.wheelEvent(event) pan_mock.assert_called_once_with(QtCore.QPointF(0, 20)) event.accept.assert_called_once_with()