From 63c44a11ac6b10a617d785224ec147597412c99b Mon Sep 17 00:00:00 2001 From: moon2 <moon2protonmail@protonmail.com> Date: Thu, 23 Nov 2023 18:42:26 +0100 Subject: [PATCH] Revert "audio_config: Push submenus onto the view stack" This reverts commit 6df6c9a06eb3cadcad0e1a53b4ce0259b294b05c. Commit breaks changing of values. --- python_payload/apps/audio_config/__init__.py | 113 +++++++++---------- 1 file changed, 54 insertions(+), 59 deletions(-) diff --git a/python_payload/apps/audio_config/__init__.py b/python_payload/apps/audio_config/__init__.py index 827a606eb6..db87a1cfe5 100644 --- a/python_payload/apps/audio_config/__init__.py +++ b/python_payload/apps/audio_config/__init__.py @@ -1,5 +1,4 @@ from st3m.application import Application -from st3m.ui.view import View, ViewTransitionDirection import math, random, sys_display from st3m import settings import audio @@ -272,9 +271,11 @@ class Drawable: class Submenu(Drawable): def __init__(self, press): super().__init__(press) + self.submenu_active = False def draw(self, ctx): - self._draw(ctx) + if self.submenu_active: + self._draw(ctx) def _draw(self, ctx): # override w specific implementation! @@ -564,18 +565,6 @@ class Press: self.select_pressed = False -class SubView(View): - def __init__(self, menu, app): - self.menu = menu - self.app = app - - def think(self, ins, delta_ms): - self.app.think(ins, delta_ms) - - def draw(self, ctx): - self.menu.draw(ctx) - - class App(Application): def __init__(self, app_ctx): super().__init__(app_ctx) @@ -607,45 +596,52 @@ class App(Application): def draw(self, ctx): self.ctx = ctx - self.draw_bg() - ctx.save() - ctx.rgb(*colours.GO_GREEN) - ctx.rotate(math.tau / 10) - for i in range(5): - if i == 2: + main_menu_active = True + for menu in self.menus: + menu.draw(self.ctx) + if menu.submenu_active: + main_menu_active = False + + if main_menu_active: + self.draw_bg() + ctx.save() + ctx.rgb(*colours.GO_GREEN) + ctx.rotate(math.tau / 10) + for i in range(5): + if i == 2: + ctx.rotate(math.tau / 5) + continue + ctx.round_rectangle(-40, -110, 80, 45, 6).stroke() ctx.rotate(math.tau / 5) - continue - ctx.round_rectangle(-40, -110, 80, 45, 6).stroke() - ctx.rotate(math.tau / 5) - ctx.restore() + ctx.restore() - ctx.text_align = ctx.CENTER - ctx.rotate(math.tau / 10) - ctx.move_to(0, -91) - ctx.text("volume") - ctx.move_to(0, -74) - ctx.text("control") - ctx.move_to(0, 0) - ctx.rotate(math.tau * (1 / 5 + 1 / 2)) - ctx.move_to(0, 92) - ctx.text("inputs") - ctx.move_to(0, 0) - ctx.rotate(math.tau * 2 / 5) - ctx.move_to(0, 92) - ctx.text("speaker") - ctx.move_to(0, 0) - ctx.rotate(math.tau * (1 / 5 + 1 / 2)) - ctx.move_to(0, -91) - ctx.text("head") - ctx.move_to(0, -74) - ctx.text("phones") - ctx.rotate(math.tau / 10) - ctx.move_to(0, 0) - ctx.text("audio config") - ctx.rgb(0.7, 0.7, 0.7) - ctx.font_size = 18 - ctx.move_to(0, 20) - ctx.text("exit to save") + ctx.text_align = ctx.CENTER + ctx.rotate(math.tau / 10) + ctx.move_to(0, -91) + ctx.text("volume") + ctx.move_to(0, -74) + ctx.text("control") + ctx.move_to(0, 0) + ctx.rotate(math.tau * (1 / 5 + 1 / 2)) + ctx.move_to(0, 92) + ctx.text("inputs") + ctx.move_to(0, 0) + ctx.rotate(math.tau * 2 / 5) + ctx.move_to(0, 92) + ctx.text("speaker") + ctx.move_to(0, 0) + ctx.rotate(math.tau * (1 / 5 + 1 / 2)) + ctx.move_to(0, -91) + ctx.text("head") + ctx.move_to(0, -74) + ctx.text("phones") + ctx.rotate(math.tau / 10) + ctx.move_to(0, 0) + ctx.text("audio config") + ctx.rgb(0.7, 0.7, 0.7) + ctx.font_size = 18 + ctx.move_to(0, 20) + ctx.text("exit to save") self.press.select_pressed = False self.press.left_pressed = False @@ -655,12 +651,12 @@ class App(Application): super().think(ins, delta_ms) for i in range(1, 10, 2): if self.input.captouch.petals[i].whole.pressed: - if not self.is_active(): - self.vm.pop() + for menu in self.menus: + menu.submenu_active = False if i < 5: - self.vm.push(SubView(self.menus[i // 2], self)) + self.menus[i // 2].submenu_active = True elif i > 5: - self.vm.push(SubView(self.menus[(i // 2) - 1], self)) + self.menus[(i // 2) - 1].submenu_active = True if ( self.input.buttons.app.right.pressed @@ -674,12 +670,11 @@ class App(Application): def on_enter(self, vm): super().on_enter(vm) - if self.vm.direction == ViewTransitionDirection.FORWARD: - settings.load_all() + settings.load_all() def on_exit(self): - if self.vm.direction == ViewTransitionDirection.BACKWARD: - settings.save_all() + settings.save_all() + super().on_exit() if __name__ == "__main__": -- GitLab