[gnome-builder/wip/gtk4-port] plugins/buildui: add API to change warning/error filters



commit d9a1e1cad6fd065eb0df759e8bb51a87dc96351d
Author: Christian Hergert <chergert redhat com>
Date:   Fri May 20 15:38:19 2022 -0700

    plugins/buildui: add API to change warning/error filters

 src/plugins/buildui/gbp-buildui-status-popover.c | 24 ++++++++++++++++++++----
 src/plugins/buildui/gbp-buildui-status-popover.h |  4 +++-
 2 files changed, 23 insertions(+), 5 deletions(-)
---
diff --git a/src/plugins/buildui/gbp-buildui-status-popover.c 
b/src/plugins/buildui/gbp-buildui-status-popover.c
index 401bdf428..2f50d452e 100644
--- a/src/plugins/buildui/gbp-buildui-status-popover.c
+++ b/src/plugins/buildui/gbp-buildui-status-popover.c
@@ -30,16 +30,17 @@
 
 struct _GbpBuilduiStatusPopover
 {
-  GtkPopover      parent_instance;
+  GtkPopover       parent_instance;
 
   /* Owned references */
   IdeSignalGroup  *pipeline_signals;
   GHashTable      *deduplicator;
-  GtkCustomFilter *error_filter;
-  GtkCustomFilter *warning_filter;
 
   /* Template references */
-  GListStore     *diagnostics;
+  GListStore      *diagnostics;
+  GtkStack        *stack;
+  GtkCustomFilter *error_filter;
+  GtkCustomFilter *warning_filter;
 };
 
 G_DEFINE_FINAL_TYPE (GbpBuilduiStatusPopover, gbp_buildui_status_popover, GTK_TYPE_POPOVER)
@@ -169,6 +170,7 @@ gbp_buildui_status_popover_class_init (GbpBuilduiStatusPopoverClass *klass)
   gtk_widget_class_set_template_from_resource (widget_class, 
"/plugins/buildui/gbp-buildui-status-popover.ui");
   gtk_widget_class_bind_template_child (widget_class, GbpBuilduiStatusPopover, diagnostics);
   gtk_widget_class_bind_template_child (widget_class, GbpBuilduiStatusPopover, error_filter);
+  gtk_widget_class_bind_template_child (widget_class, GbpBuilduiStatusPopover, stack);
   gtk_widget_class_bind_template_child (widget_class, GbpBuilduiStatusPopover, warning_filter);
   gtk_widget_class_bind_template_callback (widget_class, gbp_buildui_status_popover_activate_cb);
 
@@ -239,3 +241,17 @@ gbp_buildui_status_popover_new (IdeContext *context)
 
   return self;
 }
+
+void
+gbp_buildui_status_popover_set_page (GbpBuilduiStatusPopover *self,
+                                     const char              *page)
+{
+  GtkWidget *visible_child;
+
+  g_return_if_fail (GBP_IS_BUILDUI_STATUS_POPOVER (self));
+  g_return_if_fail (page != NULL);
+
+  gtk_stack_set_visible_child_name (self->stack, page);
+  visible_child = gtk_stack_get_visible_child (self->stack);
+  gtk_widget_grab_focus (visible_child);
+}
diff --git a/src/plugins/buildui/gbp-buildui-status-popover.h 
b/src/plugins/buildui/gbp-buildui-status-popover.h
index c12543f28..0027f670f 100644
--- a/src/plugins/buildui/gbp-buildui-status-popover.h
+++ b/src/plugins/buildui/gbp-buildui-status-popover.h
@@ -30,6 +30,8 @@ G_BEGIN_DECLS
 
 G_DECLARE_FINAL_TYPE (GbpBuilduiStatusPopover, gbp_buildui_status_popover, GBP, BUILDUI_STATUS_POPOVER, 
GtkPopover)
 
-GbpBuilduiStatusPopover *gbp_buildui_status_popover_new (IdeContext *context);
+GbpBuilduiStatusPopover *gbp_buildui_status_popover_new      (IdeContext              *context);
+void                     gbp_buildui_status_popover_set_page (GbpBuilduiStatusPopover *self,
+                                                              const char              *page);
 
 G_END_DECLS


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