mirror of
https://github.com/sunnypilot/sunnypilot.git
synced 2026-04-07 01:03:56 +08:00
ui: make confirm callback required for confirmation dialog (#37585)
* always required! * reoreder * reorder again * make required so better order * not clear better
This commit is contained in:
@@ -220,15 +220,14 @@ class TrainingGuideRecordFront(NavScroller):
|
||||
ui_state.params.put_bool_nonblocking("RecordFront", True)
|
||||
continue_callback()
|
||||
|
||||
gui_app.push_widget(BigConfirmationDialog("allow data uploading", "icons_mici/setup/driver_monitoring/dm_check.png", exit_on_confirm=False,
|
||||
confirm_callback=on_accept))
|
||||
gui_app.push_widget(BigConfirmationDialog("allow data uploading", "icons_mici/setup/driver_monitoring/dm_check.png", on_accept, exit_on_confirm=False))
|
||||
|
||||
def show_decline_dialog():
|
||||
def on_decline():
|
||||
ui_state.params.put_bool_nonblocking("RecordFront", False)
|
||||
continue_callback()
|
||||
|
||||
gui_app.push_widget(BigConfirmationDialog("no, don't upload", "icons_mici/setup/cancel.png", exit_on_confirm=False, confirm_callback=on_decline))
|
||||
gui_app.push_widget(BigConfirmationDialog("no, don't upload", "icons_mici/setup/cancel.png", on_decline, exit_on_confirm=False))
|
||||
|
||||
self._accept_button = BigCircleButton("icons_mici/setup/driver_monitoring/dm_check.png")
|
||||
self._accept_button.set_click_callback(show_accept_dialog)
|
||||
@@ -324,12 +323,11 @@ class TermsPage(Scroller):
|
||||
super().__init__()
|
||||
|
||||
def show_accept_dialog():
|
||||
gui_app.push_widget(BigConfirmationDialog("accept\nterms", "icons_mici/setup/driver_monitoring/dm_check.png",
|
||||
confirm_callback=on_accept))
|
||||
gui_app.push_widget(BigConfirmationDialog("accept\nterms", "icons_mici/setup/driver_monitoring/dm_check.png", on_accept))
|
||||
|
||||
def show_decline_dialog():
|
||||
gui_app.push_widget(BigConfirmationDialog("decline &\nuninstall", "icons_mici/setup/cancel.png",
|
||||
red=True, exit_on_confirm=False, confirm_callback=on_decline))
|
||||
gui_app.push_widget(BigConfirmationDialog("decline &\nuninstall", "icons_mici/setup/cancel.png", on_decline,
|
||||
red=True, exit_on_confirm=False))
|
||||
|
||||
self._accept_button = BigCircleButton("icons_mici/setup/driver_monitoring/dm_check.png")
|
||||
self._accept_button.set_click_callback(show_accept_dialog)
|
||||
|
||||
@@ -85,9 +85,8 @@ def _engaged_confirmation_callback(callback: Callable, action_text: str):
|
||||
# TODO: check
|
||||
icon = "icons_mici/settings/comma_icon.png"
|
||||
|
||||
dlg: BigConfirmationDialog | BigDialog = BigConfirmationDialog(f"slide to\n{action_text.lower()}", icon, red=red,
|
||||
exit_on_confirm=action_text == "reset",
|
||||
confirm_callback=confirm_callback)
|
||||
dlg: BigConfirmationDialog | BigDialog = BigConfirmationDialog(f"slide to\n{action_text.lower()}", icon, confirm_callback,
|
||||
red=red, exit_on_confirm=action_text == "reset")
|
||||
gui_app.push_widget(dlg)
|
||||
else:
|
||||
dlg = BigDialog(f"Disengage to {action_text}", "")
|
||||
|
||||
@@ -246,8 +246,7 @@ class ForgetButton(Widget):
|
||||
|
||||
def _handle_mouse_release(self, mouse_pos: MousePos):
|
||||
super()._handle_mouse_release(mouse_pos)
|
||||
dlg = BigConfirmationDialog("slide to forget", "icons_mici/settings/network/new/trash.png", red=True,
|
||||
confirm_callback=self._forget_network)
|
||||
dlg = BigConfirmationDialog("slide to forget", "icons_mici/settings/network/new/trash.png", self._forget_network, red=True)
|
||||
gui_app.push_widget(dlg)
|
||||
|
||||
def _render(self, _):
|
||||
|
||||
@@ -72,7 +72,7 @@ def test_dialogs_do_not_leak():
|
||||
lambda: MiciTrainingGuide(lambda: None),
|
||||
lambda: MiciOnboardingWindow(lambda: None),
|
||||
lambda: BigDialog("test", "test"),
|
||||
lambda: BigConfirmationDialog("test", "icons_mici/settings/network/new/trash.png"),
|
||||
lambda: BigConfirmationDialog("test", "icons_mici/settings/network/new/trash.png", lambda: None),
|
||||
lambda: BigInputDialog("test"),
|
||||
lambda: MiciFccModal(text="test"),
|
||||
# tici
|
||||
|
||||
@@ -64,9 +64,8 @@ class BigDialog(BigDialogBase):
|
||||
|
||||
|
||||
class BigConfirmationDialog(BigDialogBase):
|
||||
def __init__(self, title: str, icon: str, red: bool = False,
|
||||
exit_on_confirm: bool = True,
|
||||
confirm_callback: Callable | None = None):
|
||||
def __init__(self, title: str, icon: str, confirm_callback: Callable[[], None],
|
||||
exit_on_confirm: bool = True, red: bool = False):
|
||||
super().__init__()
|
||||
self._confirm_callback = confirm_callback
|
||||
self._exit_on_confirm = exit_on_confirm
|
||||
|
||||
@@ -71,18 +71,15 @@ class Reset(Scroller):
|
||||
self._reset_failed_page = ResetFailedPage()
|
||||
|
||||
def show_confirm_dialog():
|
||||
dialog = BigConfirmationDialog("erase\ndevice", "icons_mici/settings/device/uninstall.png", red=True,
|
||||
confirm_callback=self.start_reset)
|
||||
dialog = BigConfirmationDialog("erase\ndevice", "icons_mici/settings/device/uninstall.png", self.start_reset, red=True)
|
||||
gui_app.push_widget(dialog)
|
||||
|
||||
def show_cancel_dialog():
|
||||
dialog = BigConfirmationDialog("normal\nstartup", "icons_mici/settings/device/reboot.png",
|
||||
exit_on_confirm=False, confirm_callback=gui_app.request_close)
|
||||
dialog = BigConfirmationDialog("normal\nstartup", "icons_mici/settings/device/reboot.png", gui_app.request_close, exit_on_confirm=False)
|
||||
gui_app.push_widget(dialog)
|
||||
|
||||
def show_reboot_dialog():
|
||||
dialog = BigConfirmationDialog("reboot\ndevice", "icons_mici/settings/device/reboot.png",
|
||||
exit_on_confirm=False, confirm_callback=HARDWARE.reboot)
|
||||
dialog = BigConfirmationDialog("reboot\ndevice", "icons_mici/settings/device/reboot.png", HARDWARE.reboot, exit_on_confirm=False)
|
||||
gui_app.push_widget(dialog)
|
||||
|
||||
self._reset_button = BigCircleButton("icons_mici/settings/device/uninstall.png", red=True)
|
||||
|
||||
@@ -248,8 +248,7 @@ class FailedPage(NavScroller):
|
||||
self.set_back_callback(retry_callback)
|
||||
|
||||
def show_reboot_dialog():
|
||||
dialog = BigConfirmationDialog("slide to reboot", "icons_mici/settings/device/reboot.png",
|
||||
exit_on_confirm=False, confirm_callback=HARDWARE.reboot)
|
||||
dialog = BigConfirmationDialog("slide to reboot", "icons_mici/settings/device/reboot.png", HARDWARE.reboot, exit_on_confirm=False)
|
||||
gui_app.push_widget(dialog)
|
||||
|
||||
reboot_button = BigCircleButton("icons_mici/settings/device/reboot.png", red=False, icon_size=(64, 70))
|
||||
|
||||
Reference in New Issue
Block a user