diff options
-rw-r--r-- | src/tabs.py | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/tabs.py b/src/tabs.py index 403e05f8..2c714bac 100644 --- a/src/tabs.py +++ b/src/tabs.py @@ -1711,6 +1711,7 @@ class RosterInfoTab(Tab): self.key_func["M-[1;5A"] = self.move_cursor_to_prev_group self.key_func["o"] = self.toggle_offline_show self.key_func["v"] = self.get_contact_version + self.key_func["i"] = self.show_contact_info self.key_func["s"] = self.start_search self.key_func["S"] = self.start_search_slow self.commands['deny'] = (self.command_deny, _("Usage: /deny [jid]\nDeny: Deny your presence to the provided JID (or the selected contact in your roster), who is asking you to be in his/here roster."), self.completion_deny) @@ -2258,6 +2259,33 @@ class RosterInfoTab(Tab): else: self.core.information('Nothing to get versions from', 'Info') + def show_contact_info(self): + selected_row = self.roster_win.get_selected_row() + if isinstance(selected_row, Contact): + cont = selected_row + res = selected_row.get_highest_priority_resource() + msg = 'Contact: %s (%s)\n%s connected resources\nCurrent status: %s' % ( + cont.bare_jid, + res.presence if res else 'unavailable', + cont.get_nb_resources(), + res.status if res else '',) + elif isinstance(selected_row, Resource): + res = selected_row + msg = 'Resource: %s (%s)\nCurrent status: %s' % ( + res.jid, + res.presence, + res.status,) + elif isinstance(selected_row, RosterGroup): + rg = selected_row + msg = 'Group: %s [%s/%s] contacts online' % ( + rg.name, + rg.get_nb_connected_contacts(), + len(rg),) + else: + msg = None + if msg: + self.core.information(msg, 'Info') + def start_search(self): """ Start the search. The input should appear with a short instruction |