Daniel Brötzmann pushed to branch mainwindow at gajim / gajim
Commits: 1f221fbb by Daniel Brötzmann at 2021-02-03T19:09:25+01:00 ChatList: Add RosterTooltip
- - - - -
1 changed file:
- gajim/gtk/chat_list.py
Changes:
===================================== gajim/gtk/chat_list.py ===================================== @@ -11,7 +11,8 @@ from gajim.common.helpers import get_group_chat_nick from gajim.common.helpers import get_uf_relative_time
-from gajim.gui.util import get_builder +from .tooltips import RosterTooltip +from .util import get_builder
log = logging.getLogger('gajim.gtk.chatlist')
@@ -25,13 +26,16 @@ def __init__(self, workspace_id): self._workspace_id = workspace_id
self.get_style_context().add_class('chatlist') - self.connect('destroy', self._on_destroy) - - self.show_all() - self.set_filter_func(self._filter_func) + self.set_has_tooltip(True) + + self.connect('destroy', self._on_destroy) + self.connect('query-tooltip', self._query_tooltip)
self._timer_id = GLib.timeout_add_seconds(60, self._update_timer) + self._tab_tooltip = RosterTooltip() + + self.show_all()
def _on_destroy(self): GLib.source_remove(self._timer_id) @@ -40,6 +44,32 @@ def _update_timer(self): self.update_time() return True
+ def _query_tooltip(self, widget, _x_pos, y_pos, _keyboard_mode, tooltip): + row = self.get_row_at_y(y_pos) + if row is None: + self._tab_tooltip.clear_tooltip() + return False + + connected_contacts = [] + contacts = app.contacts.get_contacts(row.account, row.jid) + if row.type == 'contact': + for contact in contacts: + if contact.show not in ('offline', 'error'): + connected_contacts.append(contact) + if not connected_contacts: + # no connected contacts, show the offline one + connected_contacts = contacts + elif row.type == 'groupchat': + connected_contacts = contacts + else: + # TODO + connected_contacts = [row.jid] + + value, widget = self._tab_tooltip.get_tooltip( + row, connected_contacts, row.account, None) + tooltip.set_custom(widget) + return value + def _filter_func(self, row): if not self._current_filter_text: return True
View it on GitLab: https://dev.gajim.org/gajim/gajim/-/commit/1f221fbba69244c85786a21018f95533f...