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

Reply via email to