diff --git a/panels/network/connection-editor/ce-page-details.c b/panels/network/connection-editor/ce-page-details.c index d7bfa5499e517dbc9dd13e64d7b0eefa55d3d216..35b6a1e394ca8014f6fd825a21ef8ebbe3c31f37 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,18 +259,23 @@ 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) 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); - 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-ethernet.c b/panels/network/net-device-ethernet.c index 86c87ab30da5285f7e153443f7cd3f3ebcad03f1..e4239891b0df761e43c5bf4cb56d65cce4ef50f8 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" @@ -203,7 +204,8 @@ device_ethernet_refresh_ui (NetDeviceEthernet *device) NMDevice *nm_device; NMDeviceState state; GtkWidget *widget; - gchar *speed = NULL; + 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 69868a3711a27a1bf9ae8705c2907dcd5d919d11..5bf055471ae55cb7cddce5a404c8ed1e0484087c 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); } } } @@ -374,6 +382,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 +397,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 9efed8cc6570d8a9bf3e58afd87e46e3ba752fb2..a1fd5bc048d323a796f253b8795923202db695de 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,6 +493,8 @@ nm_device_wifi_refresh_ui (NetDeviceWifi *device_wifi) NMAccessPoint *ap; NMConnection *connection; GtkWidget *dialog; + GtkWidget *heading, *widget; + g_autofree gchar *status = NULL; if (device_is_hotspot (device_wifi)) { nm_device_wifi_refresh_hotspot (device_wifi); @@ -530,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) @@ -563,29 +568,36 @@ 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) - 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); 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); + } - 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 de447ef2715e1dfc4b28e094e804433f85eccb26..034efe2600c16d5e75ce79f29fbacb7d9696cd10 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) { @@ -418,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; @@ -463,92 +314,29 @@ 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, +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; } - -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) { - const gchar *str = NULL; - /* we only care about one address */ if (!strcmp (what, "address")) { GPtrArray *array; @@ -556,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 * @@ -590,83 +377,50 @@ 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); + 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; + + 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 (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")); } } - -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 633813ca8958abcce22aa9b255c3177c48b6caed..693611458cba972a9d29a3dec691b719b4a9ef2c 100644 --- a/panels/network/panel-common.h +++ b/panels/network/panel-common.h @@ -21,34 +21,18 @@ #pragma once -#include #include #include 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, +gchar *panel_device_status_to_localized_string (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); -gboolean panel_set_device_widget_header (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); -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);