From 87f02de5b7f9df9689d602cba5eeb33cce199db2 Mon Sep 17 00:00:00 2001 From: Robert Ancell Date: Tue, 1 Oct 2019 12:27:29 +1300 Subject: [PATCH 1/7] network: Remove unused functions --- panels/network/panel-common.c | 149 ---------------------------------- panels/network/panel-common.h | 5 -- 2 files changed, 154 deletions(-) diff --git a/panels/network/panel-common.c b/panels/network/panel-common.c index de447ef271..7759360db3 100644 --- a/panels/network/panel-common.c +++ b/panels/network/panel-common.c @@ -31,113 +31,6 @@ #include "panel-common.h" -/** - * panel_device_to_icon_name: - **/ -const gchar * -panel_device_to_icon_name (NMDevice *device, gboolean symbolic) -{ - const gchar *value = NULL; - NMDeviceState state; - NMDeviceModemCapabilities caps; - switch (nm_device_get_device_type (device)) { - case NM_DEVICE_TYPE_ETHERNET: - state = nm_device_get_state (device); - if (state <= NM_DEVICE_STATE_DISCONNECTED) { - value = symbolic ? "network-wired-disconnected-symbolic" - : "network-wired-disconnected"; - } else { - value = symbolic ? "network-wired-symbolic" - : "network-wired"; - } - break; - case NM_DEVICE_TYPE_WIFI: - case NM_DEVICE_TYPE_BT: - case NM_DEVICE_TYPE_OLPC_MESH: - value = symbolic ? "network-wireless-signal-excellent-symbolic" - : "network-wireless"; - break; - case NM_DEVICE_TYPE_MODEM: - caps = nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (device)); - if ((caps & NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS) || - (caps & NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO)) { - value = symbolic ? "network-cellular-signal-excellent-symbolic" - : "network-cellular"; - break; - } - /* fall thru */ - default: - value = symbolic ? "network-idle-symbolic" - : "network-idle"; - break; - } - return value; -} - -/** - * panel_device_get_sort_category: - * - * Try to return order of approximate connection speed. - * But sort wifi first, since thats the common case. - **/ -gint -panel_device_get_sort_category (NMDevice *device) -{ - gint value; - NMDeviceModemCapabilities caps; - switch (nm_device_get_device_type (device)) { - case NM_DEVICE_TYPE_ETHERNET: - value = 2; - break; - case NM_DEVICE_TYPE_WIFI: - value = 1; - break; - case NM_DEVICE_TYPE_MODEM: - caps = nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (device)); - if ((caps & NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS) || - (caps & NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO)) { - value = 3; - } - break; - case NM_DEVICE_TYPE_BT: - value = 4; - break; - case NM_DEVICE_TYPE_OLPC_MESH: - value = 5; - break; - default: - value = 6; - break; - } - return value; -} - -/** - * panel_ap_mode_to_localized_string: - **/ -const gchar * -panel_ap_mode_to_localized_string (NM80211Mode mode) -{ - const gchar *value = NULL; - switch (mode) { - case NM_802_11_MODE_UNKNOWN: - /* TRANSLATORS: AP type */ - value = _("Unknown"); - break; - case NM_802_11_MODE_ADHOC: - /* TRANSLATORS: AP type */ - value = _("Ad-hoc"); - break; - case NM_802_11_MODE_INFRA: - /* TRANSLATORS: AP type */ - value = _("Infrastructure"); - break; - default: - break; - } - return value; -} - static const gchar * device_state_to_localized_string (NMDeviceState state) { @@ -190,48 +83,6 @@ device_state_to_localized_string (NMDeviceState state) return value; } -/** - * panel_vpn_state_to_localized_string: - **/ -const gchar * -panel_vpn_state_to_localized_string (NMVpnConnectionState type) -{ - const gchar *value = NULL; - switch (type) { - case NM_DEVICE_STATE_UNKNOWN: - /* TRANSLATORS: VPN status */ - value = _("Status unknown"); - break; - case NM_VPN_CONNECTION_STATE_PREPARE: - case NM_VPN_CONNECTION_STATE_CONNECT: - case NM_VPN_CONNECTION_STATE_IP_CONFIG_GET: - /* TRANSLATORS: VPN status */ - value = _("Connecting"); - break; - case NM_VPN_CONNECTION_STATE_NEED_AUTH: - /* TRANSLATORS: VPN status */ - value = _("Authentication required"); - break; - case NM_VPN_CONNECTION_STATE_ACTIVATED: - /* TRANSLATORS: VPN status */ - value = _("Connected"); - break; - case NM_VPN_CONNECTION_STATE_FAILED: - /* TRANSLATORS: VPN status */ - value = _("Connection failed"); - break; - case NM_VPN_CONNECTION_STATE_DISCONNECTED: - /* TRANSLATORS: VPN status */ - value = _("Not connected"); - break; - default: - /* TRANSLATORS: VPN status */ - value = _("Status unknown (missing)"); - break; - } - return value; -} - static const gchar * device_state_reason_to_localized_string (NMDevice *device) { diff --git a/panels/network/panel-common.h b/panels/network/panel-common.h index 633813ca89..0fa3411ac6 100644 --- a/panels/network/panel-common.h +++ b/panels/network/panel-common.h @@ -27,11 +27,6 @@ G_BEGIN_DECLS -const gchar *panel_device_to_icon_name (NMDevice *device, - gboolean symbolic); -gint panel_device_get_sort_category (NMDevice *device); -const gchar *panel_ap_mode_to_localized_string (NM80211Mode mode); -const gchar *panel_vpn_state_to_localized_string (NMVpnConnectionState type); void panel_set_device_status (GtkBuilder *builder, const gchar *label_name, NMDevice *nm_device, -- GitLab From 6211337ad62606d7898e8b4bd89cd8e7896c5ab9 Mon Sep 17 00:00:00 2001 From: Robert Ancell Date: Tue, 1 Oct 2019 12:31:05 +1300 Subject: [PATCH 2/7] network: Make function private --- panels/network/panel-common.c | 2 +- panels/network/panel-common.h | 3 --- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/panels/network/panel-common.c b/panels/network/panel-common.c index 7759360db3..34c0b24c89 100644 --- a/panels/network/panel-common.c +++ b/panels/network/panel-common.c @@ -377,7 +377,7 @@ panel_set_device_widget_details (GtkBuilder *builder, } -gboolean +static gboolean panel_set_device_widget_header (GtkBuilder *builder, const gchar *widget_suffix, const gchar *heading) diff --git a/panels/network/panel-common.h b/panels/network/panel-common.h index 0fa3411ac6..6a68533a71 100644 --- a/panels/network/panel-common.h +++ b/panels/network/panel-common.h @@ -38,9 +38,6 @@ void panel_set_device_row_status (GtkBuilder *buil gboolean panel_set_device_widget_details (GtkBuilder *builder, const gchar *widget_suffix, const gchar *value); -gboolean panel_set_device_widget_header (GtkBuilder *builder, - const gchar *widget_suffix, - const gchar *value); void panel_set_device_widgets (GtkBuilder *builder, NMDevice *device); void panel_unset_device_widgets (GtkBuilder *builder); -- GitLab From 4ba3a2c3d1ca8d614610f6c17d39dd3b9b98da95 Mon Sep 17 00:00:00 2001 From: Robert Ancell Date: Tue, 1 Oct 2019 12:51:55 +1300 Subject: [PATCH 3/7] network: Fix small memory leak --- panels/network/net-device-ethernet.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/panels/network/net-device-ethernet.c b/panels/network/net-device-ethernet.c index 86c87ab30d..7a43f4fcda 100644 --- a/panels/network/net-device-ethernet.c +++ b/panels/network/net-device-ethernet.c @@ -203,7 +203,7 @@ device_ethernet_refresh_ui (NetDeviceEthernet *device) NMDevice *nm_device; NMDeviceState state; GtkWidget *widget; - gchar *speed = NULL; + g_autofree gchar *speed = NULL; nm_device = net_device_get_nm_device (NET_DEVICE (device)); -- GitLab From 3c32ee72ea175c1655253ca3507f52fb9b766a1a Mon Sep 17 00:00:00 2001 From: Robert Ancell Date: Tue, 1 Oct 2019 12:50:30 +1300 Subject: [PATCH 4/7] network: Remove two common functions that are more simply done inside the few cases that use them The existing code relied on using GtkBuilder, which will no longer work when we switch to GtkTemplate. --- panels/network/net-device-ethernet.c | 8 +++++-- panels/network/net-device-mobile.c | 5 +++- panels/network/net-device-wifi.c | 6 ++++- panels/network/panel-common.c | 34 +++------------------------- panels/network/panel-common.h | 9 +------- 5 files changed, 19 insertions(+), 43 deletions(-) diff --git a/panels/network/net-device-ethernet.c b/panels/network/net-device-ethernet.c index 7a43f4fcda..e4239891b0 100644 --- a/panels/network/net-device-ethernet.c +++ b/panels/network/net-device-ethernet.c @@ -23,7 +23,8 @@ #include #include - +#define HANDY_USE_UNSTABLE_API +#include #include #include "panel-common.h" @@ -204,6 +205,7 @@ device_ethernet_refresh_ui (NetDeviceEthernet *device) NMDeviceState state; GtkWidget *widget; g_autofree gchar *speed = NULL; + g_autofree gchar *status = NULL; nm_device = net_device_get_nm_device (NET_DEVICE (device)); @@ -221,7 +223,9 @@ 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_row_status (device->builder, "details_row", nm_device, speed); + widget = GTK_WIDGET (gtk_builder_get_object (device->builder, "details_row")); + status = panel_device_status_to_localized_string (nm_device, speed); + hdy_action_row_set_title (HDY_ACTION_ROW (widget), status); populate_ui (device); } diff --git a/panels/network/net-device-mobile.c b/panels/network/net-device-mobile.c index 69868a3711..96e9ff2291 100644 --- a/panels/network/net-device-mobile.c +++ b/panels/network/net-device-mobile.c @@ -374,6 +374,7 @@ nm_device_mobile_refresh_ui (NetDeviceMobile *device_mobile) NMClient *client; NMDeviceModemCapabilities caps; NMDevice *nm_device; + g_autofree gchar *status = NULL; nm_device = net_device_get_nm_device (NET_DEVICE (device_mobile)); @@ -388,7 +389,9 @@ nm_device_mobile_refresh_ui (NetDeviceMobile *device_mobile) mobilebb_enabled_toggled (client, NULL, device_mobile); /* set device state, with status */ - panel_set_device_status (device_mobile->builder, "label_status", nm_device, NULL); + widget = GTK_WIDGET (gtk_builder_get_object (device_mobile->builder, "label_status")); + status = panel_device_status_to_localized_string (nm_device, NULL); + gtk_label_set_label (GTK_LABEL (widget), status); /* sensitive for other connection types if the device is currently connected */ widget = GTK_WIDGET (gtk_builder_get_object (device_mobile->builder, diff --git a/panels/network/net-device-wifi.c b/panels/network/net-device-wifi.c index 9efed8cc65..f8a1b689a1 100644 --- a/panels/network/net-device-wifi.c +++ b/panels/network/net-device-wifi.c @@ -491,6 +491,8 @@ nm_device_wifi_refresh_ui (NetDeviceWifi *device_wifi) NMAccessPoint *ap; NMConnection *connection; GtkWidget *dialog; + GtkWidget *widget; + g_autofree gchar *status = NULL; if (device_is_hotspot (device_wifi)) { nm_device_wifi_refresh_hotspot (device_wifi); @@ -585,7 +587,9 @@ nm_device_wifi_refresh_ui (NetDeviceWifi *device_wifi) else panel_set_device_widget_details (device_wifi->builder, "last_used", NULL); - panel_set_device_status (device_wifi->builder, "heading_status", nm_device, NULL); + widget = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, "heading_status")); + status = panel_device_status_to_localized_string (nm_device, NULL); + gtk_label_set_label (GTK_LABEL (widget), status); /* update list of APs */ show_wifi_list (device_wifi); diff --git a/panels/network/panel-common.c b/panels/network/panel-common.c index 34c0b24c89..022243c39b 100644 --- a/panels/network/panel-common.c +++ b/panels/network/panel-common.c @@ -269,9 +269,9 @@ device_state_reason_to_localized_string (NMDevice *device) return value; } -static gchar * -device_status_to_localized_string (NMDevice *nm_device, - const gchar *speed) +gchar * +panel_device_status_to_localized_string (NMDevice *nm_device, + const gchar *speed) { NMDeviceState state; GString *string; @@ -314,34 +314,6 @@ device_status_to_localized_string (NMDevice *nm_device, return g_string_free (string, FALSE); } -void -panel_set_device_status (GtkBuilder *builder, - const gchar *label_name, - NMDevice *nm_device, - const gchar *speed) -{ - GtkLabel *label; - g_autofree gchar *status = NULL; - - label = GTK_LABEL (gtk_builder_get_object (builder, label_name)); - status = device_status_to_localized_string (nm_device, speed); - gtk_label_set_label (label, 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 6a68533a71..4f0631bc1b 100644 --- a/panels/network/panel-common.h +++ b/panels/network/panel-common.h @@ -21,19 +21,12 @@ #pragma once -#include #include #include G_BEGIN_DECLS -void panel_set_device_status (GtkBuilder *builder, - 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, +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, -- GitLab From 1d43f4c0f557ce017c7d6a41698395ce7bec5e33 Mon Sep 17 00:00:00 2001 From: Robert Ancell Date: Tue, 1 Oct 2019 14:27:29 +1300 Subject: [PATCH 5/7] network: Simplify function --- .../connection-editor/ce-page-details.c | 2 +- panels/network/net-device-wifi.c | 2 +- panels/network/panel-common.c | 92 +++++-------------- panels/network/panel-common.h | 1 - 4 files changed, 26 insertions(+), 71 deletions(-) diff --git a/panels/network/connection-editor/ce-page-details.c b/panels/network/connection-editor/ce-page-details.c index d7bfa5499e..f2151ad625 100644 --- a/panels/network/connection-editor/ce-page-details.c +++ b/panels/network/connection-editor/ce-page-details.c @@ -256,7 +256,7 @@ connect_details_page (CEPageDetails *page) if (device_is_active) panel_set_device_widgets (CE_PAGE (page)->builder, page->device); else - panel_unset_device_widgets (CE_PAGE (page)->builder); + panel_set_device_widgets (CE_PAGE (page)->builder, NULL); if (!device_is_active && CE_PAGE (page)->connection) update_last_used (page, CE_PAGE (page)->connection); diff --git a/panels/network/net-device-wifi.c b/panels/network/net-device-wifi.c index f8a1b689a1..114100b64b 100644 --- a/panels/network/net-device-wifi.c +++ b/panels/network/net-device-wifi.c @@ -578,7 +578,7 @@ nm_device_wifi_refresh_ui (NetDeviceWifi *device_wifi) /* set IP entries */ if (ap != active_ap) - panel_unset_device_widgets (device_wifi->builder); + panel_set_device_widgets (device_wifi->builder, NULL); else panel_set_device_widgets (device_wifi->builder, nm_device); diff --git a/panels/network/panel-common.c b/panels/network/panel-common.c index 022243c39b..57d74fbaee 100644 --- a/panels/network/panel-common.c +++ b/panels/network/panel-common.c @@ -413,68 +413,33 @@ panel_get_ip6_address_as_string (NMIPConfig *ip6_config) void panel_set_device_widgets (GtkBuilder *builder, NMDevice *device) { - NMIPConfig *ip4_config = NULL; - NMIPConfig *ip6_config = NULL; - gboolean has_ip4; - gboolean has_ip6; - gchar *str_tmp; - - /* get IPv4 parameters */ - ip4_config = nm_device_get_ip4_config (device); - if (ip4_config != NULL) { - - /* IPv4 address */ - str_tmp = panel_get_ip4_address_as_string (ip4_config, "address"); - panel_set_device_widget_details (builder, - "ipv4", - str_tmp); - has_ip4 = str_tmp != NULL; - g_free (str_tmp); - - /* IPv4 DNS */ - str_tmp = panel_get_ip4_dns_as_string (ip4_config); - panel_set_device_widget_details (builder, - "dns", - str_tmp); - g_free (str_tmp); - - /* IPv4 route */ - str_tmp = panel_get_ip4_address_as_string (ip4_config, "gateway"); - panel_set_device_widget_details (builder, - "route", - str_tmp); - g_free (str_tmp); - - } else { - /* IPv4 address */ - panel_set_device_widget_details (builder, - "ipv4", - NULL); - has_ip4 = FALSE; - - /* IPv4 DNS */ - panel_set_device_widget_details (builder, - "dns", - NULL); - - /* IPv4 route */ - panel_set_device_widget_details (builder, - "route", - NULL); + 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; + + if (device != NULL) { + NMIPConfig *ip4_config, *ip6_config; + + ip4_config = nm_device_get_ip4_config (device); + if (ip4_config != NULL) { + ipv4_text = panel_get_ip4_address_as_string (ip4_config, "address"); + dns_text = panel_get_ip4_dns_as_string (ip4_config); + route_text = panel_get_ip4_address_as_string (ip4_config, "gateway"); + } + ip6_config = nm_device_get_ip6_config (device); + if (ip6_config != NULL) + ipv6_text = panel_get_ip6_address_as_string (ip6_config); } - /* get IPv6 parameters */ - ip6_config = nm_device_get_ip6_config (device); - if (ip6_config != NULL) { - str_tmp = panel_get_ip6_address_as_string (ip6_config); - panel_set_device_widget_details (builder, "ipv6", str_tmp); - has_ip6 = str_tmp != NULL; - g_free (str_tmp); - } else { - panel_set_device_widget_details (builder, "ipv6", NULL); - has_ip6 = FALSE; - } + 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); + 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")); @@ -484,12 +449,3 @@ panel_set_device_widgets (GtkBuilder *builder, NMDevice *device) panel_set_device_widget_header (builder, "ipv6", _("IP Address")); } } - -void -panel_unset_device_widgets (GtkBuilder *builder) -{ - panel_set_device_widget_details (builder, "ipv4", NULL); - panel_set_device_widget_details (builder, "ipv6", NULL); - panel_set_device_widget_details (builder, "dns", NULL); - panel_set_device_widget_details (builder, "route", NULL); -} diff --git a/panels/network/panel-common.h b/panels/network/panel-common.h index 4f0631bc1b..c56bd0f8cb 100644 --- a/panels/network/panel-common.h +++ b/panels/network/panel-common.h @@ -33,7 +33,6 @@ gboolean panel_set_device_widget_details (GtkBuilder *buil const gchar *value); void panel_set_device_widgets (GtkBuilder *builder, NMDevice *device); -void panel_unset_device_widgets (GtkBuilder *builder); gchar *panel_get_ip4_address_as_string (NMIPConfig *config, const gchar *what); gchar *panel_get_ip4_dns_as_string (NMIPConfig *config); gchar *panel_get_ip6_address_as_string (NMIPConfig *config); -- GitLab From 57d7a79034c4fa58c535102df47634d03b58abd8 Mon Sep 17 00:00:00 2001 From: Robert Ancell Date: Tue, 1 Oct 2019 14:26:51 +1300 Subject: [PATCH 6/7] 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. --- .../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 f2151ad625..35b6a1e394 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 96e9ff2291..5bf055471a 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 114100b64b..a1fd5bc048 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 57d74fbaee..e895c50063 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 c56bd0f8cb..693611458c 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); -- GitLab From bf8b8f52b71f3822c252ec934832b93da16beff6 Mon Sep 17 00:00:00 2001 From: Robert Ancell Date: Tue, 1 Oct 2019 14:52:13 +1300 Subject: [PATCH 7/7] network: Remove an unnecessary goto --- panels/network/panel-common.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/panels/network/panel-common.c b/panels/network/panel-common.c index e895c50063..034efe2600 100644 --- a/panels/network/panel-common.c +++ b/panels/network/panel-common.c @@ -337,8 +337,6 @@ panel_set_device_widget_details (GtkLabel *heading, gchar * panel_get_ip4_address_as_string (NMIPConfig *ip4_config, const char *what) { - const gchar *str = NULL; - /* we only care about one address */ if (!strcmp (what, "address")) { GPtrArray *array; @@ -346,15 +344,14 @@ panel_get_ip4_address_as_string (NMIPConfig *ip4_config, const char *what) array = nm_ip_config_get_addresses (ip4_config); if (array->len < 1) - goto out; + return NULL; address = array->pdata[0]; - str = nm_ip_address_get_address (address); + return g_strdup (nm_ip_address_get_address (address)); } else if (!strcmp (what, "gateway")) { - str = nm_ip_config_get_gateway (ip4_config); + return g_strdup (nm_ip_config_get_gateway (ip4_config)); } -out: - return g_strdup (str); + return NULL; } gchar * -- GitLab