fix: Clear screen after printing labels and forum searches

Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
This commit is contained in:
2026-03-04 17:20:11 -07:00
parent 339a58e1bf
commit af6072627e

43
tui.py
View File

@@ -658,53 +658,77 @@ class LabelScreen(Screen):
self.is_typing = True self.is_typing = True
else: self.try_highlight(c) else: self.try_highlight(c)
elif self.sub_screen == 'tool': 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: elif c == KEY_ENTER:
if len(self.label_tool) > 1: if len(self.label_tool) > 1:
self.stdscr.addstr(15, 4, 'Printing...'); self.stdscr.refresh() self.stdscr.addstr(15, 4, 'Printing...'); self.stdscr.refresh()
try: utils.print_tool_label(self.label_tool[:-1]) try: utils.print_tool_label(self.label_tool[:-1])
except: self.stdscr.addstr(15, 4, 'Error.'); self.stdscr.refresh(); time.sleep(2) except: self.stdscr.addstr(15, 4, 'Error.'); self.stdscr.refresh(); time.sleep(2)
self.on_enter() self.on_enter()
self.stdscr.erase()
elif c <= 57 and c >= 48: elif c <= 57 and c >= 48:
self.label_tool = self.handle_text_input(c, self.label_tool) self.label_tool = self.handle_text_input(c, self.label_tool)
elif self.sub_screen == 'material_name': 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: elif c == KEY_ENTER and len(self.label_material_name) > 1:
self.sub_screen = 'material_contact'; self.label_material_contact = '_' self.sub_screen = 'material_contact'; self.label_material_contact = '_'
else: self.label_material_name = self.handle_text_input(c, self.label_material_name) else: self.label_material_name = self.handle_text_input(c, self.label_material_name)
elif self.sub_screen == 'material_contact': 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: elif c == KEY_ENTER and len(self.label_material_contact) > 1:
self.stdscr.addstr(15, 4, 'Printing...'); self.stdscr.refresh() self.stdscr.addstr(15, 4, 'Printing...'); self.stdscr.refresh()
utils.print_sheet_label(self.label_material_name[:-1], self.label_material_contact[:-1]) utils.print_sheet_label(self.label_material_name[:-1], self.label_material_contact[:-1])
self.on_enter() self.on_enter()
self.stdscr.erase()
else: self.label_material_contact = self.handle_text_input(c, self.label_material_contact) else: self.label_material_contact = self.handle_text_input(c, self.label_material_contact)
elif self.sub_screen == 'generic': 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: elif c == KEY_ENTER and len(self.label_generic) > 1:
self.stdscr.addstr(15, 4, 'Printing...'); self.stdscr.refresh() self.stdscr.addstr(15, 4, 'Printing...'); self.stdscr.refresh()
try: utils.print_generic_label(self.label_generic[:-1]) try: utils.print_generic_label(self.label_generic[:-1])
except: self.stdscr.addstr(15, 4, 'Error.'); self.stdscr.refresh(); time.sleep(2) except: self.stdscr.addstr(15, 4, 'Error.'); self.stdscr.refresh(); time.sleep(2)
self.on_enter() self.on_enter()
self.stdscr.erase()
else: self.label_generic = self.handle_text_input(c, self.label_generic) else: self.label_generic = self.handle_text_input(c, self.label_generic)
elif self.sub_screen == 'consumable': 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: elif c == KEY_ENTER and len(self.label_consumable) > 1:
self.stdscr.addstr(15, 4, 'Printing...'); self.stdscr.refresh() self.stdscr.addstr(15, 4, 'Printing...'); self.stdscr.refresh()
try: utils.print_consumable_label(self.label_consumable[:-1]) try: utils.print_consumable_label(self.label_consumable[:-1])
except: self.stdscr.addstr(15, 4, 'Error.'); self.stdscr.refresh(); time.sleep(2) except: self.stdscr.addstr(15, 4, 'Error.'); self.stdscr.refresh(); time.sleep(2)
self.on_enter() self.on_enter()
self.stdscr.erase()
else: self.label_consumable = self.handle_text_input(c, self.label_consumable) else: self.label_consumable = self.handle_text_input(c, self.label_consumable)
elif self.sub_screen == 'forum_search': 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: elif c == KEY_ENTER and len(self.label_forum_search) > 2:
self.stdscr.addstr(16, 4, 'Searching...'); self.stdscr.refresh() self.stdscr.addstr(16, 4, 'Searching...'); self.stdscr.refresh()
try: self.search_results = utils.search_forum_thread(self.label_forum_search[:-1]) try:
except: self.stdscr.addstr(16, 4, 'Error.'); self.stdscr.refresh(); time.sleep(2) 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.sub_screen = 'forum_results'
self.stdscr.erase()
else: self.label_forum_search = self.handle_text_input(c, self.label_forum_search) else: self.label_forum_search = self.handle_text_input(c, self.label_forum_search)
elif self.sub_screen == 'forum_results': 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: elif c >= 49 and c <= 57:
num = int(chr(c)) num = int(chr(c))
if self.search_results and num <= len(self.search_results): 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]) try: utils.print_forum_label(self.search_results[num-1])
except: self.stdscr.addstr(15, 4, 'Error.'); self.stdscr.refresh(); time.sleep(2) except: self.stdscr.addstr(15, 4, 'Error.'); self.stdscr.refresh(); time.sleep(2)
self.on_enter() self.on_enter()
self.stdscr.erase()
else: self.try_highlight(c) else: self.try_highlight(c)
else: self.try_highlight(c) else: self.try_highlight(c)