[libadwaita/wip/exalm/browsing-view: 16/18] about-window: Port to browsing view




commit 9f41847a811e3a2a9380247e890948a213a43e19
Author: Alexander Mikhaylenko <alexm gnome org>
Date:   Tue Oct 11 17:35:55 2022 +0400

    about-window: Port to browsing view

 src/adw-about-window.c  |   47 +--
 src/adw-about-window.ui | 1025 +++++++++++++++++++++--------------------------
 2 files changed, 472 insertions(+), 600 deletions(-)
---
diff --git a/src/adw-about-window.c b/src/adw-about-window.c
index cb83fc28..b26995ce 100644
--- a/src/adw-about-window.c
+++ b/src/adw-about-window.c
@@ -10,7 +10,7 @@
 #include "adw-about-window.h"
 
 #include "adw-action-row.h"
-#include "adw-leaflet.h"
+#include "adw-browsing-view.h"
 #include "adw-macros-private.h"
 #include "adw-message-dialog.h"
 #include "adw-preferences-group.h"
@@ -237,8 +237,7 @@ typedef struct {
 struct _AdwAboutWindow {
   AdwWindow parent_instance;
 
-  GtkWidget *leaflet;
-  GtkWidget *subpage_stack;
+  GtkWidget *browsing_view;
   GtkWidget *toast_overlay;
   GtkWidget *main_scrolled_window;
   GtkWidget *headerbar_stack;
@@ -261,7 +260,7 @@ struct _AdwAboutWindow {
   GtkWidget *support_row;
   GtkWidget *issue_row;
   GtkWidget *troubleshooting_row;
-  GtkWidget *debug_info_page;
+  AdwBrowsingViewChild *debug_info_page;
 
   GtkWidget *credits_legal_group;
   GtkWidget *credits_box;
@@ -1203,23 +1202,6 @@ adw_about_window_finalize (GObject *object)
   G_OBJECT_CLASS (adw_about_window_parent_class)->finalize (object);
 }
 
-static void
-back_cb (AdwAboutWindow *self)
-{
-  adw_leaflet_navigate (ADW_LEAFLET (self->leaflet), ADW_NAVIGATION_DIRECTION_BACK);
-}
-
-static void
-subpage_cb (AdwAboutWindow *self,
-            const char     *action_name,
-            GVariant       *params)
-{
-  const char *name = g_variant_get_string (params, NULL);
-
-  gtk_stack_set_visible_child_name (GTK_STACK (self->subpage_stack), name);
-  adw_leaflet_navigate (ADW_LEAFLET (self->leaflet), ADW_NAVIGATION_DIRECTION_FORWARD);
-}
-
 static void
 show_url_cb (AdwAboutWindow *self,
              const char     *action_name,
@@ -1267,12 +1249,6 @@ copy_property_cb (AdwAboutWindow *self,
   g_free (value);
 }
 
-static void
-debug_cb (AdwAboutWindow *self)
-{
-  adw_leaflet_navigate (ADW_LEAFLET (self->leaflet), ADW_NAVIGATION_DIRECTION_FORWARD);
-}
-
 static void
 save_debug_info_response_cb (GtkFileChooser  *chooser,
                              GtkResponseType  response,
@@ -1342,10 +1318,8 @@ close_cb (GtkWidget *widget,
 {
   AdwAboutWindow *self = ADW_ABOUT_WINDOW (widget);
 
-  if (adw_leaflet_navigate (ADW_LEAFLET (self->leaflet), ADW_NAVIGATION_DIRECTION_BACK))
-    return GDK_EVENT_STOP;
-
-  gtk_window_close (GTK_WINDOW (self));
+  if (!adw_browsing_view_pop (ADW_BROWSING_VIEW (self->browsing_view), TRUE))
+    gtk_window_close (GTK_WINDOW (self));
 
   return GDK_EVENT_STOP;
 }
@@ -1357,7 +1331,7 @@ save_debug_info_shortcut_cb (GtkWidget *widget,
 {
   AdwAboutWindow *self = ADW_ABOUT_WINDOW (widget);
 
-  if (adw_leaflet_get_visible_child (ADW_LEAFLET (self->leaflet)) != self->debug_info_page)
+  if (adw_browsing_view_get_visible_child (ADW_BROWSING_VIEW (self->browsing_view)) != self->debug_info_page)
     return GDK_EVENT_PROPAGATE;
 
   save_debug_info_cb (self);
@@ -1843,8 +1817,7 @@ adw_about_window_class_init (AdwAboutWindowClass *klass)
 
   gtk_widget_class_set_template_from_resource (widget_class,
                                                "/org/gnome/Adwaita/ui/adw-about-window.ui");
-  gtk_widget_class_bind_template_child (widget_class, AdwAboutWindow, leaflet);
-  gtk_widget_class_bind_template_child (widget_class, AdwAboutWindow, subpage_stack);
+  gtk_widget_class_bind_template_child (widget_class, AdwAboutWindow, browsing_view);
   gtk_widget_class_bind_template_child (widget_class, AdwAboutWindow, toast_overlay);
   gtk_widget_class_bind_template_child (widget_class, AdwAboutWindow, main_scrolled_window);
   gtk_widget_class_bind_template_child (widget_class, AdwAboutWindow, headerbar_stack);
@@ -1876,18 +1849,12 @@ adw_about_window_class_init (AdwAboutWindowClass *klass)
 
   gtk_widget_class_bind_template_callback (widget_class, activate_link_cb);
 
-  gtk_widget_class_install_action (widget_class, "about.back", NULL,
-                                   (GtkWidgetActionActivateFunc) back_cb);
-  gtk_widget_class_install_action (widget_class, "about.subpage", "s",
-                                   (GtkWidgetActionActivateFunc) subpage_cb);
   gtk_widget_class_install_action (widget_class, "about.show-url", "s",
                                    (GtkWidgetActionActivateFunc) show_url_cb);
   gtk_widget_class_install_action (widget_class, "about.show-url-property", "s",
                                    (GtkWidgetActionActivateFunc) show_url_property_cb);
   gtk_widget_class_install_action (widget_class, "about.copy-property", "s",
                                    (GtkWidgetActionActivateFunc) copy_property_cb);
-  gtk_widget_class_install_action (widget_class, "about.debug", NULL,
-                                   (GtkWidgetActionActivateFunc) debug_cb);
   gtk_widget_class_install_action (widget_class, "about.save-debug-info", NULL,
                                    (GtkWidgetActionActivateFunc) save_debug_info_cb);
 
diff --git a/src/adw-about-window.ui b/src/adw-about-window.ui
index be91616d..222e0b88 100644
--- a/src/adw-about-window.ui
+++ b/src/adw-about-window.ui
@@ -12,256 +12,259 @@
     <property name="content">
       <object class="AdwToastOverlay" id="toast_overlay">
         <property name="child">
-          <object class="AdwLeaflet" id="leaflet">
-            <property name="can-navigate-back">True</property>
-            <property name="can-unfold">False</property>
+          <object class="AdwBrowsingView" id="browsing_view">
             <property name="width-request">360</property>
             <child>
-              <object class="GtkBox">
-                <property name="orientation">vertical</property>
-                <child>
-                  <object class="GtkStack" id="headerbar_stack">
-                    <property name="transition-type">crossfade</property>
-                    <property name="transition-duration">150</property>
+              <object class="AdwBrowsingViewChild">
+                <property name="title" translatable="yes">About</property>
+                <property name="child">
+                  <object class="GtkBox">
+                    <property name="orientation">vertical</property>
                     <child>
-                      <object class="GtkStackPage">
-                        <property name="name">top</property>
-                        <property name="child">
-                          <object class="GtkHeaderBar">
-                            <property name="title-widget">
-                              <object class="AdwWindowTitle">
-                                <property name="visible">False</property>
+                      <object class="GtkStack" id="headerbar_stack">
+                        <property name="transition-type">crossfade</property>
+                        <property name="transition-duration">150</property>
+                        <child>
+                          <object class="GtkStackPage">
+                            <property name="name">top</property>
+                            <property name="child">
+                              <object class="AdwHeaderBar">
+                                <property name="title-widget">
+                                  <object class="AdwWindowTitle">
+                                    <property name="visible">False</property>
+                                  </object>
+                                </property>
+                                <style>
+                                  <class name="flat"/>
+                                </style>
                               </object>
                             </property>
-                            <style>
-                              <class name="flat"/>
-                            </style>
                           </object>
-                        </property>
+                        </child>
+                        <child>
+                          <object class="GtkStackPage">
+                            <property name="name">regular</property>
+                            <property name="child">
+                              <object class="AdwHeaderBar"/>
+                            </property>
+                          </object>
+                        </child>
                       </object>
                     </child>
                     <child>
-                      <object class="GtkStackPage">
-                        <property name="name">regular</property>
-                        <property name="child">
-                          <object class="GtkHeaderBar"/>
-                        </property>
-                      </object>
-                    </child>
-                  </object>
-                </child>
-                <child>
-                  <object class="GtkScrolledWindow" id="main_scrolled_window">
-                    <property name="hscrollbar-policy">never</property>
-                    <property name="propagate-natural-width">True</property>
-                    <property name="propagate-natural-height">True</property>
-                    <property name="max-content-height">600</property>
-                    <style>
-                      <class name="main-page"/>
-                    </style>
-                    <property name="child">
-                      <object class="AdwClamp">
+                      <object class="GtkScrolledWindow" id="main_scrolled_window">
+                        <property name="hscrollbar-policy">never</property>
+                        <property name="propagate-natural-width">True</property>
+                        <property name="propagate-natural-height">True</property>
+                        <property name="max-content-height">600</property>
+                        <style>
+                          <class name="main-page"/>
+                        </style>
                         <property name="child">
-                          <object class="GtkBox">
-                            <property name="orientation">vertical</property>
-                            <property name="vexpand">True</property>
-                            <child>
-                              <object class="GtkImage" id="app_icon_image">
-                                <property name="visible">False</property>
-                                <property name="pixel-size">128</property>
-                                <property name="icon-name" bind-source="AdwAboutWindow" 
bind-property="application-icon" bind-flags="sync-create"/>
-                                <style>
-                                  <class name="icon-dropshadow"/>
-                                </style>
-                              </object>
-                            </child>
-                            <child>
-                              <object class="GtkLabel" id="app_name_label">
-                                <property name="visible">False</property>
-                                <property name="wrap">True</property>
-                                <property name="justify">center</property>
-                                <property name="label" bind-source="AdwAboutWindow" 
bind-property="application-name" bind-flags="sync-create"/>
-                                <style>
-                                  <class name="title-1"/>
-                                </style>
-                              </object>
-                            </child>
-                            <child>
-                              <object class="GtkLabel" id="developer_name_label">
-                                <property name="visible">False</property>
-                                <property name="wrap">True</property>
-                                <property name="justify">center</property>
-                                <property name="label" bind-source="AdwAboutWindow" 
bind-property="developer-name" bind-flags="sync-create"/>
-                              </object>
-                            </child>
-                            <child>
-                              <object class="GtkButton" id="version_button">
-                                <property name="visible">False</property>
-                                <property name="halign">center</property>
-                                <property name="action-name">about.copy-property</property>
-                                <property name="action-target">"version"</property>
-                                <property name="child">
-                                  <object class="GtkLabel">
-                                    <property name="ellipsize">end</property>
-                                    <property name="label" bind-source="AdwAboutWindow" 
bind-property="version" bind-flags="sync-create"/>
-                                  </object>
-                                </property>
-                                <style>
-                                  <class name="app-version"/>
-                                </style>
-                              </object>
-                            </child>
-                            <child>
+                          <object class="AdwClamp">
+                            <property name="child">
                               <object class="GtkBox">
                                 <property name="orientation">vertical</property>
+                                <property name="vexpand">True</property>
+                                <child>
+                                  <object class="GtkImage" id="app_icon_image">
+                                    <property name="visible">False</property>
+                                    <property name="pixel-size">128</property>
+                                    <property name="icon-name" bind-source="AdwAboutWindow" 
bind-property="application-icon" bind-flags="sync-create"/>
+                                    <style>
+                                      <class name="icon-dropshadow"/>
+                                    </style>
+                                  </object>
+                                </child>
+                                <child>
+                                  <object class="GtkLabel" id="app_name_label">
+                                    <property name="visible">False</property>
+                                    <property name="wrap">True</property>
+                                    <property name="justify">center</property>
+                                    <property name="label" bind-source="AdwAboutWindow" 
bind-property="application-name" bind-flags="sync-create"/>
+                                    <style>
+                                      <class name="title-1"/>
+                                    </style>
+                                  </object>
+                                </child>
                                 <child>
-                                  <object class="AdwPreferencesGroup" id="details_group">
+                                  <object class="GtkLabel" id="developer_name_label">
                                     <property name="visible">False</property>
+                                    <property name="wrap">True</property>
+                                    <property name="justify">center</property>
+                                    <property name="label" bind-source="AdwAboutWindow" 
bind-property="developer-name" bind-flags="sync-create"/>
+                                  </object>
+                                </child>
+                                <child>
+                                  <object class="GtkButton" id="version_button">
+                                    <property name="visible">False</property>
+                                    <property name="halign">center</property>
+                                    <property name="action-name">about.copy-property</property>
+                                    <property name="action-target">"version"</property>
+                                    <property name="child">
+                                      <object class="GtkLabel">
+                                        <property name="ellipsize">end</property>
+                                        <property name="label" bind-source="AdwAboutWindow" 
bind-property="version" bind-flags="sync-create"/>
+                                      </object>
+                                    </property>
+                                    <style>
+                                      <class name="app-version"/>
+                                    </style>
+                                  </object>
+                                </child>
+                                <child>
+                                  <object class="GtkBox">
+                                    <property name="orientation">vertical</property>
                                     <child>
-                                      <object class="AdwActionRow" id="whats_new_row">
+                                      <object class="AdwPreferencesGroup" id="details_group">
                                         <property name="visible">False</property>
-                                        <property name="title" translatable="yes">_What’s New</property>
-                                        <property name="use-underline">True</property>
-                                        <property name="activatable">True</property>
-                                        <property name="action-name">about.subpage</property>
-                                        <property name="action-target">"whatsnew"</property>
                                         <child>
-                                          <object class="GtkImage">
-                                            <property name="icon-name">go-next-symbolic</property>
+                                          <object class="AdwActionRow" id="whats_new_row">
+                                            <property name="visible">False</property>
+                                            <property name="title" translatable="yes">_What’s New</property>
+                                            <property name="use-underline">True</property>
+                                            <property name="activatable">True</property>
+                                            <property name="action-name">browsing.push</property>
+                                            <property name="action-target">"whatsnew"</property>
+                                            <child>
+                                              <object class="GtkImage">
+                                                <property name="icon-name">go-next-symbolic</property>
+                                              </object>
+                                            </child>
                                           </object>
                                         </child>
-                                      </object>
-                                    </child>
-                                    <child>
-                                      <object class="AdwActionRow" id="details_row">
-                                        <property name="visible">False</property>
-                                        <property name="title" translatable="yes">_Details</property>
-                                        <property name="use-underline">True</property>
-                                        <property name="activatable">True</property>
-                                        <property name="action-name">about.subpage</property>
-                                        <property name="action-target">"details"</property>
                                         <child>
-                                          <object class="GtkImage">
-                                            <property name="icon-name">go-next-symbolic</property>
+                                          <object class="AdwActionRow" id="details_row">
+                                            <property name="visible">False</property>
+                                            <property name="title" translatable="yes">_Details</property>
+                                            <property name="use-underline">True</property>
+                                            <property name="activatable">True</property>
+                                            <property name="action-name">browsing.push</property>
+                                            <property name="action-target">"details"</property>
+                                            <child>
+                                              <object class="GtkImage">
+                                                <property name="icon-name">go-next-symbolic</property>
+                                              </object>
+                                            </child>
                                           </object>
                                         </child>
-                                      </object>
-                                    </child>
-                                    <child>
-                                      <object class="AdwActionRow" id="website_row">
-                                        <property name="visible">False</property>
-                                        <property name="title" translatable="yes">_Website</property>
-                                        <property name="use-underline">True</property>
-                                        <property name="activatable">True</property>
-                                        <property name="action-name">about.show-url-property</property>
-                                        <property name="action-target">"website"</property>
-                                        <property name="tooltip-text" bind-source="AdwAboutWindow" 
bind-property="website" bind-flags="sync-create"/>
                                         <child>
-                                          <object class="GtkImage">
-                                            <property name="icon-name">adw-external-link-symbolic</property>
+                                          <object class="AdwActionRow" id="website_row">
+                                            <property name="visible">False</property>
+                                            <property name="title" translatable="yes">_Website</property>
+                                            <property name="use-underline">True</property>
+                                            <property name="activatable">True</property>
+                                            <property name="action-name">about.show-url-property</property>
+                                            <property name="action-target">"website"</property>
+                                            <property name="tooltip-text" bind-source="AdwAboutWindow" 
bind-property="website" bind-flags="sync-create"/>
+                                            <child>
+                                              <object class="GtkImage">
+                                                <property 
name="icon-name">adw-external-link-symbolic</property>
+                                              </object>
+                                            </child>
                                           </object>
                                         </child>
                                       </object>
                                     </child>
-                                  </object>
-                                </child>
 
-                                <child>
-                                  <object class="AdwPreferencesGroup" id="support_group">
-                                    <property name="visible">False</property>
                                     <child>
-                                      <object class="AdwActionRow" id="support_row">
+                                      <object class="AdwPreferencesGroup" id="support_group">
                                         <property name="visible">False</property>
-                                        <property name="activatable">True</property>
-                                        <property name="title" translatable="yes">_Support 
Questions</property>
-                                        <property name="use-underline">True</property>
-                                        <property name="action-name">about.show-url-property</property>
-                                        <property name="action-target">"support-url"</property>
-                                        <property name="tooltip-text" bind-source="AdwAboutWindow" 
bind-property="support-url" bind-flags="sync-create"/>
                                         <child>
-                                          <object class="GtkImage">
-                                            <property name="icon-name">adw-external-link-symbolic</property>
+                                          <object class="AdwActionRow" id="support_row">
+                                            <property name="visible">False</property>
+                                            <property name="activatable">True</property>
+                                            <property name="title" translatable="yes">_Support 
Questions</property>
+                                            <property name="use-underline">True</property>
+                                            <property name="action-name">about.show-url-property</property>
+                                            <property name="action-target">"support-url"</property>
+                                            <property name="tooltip-text" bind-source="AdwAboutWindow" 
bind-property="support-url" bind-flags="sync-create"/>
+                                            <child>
+                                              <object class="GtkImage">
+                                                <property 
name="icon-name">adw-external-link-symbolic</property>
+                                              </object>
+                                            </child>
                                           </object>
                                         </child>
-                                      </object>
-                                    </child>
-                                    <child>
-                                      <object class="AdwActionRow" id="issue_row">
-                                        <property name="visible">False</property>
-                                        <property name="activatable">True</property>
-                                        <property name="title" translatable="yes">_Report an Issue</property>
-                                        <property name="use-underline">True</property>
-                                        <property name="action-name">about.show-url-property</property>
-                                        <property name="action-target">"issue-url"</property>
-                                        <property name="tooltip-text" bind-source="AdwAboutWindow" 
bind-property="issue-url" bind-flags="sync-create"/>
                                         <child>
-                                          <object class="GtkImage">
-                                            <property name="icon-name">adw-external-link-symbolic</property>
+                                          <object class="AdwActionRow" id="issue_row">
+                                            <property name="visible">False</property>
+                                            <property name="activatable">True</property>
+                                            <property name="title" translatable="yes">_Report an 
Issue</property>
+                                            <property name="use-underline">True</property>
+                                            <property name="action-name">about.show-url-property</property>
+                                            <property name="action-target">"issue-url"</property>
+                                            <property name="tooltip-text" bind-source="AdwAboutWindow" 
bind-property="issue-url" bind-flags="sync-create"/>
+                                            <child>
+                                              <object class="GtkImage">
+                                                <property 
name="icon-name">adw-external-link-symbolic</property>
+                                              </object>
+                                            </child>
                                           </object>
                                         </child>
-                                      </object>
-                                    </child>
-                                    <child>
-                                      <object class="AdwActionRow" id="troubleshooting_row">
-                                        <property name="visible">False</property>
-                                        <property name="title" translatable="yes">_Troubleshooting</property>
-                                        <property name="use-underline">True</property>
-                                        <property name="activatable">True</property>
-                                        <property name="action-name">about.subpage</property>
-                                        <property name="action-target">"troubleshooting"</property>
                                         <child>
-                                          <object class="GtkImage">
-                                            <property name="icon-name">go-next-symbolic</property>
+                                          <object class="AdwActionRow" id="troubleshooting_row">
+                                            <property name="visible">False</property>
+                                            <property name="title" 
translatable="yes">_Troubleshooting</property>
+                                            <property name="use-underline">True</property>
+                                            <property name="activatable">True</property>
+                                            <property name="action-name">browsing.push</property>
+                                            <property name="action-target">"troubleshooting"</property>
+                                            <child>
+                                              <object class="GtkImage">
+                                                <property name="icon-name">go-next-symbolic</property>
+                                              </object>
+                                            </child>
                                           </object>
                                         </child>
                                       </object>
                                     </child>
-                                  </object>
-                                </child>
-                                <child>
-                                  <object class="AdwPreferencesGroup" id="credits_legal_group">
-                                    <property name="visible">False</property>
                                     <child>
-                                      <object class="AdwActionRow">
-                                        <property name="title" translatable="yes">_Credits</property>
-                                        <property name="use-underline">True</property>
-                                        <property name="activatable">True</property>
-                                        <property name="action-name">about.subpage</property>
-                                        <property name="action-target">"credits"</property>
-                                        <property name="visible" bind-source="credits_box" 
bind-property="visible" bind-flags="sync-create"/>
+                                      <object class="AdwPreferencesGroup" id="credits_legal_group">
+                                        <property name="visible">False</property>
                                         <child>
-                                          <object class="GtkImage">
-                                            <property name="icon-name">go-next-symbolic</property>
+                                          <object class="AdwActionRow">
+                                            <property name="title" translatable="yes">_Credits</property>
+                                            <property name="use-underline">True</property>
+                                            <property name="activatable">True</property>
+                                            <property name="action-name">browsing.push</property>
+                                            <property name="action-target">"credits"</property>
+                                            <property name="visible" bind-source="credits_box" 
bind-property="visible" bind-flags="sync-create"/>
+                                            <child>
+                                              <object class="GtkImage">
+                                                <property name="icon-name">go-next-symbolic</property>
+                                              </object>
+                                            </child>
                                           </object>
                                         </child>
-                                      </object>
-                                    </child>
-                                    <child>
-                                      <object class="AdwActionRow">
-                                        <property name="title" translatable="yes">_Legal</property>
-                                        <property name="use-underline">True</property>
-                                        <property name="activatable">True</property>
-                                        <property name="action-name">about.subpage</property>
-                                        <property name="action-target">"legal"</property>
-                                        <property name="visible" bind-source="legal_box" 
bind-property="visible" bind-flags="sync-create"/>
                                         <child>
-                                          <object class="GtkImage">
-                                            <property name="icon-name">go-next-symbolic</property>
+                                          <object class="AdwActionRow">
+                                            <property name="title" translatable="yes">_Legal</property>
+                                            <property name="use-underline">True</property>
+                                            <property name="activatable">True</property>
+                                            <property name="action-name">browsing.push</property>
+                                            <property name="action-target">"legal"</property>
+                                            <property name="visible" bind-source="legal_box" 
bind-property="visible" bind-flags="sync-create"/>
+                                            <child>
+                                              <object class="GtkImage">
+                                                <property name="icon-name">go-next-symbolic</property>
+                                              </object>
+                                            </child>
                                           </object>
                                         </child>
-                                      </object>
-                                    </child>
-                                    <child>
-                                      <object class="AdwActionRow">
-                                        <property name="title" 
translatable="yes">_Acknowledgements</property>
-                                        <property name="use-underline">True</property>
-                                        <property name="activatable">True</property>
-                                        <property name="action-name">about.subpage</property>
-                                        <property name="action-target">"acknowledgements"</property>
-                                        <property name="visible" bind-source="acknowledgements_box" 
bind-property="visible" bind-flags="sync-create"/>
                                         <child>
-                                          <object class="GtkImage">
-                                            <property name="icon-name">go-next-symbolic</property>
+                                          <object class="AdwActionRow">
+                                            <property name="title" 
translatable="yes">_Acknowledgements</property>
+                                            <property name="use-underline">True</property>
+                                            <property name="activatable">True</property>
+                                            <property name="action-name">browsing.push</property>
+                                            <property name="action-target">"acknowledgements"</property>
+                                            <property name="visible" bind-source="acknowledgements_box" 
bind-property="visible" bind-flags="sync-create"/>
+                                            <child>
+                                              <object class="GtkImage">
+                                                <property name="icon-name">go-next-symbolic</property>
+                                              </object>
+                                            </child>
                                           </object>
                                         </child>
                                       </object>
@@ -269,446 +272,348 @@
                                   </object>
                                 </child>
                               </object>
-                            </child>
+                            </property>
                           </object>
                         </property>
                       </object>
-                    </property>
+                    </child>
                   </object>
-                </child>
+                </property>
               </object>
             </child>
             <child>
-              <object class="GtkStack" id="subpage_stack">
-
-                <child>
-                  <object class="GtkStackPage">
-                    <property name="name">whatsnew</property>
-                    <property name="child">
-                      <object class="GtkBox">
-                        <property name="orientation">vertical</property>
-                        <child>
-                          <object class="GtkHeaderBar">
-                            <property name="valign">start</property>
-                            <property name="title-widget">
-                              <object class="AdwWindowTitle">
-                                <property name="title" translatable="yes">What’s New</property>
-                              </object>
-                            </property>
-                            <child>
-                              <object class="GtkButton">
-                                <property name="tooltip-text" translatable="yes">Back</property>
-                                <property name="icon-name">go-previous-symbolic</property>
-                                <property name="action-name">about.back</property>
-                              </object>
-                            </child>
-                          </object>
-                        </child>
-                        <child>
-                          <object class="GtkScrolledWindow">
-                            <property name="hscrollbar-policy">never</property>
-                            <property name="vexpand">True</property>
-                            <style>
-                              <class name="subpage"/>
-                            </style>
+              <object class="AdwBrowsingViewChild">
+                <property name="title" translatable="yes">What’s New</property>
+                <property name="child-name">whatsnew</property>
+                <property name="child">
+                  <object class="GtkBox">
+                    <property name="orientation">vertical</property>
+                    <child>
+                      <object class="AdwHeaderBar"/>
+                    </child>
+                    <child>
+                      <object class="GtkScrolledWindow">
+                        <property name="hscrollbar-policy">never</property>
+                        <property name="vexpand">True</property>
+                        <style>
+                          <class name="subpage"/>
+                        </style>
+                        <property name="child">
+                          <object class="AdwClampScrollable">
                             <property name="child">
-                              <object class="AdwClampScrollable">
-                                <property name="child">
-                                  <object class="GtkTextView">
-                                    <property name="left-margin">12</property>
-                                    <property name="right-margin">12</property>
-                                    <property name="top-margin">18</property>
-                                    <property name="bottom-margin">18</property>
-                                    <property name="wrap-mode">word-char</property>
-                                    <property name="editable">False</property>
-                                    <property name="buffer">
-                                      <object class="GtkTextBuffer" id="release_notes_buffer">
-                                        <property name="enable-undo">False</property>
-                                      </object>
-                                    </property>
+                              <object class="GtkTextView">
+                                <property name="left-margin">12</property>
+                                <property name="right-margin">12</property>
+                                <property name="top-margin">18</property>
+                                <property name="bottom-margin">18</property>
+                                <property name="wrap-mode">word-char</property>
+                                <property name="editable">False</property>
+                                <property name="buffer">
+                                  <object class="GtkTextBuffer" id="release_notes_buffer">
+                                    <property name="enable-undo">False</property>
                                   </object>
                                 </property>
                               </object>
                             </property>
                           </object>
-                        </child>
+                        </property>
                       </object>
-                    </property>
+                    </child>
                   </object>
-                </child>
-
-                <child>
-                  <object class="GtkStackPage">
-                    <property name="name">details</property>
-                    <property name="child">
-                      <object class="GtkBox">
-                        <property name="orientation">vertical</property>
-                        <child>
-                          <object class="GtkHeaderBar">
-                            <property name="valign">start</property>
-                            <property name="title-widget">
-                              <object class="AdwWindowTitle">
-                                <property name="title" translatable="yes">Details</property>
-                              </object>
-                            </property>
-                            <child>
-                              <object class="GtkButton">
-                                <property name="tooltip-text" translatable="yes">Back</property>
-                                <property name="icon-name">go-previous-symbolic</property>
-                                <property name="action-name">about.back</property>
-                              </object>
-                            </child>
-                          </object>
-                        </child>
-                        <child>
-                          <object class="GtkScrolledWindow">
-                            <property name="hscrollbar-policy">never</property>
-                            <property name="vexpand">True</property>
-                            <style>
-                              <class name="subpage"/>
-                            </style>
+                </property>
+              </object>
+            </child>
+            <child>
+              <object class="AdwBrowsingViewChild">
+                <property name="title" translatable="yes">Details</property>
+                <property name="child-name">details</property>
+                <property name="child">
+                  <object class="GtkBox">
+                    <property name="orientation">vertical</property>
+                    <child>
+                      <object class="AdwHeaderBar"/>
+                    </child>
+                    <child>
+                      <object class="GtkScrolledWindow">
+                        <property name="hscrollbar-policy">never</property>
+                        <property name="vexpand">True</property>
+                        <style>
+                          <class name="subpage"/>
+                        </style>
+                        <property name="child">
+                          <object class="AdwClamp">
                             <property name="child">
-                              <object class="AdwClamp">
-                                <property name="child">
-                                  <object class="GtkBox">
-                                    <property name="orientation">vertical</property>
-                                    <child>
-                                      <object class="GtkLabel" id="comments_label">
-                                        <property name="visible">False</property>
-                                        <property name="use-markup">True</property>
-                                        <property name="wrap">True</property>
-                                        <property name="wrap-mode">word-char</property>
-                                        <property name="xalign">0</property>
-                                        <property name="label" bind-source="AdwAboutWindow" 
bind-property="comments" bind-flags="sync-create"/>
-                                        <signal name="activate-link" handler="activate_link_cb" 
swapped="yes"/>
-                                        <style>
-                                          <class name="body"/>
-                                        </style>
-                                      </object>
-                                    </child>
+                              <object class="GtkBox">
+                                <property name="orientation">vertical</property>
+                                <child>
+                                  <object class="GtkLabel" id="comments_label">
+                                    <property name="visible">False</property>
+                                    <property name="use-markup">True</property>
+                                    <property name="wrap">True</property>
+                                    <property name="wrap-mode">word-char</property>
+                                    <property name="xalign">0</property>
+                                    <property name="label" bind-source="AdwAboutWindow" 
bind-property="comments" bind-flags="sync-create"/>
+                                    <signal name="activate-link" handler="activate_link_cb" swapped="yes"/>
+                                    <style>
+                                      <class name="body"/>
+                                    </style>
+                                  </object>
+                                </child>
+                                <child>
+                                  <object class="AdwPreferencesGroup" id="links_group">
+                                    <property name="visible">False</property>
                                     <child>
-                                      <object class="AdwPreferencesGroup" id="links_group">
+                                      <object class="AdwActionRow" id="details_website_row">
                                         <property name="visible">False</property>
+                                        <property name="title" translatable="yes">_Website</property>
+                                        <property name="use-underline">True</property>
+                                        <property name="activatable">True</property>
+                                        <property name="action-name">about.show-url-property</property>
+                                        <property name="action-target">"website"</property>
+                                        <property name="tooltip-text" bind-source="AdwAboutWindow" 
bind-property="website" bind-flags="sync-create"/>
                                         <child>
-                                          <object class="AdwActionRow" id="details_website_row">
-                                            <property name="visible">False</property>
-                                            <property name="title" translatable="yes">_Website</property>
-                                            <property name="use-underline">True</property>
-                                            <property name="activatable">True</property>
-                                            <property name="action-name">about.show-url-property</property>
-                                            <property name="action-target">"website"</property>
-                                            <property name="tooltip-text" bind-source="AdwAboutWindow" 
bind-property="website" bind-flags="sync-create"/>
-                                            <child>
-                                              <object class="GtkImage">
-                                                <property 
name="icon-name">adw-external-link-symbolic</property>
-                                              </object>
-                                            </child>
+                                          <object class="GtkImage">
+                                            <property name="icon-name">adw-external-link-symbolic</property>
                                           </object>
                                         </child>
                                       </object>
                                     </child>
                                   </object>
-                                </property>
+                                </child>
                               </object>
                             </property>
                           </object>
-                        </child>
+                        </property>
                       </object>
-                    </property>
+                    </child>
                   </object>
-                </child>
-
-                <child>
-                  <object class="GtkStackPage">
-                    <property name="name">troubleshooting</property>
-                    <property name="child">
-                      <object class="GtkBox">
-                        <property name="orientation">vertical</property>
-                        <child>
-                          <object class="GtkHeaderBar">
-                            <property name="valign">start</property>
-                            <property name="title-widget">
-                              <object class="AdwWindowTitle">
-                                <property name="title" translatable="yes">Troubleshooting</property>
-                              </object>
-                            </property>
-                            <child>
-                              <object class="GtkButton">
-                                <property name="tooltip-text" translatable="yes">Back</property>
-                                <property name="icon-name">go-previous-symbolic</property>
-                                <property name="action-name">about.back</property>
-                              </object>
-                            </child>
-                          </object>
-                        </child>
-                        <child>
-                          <object class="GtkScrolledWindow">
-                            <property name="hscrollbar-policy">never</property>
-                            <property name="vexpand">True</property>
-                            <style>
-                              <class name="subpage"/>
-                            </style>
+                </property>
+              </object>
+            </child>
+            <child>
+              <object class="AdwBrowsingViewChild">
+                <property name="title" translatable="yes">Troubleshooting</property>
+                <property name="child-name">troubleshooting</property>
+                <property name="child">
+                  <object class="GtkBox">
+                    <property name="orientation">vertical</property>
+                    <child>
+                      <object class="AdwHeaderBar"/>
+                    </child>
+                    <child>
+                      <object class="GtkScrolledWindow">
+                        <property name="hscrollbar-policy">never</property>
+                        <property name="vexpand">True</property>
+                        <style>
+                          <class name="subpage"/>
+                        </style>
+                        <property name="child">
+                          <object class="AdwClamp">
                             <property name="child">
-                              <object class="AdwClamp">
-                                <property name="child">
-                                  <object class="GtkBox">
-                                    <property name="orientation">vertical</property>
-                                    <child>
-                                      <object class="GtkLabel">
-                                        <property name="wrap">True</property>
-                                        <property name="wrap-mode">word-char</property>
-                                        <property name="xalign">0</property>
-                                        <property name="label" translatable="yes">To assist in 
troubleshooting, you can view your debugging information. Providing this information to the application 
developers can help diagnose any problems you encounter when you report an issue.</property>
-                                        <signal name="activate-link" handler="activate_link_cb" 
swapped="yes"/>
-                                        <style>
-                                          <class name="body"/>
-                                        </style>
-                                      </object>
-                                    </child>
+                              <object class="GtkBox">
+                                <property name="orientation">vertical</property>
+                                <child>
+                                  <object class="GtkLabel">
+                                    <property name="wrap">True</property>
+                                    <property name="wrap-mode">word-char</property>
+                                    <property name="xalign">0</property>
+                                    <property name="label" translatable="yes">To assist in troubleshooting, 
you can view your debugging information. Providing this information to the application developers can help 
diagnose any problems you encounter when you report an issue.</property>
+                                    <signal name="activate-link" handler="activate_link_cb" swapped="yes"/>
+                                    <style>
+                                      <class name="body"/>
+                                    </style>
+                                  </object>
+                                </child>
+                                <child>
+                                  <object class="AdwPreferencesGroup">
                                     <child>
-                                      <object class="AdwPreferencesGroup">
+                                      <object class="AdwActionRow">
+                                        <property name="title" translatable="yes">_Debugging 
Information</property>
+                                        <property name="use-underline">True</property>
+                                        <property name="activatable">True</property>
+                                        <property name="action-name">browsing.push</property>
+                                        <property name="action-target">"debuginfo"</property>
                                         <child>
-                                          <object class="AdwActionRow">
-                                            <property name="title" translatable="yes">_Debugging 
Information</property>
-                                            <property name="use-underline">True</property>
-                                            <property name="activatable">True</property>
-                                            <property name="action-name">about.debug</property>
-                                            <child>
-                                              <object class="GtkImage">
-                                                <property name="icon-name">go-next-symbolic</property>
-                                              </object>
-                                            </child>
+                                          <object class="GtkImage">
+                                            <property name="icon-name">go-next-symbolic</property>
                                           </object>
                                         </child>
                                       </object>
                                     </child>
                                   </object>
-                                </property>
+                                </child>
                               </object>
                             </property>
                           </object>
-                        </child>
+                        </property>
                       </object>
-                    </property>
+                    </child>
                   </object>
-                </child>
-
-                <child>
-                  <object class="GtkStackPage">
-                    <property name="name">credits</property>
-                    <property name="child">
-                      <object class="GtkBox">
-                        <property name="orientation">vertical</property>
-                        <child>
-                          <object class="GtkHeaderBar">
-                            <property name="valign">start</property>
-                            <property name="title-widget">
-                              <object class="AdwWindowTitle">
-                                <property name="title" translatable="yes">Credits</property>
-                              </object>
-                            </property>
-                            <child>
-                              <object class="GtkButton">
-                                <property name="tooltip-text" translatable="yes">Back</property>
-                                <property name="icon-name">go-previous-symbolic</property>
-                                <property name="action-name">about.back</property>
-                              </object>
-                            </child>
-                          </object>
-                        </child>
-                        <child>
-                          <object class="GtkScrolledWindow">
-                            <property name="hscrollbar-policy">never</property>
-                            <property name="vexpand">True</property>
-                            <style>
-                              <class name="subpage"/>
-                            </style>
+                </property>
+              </object>
+            </child>
+            <child>
+              <object class="AdwBrowsingViewChild" id="debug_info_page">
+                <property name="title" translatable="yes">Debugging Information</property>
+                <property name="child-name">debuginfo</property>
+                <property name="child">
+                  <object class="GtkBox">
+                    <property name="orientation">vertical</property>
+                    <child>
+                      <object class="AdwHeaderBar"/>
+                    </child>
+                    <child>
+                      <object class="GtkScrolledWindow">
+                        <property name="hscrollbar-policy">never</property>
+                        <property name="vexpand">True</property>
+                        <style>
+                          <class name="subpage"/>
+                        </style>
+                        <property name="child">
+                          <object class="AdwClampScrollable">
                             <property name="child">
-                              <object class="AdwClamp">
-                                <property name="child">
-                                  <object class="GtkBox" id="credits_box">
-                                    <property name="orientation">vertical</property>
-                                    <property name="visible">False</property>
+                              <object class="GtkTextView">
+                                <property name="left-margin">12</property>
+                                <property name="right-margin">12</property>
+                                <property name="top-margin">18</property>
+                                <property name="bottom-margin">18</property>
+                                <property name="wrap-mode">word-char</property>
+                                <property name="editable">False</property>
+                                <property name="buffer">
+                                  <object class="GtkTextBuffer" id="debug_info_buffer">
+                                    <property name="enable-undo">False</property>
+                                    <property name="text" bind-source="AdwAboutWindow" 
bind-property="debug-info" bind-flags="sync-create"/>
                                   </object>
                                 </property>
                               </object>
                             </property>
                           </object>
-                        </child>
+                        </property>
                       </object>
-                    </property>
-                  </object>
-                </child>
-
-                <child>
-                  <object class="GtkStackPage">
-                    <property name="name">legal</property>
-                    <property name="child">
-                      <object class="GtkBox">
-                        <property name="orientation">vertical</property>
+                    </child>
+                    <child>
+                      <object class="GtkActionBar">
+                        <property name="revealed">True</property>
                         <child>
-                          <object class="GtkHeaderBar">
-                            <property name="valign">start</property>
-                            <property name="title-widget">
-                              <object class="AdwWindowTitle">
-                                <property name="title" translatable="yes">Legal</property>
-                              </object>
-                            </property>
-                            <child>
-                              <object class="GtkButton">
-                                <property name="tooltip-text" translatable="yes">Back</property>
-                                <property name="icon-name">go-previous-symbolic</property>
-                                <property name="action-name">about.back</property>
-                              </object>
-                            </child>
+                          <object class="GtkButton">
+                            <property name="action-name">about.copy-property</property>
+                            <property name="action-target">"debug-info"</property>
+                            <property name="label" translatable="yes">_Copy Text</property>
+                            <property name="use-underline">True</property>
                           </object>
                         </child>
-                        <child>
-                          <object class="GtkScrolledWindow">
-                            <property name="hscrollbar-policy">never</property>
-                            <property name="vexpand">True</property>
-                            <style>
-                              <class name="subpage"/>
-                            </style>
-                            <property name="child">
-                              <object class="AdwClamp">
-                                <property name="child">
-                                  <object class="GtkBox" id="legal_box">
-                                    <property name="orientation">vertical</property>
-                                    <property name="visible">False</property>
-                                  </object>
-                                </property>
-                              </object>
-                            </property>
+                        <child type="end">
+                          <object class="GtkButton">
+                            <property name="action-name">about.save-debug-info</property>
+                            <property name="label" translatable="yes">_Save as…</property>
+                            <property name="use-underline">True</property>
                           </object>
                         </child>
                       </object>
-                    </property>
+                    </child>
                   </object>
-                </child>
-
-                <child>
-                  <object class="GtkStackPage">
-                    <property name="name">acknowledgements</property>
-                    <property name="child">
-                      <object class="GtkBox">
-                        <property name="orientation">vertical</property>
-                        <child>
-                          <object class="GtkHeaderBar">
-                            <property name="valign">start</property>
-                            <property name="title-widget">
-                              <object class="AdwWindowTitle">
-                                <property name="title" translatable="yes">Acknowledgements</property>
-                              </object>
-                            </property>
-                            <child>
-                              <object class="GtkButton">
-                                <property name="tooltip-text" translatable="yes">Back</property>
-                                <property name="icon-name">go-previous-symbolic</property>
-                                <property name="action-name">about.back</property>
-                              </object>
-                            </child>
-                          </object>
-                        </child>
-                        <child>
-                          <object class="GtkScrolledWindow">
-                            <property name="hscrollbar-policy">never</property>
-                            <property name="vexpand">True</property>
-                            <style>
-                              <class name="subpage"/>
-                            </style>
+                </property>
+              </object>
+            </child>
+            <child>
+              <object class="AdwBrowsingViewChild">
+                <property name="title" translatable="yes">Credits</property>
+                <property name="child-name">credits</property>
+                <property name="child">
+                  <object class="GtkBox">
+                    <property name="orientation">vertical</property>
+                    <child>
+                      <object class="AdwHeaderBar"/>
+                    </child>
+                    <child>
+                      <object class="GtkScrolledWindow">
+                        <property name="hscrollbar-policy">never</property>
+                        <property name="vexpand">True</property>
+                        <style>
+                          <class name="subpage"/>
+                        </style>
+                        <property name="child">
+                          <object class="AdwClamp">
                             <property name="child">
-                              <object class="AdwClamp">
-                                <property name="child">
-                                  <object class="GtkBox" id="acknowledgements_box">
-                                    <property name="orientation">vertical</property>
-                                    <property name="visible">False</property>
-                                  </object>
-                                </property>
+                              <object class="GtkBox" id="credits_box">
+                                <property name="orientation">vertical</property>
+                                <property name="visible">False</property>
                               </object>
                             </property>
                           </object>
-                        </child>
+                        </property>
                       </object>
-                    </property>
+                    </child>
                   </object>
-                </child>
-
+                </property>
               </object>
             </child>
-
             <child>
-              <object class="GtkBox" id="debug_info_page">
-                <property name="orientation">vertical</property>
-                <child>
-                  <object class="GtkHeaderBar">
-                    <property name="valign">start</property>
-                    <property name="title-widget">
-                      <object class="AdwWindowTitle">
-                        <property name="title" translatable="yes">Debugging Information</property>
-                      </object>
-                    </property>
+              <object class="AdwBrowsingViewChild">
+                <property name="title" translatable="yes">Legal</property>
+                <property name="child-name">legal</property>
+                <property name="child">
+                  <object class="GtkBox">
+                    <property name="orientation">vertical</property>
                     <child>
-                      <object class="GtkButton">
-                        <property name="tooltip-text" translatable="yes">Back</property>
-                        <property name="icon-name">go-previous-symbolic</property>
-                        <property name="action-name">about.back</property>
-                      </object>
+                      <object class="AdwHeaderBar"/>
                     </child>
-                  </object>
-                </child>
-                <child>
-                  <object class="GtkScrolledWindow">
-                    <property name="hscrollbar-policy">never</property>
-                    <property name="vexpand">True</property>
-                    <style>
-                      <class name="subpage"/>
-                    </style>
-                    <property name="child">
-                      <object class="AdwClampScrollable">
+                    <child>
+                      <object class="GtkScrolledWindow">
+                        <property name="hscrollbar-policy">never</property>
+                        <property name="vexpand">True</property>
+                        <style>
+                          <class name="subpage"/>
+                        </style>
                         <property name="child">
-                          <object class="GtkTextView">
-                            <property name="left-margin">12</property>
-                            <property name="right-margin">12</property>
-                            <property name="top-margin">18</property>
-                            <property name="bottom-margin">18</property>
-                            <property name="wrap-mode">word-char</property>
-                            <property name="editable">False</property>
-                            <property name="buffer">
-                              <object class="GtkTextBuffer" id="debug_info_buffer">
-                                <property name="enable-undo">False</property>
-                                <property name="text" bind-source="AdwAboutWindow" 
bind-property="debug-info" bind-flags="sync-create"/>
+                          <object class="AdwClamp">
+                            <property name="child">
+                              <object class="GtkBox" id="legal_box">
+                                <property name="orientation">vertical</property>
+                                <property name="visible">False</property>
                               </object>
                             </property>
                           </object>
                         </property>
                       </object>
-                    </property>
+                    </child>
                   </object>
-                </child>
-                <child>
-                  <object class="GtkActionBar">
-                    <property name="revealed">True</property>
+                </property>
+              </object>
+            </child>
+            <child>
+              <object class="AdwBrowsingViewChild">
+                <property name="title" translatable="yes">Acknowledgements</property>
+                <property name="child-name">acknowledgements</property>
+                <property name="child">
+                  <object class="GtkBox">
+                    <property name="orientation">vertical</property>
                     <child>
-                      <object class="GtkButton">
-                        <property name="action-name">about.copy-property</property>
-                        <property name="action-target">"debug-info"</property>
-                        <property name="label" translatable="yes">_Copy Text</property>
-                        <property name="use-underline">True</property>
-                      </object>
+                      <object class="AdwHeaderBar"/>
                     </child>
-                    <child type="end">
-                      <object class="GtkButton">
-                        <property name="action-name">about.save-debug-info</property>
-                        <property name="label" translatable="yes">_Save as…</property>
-                        <property name="use-underline">True</property>
+                    <child>
+                      <object class="GtkScrolledWindow">
+                        <property name="hscrollbar-policy">never</property>
+                        <property name="vexpand">True</property>
+                        <style>
+                          <class name="subpage"/>
+                        </style>
+                        <property name="child">
+                          <object class="AdwClamp">
+                            <property name="child">
+                              <object class="GtkBox" id="acknowledgements_box">
+                                <property name="orientation">vertical</property>
+                                <property name="visible">False</property>
+                              </object>
+                            </property>
+                          </object>
+                        </property>
                       </object>
                     </child>
                   </object>
-                </child>
+                </property>
               </object>
             </child>
-
           </object>
         </property>
       </object>


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