| ... |
... |
@@ -85,6 +85,7 @@ def __init__(self, account): |
|
85
|
85
|
self.register_events([
|
|
86
|
86
|
('account-connected', ged.CORE, self._on_account_state),
|
|
87
|
87
|
('account-disconnected', ged.CORE, self._on_account_state),
|
|
|
88
|
+ ('roster-received', ged.CORE, self._on_roster_received),
|
|
88
|
89
|
('theme-update', ged.GUI2, self._on_theme_update),
|
|
89
|
90
|
('roster-push', ged.GUI2, self._on_roster_push),
|
|
90
|
91
|
])
|
| ... |
... |
@@ -308,20 +309,24 @@ def _get_contact_visible(self, contact): |
|
308
|
309
|
|
|
309
|
310
|
return True
|
|
310
|
311
|
|
|
311
|
|
- def set_model(self):
|
|
|
312
|
+ def _set_model(self):
|
|
312
|
313
|
self._roster.set_model(self._modelfilter)
|
|
313
|
314
|
|
|
314
|
|
- def redraw(self):
|
|
|
315
|
+ def _unset_model(self):
|
|
315
|
316
|
self._roster.set_model(None)
|
|
316
|
|
- self._roster.set_model(self._modelfilter)
|
|
|
317
|
+
|
|
|
318
|
+ def redraw(self):
|
|
|
319
|
+ self._unset_model()
|
|
|
320
|
+ self._set_model()
|
|
317
|
321
|
self._roster.expand_all()
|
|
318
|
322
|
|
|
319
|
|
- def _reset(self):
|
|
320
|
|
- self._roster.set_model(None)
|
|
321
|
|
- self.enable_sort(False)
|
|
|
323
|
+ def _reset_roster(self):
|
|
|
324
|
+ self._unset_model()
|
|
|
325
|
+ self._enable_sort(False)
|
|
|
326
|
+ self._clear()
|
|
322
|
327
|
self._initial_draw()
|
|
323
|
328
|
|
|
324
|
|
- def enable_sort(self, enable):
|
|
|
329
|
+ def _enable_sort(self, enable):
|
|
325
|
330
|
column = Gtk.TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID
|
|
326
|
331
|
if enable:
|
|
327
|
332
|
column = Column.TEXT
|
| ... |
... |
@@ -333,8 +338,8 @@ def _initial_draw(self): |
|
333
|
338
|
self._connect_contact_signals(contact)
|
|
334
|
339
|
self._add_or_update_contact(contact)
|
|
335
|
340
|
|
|
336
|
|
- self.enable_sort(True)
|
|
337
|
|
- self.set_model()
|
|
|
341
|
+ self._enable_sort(True)
|
|
|
342
|
+ self._set_model()
|
|
338
|
343
|
self._roster.expand_all()
|
|
339
|
344
|
|
|
340
|
345
|
def _connect_contact_signals(self, contact):
|
| ... |
... |
@@ -347,7 +352,7 @@ def _on_contact_update(self, contact, _signal_name): |
|
347
|
352
|
|
|
348
|
353
|
@event_filter(['account'])
|
|
349
|
354
|
def _on_roster_received(self, _event):
|
|
350
|
|
- self._reset()
|
|
|
355
|
+ self._reset_roster()
|
|
351
|
356
|
|
|
352
|
357
|
@event_filter(['account'])
|
|
353
|
358
|
def _on_roster_push(self, event):
|
| ... |
... |
@@ -560,9 +565,9 @@ def _tree_compare_iters(self, model, iter1, iter2, _user_data): |
|
560
|
565
|
group2 = model[iter2][Column.JID_OR_GROUP]
|
|
561
|
566
|
return -1 if group1 < group2 else 1
|
|
562
|
567
|
|
|
563
|
|
- def clear(self):
|
|
564
|
|
- self._contact_refs = {}
|
|
565
|
|
- self._group_refs = {}
|
|
|
568
|
+ def _clear(self):
|
|
|
569
|
+ self._contact_refs.clear()
|
|
|
570
|
+ self._group_refs.clear()
|
|
566
|
571
|
self._store.clear()
|
|
567
|
572
|
|
|
568
|
573
|
def process_event(self, event):
|
| ... |
... |
@@ -571,9 +576,9 @@ def process_event(self, event): |
|
571
|
576
|
|
|
572
|
577
|
def _on_destroy(self, _roster):
|
|
573
|
578
|
self._remove_actions()
|
|
574
|
|
- self._contact_refs = {}
|
|
575
|
|
- self._group_refs = {}
|
|
576
|
|
- self._roster.set_model(None)
|
|
|
579
|
+ self._contact_refs.clear()
|
|
|
580
|
+ self._group_refs.clear()
|
|
|
581
|
+ self._unset_model()
|
|
577
|
582
|
self._roster = None
|
|
578
|
583
|
self._store.clear()
|
|
579
|
584
|
self._store.reset_default_sort_func()
|