Philipp Hörist pushed to branch master at gajim / gajim


Commits:
814ce5de by Philipp Hörist at 2022-10-05T17:54:27+02:00
refactor: Remove unused code

- - - - -
2175354d by Philipp Hörist at 2022-10-05T19:43:02+02:00
cfix: Raise AccountDisabled event only after account cleanup

- - - - -
63a78910 by Philipp Hörist at 2022-10-05T19:45:02+02:00
change: Show account color bar only when multiple accounts are active

- - - - -


2 changed files:

- gajim/gtk/account_side_bar.py
- gajim/gui_interface.py


Changes:

=====================================
gajim/gtk/account_side_bar.py
=====================================
@@ -21,10 +21,13 @@
 from gi.repository import Gtk
 
 from gajim.common import app
+from gajim.common import ged
 from gajim.common.const import AvatarSize
 from gajim.common.helpers import get_client_status
 from gajim.common.i18n import _
 
+from .util import EventHelper
+
 
 class AccountSideBar(Gtk.ListBox):
     def __init__(self) -> None:
@@ -67,14 +70,22 @@ def update_unread_count(self, account: str, count: int) -> 
None:
                 break
 
 
-class Account(Gtk.ListBoxRow):
+class Account(Gtk.ListBoxRow, EventHelper):
     def __init__(self, account: str) -> None:
         Gtk.ListBoxRow.__init__(self)
+        EventHelper.__init__(self)
         self.get_style_context().add_class('account-sidebar-item')
 
         self.account = account
         self._account_class: Optional[str] = None
 
+        self.register_events([
+            ('account-enabled', ged.GUI1,
+             self._update_account_color_visibility),
+            ('account-disabled', ged.GUI1,
+             self._update_account_color_visibility),
+        ])
+
         selection_bar = Gtk.Box()
         selection_bar.set_size_request(6, -1)
         selection_bar.get_style_context().add_class('selection-bar')
@@ -89,9 +100,11 @@ def __init__(self, account: str) -> None:
         self._unread_label.set_valign(Gtk.Align.START)
 
         self._account_color_bar = Gtk.Box()
+        self._account_color_bar.set_no_show_all(True)
         self._account_color_bar.set_size_request(6, -1)
         self._account_color_bar.get_style_context().add_class(
             'account-identifier-bar')
+        self._update_account_color_visibility()
 
         account_box = Gtk.Box(spacing=3)
         account_box.set_tooltip_text(
@@ -99,7 +112,7 @@ def __init__(self, account: str) -> None:
         account_box.add(selection_bar)
         account_box.add(self._image)
         account_box.add(self._account_color_bar)
-        self._update_account_color()
+        self._set_account_color()
 
         overlay = Gtk.Overlay()
         overlay.add(account_box)
@@ -108,7 +121,7 @@ def __init__(self, account: str) -> None:
         self.add(overlay)
         self.show_all()
 
-    def _update_account_color(self) -> None:
+    def _set_account_color(self) -> None:
         context = self._account_color_bar.get_style_context()
         if self._account_class is not None:
             context.remove_class(self._account_class)
@@ -123,8 +136,9 @@ def set_unread_count(self, count: int) -> None:
             self._unread_label.set_text('999+')
         self._unread_label.set_visible(bool(count))
 
-    def update(self) -> None:
-        self._update_account_color()
+    def _update_account_color_visibility(self, *args: Any) -> None:
+        visible = app.get_number_of_accounts() > 1
+        self._account_color_bar.set_visible(visible)
 
 
 class AccountAvatar(Gtk.Image):


=====================================
gajim/gui_interface.py
=====================================
@@ -563,8 +563,6 @@ def disable_account(self, account: str) -> None:
         build_accounts_menu()
         app.app.update_app_actions_state()
 
-        app.ged.raise_event(AccountDisabled(account=account))
-
         app.connections[account].cleanup()
         del app.connections[account]
         del self.instances[account]
@@ -572,6 +570,8 @@ def disable_account(self, account: str) -> None:
         del app.automatic_rooms[account]
         del app.to_be_removed[account]
 
+        app.ged.raise_event(AccountDisabled(account=account))
+
     def remove_account(self, account: str) -> None:
         if app.settings.get_account_setting(account, 'active'):
             self.disable_account(account)



View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/compare/2a0cd556b4bd40906b233211fbdd2908b313411a...63a7891010a53be0009b6aff9d69d086565d0cd3

-- 
View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/compare/2a0cd556b4bd40906b233211fbdd2908b313411a...63a7891010a53be0009b6aff9d69d086565d0cd3
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