quick_frontend, primitivus: fixes a couple of issues:

- chat: notification was raising an error when you just entered the room and self.nick is None
    - quick_widget: deleting a widget was modifying a dict while looping on it + unselect widget when it's being deleted
This commit is contained in:
souliane 2015-04-16 17:17:28 +02:00
commit 2203e6aa52
2 changed files with 12 additions and 2 deletions

View file

@ -249,6 +249,9 @@ class QuickContactList(QuickWidget):
self._cache.clear()
self._groups.clear()
self._specials.clear()
self._special_extras.clear()
self._roster.clear()
self._alerts.clear()
self.update()
def setContact(self, entity, groups=None, attributes=None, in_roster=False):

View file

@ -232,9 +232,12 @@ class QuickWidgetsManager(object):
widget_to_delete.onDelete()
for widget_map in self._widgets.itervalues():
to_delete = set()
for hash_, widget in widget_map.iteritems():
if widget_to_delete is widget:
del widget_map[hash_]
to_delete.add(hash_)
for hash_ in to_delete:
del widget_map[hash_]
class QuickWidget(object):
@ -308,3 +311,6 @@ class QuickWidget(object):
def onDelete(self):
"""Called when a widget is deleted"""
log.debug(u"deleting widget {}".format(self)) # Must be implemented by frontends
if self.host.selected_widget == self:
self.host.selected_widget = None