Philipp Hörist pushed to branch master at gajim / gajim
Commits:
-
a8f89ea4
by Philipp Hörist at 2022-10-05T21:03:45+02:00
-
cd7cbc7d
by Philipp Hörist at 2022-10-05T21:04:32+02:00
2 changed files:
Changes:
| ... | ... | @@ -56,10 +56,13 @@ def __init__(self) -> None: |
| 56 | 56 | self.add(self._ui.banner_box)
|
| 57 | 57 | self._ui.connect_signals(self)
|
| 58 | 58 | |
| 59 | - self._account_badge: Optional[AccountBadge] = None
|
|
| 59 | + self._account_badge = AccountBadge()
|
|
| 60 | 60 | self._voice_requests_button = VoiceRequestsButton()
|
| 61 | + |
|
| 61 | 62 | self._ui.additional_items_box.pack_start(
|
| 62 | 63 | self._voice_requests_button, False, True, 0)
|
| 64 | + self._ui.additional_items_box.pack_end(
|
|
| 65 | + self._account_badge, False, True, 0)
|
|
| 63 | 66 | |
| 64 | 67 | hide_roster = app.settings.get('hide_groupchat_occupants_list')
|
| 65 | 68 | self._set_toggle_roster_button_icon(hide_roster)
|
| ... | ... | @@ -307,16 +310,15 @@ def _update_name_label(self) -> None: |
| 307 | 310 | self._ui.name_label.set_tooltip_text(tooltip_text)
|
| 308 | 311 | |
| 309 | 312 | def _update_account_badge(self) -> None:
|
| 310 | - assert self._contact is not None
|
|
| 313 | + if self._contact is None:
|
|
| 314 | + self._account_badge.set_visible(False)
|
|
| 315 | + return
|
|
| 311 | 316 | |
| 312 | - if self._account_badge is not None:
|
|
| 313 | - self._account_badge.destroy()
|
|
| 317 | + visible = app.get_number_of_accounts() > 1
|
|
| 318 | + if visible:
|
|
| 319 | + self._account_badge.set_account(self._contact.account)
|
|
| 314 | 320 | |
| 315 | - enabled_accounts = app.get_enabled_accounts_with_labels()
|
|
| 316 | - if len(enabled_accounts) > 1:
|
|
| 317 | - self._account_badge = AccountBadge(self._contact.account)
|
|
| 318 | - self._ui.additional_items_box.pack_end(
|
|
| 319 | - self._account_badge, False, True, 0)
|
|
| 321 | + self._account_badge.set_visible(visible)
|
|
| 320 | 322 | |
| 321 | 323 | def _on_request_voice_clicked(self, _button: Gtk.Button) -> None:
|
| 322 | 324 | self._ui.visitor_popover.popdown()
|
| ... | ... | @@ -782,21 +782,22 @@ def _on_realize(*args: Any) -> None: |
| 782 | 782 | |
| 783 | 783 | |
| 784 | 784 | class AccountBadge(Gtk.Label):
|
| 785 | - def __init__(self, account: str) -> None:
|
|
| 785 | + def __init__(self, account: Optional[str] = None) -> None:
|
|
| 786 | 786 | Gtk.Label.__init__(self)
|
| 787 | 787 | self.set_ellipsize(Pango.EllipsizeMode.END)
|
| 788 | 788 | self.set_max_width_chars(12)
|
| 789 | 789 | self.set_size_request(50, -1)
|
| 790 | 790 | self.get_style_context().add_class('badge')
|
| 791 | - self._account = account
|
|
| 791 | + self.set_no_show_all(True)
|
|
| 792 | 792 | |
| 793 | - self.refresh()
|
|
| 794 | - self.show()
|
|
| 793 | + if account is not None:
|
|
| 794 | + self.set_account(account)
|
|
| 795 | + self.show()
|
|
| 795 | 796 | |
| 796 | - def refresh(self) -> None:
|
|
| 797 | - label = app.get_account_label(self._account)
|
|
| 797 | + def set_account(self, account: str) -> None:
|
|
| 798 | + label = app.get_account_label(account)
|
|
| 798 | 799 | self.set_text(label)
|
| 799 | - account_class = app.css_config.get_dynamic_class(self._account)
|
|
| 800 | + account_class = app.css_config.get_dynamic_class(account)
|
|
| 800 | 801 | self.get_style_context().add_class(account_class)
|
| 801 | 802 | self.set_tooltip_text(_('Account: %s') % label)
|
| 802 | 803 |