Files
RFP_Infinity-Vis/app/ui/preview_modes.py

25 lines
1.0 KiB
Python

from __future__ import annotations
PREVIEW_MODE_TILE = "tile"
PREVIEW_MODE_TECHNICAL = "technical"
PREVIEW_MODE_LEDS = "leds"
PREVIEW_MODES = (PREVIEW_MODE_TILE, PREVIEW_MODE_TECHNICAL, PREVIEW_MODE_LEDS)
def normalize_preview_mode(mode: str | None) -> str:
normalized = str(mode or PREVIEW_MODE_TILE).strip().lower()
return normalized if normalized in PREVIEW_MODES else PREVIEW_MODE_TILE
def preview_mode_flags(mode: str) -> dict[str, bool]:
preview_mode = normalize_preview_mode(mode)
return {
"show_fill": preview_mode in {PREVIEW_MODE_TILE, PREVIEW_MODE_TECHNICAL},
"show_labels": preview_mode in {PREVIEW_MODE_TILE, PREVIEW_MODE_TECHNICAL},
"show_leds": preview_mode in {PREVIEW_MODE_TECHNICAL, PREVIEW_MODE_LEDS},
"show_guides": preview_mode == PREVIEW_MODE_TECHNICAL,
"show_direction": preview_mode == PREVIEW_MODE_TECHNICAL,
"show_overlay_title": preview_mode == PREVIEW_MODE_TECHNICAL,
"show_technical_meta": preview_mode == PREVIEW_MODE_TECHNICAL,
}