[gnome-control-center] network: Adjust list styling and use GtkStack for ethernet



commit fcc1cb9da7a1f0b2e8ce45d192a89ffb3e08911f
Author: Christopher Davis <christopherdavis gnome org>
Date:   Thu Jan 27 14:07:58 2022 -0800

    network: Adjust list styling and use GtkStack for ethernet
    
    Previously we used an unstyled list for the network
    connections, and we switched lists by using
    GtkWidget:visbile.
    
    This commit makes the connection list use boxed-list
    styling, and adds a GtkStack.

 panels/network/net-device-ethernet.c | 17 ++++++++---------
 panels/network/network-ethernet.ui   | 20 +++++++-------------
 2 files changed, 15 insertions(+), 22 deletions(-)
---
diff --git a/panels/network/net-device-ethernet.c b/panels/network/net-device-ethernet.c
index 81e4687d9..e6b0d0ae7 100644
--- a/panels/network/net-device-ethernet.c
+++ b/panels/network/net-device-ethernet.c
@@ -38,12 +38,12 @@ struct _NetDeviceEthernet
         GtkBox             parent;
 
         GtkListBox        *connection_list;
+        GtkStack          *connection_stack;
         GtkButton         *details_button;
         GtkListBox        *details_listbox;
         AdwActionRow      *details_row;
         GtkLabel          *device_label;
         GtkSwitch         *device_off_switch;
-        GtkScrolledWindow *scrolled_window;
 
         NMClient          *client;
         NMDevice          *device;
@@ -364,24 +364,23 @@ populate_ui (NetDeviceEthernet *self)
         n_connections = g_slist_length (connections);
 
         if (n_connections > 1) {
-                gtk_widget_hide (GTK_WIDGET (self->details_listbox));
                 for (l = connections; l; l = l->next) {
                         NMConnection *connection = l->data;
                         add_row (self, connection);
                 }
-                gtk_widget_show (GTK_WIDGET (self->scrolled_window));
+                gtk_stack_set_visible_child (self->connection_stack,
+                                             GTK_WIDGET (self->connection_list));
         } else if (n_connections == 1) {
                 connection = connections->data;
-                gtk_widget_hide (GTK_WIDGET (self->scrolled_window));
-                gtk_widget_show (GTK_WIDGET (self->details_listbox));
+                gtk_stack_set_visible_child (self->connection_stack,
+                                             GTK_WIDGET (self->details_listbox));
                 g_object_set_data (G_OBJECT (self->details_button), "row", self->details_button);
                 g_object_set_data (G_OBJECT (self->details_button), "connection", connection);
 
-        } else {
-                gtk_widget_hide (GTK_WIDGET (self->scrolled_window));
-                gtk_widget_hide (GTK_WIDGET (self->details_listbox));
         }
 
+        gtk_widget_set_visible (GTK_WIDGET (self->connection_stack), n_connections >= 1);
+
         g_slist_free (connections);
 }
 
@@ -488,12 +487,12 @@ net_device_ethernet_class_init (NetDeviceEthernetClass *klass)
         gtk_widget_class_set_template_from_resource (widget_class, 
"/org/gnome/control-center/network/network-ethernet.ui");
 
         gtk_widget_class_bind_template_child (widget_class, NetDeviceEthernet, connection_list);
+        gtk_widget_class_bind_template_child (widget_class, NetDeviceEthernet, connection_stack);
         gtk_widget_class_bind_template_child (widget_class, NetDeviceEthernet, details_button);
         gtk_widget_class_bind_template_child (widget_class, NetDeviceEthernet, details_listbox);
         gtk_widget_class_bind_template_child (widget_class, NetDeviceEthernet, details_row);
         gtk_widget_class_bind_template_child (widget_class, NetDeviceEthernet, device_label);
         gtk_widget_class_bind_template_child (widget_class, NetDeviceEthernet, device_off_switch);
-        gtk_widget_class_bind_template_child (widget_class, NetDeviceEthernet, scrolled_window);
 
         gtk_widget_class_bind_template_callback (widget_class, connection_list_row_activated_cb);
         gtk_widget_class_bind_template_callback (widget_class, device_off_switch_changed_cb);
diff --git a/panels/network/network-ethernet.ui b/panels/network/network-ethernet.ui
index d6efae569..312a85cbc 100644
--- a/panels/network/network-ethernet.ui
+++ b/panels/network/network-ethernet.ui
@@ -30,20 +30,14 @@
     </child>
 
     <child>
-      <object class="GtkBox">
-        <property name="orientation">vertical</property>
-        <property name="spacing">6</property>
+      <object class="GtkStack" id="connection_stack">
         <child>
-          <object class="GtkScrolledWindow" id="scrolled_window">
-            <property name="hexpand">True</property>
-            <property name="hscrollbar_policy">never</property>
-            <property name="vscrollbar_policy">never</property>
-            <child>
-              <object class="GtkListBox" id="connection_list">
-                <property name="selection-mode">none</property>
-                <signal name="row-activated" handler="connection_list_row_activated_cb" 
object="NetDeviceEthernet" swapped="yes"/>
-              </object>
-            </child>
+          <object class="GtkListBox" id="connection_list">
+            <property name="selection-mode">none</property>
+            <signal name="row-activated" handler="connection_list_row_activated_cb" 
object="NetDeviceEthernet" swapped="yes"/>
+            <style>
+              <class name="boxed-list" />
+            </style>
           </object>
         </child>
 


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