From 04ce10ad1c2afda743af0eefd42da744449e7673 Mon Sep 17 00:00:00 2001 From: Zach DeCook Date: Sun, 10 May 2026 20:52:49 -0400 Subject: [PATCH 1/8] Use AdwNavigationView instead of inner AdwLeaflet --- data/ui/fidei.ui | 105 ++++++++++++++++++++++------------------------- meson.build | 2 +- src/fidei.c | 15 ++----- 3 files changed, 54 insertions(+), 68 deletions(-) diff --git a/data/ui/fidei.ui b/data/ui/fidei.ui index f7f59ef..7588589 100644 --- a/data/ui/fidei.ui +++ b/data/ui/fidei.ui @@ -111,28 +111,29 @@ true true - - false - true - false - ADW_LEAFLET_TRANSITION_TYPE_SLIDE + - - never + + Book Selection - - 8 + + never - - true - - - /arpa/sp1rit/Fidei/ui/factory_bookitem.ui + + 8 + + + true + + + /arpa/sp1rit/Fidei/ui/factory_bookitem.ui + + + - @@ -140,53 +141,45 @@ - - vertical - - - go-previous-symbolic - 8 - 8 - 12 - 8 - - - - - - horizontal - - - - - 187 - never - true - - - 8 - 8 - 12 - 8 + + Chapter Selection + + + + + false + + + + + 187 + never + true - - true - - - /arpa/sp1rit/Fidei/ui/factory_chapteritem.ui + + 8 + 8 + 12 + 8 + + + true + + + /arpa/sp1rit/Fidei/ui/factory_chapteritem.ui + + + - - + diff --git a/meson.build b/meson.build index d007241..9e6ec87 100644 --- a/meson.build +++ b/meson.build @@ -24,7 +24,7 @@ app_id = 'arpa.sp1rit.Fidei' i18n = import('i18n') gtk_dep = dependency('gtk4', version: '>= 4.10.0') -adw_dep = dependency('libadwaita-1', version: '>= 1.2.0') +adw_dep = dependency('libadwaita-1', version: '>= 1.4.0') xml_dep = dependency('libxml-2.0') icu_dep = dependency('icu-uc', required: get_option('libicu')) diff --git a/src/fidei.c b/src/fidei.c index f009f93..a0d1691 100644 --- a/src/fidei.c +++ b/src/fidei.c @@ -67,11 +67,11 @@ typedef struct { // content-parent AdwLeaflet* main; // book/chapter select - AdwLeaflet* selector_stack; + AdwNavigationView* selector_stack; GtkScrolledWindow* booksel_scroll; GtkListView* book_selector; + AdwNavigationPage* chaptersel_page; GtkBox* chaptersel_box; - GtkButton* chapter_back_book_navbtn; GtkGridView* chapter_selector; // content GtkBox* content_actions; @@ -151,8 +151,7 @@ void fidei_appwindow_class_init(FideiAppWindowClass* class) { gtk_widget_class_bind_template_child_private(widget_class, FideiAppWindow, selector_stack); gtk_widget_class_bind_template_child_private(widget_class, FideiAppWindow, booksel_scroll); gtk_widget_class_bind_template_child_private(widget_class, FideiAppWindow, book_selector); - gtk_widget_class_bind_template_child_private(widget_class, FideiAppWindow, chaptersel_box); - gtk_widget_class_bind_template_child_private(widget_class, FideiAppWindow, chapter_back_book_navbtn); + gtk_widget_class_bind_template_child_private(widget_class, FideiAppWindow, chaptersel_page); gtk_widget_class_bind_template_child_private(widget_class, FideiAppWindow, chapter_selector); gtk_widget_class_bind_template_child_private(widget_class, FideiAppWindow, content_actions); gtk_widget_class_bind_template_child_private(widget_class, FideiAppWindow, leaflet_back_navbtn); @@ -285,12 +284,7 @@ static void book_clicked(GtkListView* view, guint pos, FideiAppWindow* self) { gtk_grid_view_set_model(priv->chapter_selector, GTK_SELECTION_MODEL(chaptermodel)); g_object_unref(chaptermodel); - adw_leaflet_navigate(priv->selector_stack, ADW_NAVIGATION_DIRECTION_FORWARD); -} - -static void chapter_back_book_navbtn_clicked(GtkButton*, FideiAppWindow* self) { - FideiAppWindowPrivate* priv = fidei_appwindow_get_instance_private(self); - adw_leaflet_navigate(priv->selector_stack, ADW_NAVIGATION_DIRECTION_BACK); + adw_navigation_view_push(priv->selector_stack, priv->chaptersel_page); } static void chapter_clicked(GtkListView*, guint pos, FideiAppWindow* self) { @@ -346,7 +340,6 @@ void fidei_appwindow_init(FideiAppWindow* self) { g_signal_connect(priv->book_selector, "activate", G_CALLBACK(book_clicked), self); - g_signal_connect(priv->chapter_back_book_navbtn, "clicked", G_CALLBACK(chapter_back_book_navbtn_clicked), self); g_signal_connect(priv->chapter_selector, "activate", G_CALLBACK(chapter_clicked), self); g_signal_connect(priv->leaflet_back_navbtn, "clicked", G_CALLBACK(leaflet_back_navbtn_clicked), self); From 4ee550fbb95862de858e2836afb7b144adc98c9f Mon Sep 17 00:00:00 2001 From: Zach DeCook Date: Sun, 10 May 2026 22:23:34 -0400 Subject: [PATCH 2/8] bible_item: ellipsize the copyright so it doesn't force the window to be too large --- data/ui/bible_item.ui | 1 + 1 file changed, 1 insertion(+) diff --git a/data/ui/bible_item.ui b/data/ui/bible_item.ui index c37fd66..c1930db 100644 --- a/data/ui/bible_item.ui +++ b/data/ui/bible_item.ui @@ -32,6 +32,7 @@ + end true 0.0 Date: Sun, 10 May 2026 22:32:06 -0400 Subject: [PATCH 3/8] Switch to NavigationSplitView --- data/ui/fidei.ui | 252 ++++++++++++++++++++--------------------------- src/fidei.c | 11 +-- 2 files changed, 111 insertions(+), 152 deletions(-) diff --git a/data/ui/fidei.ui b/data/ui/fidei.ui index 7588589..0a9576f 100644 --- a/data/ui/fidei.ui +++ b/data/ui/fidei.ui @@ -26,6 +26,13 @@