WCAG: Add reduce_motion config, bridge property, OS detection

Config default, reduceMotion Q_PROPERTY on UIBridge, Windows
SystemParametersInfo detection for prefers-reduced-motion.
This commit is contained in:
Your Name
2026-02-18 21:02:27 +02:00
parent d40c83cc45
commit a70e76b4ab
3 changed files with 32 additions and 1 deletions

View File

@@ -111,6 +111,7 @@ class UIBridge(QObject):
settingChanged = Signal(str, 'QVariant')
modelStatesChanged = Signal() # Notify UI to re-check isModelDownloaded
llmDownloadRequested = Signal()
reduceMotionChanged = Signal(bool)
def __init__(self, parent=None):
super().__init__(parent)
@@ -130,6 +131,7 @@ class UIBridge(QObject):
self._app_vram_mb = 0.0
self._app_vram_percent = 0.0
self._is_destroyed = False
self._reduce_motion = bool(ConfigManager().get("reduce_motion"))
# Start QThread Stats Worker
self.stats_worker = StatsWorker()
@@ -277,6 +279,8 @@ class UIBridge(QObject):
ConfigManager().set(key, value)
if key == "ui_scale":
self.uiScale = float(value)
if key == "reduce_motion":
self.reduceMotion = bool(value)
self.settingChanged.emit(key, value) # Notify listeners (e.g. Overlay)
@Property(float, notify=uiScaleChanged)
@@ -288,6 +292,15 @@ class UIBridge(QObject):
self._ui_scale = val
self.uiScaleChanged.emit(val)
@Property(bool, notify=reduceMotionChanged)
def reduceMotion(self): return self._reduce_motion
@reduceMotion.setter
def reduceMotion(self, val):
if self._reduce_motion != val:
self._reduce_motion = val
self.reduceMotionChanged.emit(val)
@Property(float, notify=appCpuChanged)
def appCpu(self): return self._app_cpu