From b996e05fd0a2a33dd0c2f9953e73d69d8511a6ef Mon Sep 17 00:00:00 2001 From: Bruce Cowan <bruce@bcowan.me.uk> Date: Sun, 8 Jan 2023 12:57:02 +0000 Subject: [PATCH] Switch page based on name, no need to store widget pointers this way --- data/gtk/window.blp | 8 ++++++-- src/rugby-app-window.c | 8 ++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/data/gtk/window.blp b/data/gtk/window.blp index 21f1e3f..8bca80b 100644 --- a/data/gtk/window.blp +++ b/data/gtk/window.blp @@ -63,14 +63,18 @@ template RugbyAppWindow : Adw.ApplicationWindow { Stack stack { StackPage { - child: Adw.StatusPage empty_page { + name: "empty_page"; + + child: Adw.StatusPage { icon-name: "list"; title: "No possibilities"; }; } StackPage { - child: ScrolledWindow list_page { + name: "list_page"; + + child: ScrolledWindow { vexpand: true; ListView listview { diff --git a/src/rugby-app-window.c b/src/rugby-app-window.c index b1029ee..c9f5f30 100644 --- a/src/rugby-app-window.c +++ b/src/rugby-app-window.c @@ -20,8 +20,6 @@ struct _RugbyAppWindow GtkWidget *scorespin; GtkWidget *tryspin; GtkWidget *stack; - GtkWidget *empty_page; - GtkWidget *list_page; GSettings *win_settings; @@ -39,9 +37,9 @@ list_store_items_changed_cb ( GListModel *model, { unsigned n_items = g_list_model_get_n_items (model); if (n_items == 0) - gtk_stack_set_visible_child (GTK_STACK (self->stack), self->empty_page); + gtk_stack_set_visible_child_name (GTK_STACK (self->stack), "empty_page"); else - gtk_stack_set_visible_child (GTK_STACK (self->stack), self->list_page); + gtk_stack_set_visible_child_name (GTK_STACK (self->stack), "list_page"); } static char * @@ -211,8 +209,6 @@ rugby_app_window_class_init (RugbyAppWindowClass *klass) gtk_widget_class_bind_template_child (widget_class, RugbyAppWindow, scorespin); gtk_widget_class_bind_template_child (widget_class, RugbyAppWindow, tryspin); gtk_widget_class_bind_template_child (widget_class, RugbyAppWindow, stack); - gtk_widget_class_bind_template_child (widget_class, RugbyAppWindow, empty_page); - gtk_widget_class_bind_template_child (widget_class, RugbyAppWindow, list_page); gtk_widget_class_bind_template_child (widget_class, RugbyAppWindow, try_filter); -- GitLab