Philipp Hörist pushed to branch master at gajim / gajim
Commits:
a8f89ea4 by Philipp Hörist at 2022-10-05T21:03:45+02:00
refactor: AccountBadge: Make account an optional argument
- - - - -
cd7cbc7d by Philipp Hörist at 2022-10-05T21:04:32+02:00
refactor: Banner: Don’t recreate account badge on contact switch
- - - - -
2 changed files:
- gajim/gtk/chat_banner.py
- gajim/gtk/util.py
Changes:
=====================================
gajim/gtk/chat_banner.py
=====================================
@@ -56,10 +56,13 @@ def __init__(self) -> None:
self.add(self._ui.banner_box)
self._ui.connect_signals(self)
- self._account_badge: Optional[AccountBadge] = None
+ self._account_badge = AccountBadge()
self._voice_requests_button = VoiceRequestsButton()
+
self._ui.additional_items_box.pack_start(
self._voice_requests_button, False, True, 0)
+ self._ui.additional_items_box.pack_end(
+ self._account_badge, False, True, 0)
hide_roster = app.settings.get('hide_groupchat_occupants_list')
self._set_toggle_roster_button_icon(hide_roster)
@@ -307,16 +310,15 @@ def _update_name_label(self) -> None:
self._ui.name_label.set_tooltip_text(tooltip_text)
def _update_account_badge(self) -> None:
- assert self._contact is not None
+ if self._contact is None:
+ self._account_badge.set_visible(False)
+ return
- if self._account_badge is not None:
- self._account_badge.destroy()
+ visible = app.get_number_of_accounts() > 1
+ if visible:
+ self._account_badge.set_account(self._contact.account)
- enabled_accounts = app.get_enabled_accounts_with_labels()
- if len(enabled_accounts) > 1:
- self._account_badge = AccountBadge(self._contact.account)
- self._ui.additional_items_box.pack_end(
- self._account_badge, False, True, 0)
+ self._account_badge.set_visible(visible)
def _on_request_voice_clicked(self, _button: Gtk.Button) -> None:
self._ui.visitor_popover.popdown()
=====================================
gajim/gtk/util.py
=====================================
@@ -782,21 +782,22 @@ def _on_realize(*args: Any) -> None:
class AccountBadge(Gtk.Label):
- def __init__(self, account: str) -> None:
+ def __init__(self, account: Optional[str] = None) -> None:
Gtk.Label.__init__(self)
self.set_ellipsize(Pango.EllipsizeMode.END)
self.set_max_width_chars(12)
self.set_size_request(50, -1)
self.get_style_context().add_class('badge')
- self._account = account
+ self.set_no_show_all(True)
- self.refresh()
- self.show()
+ if account is not None:
+ self.set_account(account)
+ self.show()
- def refresh(self) -> None:
- label = app.get_account_label(self._account)
+ def set_account(self, account: str) -> None:
+ label = app.get_account_label(account)
self.set_text(label)
- account_class = app.css_config.get_dynamic_class(self._account)
+ account_class = app.css_config.get_dynamic_class(account)
self.get_style_context().add_class(account_class)
self.set_tooltip_text(_('Account: %s') % label)
View it on GitLab:
https://dev.gajim.org/gajim/gajim/-/compare/63a7891010a53be0009b6aff9d69d086565d0cd3...cd7cbc7da61b54b0798b4317ae9dbcb656c50950
--
View it on GitLab:
https://dev.gajim.org/gajim/gajim/-/compare/63a7891010a53be0009b6aff9d69d086565d0cd3...cd7cbc7da61b54b0798b4317ae9dbcb656c50950
You're receiving this email because of your account on dev.gajim.org.
_______________________________________________
Commits mailing list
[email protected]
https://lists.gajim.org/cgi-bin/listinfo/commits