feat(ui): Implement manual skeleton context injection
This commit is contained in:
39
src/gui_2.py
39
src/gui_2.py
@@ -744,6 +744,42 @@ class App:
|
||||
else:
|
||||
imgui.input_text_multiline("##tv_c", self.text_viewer_content, imgui.ImVec2(-1, -1), imgui.InputTextFlags_.read_only)
|
||||
imgui.end()
|
||||
# Inject File Modal
|
||||
if getattr(self, "show_inject_modal", False):
|
||||
imgui.open_popup("Inject File")
|
||||
self.show_inject_modal = False
|
||||
if imgui.begin_popup_modal("Inject File", None, imgui.WindowFlags_.always_auto_resize)[0]:
|
||||
files = self.project.get('files', {}).get('paths', [])
|
||||
imgui.text("Select File to Inject:")
|
||||
imgui.begin_child("inject_file_list", imgui.ImVec2(0, 200), True)
|
||||
for f_path in files:
|
||||
is_selected = (self._inject_file_path == f_path)
|
||||
if imgui.selectable(f_path, is_selected)[0]:
|
||||
self._inject_file_path = f_path
|
||||
self.controller._update_inject_preview()
|
||||
imgui.end_child()
|
||||
imgui.separator()
|
||||
if imgui.radio_button("Skeleton", self._inject_mode == "skeleton"):
|
||||
self._inject_mode = "skeleton"
|
||||
self.controller._update_inject_preview()
|
||||
imgui.same_line()
|
||||
if imgui.radio_button("Full", self._inject_mode == "full"):
|
||||
self._inject_mode = "full"
|
||||
self.controller._update_inject_preview()
|
||||
imgui.separator()
|
||||
imgui.text("Preview:")
|
||||
imgui.begin_child("inject_preview_area", imgui.ImVec2(600, 300), True)
|
||||
imgui.text_unformatted(self._inject_preview)
|
||||
imgui.end_child()
|
||||
imgui.separator()
|
||||
if imgui.button("Inject", imgui.ImVec2(120, 0)):
|
||||
formatted = f"## File: {self._inject_file_path}\n```python\n{self._inject_preview}\n```\n"
|
||||
self.ui_ai_input += formatted
|
||||
imgui.close_current_popup()
|
||||
imgui.same_line()
|
||||
if imgui.button("Cancel", imgui.ImVec2(120, 0)):
|
||||
imgui.close_current_popup()
|
||||
imgui.end_popup()
|
||||
except Exception as e:
|
||||
print(f"ERROR in _gui_func: {e}")
|
||||
import traceback
|
||||
@@ -1543,6 +1579,9 @@ class App:
|
||||
with self._send_thread_lock:
|
||||
if self.send_thread and self.send_thread.is_alive():
|
||||
send_busy = True
|
||||
if imgui.button("Inject File"):
|
||||
self.show_inject_modal = True
|
||||
imgui.same_line()
|
||||
if (imgui.button("Gen + Send") or ctrl_enter) and not send_busy:
|
||||
self._handle_generate_send()
|
||||
imgui.same_line()
|
||||
|
||||
Reference in New Issue
Block a user