| ... |
... |
@@ -140,7 +140,7 @@ def get_open_chats(self): |
|
140
|
140
|
return open_chats
|
|
141
|
141
|
|
|
142
|
142
|
def update_time(self):
|
|
143
|
|
- for _, row in self._chats.items():
|
|
|
143
|
+ for _key, row in self._chats.items():
|
|
144
|
144
|
row.update_time()
|
|
145
|
145
|
|
|
146
|
146
|
def process_event(self, event):
|
| ... |
... |
@@ -150,6 +150,8 @@ def process_event(self, event): |
|
150
|
150
|
self._on_message_received(event)
|
|
151
|
151
|
elif event.name == 'presence-received':
|
|
152
|
152
|
self._on_presence_received(event)
|
|
|
153
|
+ elif event.name == 'message-sent':
|
|
|
154
|
+ self._on_message_sent(event)
|
|
153
|
155
|
else:
|
|
154
|
156
|
log.warning('Unhandled Event: %s', event.name)
|
|
155
|
157
|
|
| ... |
... |
@@ -158,10 +160,42 @@ def _on_message_received(self, event): |
|
158
|
160
|
return
|
|
159
|
161
|
|
|
160
|
162
|
row = self._chats.get((event.account, event.jid))
|
|
161
|
|
- row.set_last_message_text('Me', event.msgtxt)
|
|
|
163
|
+ nick = self._get_nick_for_received_message(event)
|
|
|
164
|
+ row.set_last_message_text(nick, event.msgtxt)
|
|
162
|
165
|
|
|
163
|
166
|
self._add_unread(row, event.properties)
|
|
164
|
167
|
|
|
|
168
|
+ def _on_message_sent(self, event):
|
|
|
169
|
+ msgtext = event.message
|
|
|
170
|
+ if not msgtext:
|
|
|
171
|
+ return
|
|
|
172
|
+
|
|
|
173
|
+ row = self._chats.get((event.account, event.jid))
|
|
|
174
|
+ con = app.get_client(event.account)
|
|
|
175
|
+ own_jid = con.get_own_jid()
|
|
|
176
|
+
|
|
|
177
|
+ if own_jid.bare_match(event.jid):
|
|
|
178
|
+ nick = ''
|
|
|
179
|
+ else:
|
|
|
180
|
+ nick = _('Me: ')
|
|
|
181
|
+ row.set_last_message_text(nick, msgtext)
|
|
|
182
|
+
|
|
|
183
|
+ @staticmethod
|
|
|
184
|
+ def _get_nick_for_received_message(event):
|
|
|
185
|
+ nick = _('Me: ')
|
|
|
186
|
+ if event.properties.type.is_groupchat:
|
|
|
187
|
+ event_nick = event.properties.muc_nickname
|
|
|
188
|
+ our_nick = get_group_chat_nick(event.account, event.jid)
|
|
|
189
|
+ if event_nick != our_nick:
|
|
|
190
|
+ nick = _('%(incoming_nick)s: ') % {'incoming_nick': event_nick}
|
|
|
191
|
+ else:
|
|
|
192
|
+ con = app.get_client(event.account)
|
|
|
193
|
+ own_jid = con.get_own_jid()
|
|
|
194
|
+ if not own_jid.bare_match(event.properties.from_):
|
|
|
195
|
+ nick = ''
|
|
|
196
|
+
|
|
|
197
|
+ return nick
|
|
|
198
|
+
|
|
165
|
199
|
def _on_presence_received(self, event):
|
|
166
|
200
|
row = self._chats.get((event.account, event.jid))
|
|
167
|
201
|
row.update_avatar()
|
| ... |
... |
@@ -350,4 +384,5 @@ def reset_unread(self): |
|
350
|
384
|
|
|
351
|
385
|
def set_last_message_text(self, nickname, text):
|
|
352
|
386
|
self._ui.message_label.set_text(text)
|
|
|
387
|
+ self._ui.nick_label.set_visible(bool(nickname))
|
|
353
|
388
|
self._ui.nick_label.set_text(nickname)
|