Daniel Brötzmann pushed to branch mainwindow at gajim / gajim
Commits: 64d7f342 by wurstsalat at 2021-02-14T20:27:48+01:00 ChatList: Set message nick, process message-sent event
- - - - -
3 changed files:
- gajim/data/gui/chat_list_row.ui - gajim/gtk/chat_list.py - gajim/gtk/chat_list_stack.py
Changes:
===================================== gajim/data/gui/chat_list_row.ui ===================================== @@ -140,8 +140,8 @@ <property name="spacing">3</property> <child> <object class="GtkLabel" id="nick_label"> - <property name="visible">True</property> <property name="can-focus">False</property> + <property name="no-show-all">True</property> <property name="halign">start</property> <property name="single-line-mode">True</property> <property name="xalign">0</property>
===================================== gajim/gtk/chat_list.py ===================================== @@ -140,7 +140,7 @@ def get_open_chats(self): return open_chats
def update_time(self): - for _, row in self._chats.items(): + for _key, row in self._chats.items(): row.update_time()
def process_event(self, event): @@ -150,6 +150,8 @@ def process_event(self, event): self._on_message_received(event) elif event.name == 'presence-received': self._on_presence_received(event) + elif event.name == 'message-sent': + self._on_message_sent(event) else: log.warning('Unhandled Event: %s', event.name)
@@ -158,10 +160,42 @@ def _on_message_received(self, event): return
row = self._chats.get((event.account, event.jid)) - row.set_last_message_text('Me', event.msgtxt) + nick = self._get_nick_for_received_message(event) + row.set_last_message_text(nick, event.msgtxt)
self._add_unread(row, event.properties)
+ def _on_message_sent(self, event): + msgtext = event.message + if not msgtext: + return + + row = self._chats.get((event.account, event.jid)) + con = app.get_client(event.account) + own_jid = con.get_own_jid() + + if own_jid.bare_match(event.jid): + nick = '' + else: + nick = _('Me: ') + row.set_last_message_text(nick, msgtext) + + @staticmethod + def _get_nick_for_received_message(event): + nick = _('Me: ') + if event.properties.type.is_groupchat: + event_nick = event.properties.muc_nickname + our_nick = get_group_chat_nick(event.account, event.jid) + if event_nick != our_nick: + nick = _('%(incoming_nick)s: ') % {'incoming_nick': event_nick} + else: + con = app.get_client(event.account) + own_jid = con.get_own_jid() + if not own_jid.bare_match(event.properties.from_): + nick = '' + + return nick + def _on_presence_received(self, event): row = self._chats.get((event.account, event.jid)) row.update_avatar() @@ -350,4 +384,5 @@ def reset_unread(self):
def set_last_message_text(self, nickname, text): self._ui.message_label.set_text(text) + self._ui.nick_label.set_visible(bool(nickname)) self._ui.nick_label.set_text(nickname)
===================================== gajim/gtk/chat_list_stack.py ===================================== @@ -12,6 +12,7 @@ 'mam-message-received', 'gc-message-received', 'presence-received', + 'message-sent', ]
View it on GitLab: https://dev.gajim.org/gajim/gajim/-/commit/64d7f342f703359f4b40cb3eb7034adb6...