From addd5a013fe2e957e228ec4c670359c701745184 Mon Sep 17 00:00:00 2001 From: fiaxh Date: Fri, 1 Sep 2017 12:42:14 +0200 Subject: Show last message sender in conversation list --- .../ui/conversation_selector/groupchat_row.vala | 38 ++++++---------------- 1 file changed, 10 insertions(+), 28 deletions(-) (limited to 'main/src/ui/conversation_selector/groupchat_row.vala') diff --git a/main/src/ui/conversation_selector/groupchat_row.vala b/main/src/ui/conversation_selector/groupchat_row.vala index 07dabf06..0dfdfe66 100644 --- a/main/src/ui/conversation_selector/groupchat_row.vala +++ b/main/src/ui/conversation_selector/groupchat_row.vala @@ -10,37 +10,19 @@ public class GroupchatRow : ConversationRow { set_tooltip_text(conversation.counterpart.bare_jid.to_string()); update_avatar(); - x_button.clicked.connect(on_x_button_clicked); - stream_interactor.get_module(MucManager.IDENTITY).left.connect(() => { - Idle.add(() => { - update_avatar(); - return false; - }); + closed.connect(() => { + stream_interactor.get_module(MucManager.IDENTITY).part(conversation.account, conversation.counterpart); }); + stream_interactor.get_module(MucManager.IDENTITY).left.connect(update_avatar); } - - public override void on_show_received(Show show) { - set_avatar((new AvatarGenerator(AVATAR_SIZE, AVATAR_SIZE, image.scale_factor)) - .draw_conversation(stream_interactor, conversation), image.scale_factor); - } - - public override void network_connection(bool connected) { - update_avatar(); - } - - private void on_x_button_clicked() { - stream_interactor.get_module(MucManager.IDENTITY).part(conversation.account, conversation.counterpart); - } - - private void update_avatar() { - ConnectionManager.ConnectionState connection_state = stream_interactor.connection_manager.get_state(conversation.account); - bool is_joined = stream_interactor.get_module(MucManager.IDENTITY).is_joined(conversation.counterpart, conversation.account); - - set_avatar((new AvatarGenerator(AVATAR_SIZE, AVATAR_SIZE, image.scale_factor)) - .set_greyscale(connection_state != ConnectionManager.ConnectionState.CONNECTED || !is_joined) - .draw_conversation(stream_interactor, conversation), image.scale_factor); + protected override void update_message_label() { + base.update_message_label(); + if (last_message != null) { + nick_label.visible = true; + nick_label.label = Util.get_message_display_name(stream_interactor, last_message, conversation.account) + ": "; + } } } -} \ No newline at end of file +} -- cgit v1.2.3-54-g00ecf