From f00c98f9f17f81ccad51bd2552b34e63414e1705 Mon Sep 17 00:00:00 2001
From: Oscar Gustafsson <oscar.gustafsson@gmail.com>
Date: Thu, 2 Feb 2023 16:58:56 +0100
Subject: [PATCH] Add ctrl + wheel zoom to scheduler GUI

---
 b_asic/scheduler_gui/main_window.py | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/b_asic/scheduler_gui/main_window.py b/b_asic/scheduler_gui/main_window.py
index f94f80c3..9bbe5d5d 100644
--- a/b_asic/scheduler_gui/main_window.py
+++ b/b_asic/scheduler_gui/main_window.py
@@ -97,6 +97,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
     _debug_rects: QGraphicsItemGroup
     _splitter_pos: int
     _splitter_min: int
+    _zoom: float
 
     def __init__(self):
         """Initialize Scheduler-gui."""
@@ -105,6 +106,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
         self._graph = None
         self._scale = 75.0
         self._debug_rects = None
+        self._zoom = 1.0
 
         self.setupUi(self)
         self._read_settings()
@@ -186,6 +188,13 @@ class MainWindow(QMainWindow, Ui_MainWindow):
             self._graph._redraw_from_start()
         # self._printButtonPressed('callback_pushButton()')
 
+    def wheelEvent(self, event):
+        if event.modifiers() == Qt.KeyboardModifier.ControlModifier:
+            old_zoom = self._zoom
+            self._zoom += event.angleDelta().y() / 2500
+            self.view.scale(self._zoom, self._zoom)
+            self._zoom = old_zoom
+
     @Slot()
     def _load_schedule_from_pyfile(self) -> None:
         """SLOT() for SIGNAL(menu_load_from_file.triggered)
-- 
GitLab