Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions source/_magnifier/commands.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,9 @@
getFullscreenMode,
ZoomLevel,
getFollowState,
setFilter,
setFollowState,
setFullscreenMode,
toggleAllFollowStates,
)
from .magnifier import Magnifier
Expand Down Expand Up @@ -171,11 +173,13 @@ def toggleFilter() -> None:
magnifier,
MagnifierAction.TOGGLE_FILTER,
):
assert isinstance(magnifier, FullScreenMagnifier)
filters = list(Filter)
idx = filters.index(magnifier.filterType)
magnifier.filterType = filters[(idx + 1) % len(filters)]
if magnifier._magnifierType == MagnifierType.FULLSCREEN:
magnifier._applyFilter()
setFilter(magnifier.filterType)
ui.message(
pgettext(
"magnifier",
Expand Down Expand Up @@ -255,12 +259,14 @@ def toggleFullscreenMode() -> None:
magnifier,
MagnifierAction.CHANGE_FULLSCREEN_MODE,
):
assert isinstance(magnifier, FullScreenMagnifier)
modes = list(FullScreenMode)
currentMode = magnifier._fullscreenMode
idx = modes.index(currentMode)
newMode = modes[(idx + 1) % len(modes)]
log.debug(f"Changing full-screen mode from {currentMode} to {newMode}")
magnifier._fullscreenMode = newMode
setFullscreenMode(newMode)
ui.message(
pgettext(
"magnifier",
Expand Down
6 changes: 4 additions & 2 deletions source/_magnifier/magnifier.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
Implements the magnifier global class and its basic functionalities.
"""

from typing import Callable
from collections.abc import Callable
from comtypes import COMError
from logHandler import log
import wx
Expand All @@ -30,9 +30,10 @@
getZoomLevel,
getPanStep,
getFilter,
ZoomLevel,
isTrueCentered,
setZoomLevel,
shouldKeepMouseCentered,
ZoomLevel,
)
from .utils.focusManager import FocusManager

Expand Down Expand Up @@ -79,6 +80,7 @@ def zoomLevel(self, value: float) -> None:
closestZoom = min(validZoomValues, key=lambda x: abs(x - value))
log.warning(f"Invalid zoom level {value}, using closest valid value {closestZoom}")
value = closestZoom
setZoomLevel(value)
self._zoomLevel = value

def _getScreenLimits(self) -> tuple[int, int, int, int]:
Expand Down
2 changes: 2 additions & 0 deletions tests/unit/test_magnifier/test_magnifier.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,8 @@ def setUp(self):
super().setUp()

self.magnifier = Magnifier()
self.magnifier.zoomLevel = 2.0 # Set a default zoom level for testing
self.magnifier._filterType = Filter.NORMAL # Set a default filter type for testing
self.screenWidth = getPrimaryDisplayOrientation().width
self.screenHeight = getPrimaryDisplayOrientation().height

Expand Down
Loading