[gnome-control-center] network: Pass widget references rather than relying on names
- From: Georges Basile Stavracas Neto <gbsneto src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-control-center] network: Pass widget references rather than relying on names
- Date: Tue, 1 Oct 2019 02:35:22 +0000 (UTC)
commit 57d7a79034c4fa58c535102df47634d03b58abd8
Author: Robert Ancell <robert ancell canonical com>
Date: Tue Oct 1 14:26:51 2019 +1300
network: Pass widget references rather than relying on names
The existing code relied on using GtkBuilder, which will no longer work when we
switch to GtkTemplate.
panels/network/connection-editor/ce-page-details.c | 30 ++++++---
panels/network/net-device-mobile.c | 20 ++++--
panels/network/net-device-wifi.c | 70 ++++++++++---------
panels/network/panel-common.c | 78 ++++++++--------------
panels/network/panel-common.h | 4 +-
5 files changed, 105 insertions(+), 97 deletions(-)
---
diff --git a/panels/network/connection-editor/ce-page-details.c
b/panels/network/connection-editor/ce-page-details.c
index f2151ad62..35b6a1e39 100644
--- a/panels/network/connection-editor/ce-page-details.c
+++ b/panels/network/connection-editor/ce-page-details.c
@@ -86,6 +86,7 @@ update_last_used (CEPageDetails *page, NMConnection *connection)
GTimeSpan diff;
guint64 timestamp;
NMSettingConnection *s_con;
+ GtkWidget *heading, *widget;
s_con = nm_connection_get_setting_connection (connection);
if (s_con == NULL)
@@ -109,7 +110,9 @@ update_last_used (CEPageDetails *page, NMConnection *connection)
else
last_used = g_strdup_printf (ngettext ("%i day ago", "%i days ago", days), days);
out:
- panel_set_device_widget_details (CE_PAGE (page)->builder, "last_used", last_used);
+ heading = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "heading_last_used"));
+ widget = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "label_last_used"));
+ panel_set_device_widget_details (GTK_LABEL (heading), GTK_LABEL (widget), last_used);
}
static void
@@ -176,7 +179,7 @@ static void
connect_details_page (CEPageDetails *page)
{
NMSettingConnection *sc;
- GtkWidget *widget;
+ GtkWidget *heading, *widget;
guint speed;
guint strength;
NMDeviceState state;
@@ -221,18 +224,24 @@ connect_details_page (CEPageDetails *page)
}
if (speed > 0)
speed_label = g_strdup_printf (_("%d Mb/s"), speed);
- panel_set_device_widget_details (CE_PAGE (page)->builder, "speed", speed_label);
+ heading = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "heading_speed"));
+ widget = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "label_speed"));
+ panel_set_device_widget_details (GTK_LABEL (heading), GTK_LABEL (widget), speed_label);
if (NM_IS_DEVICE_WIFI (page->device))
hw_address = nm_device_wifi_get_hw_address (NM_DEVICE_WIFI (page->device));
else if (NM_IS_DEVICE_ETHERNET (page->device))
hw_address = nm_device_ethernet_get_hw_address (NM_DEVICE_ETHERNET (page->device));
- panel_set_device_widget_details (CE_PAGE (page)->builder, "mac", hw_address);
+ heading = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "heading_mac"));
+ widget = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "label_mac"));
+ panel_set_device_widget_details (GTK_LABEL (heading), GTK_LABEL (widget), hw_address);
if (device_is_active && active_ap)
security_string = get_ap_security_string (active_ap);
- panel_set_device_widget_details (CE_PAGE (page)->builder, "security", security_string);
+ heading = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "heading_security"));
+ widget = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "label_security"));
+ panel_set_device_widget_details (GTK_LABEL (heading), GTK_LABEL (widget), security_string);
strength = 0;
if (page->ap != NULL)
@@ -250,7 +259,9 @@ connect_details_page (CEPageDetails *page)
strength_label = C_("Signal strength", "Good");
else
strength_label = C_("Signal strength", "Excellent");
- panel_set_device_widget_details (CE_PAGE (page)->builder, "strength", strength_label);
+ heading = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "heading_strength"));
+ widget = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "label_strength"));
+ panel_set_device_widget_details (GTK_LABEL (heading), GTK_LABEL (widget), strength_label);
/* set IP entries */
if (device_is_active)
@@ -260,8 +271,11 @@ connect_details_page (CEPageDetails *page)
if (!device_is_active && CE_PAGE (page)->connection)
update_last_used (page, CE_PAGE (page)->connection);
- else
- panel_set_device_widget_details (CE_PAGE (page)->builder, "last_used", NULL);
+ else {
+ heading = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "heading_last_used"));
+ widget = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "label_last_used"));
+ panel_set_device_widget_details (GTK_LABEL (heading), GTK_LABEL (widget), NULL);
+ }
/* Auto connect check */
widget = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder,
diff --git a/panels/network/net-device-mobile.c b/panels/network/net-device-mobile.c
index 96e9ff229..5bf055471 100644
--- a/panels/network/net-device-mobile.c
+++ b/panels/network/net-device-mobile.c
@@ -240,6 +240,7 @@ static void
device_mobile_refresh_equipment_id (NetDeviceMobile *device_mobile)
{
const gchar *equipment_id = NULL;
+ GtkWidget *heading, *widget;
if (device_mobile->mm_object != NULL) {
MMModem *modem;
@@ -260,7 +261,9 @@ device_mobile_refresh_equipment_id (NetDeviceMobile *device_mobile)
"ControlCenter::EquipmentIdentifier");
}
- panel_set_device_widget_details (device_mobile->builder, "imei", equipment_id);
+ heading = GTK_WIDGET (gtk_builder_get_object (device_mobile->builder, "heading_imei"));
+ widget = GTK_WIDGET (gtk_builder_get_object (device_mobile->builder, "label_imei"));
+ panel_set_device_widget_details (GTK_LABEL (heading), GTK_LABEL (widget), equipment_id);
}
static gchar *
@@ -305,6 +308,11 @@ device_mobile_find_provider (NetDeviceMobile *device_mobile,
static void
device_mobile_refresh_operator_name (NetDeviceMobile *device_mobile)
{
+ GtkWidget *heading, *widget;
+
+ heading = GTK_WIDGET (gtk_builder_get_object (device_mobile->builder, "heading_provider"));
+ widget = GTK_WIDGET (gtk_builder_get_object (device_mobile->builder, "label_provider"));
+
if (device_mobile->mm_object != NULL) {
g_autofree gchar *operator_name = NULL;
MMModem3gpp *modem_3gpp;
@@ -341,7 +349,7 @@ device_mobile_refresh_operator_name (NetDeviceMobile *device_mobile)
operator_name);
}
- panel_set_device_widget_details (device_mobile->builder, "provider", operator_name);
+ panel_set_device_widget_details (GTK_LABEL (heading), GTK_LABEL (widget), operator_name);
} else {
const gchar *gsm;
const gchar *cdma;
@@ -354,13 +362,13 @@ device_mobile_refresh_operator_name (NetDeviceMobile *device_mobile)
if (gsm != NULL && cdma != NULL) {
g_autofree gchar *both = g_strdup_printf ("%s, %s", gsm, cdma);
- panel_set_device_widget_details (device_mobile->builder, "provider", both);
+ panel_set_device_widget_details (GTK_LABEL (heading), GTK_LABEL (widget), both);
} else if (gsm != NULL) {
- panel_set_device_widget_details (device_mobile->builder, "provider", gsm);
+ panel_set_device_widget_details (GTK_LABEL (heading), GTK_LABEL (widget), gsm);
} else if (cdma != NULL) {
- panel_set_device_widget_details (device_mobile->builder, "provider", cdma);
+ panel_set_device_widget_details (GTK_LABEL (heading), GTK_LABEL (widget), cdma);
} else {
- panel_set_device_widget_details (device_mobile->builder, "provider", NULL);
+ panel_set_device_widget_details (GTK_LABEL (heading), GTK_LABEL (widget), NULL);
}
}
}
diff --git a/panels/network/net-device-wifi.c b/panels/network/net-device-wifi.c
index 114100b64..a1fd5bc04 100644
--- a/panels/network/net-device-wifi.c
+++ b/panels/network/net-device-wifi.c
@@ -351,6 +351,7 @@ nm_device_wifi_refresh_hotspot (NetDeviceWifi *device_wifi)
g_autofree gchar *hotspot_security = NULL;
g_autofree gchar *hotspot_ssid = NULL;
NMDevice *nm_device;
+ GtkWidget *heading, *widget;
/* refresh hotspot ui */
nm_device = net_device_get_nm_device (NET_DEVICE (device_wifi));
@@ -365,18 +366,18 @@ nm_device_wifi_refresh_hotspot (NetDeviceWifi *device_wifi)
g_debug ("Refreshing hotspot labels to name: '%s', security key: '%s', security: '%s'",
hotspot_ssid, hotspot_secret, hotspot_security);
- panel_set_device_widget_details (device_wifi->builder,
- "hotspot_network_name",
- hotspot_ssid);
- panel_set_device_widget_details (device_wifi->builder,
- "hotspot_security_key",
- hotspot_secret);
- panel_set_device_widget_details (device_wifi->builder,
- "hotspot_security",
- hotspot_security);
- panel_set_device_widget_details (device_wifi->builder,
- "hotspot_connected",
- NULL);
+ heading = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, "heading_hotspot_network_name"));
+ widget = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, "label_hotspot_network_name"));
+ panel_set_device_widget_details (GTK_LABEL (heading), GTK_LABEL (widget), hotspot_ssid);
+ heading = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, "heading_hotspot_security_key"));
+ widget = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, "label_hotspot_security_key"));
+ panel_set_device_widget_details (GTK_LABEL (heading), GTK_LABEL (widget), hotspot_secret);
+ heading = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, "heading_hotspot_security"));
+ widget = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, "label_hotspot_security"));
+ panel_set_device_widget_details (GTK_LABEL (heading), GTK_LABEL (widget), hotspot_security);
+ heading = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, "heading_hotspot_connected"));
+ widget = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, "label_hotspot_connected"));
+ panel_set_device_widget_details (GTK_LABEL (heading), GTK_LABEL (widget), NULL);
}
static void
@@ -389,6 +390,7 @@ update_last_used (NetDeviceWifi *device_wifi, NMConnection *connection)
GTimeSpan diff;
guint64 timestamp;
NMSettingConnection *s_con;
+ GtkWidget *heading, *widget;
s_con = nm_connection_get_setting_connection (connection);
if (s_con == NULL)
@@ -411,9 +413,9 @@ update_last_used (NetDeviceWifi *device_wifi, NMConnection *connection)
else
last_used = g_strdup_printf (ngettext ("%i day ago", "%i days ago", days), days);
out:
- panel_set_device_widget_details (device_wifi->builder,
- "last_used",
- last_used);
+ heading = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, "heading_last_used"));
+ widget = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, "label_last_used"));
+ panel_set_device_widget_details (GTK_LABEL (heading), GTK_LABEL (widget), last_used);
}
static void
@@ -491,7 +493,7 @@ nm_device_wifi_refresh_ui (NetDeviceWifi *device_wifi)
NMAccessPoint *ap;
NMConnection *connection;
GtkWidget *dialog;
- GtkWidget *widget;
+ GtkWidget *heading, *widget;
g_autofree gchar *status = NULL;
if (device_is_hotspot (device_wifi)) {
@@ -532,21 +534,22 @@ nm_device_wifi_refresh_ui (NetDeviceWifi *device_wifi)
/* Translators: network device speed */
speed_text = g_strdup_printf (_("%d Mb/s"), speed);
}
- panel_set_device_widget_details (device_wifi->builder,
- "speed",
- speed_text);
+ heading = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, "heading_speed"));
+ widget = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, "label_speed"));
+ panel_set_device_widget_details (GTK_LABEL (heading), GTK_LABEL (widget), speed_text);
/* device MAC */
str = nm_device_wifi_get_hw_address (NM_DEVICE_WIFI (nm_device));
- panel_set_device_widget_details (device_wifi->builder,
- "mac",
- str);
+ heading = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, "heading_mac"));
+ widget = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, "label_mac"));
+ panel_set_device_widget_details (GTK_LABEL (heading), GTK_LABEL (widget), str);
+
/* security */
if (ap == active_ap && active_ap != NULL)
security_text = get_ap_security_string (active_ap);
- panel_set_device_widget_details (device_wifi->builder,
- "security",
- security_text);
+ heading = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, "heading_security"));
+ widget = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, "label_security"));
+ panel_set_device_widget_details (GTK_LABEL (heading), GTK_LABEL (widget), security_text);
/* signal strength */
if (ap != NULL)
@@ -565,16 +568,18 @@ nm_device_wifi_refresh_ui (NetDeviceWifi *device_wifi)
str = C_("Signal strength", "Good");
else
str = C_("Signal strength", "Excellent");
- panel_set_device_widget_details (device_wifi->builder,
- "strength",
- str);
+ heading = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, "heading_strength"));
+ widget = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, "label_strength"));
+ panel_set_device_widget_details (GTK_LABEL (heading), GTK_LABEL (widget), str);
/* device MAC */
if (ap != active_ap)
str = NULL;
else
str = nm_device_wifi_get_hw_address (NM_DEVICE_WIFI (nm_device));
- panel_set_device_widget_details (device_wifi->builder, "mac", str);
+ heading = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, "heading_mac"));
+ widget = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, "label_mac"));
+ panel_set_device_widget_details (GTK_LABEL (heading), GTK_LABEL (widget), str);
/* set IP entries */
if (ap != active_ap)
@@ -584,8 +589,11 @@ nm_device_wifi_refresh_ui (NetDeviceWifi *device_wifi)
if (ap != active_ap && connection)
update_last_used (device_wifi, connection);
- else
- panel_set_device_widget_details (device_wifi->builder, "last_used", NULL);
+ else {
+ heading = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, "heading_last_used"));
+ widget = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, "label_last_used"));
+ panel_set_device_widget_details (GTK_LABEL (heading), GTK_LABEL (widget), NULL);
+ }
widget = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, "heading_status"));
status = panel_device_status_to_localized_string (nm_device, NULL);
diff --git a/panels/network/panel-common.c b/panels/network/panel-common.c
index 57d74fbae..e895c5006 100644
--- a/panels/network/panel-common.c
+++ b/panels/network/panel-common.c
@@ -315,58 +315,25 @@ panel_device_status_to_localized_string (NMDevice *nm_device,
}
gboolean
-panel_set_device_widget_details (GtkBuilder *builder,
- const gchar *widget_suffix,
+panel_set_device_widget_details (GtkLabel *heading,
+ GtkLabel *widget,
const gchar *value)
{
- g_autofree gchar *heading_id = NULL;
- g_autofree gchar *label_id = NULL;
- GtkWidget *heading;
- GtkWidget *widget;
-
/* hide the row if there is no value */
- heading_id = g_strdup_printf ("heading_%s", widget_suffix);
- label_id = g_strdup_printf ("label_%s", widget_suffix);
- heading = GTK_WIDGET (gtk_builder_get_object (builder, heading_id));
- widget = GTK_WIDGET (gtk_builder_get_object (builder, label_id));
- if (heading == NULL || widget == NULL) {
- g_critical ("no widgets %s, %s found", heading_id, label_id);
- return FALSE;
- }
-
if (value == NULL) {
- gtk_widget_hide (heading);
- gtk_widget_hide (widget);
+ gtk_widget_hide (GTK_WIDGET (heading));
+ gtk_widget_hide (GTK_WIDGET (widget));
} else {
/* there exists a value */
- gtk_widget_show (heading);
- gtk_widget_show (widget);
- gtk_label_set_label (GTK_LABEL (widget), value);
- gtk_label_set_max_width_chars (GTK_LABEL (widget), 50);
- gtk_label_set_ellipsize (GTK_LABEL (widget), PANGO_ELLIPSIZE_END);
+ gtk_widget_show (GTK_WIDGET (heading));
+ gtk_widget_show (GTK_WIDGET (widget));
+ gtk_label_set_label (widget, value);
+ gtk_label_set_max_width_chars (widget, 50);
+ gtk_label_set_ellipsize (widget, PANGO_ELLIPSIZE_END);
}
return TRUE;
}
-
-static gboolean
-panel_set_device_widget_header (GtkBuilder *builder,
- const gchar *widget_suffix,
- const gchar *heading)
-{
- g_autofree gchar *label_id = NULL;
- GtkWidget *widget;
-
- label_id = g_strdup_printf ("heading_%s", widget_suffix);
- widget = GTK_WIDGET (gtk_builder_get_object (builder, label_id));
- if (widget == NULL) {
- g_critical ("no widget %s found", label_id);
- return FALSE;
- }
- gtk_label_set_label (GTK_LABEL (widget), heading);
- return TRUE;
-}
-
gchar *
panel_get_ip4_address_as_string (NMIPConfig *ip4_config, const char *what)
{
@@ -413,12 +380,23 @@ panel_get_ip6_address_as_string (NMIPConfig *ip6_config)
void
panel_set_device_widgets (GtkBuilder *builder, NMDevice *device)
{
+ GtkWidget *ipv4_heading, *ipv6_heading, *dns_heading, *route_heading;
+ GtkWidget *ipv4_widget, *ipv6_widget, *dns_widget, *route_widget;
g_autofree gchar *ipv4_text = NULL;
g_autofree gchar *ipv6_text = NULL;
g_autofree gchar *dns_text = NULL;
g_autofree gchar *route_text = NULL;
gboolean has_ip4, has_ip6;
+ ipv4_heading = GTK_WIDGET (gtk_builder_get_object (builder, "heading_ipv4"));
+ ipv4_widget = GTK_WIDGET (gtk_builder_get_object (builder, "label_ipv4"));
+ ipv6_heading = GTK_WIDGET (gtk_builder_get_object (builder, "heading_ipv6"));
+ ipv6_widget = GTK_WIDGET (gtk_builder_get_object (builder, "label_ipv6"));
+ dns_heading = GTK_WIDGET (gtk_builder_get_object (builder, "heading_dns"));
+ dns_widget = GTK_WIDGET (gtk_builder_get_object (builder, "label_dns"));
+ route_heading = GTK_WIDGET (gtk_builder_get_object (builder, "heading_route"));
+ route_widget = GTK_WIDGET (gtk_builder_get_object (builder, "label_route"));
+
if (device != NULL) {
NMIPConfig *ip4_config, *ip6_config;
@@ -433,19 +411,19 @@ panel_set_device_widgets (GtkBuilder *builder, NMDevice *device)
ipv6_text = panel_get_ip6_address_as_string (ip6_config);
}
- panel_set_device_widget_details (builder, "ipv4", ipv4_text);
- panel_set_device_widget_details (builder, "ipv6", ipv6_text);
- panel_set_device_widget_details (builder, "dns", dns_text);
- panel_set_device_widget_details (builder, "route", route_text);
+ panel_set_device_widget_details (GTK_LABEL (ipv4_heading), GTK_LABEL (ipv4_widget), ipv4_text);
+ panel_set_device_widget_details (GTK_LABEL (ipv6_heading), GTK_LABEL (ipv6_widget), ipv6_text);
+ panel_set_device_widget_details (GTK_LABEL (dns_heading), GTK_LABEL (dns_widget), dns_text);
+ panel_set_device_widget_details (GTK_LABEL (route_heading), GTK_LABEL (route_widget), route_text);
has_ip4 = ipv4_text != NULL;
has_ip6 = ipv6_text != NULL;
if (has_ip4 && has_ip6) {
- panel_set_device_widget_header (builder, "ipv4", _("IPv4 Address"));
- panel_set_device_widget_header (builder, "ipv6", _("IPv6 Address"));
+ gtk_label_set_label (GTK_LABEL (ipv4_heading), _("IPv4 Address"));
+ gtk_label_set_label (GTK_LABEL (ipv6_heading), _("IPv6 Address"));
} else if (has_ip4) {
- panel_set_device_widget_header (builder, "ipv4", _("IP Address"));
+ gtk_label_set_label (GTK_LABEL (ipv4_heading), _("IP Address"));
} else if (has_ip6) {
- panel_set_device_widget_header (builder, "ipv6", _("IP Address"));
+ gtk_label_set_label (GTK_LABEL (ipv6_heading), _("IP Address"));
}
}
diff --git a/panels/network/panel-common.h b/panels/network/panel-common.h
index c56bd0f8c..693611458 100644
--- a/panels/network/panel-common.h
+++ b/panels/network/panel-common.h
@@ -28,8 +28,8 @@ G_BEGIN_DECLS
gchar *panel_device_status_to_localized_string (NMDevice *nm_device,
const gchar *speed);
-gboolean panel_set_device_widget_details (GtkBuilder *builder,
- const gchar *widget_suffix,
+gboolean panel_set_device_widget_details (GtkLabel *heading,
+ GtkLabel *widget,
const gchar *value);
void panel_set_device_widgets (GtkBuilder *builder,
NMDevice *device);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]