in operators.py [0:0]
def modal(self, context, event):
props = context.scene.meshgen_props
if props.state == "CANCELED" or event.type == "ESC":
self._stop_event.set()
self.add_event("CANCELED", STATUS_CANCELED, "Canceled")
return self.finish(context)
if event.type == "TIMER" and props.state == "RUNNING":
try:
while True:
message_type, content = self._output_queue.get_nowait()
if message_type == "STEP":
thought, full_output = content
self.pop_event()
self.add_event("STEP", thought, full_output)
self.add_event("THINKING", None, "Thinking...")
self.redraw(context)
elif message_type == "STEP_ERROR":
self.pop_event()
self.add_event("ERROR", content, f"Error: {content}")
self.add_event("THINKING", None, "Thinking...")
self.redraw(context)
elif message_type == "ERROR":
error_msg, full_error = content
self.pop_event()
self.add_event("ERROR", error_msg, full_error)
return self.finish(context)
elif message_type == "FINAL_ANSWER":
self.pop_event()
self.add_event("SUCCESS", content, f"Final Answer: {content}")
return self.finish(context)
elif message_type == "CANCELED":
self.pop_event()
self.add_event("CANCELED", STATUS_CANCELED, STATUS_CANCELED)
return self.finish(context)
elif message_type == "DONE":
self.pop_event()
self.add_event("ERROR", STATUS_DONE, STATUS_DONE)
return self.finish(context)
except queue.Empty:
pass
ToolManager.instance().process_tasks(context)
return {"PASS_THROUGH"}