feat(ui): Integrate imgui_markdown and professional fonts for rich text rendering
This commit is contained in:
36
src/gui_2.py
36
src/gui_2.py
@@ -22,6 +22,7 @@ from src import log_pruner
|
||||
from src import models
|
||||
from src import app_controller
|
||||
from src import mcp_client
|
||||
from src import markdown_helper
|
||||
import re
|
||||
|
||||
from pydantic import BaseModel
|
||||
@@ -520,6 +521,13 @@ class App:
|
||||
if self.show_windows.get("Diagnostics", False):
|
||||
self._render_diagnostics_panel()
|
||||
|
||||
if self.show_windows.get("Markdown Test", False):
|
||||
exp, opened = imgui.begin("Markdown Test", self.show_windows["Markdown Test"])
|
||||
self.show_windows["Markdown Test"] = bool(opened)
|
||||
if exp:
|
||||
self._render_markdown_test()
|
||||
imgui.end()
|
||||
|
||||
self.perf_monitor.end_frame()
|
||||
# ---- Modals / Popups
|
||||
with self._pending_dialog_lock:
|
||||
@@ -1212,6 +1220,29 @@ class App:
|
||||
if self.perf_profiling_enabled: self.perf_monitor.end_component("_render_diagnostics_panel")
|
||||
imgui.end()
|
||||
|
||||
def _render_markdown_test(self) -> None:
|
||||
imgui.text("Markdown Test Panel")
|
||||
imgui.separator()
|
||||
md = """
|
||||
# Header 1
|
||||
## Header 2
|
||||
### Header 3
|
||||
This is **bold** text and *italic* text.
|
||||
And ***bold italic*** text.
|
||||
|
||||
* List item 1
|
||||
* List item 2
|
||||
* Sub-item
|
||||
|
||||
[Link to Google](https://google.com)
|
||||
|
||||
```python
|
||||
def hello():
|
||||
print("Markdown works!")
|
||||
```
|
||||
"""
|
||||
markdown_helper.render(md)
|
||||
|
||||
|
||||
def _render_files_panel(self) -> None:
|
||||
if self.perf_profiling_enabled: self.perf_monitor.start_component("_render_files_panel")
|
||||
@@ -2154,7 +2185,7 @@ class App:
|
||||
self.bulk_block()
|
||||
# Table
|
||||
flags = imgui.TableFlags_.borders | imgui.TableFlags_.row_bg | imgui.TableFlags_.resizable | imgui.TableFlags_.scroll_y
|
||||
if imgui.begin_table("ticket_queue_table", 6, flags, imgui.ImVec2(0, 300)):
|
||||
if imgui.begin_table("ticket_queue_table", 7, flags, imgui.ImVec2(0, 300)):
|
||||
imgui.table_setup_column("Select", imgui.TableColumnFlags_.width_fixed, 40)
|
||||
imgui.table_setup_column("ID", imgui.TableColumnFlags_.width_fixed, 80)
|
||||
imgui.table_setup_column("Priority", imgui.TableColumnFlags_.width_fixed, 100)
|
||||
@@ -2858,7 +2889,8 @@ class App:
|
||||
self.runner_params.callbacks.load_additional_fonts = self._load_fonts
|
||||
self.runner_params.callbacks.post_init = self._post_init
|
||||
self._fetch_models(self.current_provider)
|
||||
immapp.run(self.runner_params)
|
||||
md_options = markdown_helper.get_renderer().options
|
||||
immapp.run(self.runner_params, add_ons_params=immapp.AddOnsParams(with_markdown_options=md_options))
|
||||
# On exit
|
||||
self.shutdown()
|
||||
session_logger.close_session()
|
||||
|
||||
Reference in New Issue
Block a user