Private
Public Access
1
0

reorg: message-list -> transcript

This commit is contained in:
2025-05-03 22:47:56 -07:00
parent d3dfffd652
commit dd91746310
11 changed files with 46 additions and 35 deletions

View File

@@ -4,7 +4,7 @@ using Gtk;
public class MainWindow : Adw.ApplicationWindow
{
private ConversationListView conversation_list_view;
private TranscriptView transcript_view;
private TranscriptContainerView transcript_container_view;
public MainWindow () {
Object (title: "Kordophone");
@@ -19,10 +19,10 @@ public class MainWindow : Adw.ApplicationWindow
var conversation_list_page = new NavigationPage (conversation_list_view, "Conversations");
split_view.sidebar = conversation_list_page;
transcript_view = new TranscriptView ();
transcript_view.on_send.connect (on_transcript_send);
transcript_container_view = new TranscriptContainerView ();
transcript_container_view.on_send.connect (on_transcript_send);
var transcript_page = new NavigationPage (transcript_view, "Transcript");
var transcript_page = new NavigationPage (transcript_container_view, "Transcript");
split_view.content = transcript_page;
var show_settings_action = new SimpleAction ("settings", null);
@@ -37,27 +37,36 @@ public class MainWindow : Adw.ApplicationWindow
private void conversation_selected(string? conversation_guid) {
if (conversation_guid == null) {
transcript_view.message_list.model = null;
transcript_container_view.transcript_view.model = null;
} else {
if (transcript_view.message_list.model == null || transcript_view.message_list.model.conversation_guid != conversation_guid) {
transcript_view.message_list.model = new MessageListModel (conversation_guid);
Repository.get_instance().sync_conversation(conversation_guid);
if (transcript_container_view.transcript_view.model == null || transcript_container_view.transcript_view.model.conversation_guid != conversation_guid) {
transcript_container_view.transcript_view.model = new MessageListModel (conversation_guid);
try {
Repository.get_instance().sync_conversation(conversation_guid);
} catch (Error e) {
GLib.warning("Failed to sync conversation: %s", e.message);
}
}
}
}
private void on_transcript_send(string message) {
if (transcript_view.message_list.model == null) {
if (transcript_container_view.transcript_view.model == null) {
GLib.warning("No conversation selected");
return;
}
var selected_conversation = transcript_view.message_list.model.conversation_guid;
var selected_conversation = transcript_container_view.transcript_view.model.conversation_guid;
if (selected_conversation == null) {
GLib.warning("No conversation selected");
return;
}
Repository.get_instance().send_message(selected_conversation, message);
try {
Repository.get_instance().send_message(selected_conversation, message);
} catch (Error e) {
GLib.warning("Failed to send message: %s", e.message);
}
}
}