from aarecommon.models.models import SessionsStateEnum from PySide6.QtWidgets import QVBoxLayout, QWidget from aare.gui.panels.axis_video_panel import AxisVideoPanel from aare.gui.widgets.busy_overlay import build_busy_overlay_style from aare.gui.widgets.video_image import VideoGraphicsView def _vacant_style(): return build_busy_overlay_style( is_busy=False, tell_state=None, session_state=SessionsStateEnum.Vacant ) def test_badge_drawn_once_and_hint_stripped(qtbot): # Combined-view shape: two video views stacked in one container. container = QWidget() layout = QVBoxLayout(container) first, second = VideoGraphicsView(), VideoGraphicsView() layout.addWidget(first) layout.addWidget(second) panel = AxisVideoPanel("Combined", container) qtbot.addWidget(panel) style = _vacant_style() assert style is not None and style.subtext # sample camera keeps the hint panel.set_busy_style(style) applied = first._busy_overlay_style assert applied is not None assert applied.subtext == "" # not clickable here, hint stripped assert second._busy_overlay_style is None # one badge, not one per view panel.set_busy_style(None) assert first._busy_overlay_style is None