From af6072627e5c2ba40863d787f8d3092a6e30750e Mon Sep 17 00:00:00 2001 From: Tanner Collin Date: Wed, 4 Mar 2026 17:20:11 -0700 Subject: [PATCH] fix: Clear screen after printing labels and forum searches Co-authored-by: aider (gemini/gemini-2.5-pro) --- tui.py | 43 ++++++++++++++++++++++++++++++++++--------- 1 file changed, 34 insertions(+), 9 deletions(-) diff --git a/tui.py b/tui.py index 18df2d1..4c89441 100644 --- a/tui.py +++ b/tui.py @@ -658,53 +658,77 @@ class LabelScreen(Screen): self.is_typing = True else: self.try_highlight(c) elif self.sub_screen == 'tool': - if c == KEY_ESCAPE: self.on_enter() + if c == KEY_ESCAPE: + self.on_enter() + self.stdscr.erase() elif c == KEY_ENTER: if len(self.label_tool) > 1: self.stdscr.addstr(15, 4, 'Printing...'); self.stdscr.refresh() try: utils.print_tool_label(self.label_tool[:-1]) except: self.stdscr.addstr(15, 4, 'Error.'); self.stdscr.refresh(); time.sleep(2) self.on_enter() + self.stdscr.erase() elif c <= 57 and c >= 48: self.label_tool = self.handle_text_input(c, self.label_tool) elif self.sub_screen == 'material_name': - if c == KEY_ESCAPE: self.on_enter() + if c == KEY_ESCAPE: + self.on_enter() + self.stdscr.erase() elif c == KEY_ENTER and len(self.label_material_name) > 1: self.sub_screen = 'material_contact'; self.label_material_contact = '_' else: self.label_material_name = self.handle_text_input(c, self.label_material_name) elif self.sub_screen == 'material_contact': - if c == KEY_ESCAPE: self.on_enter() + if c == KEY_ESCAPE: + self.on_enter() + self.stdscr.erase() elif c == KEY_ENTER and len(self.label_material_contact) > 1: self.stdscr.addstr(15, 4, 'Printing...'); self.stdscr.refresh() utils.print_sheet_label(self.label_material_name[:-1], self.label_material_contact[:-1]) self.on_enter() + self.stdscr.erase() else: self.label_material_contact = self.handle_text_input(c, self.label_material_contact) elif self.sub_screen == 'generic': - if c == KEY_ESCAPE: self.on_enter() + if c == KEY_ESCAPE: + self.on_enter() + self.stdscr.erase() elif c == KEY_ENTER and len(self.label_generic) > 1: self.stdscr.addstr(15, 4, 'Printing...'); self.stdscr.refresh() try: utils.print_generic_label(self.label_generic[:-1]) except: self.stdscr.addstr(15, 4, 'Error.'); self.stdscr.refresh(); time.sleep(2) self.on_enter() + self.stdscr.erase() else: self.label_generic = self.handle_text_input(c, self.label_generic) elif self.sub_screen == 'consumable': - if c == KEY_ESCAPE: self.on_enter() + if c == KEY_ESCAPE: + self.on_enter() + self.stdscr.erase() elif c == KEY_ENTER and len(self.label_consumable) > 1: self.stdscr.addstr(15, 4, 'Printing...'); self.stdscr.refresh() try: utils.print_consumable_label(self.label_consumable[:-1]) except: self.stdscr.addstr(15, 4, 'Error.'); self.stdscr.refresh(); time.sleep(2) self.on_enter() + self.stdscr.erase() else: self.label_consumable = self.handle_text_input(c, self.label_consumable) elif self.sub_screen == 'forum_search': - if c == KEY_ESCAPE: self.on_enter() + if c == KEY_ESCAPE: + self.on_enter() + self.stdscr.erase() elif c == KEY_ENTER and len(self.label_forum_search) > 2: self.stdscr.addstr(16, 4, 'Searching...'); self.stdscr.refresh() - try: self.search_results = utils.search_forum_thread(self.label_forum_search[:-1]) - except: self.stdscr.addstr(16, 4, 'Error.'); self.stdscr.refresh(); time.sleep(2) + try: + self.search_results = utils.search_forum_thread(self.label_forum_search[:-1]) + except: + self.stdscr.addstr(16, 4, 'Error.'); self.stdscr.refresh(); time.sleep(2) + self.on_enter() + self.stdscr.erase() + return self.sub_screen = 'forum_results' + self.stdscr.erase() else: self.label_forum_search = self.handle_text_input(c, self.label_forum_search) elif self.sub_screen == 'forum_results': - if c == KEY_ESCAPE: self.on_enter() + if c == KEY_ESCAPE: + self.on_enter() + self.stdscr.erase() elif c >= 49 and c <= 57: num = int(chr(c)) if self.search_results and num <= len(self.search_results): @@ -712,6 +736,7 @@ class LabelScreen(Screen): try: utils.print_forum_label(self.search_results[num-1]) except: self.stdscr.addstr(15, 4, 'Error.'); self.stdscr.refresh(); time.sleep(2) self.on_enter() + self.stdscr.erase() else: self.try_highlight(c) else: self.try_highlight(c)