add root readme
This commit is contained in:
@@ -18,6 +18,7 @@ from cht.ui.monitor import MonitorWidget
|
||||
from cht.ui.waveform import WaveformWidget
|
||||
from cht.ui.frames_panel import FramesPanel
|
||||
from cht.ui.transcript_panel import TranscriptPanel
|
||||
from cht.ui.summary_panel import SummaryPanel
|
||||
from cht.ui.keyboard import KeyboardManager, KEY_LEFT, KEY_RIGHT, KEY_UP, KEY_DOWN, KEY_RETURN, KEY_KP_ENTER, KEY_ESCAPE, KEY_DELETE
|
||||
from cht.ui.agent_output import AgentOutputPanel
|
||||
from cht.ui.agent_input import AgentInputPanel
|
||||
@@ -261,6 +262,9 @@ class ChtWindow(Adw.ApplicationWindow):
|
||||
self._update_scrub_bar_manifest()
|
||||
self._populate_model_dropdown()
|
||||
|
||||
self._summary_panel.bind_session(mgr.session_dir)
|
||||
self._summary_panel.set_streaming(False)
|
||||
|
||||
# Show "Continue" since there's an active session to resume
|
||||
self._connect_btn.set_label("Continue")
|
||||
|
||||
@@ -328,6 +332,11 @@ class ChtWindow(Adw.ApplicationWindow):
|
||||
self._agent_output.load_thread(self._agent.thread)
|
||||
|
||||
self.set_title(f"{APP_NAME} — {mgr.session_id}")
|
||||
|
||||
self._summary_panel.bind_session(None)
|
||||
self._summary_panel.set_streaming(True)
|
||||
self._right_stack.set_visible_child_name("live")
|
||||
|
||||
log.info("Waiting for sender...")
|
||||
|
||||
def _on_live_toggle(self):
|
||||
@@ -513,6 +522,7 @@ class ChtWindow(Adw.ApplicationWindow):
|
||||
# Stop live player before transitioning to review mode
|
||||
self._monitor.reset()
|
||||
self._load_session(last_session_id)
|
||||
self._right_stack.set_visible_child_name("summary")
|
||||
return
|
||||
|
||||
# Full reset — only when not reloading
|
||||
@@ -527,6 +537,8 @@ class ChtWindow(Adw.ApplicationWindow):
|
||||
self._known_frames = set()
|
||||
self._frames_panel.clear()
|
||||
self._transcript_panel.clear()
|
||||
self._summary_panel.bind_session(None)
|
||||
self._right_stack.set_visible_child_name("live")
|
||||
self.set_title(APP_NAME)
|
||||
|
||||
def _on_close(self, *args):
|
||||
@@ -568,17 +580,21 @@ class ChtWindow(Adw.ApplicationWindow):
|
||||
self._timeline_controls.scrub_bar.connect("scrub-position", self._on_scrub_position)
|
||||
right_box.append(self._timeline_controls)
|
||||
|
||||
# Frames
|
||||
# ViewStack: Live (frames/transcript/agent) ↔ Summary (post-session export)
|
||||
self._right_stack = Adw.ViewStack()
|
||||
self._right_stack.set_vexpand(True)
|
||||
|
||||
live_box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, spacing=2)
|
||||
live_box.set_vexpand(True)
|
||||
|
||||
frames_frame = Gtk.Frame()
|
||||
frames_frame.set_child(self._frames_panel)
|
||||
right_box.append(frames_frame)
|
||||
live_box.append(frames_frame)
|
||||
|
||||
# Transcript
|
||||
transcript_frame = Gtk.Frame()
|
||||
transcript_frame.set_child(self._transcript_panel)
|
||||
right_box.append(transcript_frame)
|
||||
live_box.append(transcript_frame)
|
||||
|
||||
# Agent input
|
||||
self._agent_input = AgentInputPanel()
|
||||
self._agent_input.connect("send-requested", lambda p, text: self._send_message(text or None))
|
||||
self._agent_input.connect("action-requested", lambda p, verb: self._send_action(verb))
|
||||
@@ -586,7 +602,20 @@ class ChtWindow(Adw.ApplicationWindow):
|
||||
self._agent_input.connect("lang-changed", self._on_lang_changed)
|
||||
self._agent_input.connect("history-toggled", lambda p, v: setattr(self._agent, "include_history", v))
|
||||
self._agent_input.connect("permission-changed", self._on_permission_changed)
|
||||
right_box.append(self._agent_input)
|
||||
live_box.append(self._agent_input)
|
||||
|
||||
live_page = self._right_stack.add_titled(live_box, "live", "Live")
|
||||
live_page.set_icon_name("video-display-symbolic")
|
||||
|
||||
self._summary_panel = SummaryPanel()
|
||||
summary_page = self._right_stack.add_titled(self._summary_panel, "summary", "Summary")
|
||||
summary_page.set_icon_name("text-x-generic-symbolic")
|
||||
|
||||
switcher = Adw.ViewSwitcher()
|
||||
switcher.set_stack(self._right_stack)
|
||||
switcher.set_policy(Adw.ViewSwitcherPolicy.WIDE)
|
||||
right_box.append(switcher)
|
||||
right_box.append(self._right_stack)
|
||||
|
||||
return right_box
|
||||
|
||||
|
||||
Reference in New Issue
Block a user