feat(gui): Update all text viewer usages to specify types and support markdown preview for presets

This commit is contained in:
2026-03-17 23:15:39 -04:00
parent a91b8dcc99
commit 2826ad53d8

View File

@@ -300,6 +300,7 @@ class App:
imgui.same_line() imgui.same_line()
if imgui.button("[+]##" + label + id_suffix): if imgui.button("[+]##" + label + id_suffix):
self.show_text_viewer = True self.show_text_viewer = True
self.text_viewer_type = 'markdown' if label in ('message', 'text', 'content', 'system') else 'json' if label in ('tool_calls', 'data') else 'powershell' if label == 'script' else 'text'
self.text_viewer_title = label self.text_viewer_title = label
self.text_viewer_content = content self.text_viewer_content = content
@@ -1174,15 +1175,13 @@ class App:
imgui.separator() imgui.separator()
imgui.text("Prompt Content:") imgui.text("Prompt Content:")
imgui.same_line() imgui.same_line()
if imgui.button("MD Preview" if not self._prompt_md_preview else "Edit Mode"): if imgui.button("Pop out MD Preview"):
self._prompt_md_preview = not self._prompt_md_preview self.text_viewer_title = f"Preset: {self._editing_preset_name}"
self.text_viewer_content = self._editing_preset_system_prompt
self.text_viewer_type = "markdown"
self.show_text_viewer = True
rem_y = imgui.get_content_region_avail().y rem_y = imgui.get_content_region_avail().y
if self._prompt_md_preview:
if imgui.begin_child("prompt_preview", imgui.ImVec2(-1, rem_y), True):
markdown_helper.render(self._editing_preset_system_prompt, context_id="prompt_preset_preview")
imgui.end_child()
else:
_, self._editing_preset_system_prompt = imgui.input_text_multiline("##pcont", self._editing_preset_system_prompt, imgui.ImVec2(-1, rem_y)) _, self._editing_preset_system_prompt = imgui.input_text_multiline("##pcont", self._editing_preset_system_prompt, imgui.ImVec2(-1, rem_y))
imgui.end_child() imgui.end_child()
@@ -2364,6 +2363,7 @@ def hello():
if res: if res:
self.text_viewer_title = path self.text_viewer_title = path
self.text_viewer_content = res self.text_viewer_content = res
self.text_viewer_type = Path(path).suffix.lstrip('.') if Path(path).suffix else 'text'
self.show_text_viewer = True self.show_text_viewer = True
if code_block: if code_block:
if is_nerv: imgui.push_style_color(imgui.Col_.text, vec4(80, 255, 80)) if is_nerv: imgui.push_style_color(imgui.Col_.text, vec4(80, 255, 80))
@@ -3057,7 +3057,7 @@ def hello():
script = entry.get("script", "") script = entry.get("script", "")
res = entry.get("result", "") res = entry.get("result", "")
# Use a clear, formatted combined view for the detail window # Use a clear, formatted combined view for the detail window
combined = f"COMMAND:\n{script}\n\n{'='*40}\nOUTPUT:\n{res}" combined = f"**COMMAND:**\n```powershell\n{script}\n```\n\n---\n**OUTPUT:**\n```text\n{res}\n```"
script_preview = script.replace("\n", " ")[:150] script_preview = script.replace("\n", " ")[:150]
if len(script) > 150: script_preview += "..." if len(script) > 150: script_preview += "..."
@@ -3065,6 +3065,7 @@ def hello():
if imgui.is_item_clicked(): if imgui.is_item_clicked():
self.text_viewer_title = f"Tool Call #{i+1} Details" self.text_viewer_title = f"Tool Call #{i+1} Details"
self.text_viewer_content = combined self.text_viewer_content = combined
self.text_viewer_type = 'markdown'
self.show_text_viewer = True self.show_text_viewer = True
imgui.table_next_column() imgui.table_next_column()
@@ -3074,6 +3075,7 @@ def hello():
if imgui.is_item_clicked(): if imgui.is_item_clicked():
self.text_viewer_title = f"Tool Call #{i+1} Details" self.text_viewer_title = f"Tool Call #{i+1} Details"
self.text_viewer_content = combined self.text_viewer_content = combined
self.text_viewer_type = 'markdown'
self.show_text_viewer = True self.show_text_viewer = True
imgui.end_table() imgui.end_table()