diff options
author | Philipp Hörist <philipp@hoerist.com> | 2019-09-22 11:31:25 +0300 |
---|---|---|
committer | Philipp Hörist <philipp@hoerist.com> | 2019-09-22 11:31:25 +0300 |
commit | 9e312e4d9d90330f65fae9a6f02682f2fa6a3557 (patch) | |
tree | adf2f460e74e1976c8e6a90548f4ce4e8a0a599d /clients_icons | |
parent | c17cfafe3ae4c6a46f989a48fc636c0c9f38e874 (diff) |
[client_icons] Remove groupchat roster functionality
- Gajim does not support hooks into the groupchat roster anymore
Diffstat (limited to 'clients_icons')
-rw-r--r-- | clients_icons/clients_icons.py | 117 | ||||
-rw-r--r-- | clients_icons/config_dialog.py | 4 |
2 files changed, 2 insertions, 119 deletions
diff --git a/clients_icons/clients_icons.py b/clients_icons/clients_icons.py index 104aa7c..49bcf3b 100644 --- a/clients_icons/clients_icons.py +++ b/clients_icons/clients_icons.py @@ -33,9 +33,6 @@ class ClientsIconsPlugin(GajimPlugin): } self.gui_extension_points = { - 'groupchat_control': ( - self.connect_with_groupchat_control, - self.disconnect_from_groupchat_control), 'roster_draw_contact': ( self.connect_with_roster_draw_contact, None), @@ -49,7 +46,6 @@ class ClientsIconsPlugin(GajimPlugin): self.config_default_values = { 'show_in_roster': (True, ''), - 'show_in_groupchats': (True, ''), 'show_in_tooltip': (True, ''), 'show_unknown_icon': (True, ''), 'pos_in_list': ('0', ''), @@ -216,76 +212,6 @@ class ClientsIconsPlugin(GajimPlugin): self.set_icon( roster.model, iter_, self.renderer_num, node, contact) - def connect_with_groupchat_control(self, chat_control): - chat_control.nb_ext_renderers += 1 - chat_control.columns += [str] - self.groupchats_tree_is_transformed = True - self.chat_control = chat_control - col = Gtk.TreeViewColumn() - self.muc_renderer_num = 4 + chat_control.nb_ext_renderers - client_icon_rend = ( - 'client_icon', Gtk.CellRendererPixbuf(), False, - 'icon_name', self.muc_renderer_num, - self.tree_cell_data_func, chat_control) - - # Remove old column - chat_control.list_treeview.remove_column( - chat_control.list_treeview.get_column(0)) - - # Add new renderer in renderers list - position_list = ['name', 'avatar'] - position = position_list[int(self.config['pos_in_list'])] - for renderer in chat_control.renderers_list: - if renderer[0] == position: - break - num = chat_control.renderers_list.index(renderer) - chat_control.renderers_list.insert(num, client_icon_rend) - - # Fill and append column - chat_control.fill_column(col) - chat_control.list_treeview.insert_column(col, 0) - - chat_control.model = Gtk.TreeStore(*chat_control.columns) - chat_control.model.set_sort_func(1, chat_control.tree_compare_iters) - chat_control.model.set_sort_column_id(1, Gtk.SortType.ASCENDING) - chat_control.list_treeview.set_model(chat_control.model) - - # Draw roster - for nick in app.contacts.get_nick_list( - chat_control.account, chat_control.room_jid): - gc_contact = app.contacts.get_gc_contact( - chat_control.account, chat_control.room_jid, nick) - iter_ = chat_control.add_contact_to_roster(nick) - if not self.config['show_in_groupchats']: - continue - caps = gc_contact.client_caps._node - self.set_icon( - chat_control.model, iter_, - self.muc_renderer_num, caps, gc_contact) - chat_control.draw_all_roles() - - # Recalculate column width for ellipsizing - chat_control.list_treeview.columns_autosize() - - def disconnect_from_groupchat_control(self, gc_control): - gc_control.nb_ext_renderers -= 1 - col = gc_control.list_treeview.get_column(0) - gc_control.list_treeview.remove_column(col) - col = Gtk.TreeViewColumn() - for renderer in gc_control.renderers_list: - if renderer[0] == 'client_icon': - gc_control.renderers_list.remove(renderer) - break - gc_control.fill_column(col) - gc_control.list_treeview.insert_column(col, 0) - gc_control.columns = gc_control.columns[:self.muc_renderer_num] + \ - gc_control.columns[self.muc_renderer_num + 1:] - gc_control.model = Gtk.TreeStore(*gc_control.columns) - gc_control.model.set_sort_func(1, gc_control.tree_compare_iters) - gc_control.model.set_sort_column_id(1, Gtk.SortType.ASCENDING) - gc_control.list_treeview.set_model(gc_control.model) - gc_control.draw_roster() - def activate(self): self.active = None roster = app.interface.roster @@ -372,9 +298,8 @@ class ClientsIconsPlugin(GajimPlugin): return if contact.is_gc_contact: - self._draw_gc_contact(event, contact) - else: - self._draw_roster_contact(event, contact) + return + self._draw_roster_contact(event, contact) def _draw_roster_contact(self, event, contact): if not self.config['show_in_roster']: @@ -401,23 +326,6 @@ class ClientsIconsPlugin(GajimPlugin): self.set_icon( roster.model, iter_, self.renderer_num, caps, contact) - def _draw_gc_contact(self, event, contact): - if not self.config['show_in_groupchats']: - return - - control = app.interface.msg_win_mgr.get_gc_control( - contact.room_jid, event.conn.name) - if control is None: - return - iter_ = control.get_contact_iter(contact.name) - if control.model[iter_][self.muc_renderer_num] is not None: - return - caps = contact.client_caps._node - if not caps: - return - self.set_icon( - control.model, iter_, self.muc_renderer_num, caps, contact) - def _get_contact_or_gc_contact_for_jid(self, account, fjid): contact = app.contacts.get_contact_from_full_jid(account, fjid) @@ -438,24 +346,3 @@ class ClientsIconsPlugin(GajimPlugin): return model[iter_][pos] = icon_name - - def tree_cell_data_func(self, column, renderer, model, iter_, control): - if not model.iter_parent(iter_): - renderer.set_property('visible', False) - return - - if model[iter_][self.muc_renderer_num]: - renderer.set_property('visible', True) - - contact = app.contacts.get_gc_contact( - control.account, control.room_jid, model[iter_][1]) - if not contact: - return - - bgcolor = app.config.get_per( - 'themes', app.config.get('roster_theme'), 'contactbgcolor') - if bgcolor: - renderer.set_property('cell-background', bgcolor) - else: - renderer.set_property('cell-background', None) - renderer.set_property('width', 16) diff --git a/clients_icons/config_dialog.py b/clients_icons/config_dialog.py index 49f42de..3dcdda7 100644 --- a/clients_icons/config_dialog.py +++ b/clients_icons/config_dialog.py @@ -38,10 +38,6 @@ class ClientsIconsConfigDialog(SettingsDialog): SettingType.VALUE, self.plugin.config['show_in_roster'], callback=self._on_setting, data='show_in_roster'), - Setting(SettingKind.SWITCH, _('Show Icons in Group Chats'), - SettingType.VALUE, self.plugin.config['show_in_groupchats'], - callback=self._on_setting, data='show_in_groupchats'), - Setting(SettingKind.SWITCH, _('Show Icons in Tooltip'), SettingType.VALUE, self.plugin.config['show_in_tooltip'], callback=self._on_setting, data='show_in_tooltip'), |