[gnome-builder] libide/tweaks: push panel list for subpages



commit 7f6a8d3448840761ab041d061330103661f39948
Author: Christian Hergert <chergert redhat com>
Date:   Tue Aug 2 22:59:51 2022 -0700

    libide/tweaks: push panel list for subpages
    
    We still don't have deep copy, so this doesn't exactly work yet as you'd
    expect it to. Instead it shows the factory as a line item.

 src/libide/tweaks/ide-tweaks-window.c | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)
---
diff --git a/src/libide/tweaks/ide-tweaks-window.c b/src/libide/tweaks/ide-tweaks-window.c
index a71b14781..9015fa98e 100644
--- a/src/libide/tweaks/ide-tweaks-window.c
+++ b/src/libide/tweaks/ide-tweaks-window.c
@@ -90,6 +90,23 @@ ide_tweaks_window_page_activated_cb (IdeTweaksWindow    *self,
     }
 
   gtk_stack_set_visible_child (self->panel_stack, panel);
+
+  /* If the page has subpages, then should show that list too */
+  if (ide_tweaks_page_get_has_subpage (page))
+    {
+      GtkWidget *sublist;
+
+      sublist = ide_tweaks_panel_list_new (IDE_TWEAKS_ITEM (page));
+      g_signal_connect_object (sublist,
+                               "page-activated",
+                               G_CALLBACK (ide_tweaks_window_page_activated_cb),
+                               self,
+                               G_CONNECT_SWAPPED);
+      gtk_stack_add_named (self->panel_list_stack,
+                           sublist,
+                           ide_tweaks_item_get_id (IDE_TWEAKS_ITEM (page)));
+      gtk_stack_set_visible_child (self->panel_list_stack, sublist);
+    }
 }
 
 static void


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]