Philipp Hörist pushed to branch mainwindow at gajim / gajim
Commits: f23b0d57 by lovetox at 2021-03-06T21:06:35+01:00 Roster: Refactor
- - - - - ccaa24f9 by lovetox at 2021-03-06T21:30:45+01:00 Roster: Fix reset
- - - - -
1 changed file:
- gajim/gtk/roster.py
Changes:
===================================== gajim/gtk/roster.py ===================================== @@ -85,6 +85,7 @@ def __init__(self, account): self.register_events([ ('account-connected', ged.CORE, self._on_account_state), ('account-disconnected', ged.CORE, self._on_account_state), + ('roster-received', ged.CORE, self._on_roster_received), ('theme-update', ged.GUI2, self._on_theme_update), ('roster-push', ged.GUI2, self._on_roster_push), ]) @@ -308,20 +309,24 @@ def _get_contact_visible(self, contact):
return True
- def set_model(self): + def _set_model(self): self._roster.set_model(self._modelfilter)
- def redraw(self): + def _unset_model(self): self._roster.set_model(None) - self._roster.set_model(self._modelfilter) + + def redraw(self): + self._unset_model() + self._set_model() self._roster.expand_all()
- def _reset(self): - self._roster.set_model(None) - self.enable_sort(False) + def _reset_roster(self): + self._unset_model() + self._enable_sort(False) + self._clear() self._initial_draw()
- def enable_sort(self, enable): + def _enable_sort(self, enable): column = Gtk.TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID if enable: column = Column.TEXT @@ -333,8 +338,8 @@ def _initial_draw(self): self._connect_contact_signals(contact) self._add_or_update_contact(contact)
- self.enable_sort(True) - self.set_model() + self._enable_sort(True) + self._set_model() self._roster.expand_all()
def _connect_contact_signals(self, contact): @@ -347,7 +352,7 @@ def _on_contact_update(self, contact, _signal_name):
@event_filter(['account']) def _on_roster_received(self, _event): - self._reset() + self._reset_roster()
@event_filter(['account']) def _on_roster_push(self, event): @@ -560,9 +565,9 @@ def _tree_compare_iters(self, model, iter1, iter2, _user_data): group2 = model[iter2][Column.JID_OR_GROUP] return -1 if group1 < group2 else 1
- def clear(self): - self._contact_refs = {} - self._group_refs = {} + def _clear(self): + self._contact_refs.clear() + self._group_refs.clear() self._store.clear()
def process_event(self, event): @@ -571,9 +576,9 @@ def process_event(self, event):
def _on_destroy(self, _roster): self._remove_actions() - self._contact_refs = {} - self._group_refs = {} - self._roster.set_model(None) + self._contact_refs.clear() + self._group_refs.clear() + self._unset_model() self._roster = None self._store.clear() self._store.reset_default_sort_func()
View it on GitLab: https://dev.gajim.org/gajim/gajim/-/compare/e4dc7e3e729e69228427f1f1630d545a...