diff options
author | wurstsalat <mailtrash@posteo.de> | 2023-04-23 19:58:32 +0300 |
---|---|---|
committer | wurstsalat <mailtrash@posteo.de> | 2023-04-23 19:58:43 +0300 |
commit | c6ad7550db227b45c823bd9cebabed8b5cc58cbb (patch) | |
tree | 578bcc984e4f767bdca37d378e9dc7d39e07f618 | |
parent | 92f921457d32c06f2cc8eb20deb3db7aab33b5ea (diff) |
imprv: GroupchatRoster: Highlight own nick and sort it to the top
Fixes #11431
-rw-r--r-- | gajim/gtk/groupchat_roster.py | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/gajim/gtk/groupchat_roster.py b/gajim/gtk/groupchat_roster.py index 963cca8f0..08a7373c5 100644 --- a/gajim/gtk/groupchat_roster.py +++ b/gajim/gtk/groupchat_roster.py @@ -36,6 +36,7 @@ from gajim.common.events import MUCNicknameChanged from gajim.common.helpers import get_uf_affiliation from gajim.common.helpers import get_uf_role from gajim.common.helpers import jid_is_blocked +from gajim.common.i18n import p_ from gajim.common.modules.contacts import GroupchatContact from gajim.gtk.builder import get_builder @@ -488,10 +489,15 @@ class GroupchatRoster(Gtk.Revealer, EventHelper): nick1 = model[iter1][Column.NICK_OR_GROUP] nick2 = model[iter2][Column.NICK_OR_GROUP] + assert self._contact is not None + our_nick = self._contact.nickname + if our_nick in (nick1, nick2): + # Always show our nickname at the top + return -1 if our_nick == nick1 else 1 + if not app.settings.get('sort_by_show_in_muc'): return locale.strcoll(nick1.lower(), nick2.lower()) - assert self._contact is not None contact1 = self._contact.get_resource(nick1) contact2 = self._contact.get_resource(nick2) @@ -574,6 +580,9 @@ class GroupchatRoster(Gtk.Revealer, EventHelper): self._draw_avatar(contact) name = GLib.markup_escape_text(contact.name) + self_contact = self._contact.get_self() + if self_contact is not None and self_contact.name == nick: + name = p_('own nickname in group chat', '%s (You)' % nick) # Strike name if blocked fjid = f'{self._contact.jid}/{nick}' |