"""
overlay_panel
デバッグ表示の切替チェックボックスを提供するパネル
"""

from PySide6.QtWidgets import QCheckBox, QGroupBox, QVBoxLayout

from pc.vision.overlay import OverlayFlags


class OverlayPanel(QGroupBox):
    """デバッグ表示の切替チェックボックス群"""

    def __init__(self) -> None:
        super().__init__("デバッグ表示")
        self._flags = OverlayFlags()
        self._setup_ui()

    def _setup_ui(self) -> None:
        """UI を構築する"""
        layout = QVBoxLayout()
        self.setLayout(layout)

        items = [
            ("二値化画像", "binary"),
            ("検出領域", "detect_region"),
            ("フィッティング曲線", "poly_curve"),
            ("行中心点", "row_centers"),
            ("Theil-Sen直線", "theil_sen"),
            ("中心線", "center_line"),
        ]
        for label, attr in items:
            cb = QCheckBox(label)
            cb.toggled.connect(
                lambda checked, a=attr: setattr(
                    self._flags, a, checked,
                ),
            )
            layout.addWidget(cb)

    def get_flags(self) -> OverlayFlags:
        """現在のオーバーレイフラグを返す"""
        return self._flags
