Daniel Brötzmann pushed to branch master at gajim / gajim

Commits:

1 changed file:

Changes:

  • gajim/gtk/accounts.py
    ... ... @@ -166,9 +166,9 @@ def add_account(self, account: str, initial: bool = False) -> None:
    166 166
             if not initial:
    
    167 167
                 self._accounts[account].show()
    
    168 168
     
    
    169
    -    def select_account(self, account: str) -> None:
    
    169
    +    def select_account(self, account: str, page: Optional[str] = None) -> None:
    
    170 170
             try:
    
    171
    -            self._accounts[account].select()
    
    171
    +            self._accounts[account].select(page)
    
    172 172
             except KeyError:
    
    173 173
                 log.warning('select_account() failed, account %s not found',
    
    174 174
                             account)
    
    ... ... @@ -292,6 +292,12 @@ def _on_sub_menu_row_activated(self,
    292 292
                           listbox.account,
    
    293 293
                           f'{listbox.account}-{row.name}')
    
    294 294
     
    
    295
    +    def set_page(self, account: str, page_name: str) -> None:
    
    296
    +        sub_menu = cast(
    
    297
    +            AccountSubMenu, self._stack.get_child_by_name(f'{account}-menu'))
    
    298
    +        sub_menu.select_row_by_name(page_name)
    
    299
    +        self.emit('menu-activated', account, f'{account}-{page_name}')
    
    300
    +
    
    295 301
         def update_account_label(self, account: str) -> None:
    
    296 302
             self._accounts_listbox.invalidate_sort()
    
    297 303
             sub_menu = cast(
    
    ... ... @@ -325,6 +331,14 @@ def __init__(self, account: str) -> None:
    325 331
         def account(self) -> str:
    
    326 332
             return self._account
    
    327 333
     
    
    334
    +    def select_row_by_name(self, row_name: str) -> None:
    
    335
    +        for row in self.get_children():
    
    336
    +            if not isinstance(row, PageMenuItem):
    
    337
    +                continue
    
    338
    +            if row.name == row_name:
    
    339
    +                self.select_row(row)
    
    340
    +                return
    
    341
    +
    
    328 342
         def update(self) -> None:
    
    329 343
             self.emit('update', self._account)
    
    330 344
     
    
    ... ... @@ -443,8 +457,10 @@ def __init__(self,
    443 457
             self._account_row = AccountRow(account)
    
    444 458
             self._menu.add_account(self._account_row)
    
    445 459
     
    
    446
    -    def select(self) -> None:
    
    460
    +    def select(self, page_name: Optional[str] = None) -> None:
    
    447 461
             self._account_row.emit('activate')
    
    462
    +        if page_name is not None:
    
    463
    +            self._menu.set_page(self._account, page_name)
    
    448 464
     
    
    449 465
         def show(self) -> None:
    
    450 466
             self._menu.show_all()