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

Commits:

2 changed files:

Changes:

  • gajim/gtk/account_side_bar.py
    ... ... @@ -21,10 +21,13 @@
    21 21
     from gi.repository import Gtk
    
    22 22
     
    
    23 23
     from gajim.common import app
    
    24
    +from gajim.common import ged
    
    24 25
     from gajim.common.const import AvatarSize
    
    25 26
     from gajim.common.helpers import get_client_status
    
    26 27
     from gajim.common.i18n import _
    
    27 28
     
    
    29
    +from .util import EventHelper
    
    30
    +
    
    28 31
     
    
    29 32
     class AccountSideBar(Gtk.ListBox):
    
    30 33
         def __init__(self) -> None:
    
    ... ... @@ -67,14 +70,22 @@ def update_unread_count(self, account: str, count: int) -> None:
    67 70
                     break
    
    68 71
     
    
    69 72
     
    
    70
    -class Account(Gtk.ListBoxRow):
    
    73
    +class Account(Gtk.ListBoxRow, EventHelper):
    
    71 74
         def __init__(self, account: str) -> None:
    
    72 75
             Gtk.ListBoxRow.__init__(self)
    
    76
    +        EventHelper.__init__(self)
    
    73 77
             self.get_style_context().add_class('account-sidebar-item')
    
    74 78
     
    
    75 79
             self.account = account
    
    76 80
             self._account_class: Optional[str] = None
    
    77 81
     
    
    82
    +        self.register_events([
    
    83
    +            ('account-enabled', ged.GUI1,
    
    84
    +             self._update_account_color_visibility),
    
    85
    +            ('account-disabled', ged.GUI1,
    
    86
    +             self._update_account_color_visibility),
    
    87
    +        ])
    
    88
    +
    
    78 89
             selection_bar = Gtk.Box()
    
    79 90
             selection_bar.set_size_request(6, -1)
    
    80 91
             selection_bar.get_style_context().add_class('selection-bar')
    
    ... ... @@ -89,9 +100,11 @@ def __init__(self, account: str) -> None:
    89 100
             self._unread_label.set_valign(Gtk.Align.START)
    
    90 101
     
    
    91 102
             self._account_color_bar = Gtk.Box()
    
    103
    +        self._account_color_bar.set_no_show_all(True)
    
    92 104
             self._account_color_bar.set_size_request(6, -1)
    
    93 105
             self._account_color_bar.get_style_context().add_class(
    
    94 106
                 'account-identifier-bar')
    
    107
    +        self._update_account_color_visibility()
    
    95 108
     
    
    96 109
             account_box = Gtk.Box(spacing=3)
    
    97 110
             account_box.set_tooltip_text(
    
    ... ... @@ -99,7 +112,7 @@ def __init__(self, account: str) -> None:
    99 112
             account_box.add(selection_bar)
    
    100 113
             account_box.add(self._image)
    
    101 114
             account_box.add(self._account_color_bar)
    
    102
    -        self._update_account_color()
    
    115
    +        self._set_account_color()
    
    103 116
     
    
    104 117
             overlay = Gtk.Overlay()
    
    105 118
             overlay.add(account_box)
    
    ... ... @@ -108,7 +121,7 @@ def __init__(self, account: str) -> None:
    108 121
             self.add(overlay)
    
    109 122
             self.show_all()
    
    110 123
     
    
    111
    -    def _update_account_color(self) -> None:
    
    124
    +    def _set_account_color(self) -> None:
    
    112 125
             context = self._account_color_bar.get_style_context()
    
    113 126
             if self._account_class is not None:
    
    114 127
                 context.remove_class(self._account_class)
    
    ... ... @@ -123,8 +136,9 @@ def set_unread_count(self, count: int) -> None:
    123 136
                 self._unread_label.set_text('999+')
    
    124 137
             self._unread_label.set_visible(bool(count))
    
    125 138
     
    
    126
    -    def update(self) -> None:
    
    127
    -        self._update_account_color()
    
    139
    +    def _update_account_color_visibility(self, *args: Any) -> None:
    
    140
    +        visible = app.get_number_of_accounts() > 1
    
    141
    +        self._account_color_bar.set_visible(visible)
    
    128 142
     
    
    129 143
     
    
    130 144
     class AccountAvatar(Gtk.Image):
    

  • gajim/gui_interface.py
    ... ... @@ -563,8 +563,6 @@ def disable_account(self, account: str) -> None:
    563 563
             build_accounts_menu()
    
    564 564
             app.app.update_app_actions_state()
    
    565 565
     
    
    566
    -        app.ged.raise_event(AccountDisabled(account=account))
    
    567
    -
    
    568 566
             app.connections[account].cleanup()
    
    569 567
             del app.connections[account]
    
    570 568
             del self.instances[account]
    
    ... ... @@ -572,6 +570,8 @@ def disable_account(self, account: str) -> None:
    572 570
             del app.automatic_rooms[account]
    
    573 571
             del app.to_be_removed[account]
    
    574 572
     
    
    573
    +        app.ged.raise_event(AccountDisabled(account=account))
    
    574
    +
    
    575 575
         def remove_account(self, account: str) -> None:
    
    576 576
             if app.settings.get_account_setting(account, 'active'):
    
    577 577
                 self.disable_account(account)