(&mut self)
| 2044 | } |
| 2045 | |
| 2046 | fn handle_copy_session(&mut self) { |
| 2047 | let Some(session_id) = self.current_session_id() else { |
| 2048 | self.alert_dialog.set_message("No active session to copy."); |
| 2049 | self.alert_dialog.open(); |
| 2050 | return; |
| 2051 | }; |
| 2052 | match self.build_session_transcript(&session_id) { |
| 2053 | Some(text) => { |
| 2054 | if let Err(err) = Clipboard::write_text(&text) { |
| 2055 | self.alert_dialog |
| 2056 | .set_message(&format!("Failed to copy transcript to clipboard:\n{}", err)); |
| 2057 | self.alert_dialog.open(); |
| 2058 | } else { |
| 2059 | self.alert_dialog |
| 2060 | .set_message("Session transcript copied to clipboard."); |
| 2061 | self.alert_dialog.open(); |
| 2062 | } |
| 2063 | } |
| 2064 | None => { |
| 2065 | self.alert_dialog |
| 2066 | .set_message("No transcript available for current session."); |
| 2067 | self.alert_dialog.open(); |
| 2068 | } |
| 2069 | } |
| 2070 | } |
| 2071 | |
| 2072 | fn handle_open_timeline(&mut self) { |
| 2073 | let Some(session_id) = self.current_session_id() else { |
no test coverage detected