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


Commits:
95ca810c by wurstsalat at 2022-10-18T23:11:46+02:00
new: AccountsWindow: Add parameter for jumping to pages

- - - - -


1 changed file:

- gajim/gtk/accounts.py


Changes:

=====================================
gajim/gtk/accounts.py
=====================================
@@ -166,9 +166,9 @@ def add_account(self, account: str, initial: bool = False) 
-> None:
         if not initial:
             self._accounts[account].show()
 
-    def select_account(self, account: str) -> None:
+    def select_account(self, account: str, page: Optional[str] = None) -> None:
         try:
-            self._accounts[account].select()
+            self._accounts[account].select(page)
         except KeyError:
             log.warning('select_account() failed, account %s not found',
                         account)
@@ -292,6 +292,12 @@ def _on_sub_menu_row_activated(self,
                       listbox.account,
                       f'{listbox.account}-{row.name}')
 
+    def set_page(self, account: str, page_name: str) -> None:
+        sub_menu = cast(
+            AccountSubMenu, self._stack.get_child_by_name(f'{account}-menu'))
+        sub_menu.select_row_by_name(page_name)
+        self.emit('menu-activated', account, f'{account}-{page_name}')
+
     def update_account_label(self, account: str) -> None:
         self._accounts_listbox.invalidate_sort()
         sub_menu = cast(
@@ -325,6 +331,14 @@ def __init__(self, account: str) -> None:
     def account(self) -> str:
         return self._account
 
+    def select_row_by_name(self, row_name: str) -> None:
+        for row in self.get_children():
+            if not isinstance(row, PageMenuItem):
+                continue
+            if row.name == row_name:
+                self.select_row(row)
+                return
+
     def update(self) -> None:
         self.emit('update', self._account)
 
@@ -443,8 +457,10 @@ def __init__(self,
         self._account_row = AccountRow(account)
         self._menu.add_account(self._account_row)
 
-    def select(self) -> None:
+    def select(self, page_name: Optional[str] = None) -> None:
         self._account_row.emit('activate')
+        if page_name is not None:
+            self._menu.set_page(self._account, page_name)
 
     def show(self) -> None:
         self._menu.show_all()



View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/commit/95ca810cd176b865d1f0a9b09be24204a6f9c47c

-- 
View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/commit/95ca810cd176b865d1f0a9b09be24204a6f9c47c
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