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


Commits:
4a9c6245 by wurstsalat at 2025-05-10T14:25:39+02:00
imprv: Groupchat details: Add sidebar row header for administration

- - - - -


3 changed files:

- gajim/data/style/gajim.css
- gajim/gtk/groupchat_details.py
- gajim/gtk/sidebar_switcher.py


Changes:

=====================================
gajim/data/style/gajim.css
=====================================
@@ -1007,6 +1007,10 @@ list.settings-menu row {
 list.settings-menu row label {
     padding-left: 12px;
 }
+list.settings-menu .sidebar-row-header {
+    padding: 12px 18px;
+    font-weight: bold;
+}
 
 popover.combo list {
     min-width: 200px;


=====================================
gajim/gtk/groupchat_details.py
=====================================
@@ -22,6 +22,8 @@
 from gajim.gtk.groupchat_outcasts import GroupchatOutcasts
 from gajim.gtk.groupchat_settings import GroupChatSettings
 from gajim.gtk.omemo_trust_manager import OMEMOTrustManager
+from gajim.gtk.sidebar_switcher import Row
+from gajim.gtk.sidebar_switcher import RowHeader
 from gajim.gtk.sidebar_switcher import SideBarSwitcher
 from gajim.gtk.structs import AccountJidParam
 from gajim.gtk.widgets import GajimAppWindow
@@ -47,6 +49,7 @@ def __init__(self, contact: GroupchatContact, page: str | 
None = None) -> None:
         self._ui = get_builder("groupchat_details.ui")
 
         self._switcher = SideBarSwitcher(width=250)
+        self._switcher.set_header_func(self._sidebar_header_func)
         self._switcher.set_stack(self._ui.main_stack, rows_visible=False)
         self._ui.main_grid.attach(self._switcher, 0, 0, 1, 1)
         self.set_child(self._ui.main_grid)
@@ -81,6 +84,16 @@ def _cleanup(self) -> None:
         del self._groupchat_manage
         del self._groupchat_info
 
+    @staticmethod
+    def _sidebar_header_func(row: Row, before: Row | None) -> None:
+        if before is None:
+            row.set_header(None)
+        else:
+            if row.name == "manage":
+                row.set_header(RowHeader(label_text=_("Administration")))
+            else:
+                row.set_header(None)
+
     def _on_disco_info_update(
         self, _contact: GroupchatContact, _signal_name: str
     ) -> None:


=====================================
gajim/gtk/sidebar_switcher.py
=====================================
@@ -28,6 +28,7 @@ def __init__(self, width: int | None = None) -> None:
         self._rows: dict[str, Row] = {}
 
     def do_unroot(self) -> None:
+        self.set_header_func(None)
         Gtk.ListBox.do_unroot(self)
         self._disconnect_all()
         del self._stack
@@ -93,3 +94,11 @@ def __init__(
         box.append(label)
         self.set_child(box)
         self.set_visible(visible)
+
+
+class RowHeader(Gtk.Box):
+    def __init__(self, label_text: str) -> None:
+        Gtk.Box.__init__(self, hexpand=True)
+        self.add_css_class("sidebar-row-header")
+        label = Gtk.Label(label=label_text)
+        self.append(label)



View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/commit/4a9c62454161fa67439da9b8050ba0f17efb57f8

-- 
View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/commit/4a9c62454161fa67439da9b8050ba0f17efb57f8
You're receiving this email because of your account on dev.gajim.org.


_______________________________________________
Commits mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to