From 53910d73550308912c4bfd42aaf1d0c84f2632c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Danielle=20For=C3=A9?= Date: Mon, 17 Nov 2025 14:45:05 -0800 Subject: [PATCH 1/4] MainWindow: use Adw.NavigationView --- src/MainWindow.vala | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/src/MainWindow.vala b/src/MainWindow.vala index 2bc33645..a75d3d65 100644 --- a/src/MainWindow.vala +++ b/src/MainWindow.vala @@ -71,13 +71,14 @@ public class Feedback.MainWindow : Gtk.ApplicationWindow { category_list.append (settings_category); category_list.append (system_category); - var back_button = new Gtk.Button.with_label (_("Categories")) { + var category_page = new Adw.NavigationPage (category_list, _("Categories")); + + var back_button = new Granite.BackButton (_("Categories")) { halign = Gtk.Align.START, margin_top = 6, margin_bottom = 6, margin_start = 6 }; - back_button.add_css_class (Granite.STYLE_CLASS_BACK_BUTTON); var category_title = new Gtk.Label ("") { hexpand = true, @@ -229,17 +230,15 @@ public class Feedback.MainWindow : Gtk.ApplicationWindow { repo_list_box.append (new Gtk.Separator (Gtk.Orientation.HORIZONTAL)); repo_list_box.append (scrolled); - var leaflet = new Adw.Leaflet () { - can_navigate_back = true, - can_unfold = false, - hexpand = true, + var components_page = new Adw.NavigationPage (repo_list_box , _("Components")); + + var navigation_view = new Adw.NavigationView () { vexpand = true }; - leaflet.append (category_list); - leaflet.append (repo_list_box); + navigation_view.add (category_page); var frame = new Gtk.Frame (null) { - child = leaflet, + child = navigation_view, margin_top = 12 }; @@ -298,10 +297,14 @@ public class Feedback.MainWindow : Gtk.ApplicationWindow { gtk_settings.gtk_application_prefer_dark_theme = granite_settings.prefers_color_scheme == Granite.Settings.ColorScheme.DARK; }); + components_page.bind_property ("title", category_title, "label", SYNC_CREATE); + category_list.row_activated.connect ((row) => { - leaflet.visible_child = repo_list_box; + navigation_view.push (components_page); + category_filter = ((CategoryRow) row).category; - category_title.label = category_filter.to_string (); + components_page.title = category_filter.to_string (); + listbox.invalidate_filter (); var adjustment = scrolled.get_vadjustment (); adjustment.set_value (adjustment.lower); @@ -309,7 +312,6 @@ public class Feedback.MainWindow : Gtk.ApplicationWindow { back_button.clicked.connect (() => { category_list.select_row (null); - leaflet.navigate (BACK); }); listbox.selected_rows_changed.connect (() => { @@ -336,22 +338,20 @@ public class Feedback.MainWindow : Gtk.ApplicationWindow { search_entry.search_changed.connect (() => { if (search_entry.text != "") { placeholder.title = _("No results found for ā€œ%sā€").printf (search_entry.text); - leaflet.visible_child = repo_list_box; - category_title.label = ""; + navigation_view.push (components_page); + components_page.title = ""; } else if (category_list.get_selected_row () == null) { - leaflet.visible_child = category_list; + navigation_view.pop (); } else if (category_filter != null) { - category_title.label = category_filter.to_string (); + components_page.title = category_filter.to_string (); } listbox.invalidate_filter (); }); - leaflet.notify["child-transition-running"].connect (() => { - if (!leaflet.child_transition_running && leaflet.visible_child == category_list) { - listbox.select_row (null); - search_entry.text = ""; - } + navigation_view.popped.connect (() => { + listbox.select_row (null); + search_entry.text = ""; }); } From 2476ee5eca5da8c2a1d4f1a29e9ada2771b6bf51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Danielle=20For=C3=A9?= Date: Tue, 25 Nov 2025 11:36:46 -0800 Subject: [PATCH 2/4] bump deps --- meson.build | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/meson.build b/meson.build index 05b551ae..25f1d7c0 100644 --- a/meson.build +++ b/meson.build @@ -32,9 +32,9 @@ executable( appstream_dep, dependency('glib-2.0'), dependency('gobject-2.0'), - dependency('granite-7', version: '>=7.0.0'), + dependency('granite-7', version: '>=7.7.0'), dependency('gtk4', version: '>= 4.10'), - dependency('libadwaita-1', version: '>=1.0.0') + dependency('libadwaita-1', version: '>=1.4.0') ], install : true ) From 3a00282faad213a36cefc16040781ec6062503c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Danielle=20For=C3=A9?= Date: Tue, 25 Nov 2025 11:39:54 -0800 Subject: [PATCH 3/4] Fix warnings --- src/MainWindow.vala | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/MainWindow.vala b/src/MainWindow.vala index fdf25182..4d515656 100644 --- a/src/MainWindow.vala +++ b/src/MainWindow.vala @@ -313,8 +313,11 @@ public class Feedback.MainWindow : Gtk.ApplicationWindow { search_entry.search_changed.connect (() => { if (search_entry.text != "") { placeholder.title = _("No results found for ā€œ%sā€").printf (search_entry.text); - navigation_view.push (components_page); - components_page.title = ""; + components_page.title = _("Search Results"); + + if (navigation_view.visible_page != components_page) { + navigation_view.push (components_page); + } } else if (category_list.get_selected_row () == null) { navigation_view.pop (); } else if (category_filter != null) { From 4153df04bf24d73fbfeeb9f5d2f2b21da9871712 Mon Sep 17 00:00:00 2001 From: Ryo Nakano Date: Wed, 26 Nov 2025 06:52:56 +0900 Subject: [PATCH 4/4] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index acbefe97..817d9fd3 100644 --- a/README.md +++ b/README.md @@ -9,9 +9,9 @@ GitHub Issue Reporter You'll need the following dependencies: * libappstream-dev (>=1.0.0) -* libgranite-7-dev (>=7.0.0) +* libgranite-7-dev (>=7.7.0) * libgtk-4-dev (>=4.10) -* libadwaita-1-dev (>=1.0.0) +* libadwaita-1-dev (>=1.4.0) * meson * valac