ui: move all toggles menu items into cruise menu and hide toggles menu

This commit is contained in:
Comma Device
2026-08-16 16:57:03 +08:00
parent 0a020b35c5
commit 30440c923e
2 changed files with 12 additions and 2 deletions
@@ -7,9 +7,10 @@ See the LICENSE.md file in the root directory for more details.
from enum import IntEnum
from openpilot.selfdrive.ui.sunnypilot.layouts.settings.cruise_sub_layouts.speed_limit_settings import SpeedLimitSettingsLayout
from openpilot.selfdrive.ui.layouts.settings.toggles import TogglesLayout
from openpilot.selfdrive.ui.ui_state import ui_state
from openpilot.system.ui.lib.multilang import tr, tr_noop
from openpilot.system.ui.sunnypilot.widgets.list_view import toggle_item_sp, option_item_sp, simple_button_item_sp
from openpilot.system.ui.sunnypilot.widgets.list_view import toggle_item_sp, option_item_sp, simple_button_item_sp, LineSeparatorSP
from openpilot.system.ui.widgets import Widget
from openpilot.system.ui.widgets.scroller_tici import Scroller
@@ -36,6 +37,7 @@ class CruiseLayout(Widget):
super().__init__()
self._current_panel = PanelType.CRUISE
self._speed_limit_layout = SpeedLimitSettingsLayout(lambda: self._set_current_panel(PanelType.CRUISE))
self._toggles_layout = TogglesLayout()
items = self._initialize_items()
self._scroller = Scroller(items, line_separator=True, spacing=0)
@@ -88,6 +90,11 @@ class CruiseLayout(Widget):
param="DynamicExperimentalControl")
items = [
self._toggles_layout._toggles["ExperimentalMode"],
self._toggles_layout._toggles["LongitudinalPersonality"],
self._toggles_layout._toggles["IsLdwEnabled"],
self._toggles_layout._toggles["IsMetric"],
LineSeparatorSP(40),
self.dec_toggle,
self.scc_v_toggle,
self.custom_acc_toggle,
@@ -105,6 +112,7 @@ class CruiseLayout(Widget):
def show_event(self):
self._set_current_panel(PanelType.CRUISE)
self._scroller.show_event()
self._toggles_layout._update_toggles()
self.icbm_toggle.show_description(True)
self.custom_acc_toggle.show_description(True)
@@ -115,6 +123,8 @@ class CruiseLayout(Widget):
def _update_state(self):
super()._update_state()
self._toggles_layout._update_state()
self._toggles_layout._update_toggles()
if ui_state.CP is not None and ui_state.CP_SP is not None:
has_icbm = ui_state.has_icbm
@@ -113,7 +113,7 @@ class SettingsLayoutSP(OP.SettingsLayout):
OP.PanelType.DEVICE: PanelInfo(tr_noop("Device"), DeviceLayoutSP(), icon="../../sunnypilot/selfdrive/assets/offroad/icon_home.png"),
OP.PanelType.NETWORK: PanelInfo(tr_noop("Network"), NetworkUISP(wifi_manager), icon="icons/network.png"),
# OP.PanelType.SUNNYLINK: PanelInfo(tr_noop("sunnylink"), SunnylinkLayout(), icon="icons/wifi_strength_full.png"), # hidden
OP.PanelType.TOGGLES: PanelInfo(tr_noop("Toggles"), TogglesLayout(), icon="../../sunnypilot/selfdrive/assets/offroad/icon_toggle.png"),
# OP.PanelType.TOGGLES: PanelInfo(tr_noop("Toggles"), TogglesLayout(), icon="../../sunnypilot/selfdrive/assets/offroad/icon_toggle.png"), # hidden, moved into Cruise
OP.PanelType.SOFTWARE: PanelInfo(tr_noop("Software"), SoftwareLayoutSP(), icon="../../sunnypilot/selfdrive/assets/offroad/icon_software.png"),
OP.PanelType.MODELS: PanelInfo(tr_noop("Models"), ModelsLayout(), icon="../../sunnypilot/selfdrive/assets/offroad/icon_models.png"),
OP.PanelType.STEERING: PanelInfo(tr_noop("Steering"), SteeringLayout(), icon="../../sunnypilot/selfdrive/assets/offroad/icon_lateral.png"),