quick_frontend, primitivus: various fixes (MUC and cached signals):
- actually call the cached signals, everything was there but the call was not done
- display '[]' instead of '[None]' when group message coming from the room (no resource)
- catch the exception when trying to delete an occupant who's not in the room
- do not cache a "main resource" for MUC entities
This commit is contained in:
parent
3bff0d0237
commit
ff0166e95f
3 changed files with 10 additions and 4 deletions
|
|
@ -73,7 +73,7 @@ class ChatText(urwid.FlowWidget):
|
|||
if self.parent.show_short_nick:
|
||||
render_txt.append(('my_nick' if self.my_mess else 'other_nick', "**" if self.my_mess else "*"))
|
||||
else:
|
||||
render_txt.append(('my_nick' if self.my_mess else 'other_nick', "[%s] " % self.nick))
|
||||
render_txt.append(('my_nick' if self.my_mess else 'other_nick', "[%s] " % (self.nick or '')))
|
||||
render_txt.append(self.message)
|
||||
txt_widget = urwid.Text(render_txt, align=self.align)
|
||||
if self.is_info:
|
||||
|
|
@ -188,7 +188,10 @@ class Chat(PrimitivusWidget, QuickChat):
|
|||
nick = entity.resource
|
||||
show = contact_list.getCache(entity, C.PRESENCE_SHOW)
|
||||
if show == C.PRESENCE_UNAVAILABLE or show is None:
|
||||
self.occupants_list.deleteValue(nick)
|
||||
try:
|
||||
self.occupants_list.deleteValue(nick)
|
||||
except ValueError:
|
||||
pass
|
||||
else:
|
||||
values = self.occupants_list.getAllValues()
|
||||
markup = self._buildOccupantMarkup(entity)
|
||||
|
|
|
|||
|
|
@ -388,6 +388,7 @@ class QuickApp(object):
|
|||
cached_signals = self.signals_cache.pop(profile, [])
|
||||
for function_name, handler, args, kwargs in cached_signals:
|
||||
log.debug(u"Calling cached signal [%s] with args %s and kwargs %s" % (function_name, args, kwargs))
|
||||
handler(*args, **kwargs)
|
||||
|
||||
self.callListeners('profilePlugged', profile=profile)
|
||||
|
||||
|
|
|
|||
|
|
@ -296,6 +296,7 @@ class QuickContactList(QuickWidget):
|
|||
self._specials.remove(entity_bare)
|
||||
else:
|
||||
self._specials.add(entity_bare)
|
||||
cache[C.CONTACT_MAIN_RESOURCE] = None
|
||||
|
||||
# now the attribute we keep in cache
|
||||
for attribute, value in attributes.iteritems():
|
||||
|
|
@ -401,8 +402,9 @@ class QuickContactList(QuickWidget):
|
|||
resource_data[C.PRESENCE_PRIORITY] = int(priority)
|
||||
resource_data[C.PRESENCE_STATUSES] = statuses
|
||||
|
||||
priority_resource = max(resources_data, key=lambda res: resources_data[res][C.PRESENCE_PRIORITY])
|
||||
cache[C.CONTACT_MAIN_RESOURCE] = priority_resource
|
||||
if entity.bare not in self._specials:
|
||||
priority_resource = max(resources_data, key=lambda res: resources_data[res][C.PRESENCE_PRIORITY])
|
||||
cache[C.CONTACT_MAIN_RESOURCE] = priority_resource
|
||||
self.update()
|
||||
|
||||
def onNickUpdate(self, entity, new_nick, profile):
|
||||
|
|
|
|||
Loading…
Reference in a new issue