[gnome-control-center] network: Make the rows adaptive
- From: Robert Ancell <rancell src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-control-center] network: Make the rows adaptive
- Date: Mon, 9 Sep 2019 22:29:16 +0000 (UTC)
commit e4de2f5a09075910aacbc861453dbb91f55d240f
Author: Adrien Plazas <kekun plazas laposte net>
Date: Sun Jan 27 18:06:05 2019 +0100
network: Make the rows adaptive
This factorizes the row creation a bit and normalizes the margins and
spacing, reducing the required width. This also makes labels like row
titles and descriptions ellipsizable so the rows can reach narrower
widths.
panels/network/cc-network-panel.ui | 14 ++------
panels/network/net-device-ethernet.c | 10 +++---
panels/network/network-ethernet.ui | 64 +++++++++++++-----------------------
panels/network/network-proxy.ui | 11 ++++---
panels/network/network-simple.ui | 8 ++---
panels/network/network-vpn.ui | 8 ++---
panels/network/panel-common.c | 16 +++++++++
panels/network/panel-common.h | 4 +++
8 files changed, 64 insertions(+), 71 deletions(-)
---
diff --git a/panels/network/cc-network-panel.ui b/panels/network/cc-network-panel.ui
index ff78b492c..e5a048775 100644
--- a/panels/network/cc-network-panel.ui
+++ b/panels/network/cc-network-panel.ui
@@ -170,21 +170,11 @@
<property name="can_focus">True</property>
<property name="selection_mode">none</property>
<child>
- <object class="GtkListBoxRow">
+ <object class="HdyActionRow">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="activatable">False</property>
- <child>
- <object class="GtkLabel">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="margin">16</property>
- <property name="xalign">0</property>
- <property name="ellipsize">end</property>
- <property name="label" translatable="yes">Not set
up</property>
- </object>
- </child>
+ <property name="title" translatable="yes">Not set up</property>
</object>
</child>
</object>
diff --git a/panels/network/net-device-ethernet.c b/panels/network/net-device-ethernet.c
index f4722a693..602f6957f 100644
--- a/panels/network/net-device-ethernet.c
+++ b/panels/network/net-device-ethernet.c
@@ -237,7 +237,7 @@ device_ethernet_refresh_ui (NetDeviceEthernet *device)
if (state != NM_DEVICE_STATE_UNAVAILABLE)
speed = net_device_simple_get_speed (NET_DEVICE_SIMPLE (device));
- panel_set_device_status (device->builder, "label_status", nm_device, speed);
+ panel_set_device_row_status (device->builder, "details_row", nm_device, speed);
populate_ui (device);
}
@@ -320,8 +320,8 @@ add_row (NetDeviceEthernet *device, NMConnection *connection)
widget = gtk_label_new (nm_connection_get_id (connection));
gtk_widget_set_margin_start (widget, 12);
gtk_widget_set_margin_end (widget, 12);
- gtk_widget_set_margin_top (widget, 12);
- gtk_widget_set_margin_bottom (widget, 12);
+ gtk_widget_set_margin_top (widget, 8);
+ gtk_widget_set_margin_bottom (widget, 8);
gtk_box_pack_start (GTK_BOX (box), widget, FALSE, TRUE, 0);
if (active) {
@@ -350,8 +350,8 @@ add_row (NetDeviceEthernet *device, NMConnection *connection)
gtk_style_context_add_class (gtk_widget_get_style_context (widget), "image-button");
gtk_widget_set_margin_start (widget, 12);
gtk_widget_set_margin_end (widget, 12);
- gtk_widget_set_margin_top (widget, 12);
- gtk_widget_set_margin_bottom (widget, 12);
+ gtk_widget_set_margin_top (widget, 8);
+ gtk_widget_set_margin_bottom (widget, 8);
gtk_widget_show (widget);
gtk_container_add (GTK_CONTAINER (widget), image);
gtk_widget_set_halign (widget, GTK_ALIGN_CENTER);
diff --git a/panels/network/network-ethernet.ui b/panels/network/network-ethernet.ui
index f1b21c28f..400252617 100644
--- a/panels/network/network-ethernet.ui
+++ b/panels/network/network-ethernet.ui
@@ -70,58 +70,38 @@
<property name="can_focus">False</property>
<property name="selection_mode">none</property>
<child>
- <object class="GtkListBoxRow" id="details_row">
+ <object class="HdyActionRow" id="details_row">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="selectable">False</property>
- <child>
- <object class="GtkBox">
+ <property name="title">Cable unplugged</property>
+ <child type="action">
+ <object class="GtkButton" id="details_button">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="orientation">horizontal</property>
- <property name="spacing">12</property>
- <property name="margin_top">9</property>
- <property name="margin_bottom">9</property>
- <property name="margin_start">20</property>
- <property name="margin_end">20</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="halign">end</property>
+ <property name="valign">center</property>
<child>
- <object class="GtkLabel" id="label_status">
+ <object class="GtkImage">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="xalign">0</property>
- <property name="label">Cable unplugged</property>
+ <property name="icon-name">emblem-system-symbolic</property>
</object>
</child>
- <child>
- <object class="GtkSwitch" id="device_off_switch">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="halign">end</property>
- <property name="valign">center</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="details_button-accessible">
+ <property name="accessible-name" translatable="yes">Options…</property>
</object>
- </child>
- <child>
- <object class="GtkButton" id="details_button">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="halign">end</property>
- <child>
- <object class="GtkImage">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="icon-name">emblem-system-symbolic</property>
- </object>
- </child>
-
- <child internal-child="accessible">
- <object class="AtkObject" id="details_button-accessible">
- <property name="accessible-name" translatable="yes">Options…</property>
- </object>
- </child>
- </object>
- </child>
+ </child>
+ </object>
+ </child>
+ <child type="action">
+ <object class="GtkSwitch" id="device_off_switch">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="halign">end</property>
+ <property name="valign">center</property>
</object>
</child>
</object>
diff --git a/panels/network/network-proxy.ui b/panels/network/network-proxy.ui
index e92ee8c62..329dc77f9 100644
--- a/panels/network/network-proxy.ui
+++ b/panels/network/network-proxy.ui
@@ -35,16 +35,17 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="spacing">12</property>
- <property name="margin_top">9</property>
- <property name="margin_bottom">9</property>
- <property name="margin_start">20</property>
- <property name="margin_end">20</property>
+ <property name="margin_top">8</property>
+ <property name="margin_bottom">8</property>
+ <property name="margin_start">12</property>
+ <property name="margin_end">12</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="label" translatable="yes">Network Proxy</property>
+ <property name="ellipsize">end</property>
<property name="xalign">0.0</property>
<attributes>
<attribute name="weight" value="bold" />
@@ -55,6 +56,8 @@
<object class="GtkLabel" id="status_label">
<property name="visible">True</property>
<property name="can_focus">True</property>
+ <property name="margin_top">8</property>
+ <property name="margin_bottom">8</property>
<style>
<class name="dim-label" />
</style>
diff --git a/panels/network/network-simple.ui b/panels/network/network-simple.ui
index fc46a96af..4d2437e34 100644
--- a/panels/network/network-simple.ui
+++ b/panels/network/network-simple.ui
@@ -25,10 +25,10 @@
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="margin_top">9</property>
- <property name="margin_bottom">9</property>
- <property name="margin_start">20</property>
- <property name="margin_end">20</property>
+ <property name="margin_top">8</property>
+ <property name="margin_bottom">8</property>
+ <property name="margin_start">12</property>
+ <property name="margin_end">12</property>
<property name="spacing">12</property>
<child>
<object class="GtkLabel" id="label_device">
diff --git a/panels/network/network-vpn.ui b/panels/network/network-vpn.ui
index 71b72224a..1e721e5f2 100644
--- a/panels/network/network-vpn.ui
+++ b/panels/network/network-vpn.ui
@@ -31,10 +31,10 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="valign">start</property>
- <property name="margin_top">9</property>
- <property name="margin_bottom">9</property>
- <property name="margin_start">20</property>
- <property name="margin_end">20</property>
+ <property name="margin_top">8</property>
+ <property name="margin_bottom">8</property>
+ <property name="margin_start">12</property>
+ <property name="margin_end">12</property>
<property name="spacing">12</property>
<child>
<object class="GtkLabel" id="label_device">
diff --git a/panels/network/panel-common.c b/panels/network/panel-common.c
index 058a20b30..049188c7b 100644
--- a/panels/network/panel-common.c
+++ b/panels/network/panel-common.c
@@ -25,6 +25,8 @@
#include <glib.h>
#include <glib/gi18n.h>
#include <gtk/gtk.h>
+#define HANDY_USE_UNSTABLE_API
+#include <handy.h>
#include <NetworkManager.h>
#include "panel-common.h"
@@ -476,6 +478,20 @@ panel_set_device_status (GtkBuilder *builder,
g_free (status);
}
+void
+panel_set_device_row_status (GtkBuilder *builder,
+ const gchar *row_name,
+ NMDevice *nm_device,
+ const gchar *speed)
+{
+ HdyActionRow *row;
+ g_autofree gchar *status = NULL;
+
+ row = HDY_ACTION_ROW (gtk_builder_get_object (builder, row_name));
+ status = device_status_to_localized_string (nm_device, speed);
+ hdy_action_row_set_title (row, status);
+}
+
gboolean
panel_set_device_widget_details (GtkBuilder *builder,
const gchar *widget_suffix,
diff --git a/panels/network/panel-common.h b/panels/network/panel-common.h
index 9d9370424..633813ca8 100644
--- a/panels/network/panel-common.h
+++ b/panels/network/panel-common.h
@@ -36,6 +36,10 @@ void panel_set_device_status (GtkBuilder *buil
const gchar *label_name,
NMDevice *nm_device,
const gchar *speed);
+void panel_set_device_row_status (GtkBuilder *builder,
+ const gchar *row_name,
+ NMDevice *nm_device,
+ const gchar *speed);
gboolean panel_set_device_widget_details (GtkBuilder *builder,
const gchar *widget_suffix,
const gchar *value);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]