From 01df304f887607e88367dc8460c35c2c8ae9c6fd Mon Sep 17 00:00:00 2001 From: firestarsdog <229254897+firestarsdog@users.noreply.github.com> Date: Mon, 20 Jul 2026 17:34:17 -0400 Subject: [PATCH] Big UI: Randomizer Smandomizer --- .../settings/starpilot/driving_model.py | 56 ++++++++----------- 1 file changed, 22 insertions(+), 34 deletions(-) diff --git a/selfdrive/ui/layouts/settings/starpilot/driving_model.py b/selfdrive/ui/layouts/settings/starpilot/driving_model.py index e4d0be820..dad3676ef 100644 --- a/selfdrive/ui/layouts/settings/starpilot/driving_model.py +++ b/selfdrive/ui/layouts/settings/starpilot/driving_model.py @@ -381,16 +381,29 @@ class DrivingModelManagerView(AetherInteractiveMixin, Widget): left = x + 16 gap = 8.0 usable = width - 32.0 - sort_mode = self._controller._get_sort_mode() - n = len(_SORT_PILLS) if randomizer_on: - half = (usable - gap) / 2.0 - seg_w = (half - gap * (n - 1)) / n - mgmt_left = left + half + gap - else: - seg_w = (usable - gap * (n - 1)) / n - mgmt_left = None + blacklisted = [m.strip() for m in (self._controller._params.get("BlacklistedModels", encoding="utf-8") or "").split(",") if m.strip()] + bl_label = tr(f"Blacklist: {len(blacklisted)} blocked") if blacklisted else tr("Blacklist") + bl_w = (usable - gap) / 2 + rt_w = (usable - gap) / 2 + bl_pill = rl.Rectangle(left, pill_y, bl_w, pill_h) + draw_action_pill(bl_pill, bl_label, + with_alpha(AetherListColors.PRIMARY, 18), + with_alpha(AetherListColors.PRIMARY, 50), + AetherListColors.HEADER, font_size=28, roundness=0.35) + self._interactive_rects["mgmt:blacklist"] = bl_pill + rt_pill = rl.Rectangle(left + bl_w + gap, pill_y, rt_w, pill_h) + draw_action_pill(rt_pill, tr("Ratings"), + with_alpha(AetherListColors.PRIMARY, 18), + with_alpha(AetherListColors.PRIMARY, 50), + AetherListColors.HEADER, font_size=28, roundness=0.35) + self._interactive_rects["mgmt:ratings"] = rt_pill + return + + sort_mode = self._controller._get_sort_mode() + n = len(_SORT_PILLS) + seg_w = (usable - gap * (n - 1)) / n for i, mode in enumerate(_SORT_PILLS): seg_x = left + i * (seg_w + gap) @@ -414,25 +427,6 @@ class DrivingModelManagerView(AetherInteractiveMixin, Widget): draw_action_pill(seg_rect, label, fill, border, AetherListColors.HEADER, font_size=28, roundness=0.3) self._interactive_rects[f"sortopt:{mode}"] = seg_rect - if randomizer_on: - blacklisted = [m.strip() for m in (self._controller._params.get("BlacklistedModels", encoding="utf-8") or "").split(",") if m.strip()] - bl_label = tr(f"Blacklist: {len(blacklisted)} blocked") if blacklisted else tr("Blacklist") - mgmt_w = usable - half - gap - bl_w = min(420.0, mgmt_w * 0.62) - rt_w = min(280.0, mgmt_w - bl_w - gap) - bl_pill = rl.Rectangle(mgmt_left, pill_y, bl_w, pill_h) - draw_action_pill(bl_pill, bl_label, - with_alpha(AetherListColors.PRIMARY, 18), - with_alpha(AetherListColors.PRIMARY, 50), - AetherListColors.HEADER, font_size=28, roundness=0.35) - self._interactive_rects["mgmt:blacklist"] = bl_pill - rt_pill = rl.Rectangle(mgmt_left + bl_w + gap, pill_y, rt_w, pill_h) - draw_action_pill(rt_pill, tr("Ratings"), - with_alpha(AetherListColors.PRIMARY, 18), - with_alpha(AetherListColors.PRIMARY, 50), - AetherListColors.HEADER, font_size=28, roundness=0.35) - self._interactive_rects["mgmt:ratings"] = rt_pill - def _measure_content_height(self, width: float) -> float: sections = self._build_sections(width) if not sections: @@ -531,13 +525,7 @@ class DrivingModelManagerView(AetherInteractiveMixin, Widget): ) def _draw_model_section(self, x: float, y: float, width: float, title: str, entries: list[ModelCatalogEntry]) -> float: - trailing = "" - if title == tr("On Device"): - if self._controller._params.get_bool("ModelRandomizer"): - trailing = tr("Disable Randomizer to select") - else: - trailing = tr("Current: {}").format(self._controller._current_model_name) - draw_section_header(rl.Rectangle(x, y, width, SECTION_HEADER_HEIGHT), title, trailing_text=trailing, style=PANEL_STYLE) + draw_section_header(rl.Rectangle(x, y, width, SECTION_HEADER_HEIGHT), title, style=PANEL_STYLE) y += SECTION_HEADER_HEIGHT + SECTION_HEADER_GAP group_rect = rl.Rectangle(x, y, width, len(entries) * ROW_HEIGHT)