From f3063f56b7e2ccfef255256d5bf527988fcf2957 Mon Sep 17 00:00:00 2001 From: fiaxh Date: Tue, 21 Nov 2017 22:17:04 +0100 Subject: ConversationView: Split merged messages when an in-between one is added --- .../conversation_summary/conversation_item_skeleton.vala | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'main/src/ui/conversation_summary/conversation_item_skeleton.vala') diff --git a/main/src/ui/conversation_summary/conversation_item_skeleton.vala b/main/src/ui/conversation_summary/conversation_item_skeleton.vala index 1eb76840..ed540e5d 100644 --- a/main/src/ui/conversation_summary/conversation_item_skeleton.vala +++ b/main/src/ui/conversation_summary/conversation_item_skeleton.vala @@ -17,9 +17,10 @@ public class ConversationItemSkeleton : Grid { public StreamInteractor stream_interactor; public Conversation conversation { get; set; } - public Gee.List items = new ArrayList(); + public ArrayList items = new ArrayList(); private Box box = new Box(Orientation.VERTICAL, 2) { visible=true }; + private HashMap item_widgets = new HashMap(); public ConversationItemSkeleton(StreamInteractor stream_interactor, Conversation conversation) { this.conversation = conversation; @@ -36,11 +37,17 @@ public class ConversationItemSkeleton : Grid { Widget widget = (Widget) item.get_widget(Plugins.WidgetType.GTK); if (item.requires_header) { box.add(widget); + item_widgets[item] = widget; } else { set_title_widget(widget); } - item.notify["mark"].connect_after(update_received); - update_received(); + item.notify["mark"].connect_after(update_received_mark); + update_received_mark(); + } + + public void remove_meta_item(Plugins.MetaConversationItem item) { + box.remove(item_widgets[item]); + items.remove(item); } public void set_title_widget(Widget w) { @@ -81,7 +88,7 @@ public class ConversationItemSkeleton : Grid { set_title_widget(name_label); } - private void update_received() { + private void update_received_mark() { bool all_received = true; bool all_read = true; bool all_sent = true; -- cgit v1.2.3-54-g00ecf