diff options
author | Robert Ancell <robert.ancell@canonical.com> | 2019-10-15 12:25:48 +1300 |
---|---|---|
committer | Georges Basile Stavracas Neto <georges.stavracas@gmail.com> | 2019-10-22 20:11:45 +0000 |
commit | 8b6e3fb7365072da84cf45e97cd8f91ea64b75ce (patch) | |
tree | 25bb499f038e2e77e2905c3ed6b5719843cde532 | |
parent | b331d75df5b1bce5222ff5a722037af4566d15ca (diff) | |
download | gnome-control-center-8b6e3fb7365072da84cf45e97cd8f91ea64b75ce.tar.gz |
network: Store widgets inside objects
This is a step towards replacing GtkBuilder with GtkTemplate
31 files changed, 1205 insertions, 1433 deletions
diff --git a/panels/network/connection-editor/ce-page-8021x-security.c b/panels/network/connection-editor/ce-page-8021x-security.c index 33b2379e6..fc9e6c7a0 100644 --- a/panels/network/connection-editor/ce-page-8021x-security.c +++ b/panels/network/connection-editor/ce-page-8021x-security.c @@ -39,7 +39,7 @@ G_DEFINE_TYPE (CEPage8021xSecurity, ce_page_8021x_security, CE_TYPE_PAGE) static void enable_toggled (CEPage8021xSecurity *page) { - gtk_widget_set_sensitive (page->security_widget, gtk_switch_get_active (page->enabled)); + gtk_widget_set_sensitive (page->security_widget, gtk_switch_get_active (page->enable_8021x_switch)); ce_page_changed (CE_PAGE (page)); } @@ -53,15 +53,10 @@ static void finish_setup (CEPage8021xSecurity *page, gpointer unused, GError *error, gpointer user_data) { GtkWidget *parent; - GtkWidget *vbox; - GtkWidget *heading; if (error) return; - vbox = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "box")); - heading = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "security_label")); - page->group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); page->security = (WirelessSecurity *) ws_wpa_eap_new (CE_PAGE (page)->connection, TRUE, FALSE); @@ -76,14 +71,14 @@ finish_setup (CEPage8021xSecurity *page, gpointer unused, GError *error, gpointe if (parent) gtk_container_remove (GTK_CONTAINER (parent), page->security_widget); - gtk_switch_set_active (page->enabled, page->initial_have_8021x); - g_signal_connect_swapped (page->enabled, "notify::active", G_CALLBACK (enable_toggled), page); + gtk_switch_set_active (page->enable_8021x_switch, page->initial_have_8021x); + g_signal_connect_swapped (page->enable_8021x_switch, "notify::active", G_CALLBACK (enable_toggled), page); gtk_widget_set_sensitive (page->security_widget, page->initial_have_8021x); - gtk_size_group_add_widget (page->group, heading); + gtk_size_group_add_widget (page->group, GTK_WIDGET (page->security_label)); wireless_security_add_to_size_group (page->security, page->group); - gtk_container_add (GTK_CONTAINER (vbox), page->security_widget); + gtk_container_add (GTK_CONTAINER (page->box), page->security_widget); } @@ -99,11 +94,13 @@ ce_page_8021x_security_new (NMConnection *connection, "/org/gnome/control-center/network/8021x-security-page.ui", _("Security"))); + page->box = GTK_BOX (gtk_builder_get_object (CE_PAGE (page)->builder, "box")); + page->enable_8021x_switch = GTK_SWITCH (gtk_builder_get_object (CE_PAGE (page)->builder, "enable_8021x_switch")); + page->security_label = GTK_LABEL (gtk_builder_get_object (CE_PAGE (page)->builder, "security_label")); + if (nm_connection_get_setting_802_1x (connection)) page->initial_have_8021x = TRUE; - page->enabled = GTK_SWITCH (gtk_builder_get_object (CE_PAGE (page)->builder, "enable_8021x_switch")); - g_signal_connect (page, "initialized", G_CALLBACK (finish_setup), NULL); if (page->initial_have_8021x) @@ -118,7 +115,7 @@ validate (CEPage *cepage, NMConnection *connection, GError **error) CEPage8021xSecurity *page = CE_PAGE_8021X_SECURITY (cepage); gboolean valid = TRUE; - if (gtk_switch_get_active (page->enabled)) { + if (gtk_switch_get_active (page->enable_8021x_switch)) { NMSetting *s_8021x; /* FIXME: get failed property and error out of wireless security objects */ diff --git a/panels/network/connection-editor/ce-page-8021x-security.h b/panels/network/connection-editor/ce-page-8021x-security.h index 3bbac2a05..e3fbef0a1 100644 --- a/panels/network/connection-editor/ce-page-8021x-security.h +++ b/panels/network/connection-editor/ce-page-8021x-security.h @@ -44,7 +44,10 @@ typedef struct CEPage8021xSecurityClass CEPage8021xSecurityClass; struct CEPage8021xSecurity { CEPage parent; - GtkSwitch *enabled; + GtkBox *box; + GtkSwitch *enable_8021x_switch; + GtkLabel *security_label; + GtkWidget *security_widget; WirelessSecurity *security; GtkSizeGroup *group; diff --git a/panels/network/connection-editor/ce-page-details.c b/panels/network/connection-editor/ce-page-details.c index dc30807b0..eabec00a6 100644 --- a/panels/network/connection-editor/ce-page-details.c +++ b/panels/network/connection-editor/ce-page-details.c @@ -86,7 +86,6 @@ 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) @@ -110,9 +109,7 @@ update_last_used (CEPageDetails *page, NMConnection *connection) else last_used = g_strdup_printf (ngettext ("%i day ago", "%i days ago", days), days); out: - heading = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "last_used_heading_label")); - widget = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "last_used_label")); - panel_set_device_widget_details (GTK_LABEL (heading), GTK_LABEL (widget), last_used); + panel_set_device_widget_details (page->last_used_heading_label, page->last_used_label, last_used); } static void @@ -122,7 +119,7 @@ all_user_changed (CEPageDetails *page) NMSettingConnection *sc; sc = nm_connection_get_setting_connection (CE_PAGE (page)->connection); - all_users = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON ((gtk_builder_get_object (CE_PAGE (page)->builder, "all_user_check")))); + all_users = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (page->all_user_check)); g_object_set (sc, "permissions", NULL, NULL); if (!all_users) @@ -137,7 +134,7 @@ restrict_data_changed (CEPageDetails *page) s_con = nm_connection_get_setting_connection (CE_PAGE (page)->connection); - if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (gtk_builder_get_object (CE_PAGE (page)->builder, "restrict_data_check")))) + if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (page->restrict_data_check))) metered = NM_METERED_YES; else metered = NM_METERED_NO; @@ -150,7 +147,6 @@ update_restrict_data (CEPageDetails *page) { NMSettingConnection *s_con; NMMetered metered; - GtkWidget *widget; const gchar *type; s_con = nm_connection_get_setting_connection (CE_PAGE (page)->connection); @@ -166,20 +162,18 @@ update_restrict_data (CEPageDetails *page) metered = nm_setting_connection_get_metered (s_con); - widget = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "restrict_data_check")); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (page->restrict_data_check), metered == NM_METERED_YES || metered == NM_METERED_GUESS_YES); - gtk_widget_show (widget); + gtk_widget_show (GTK_WIDGET (page->restrict_data_check)); - g_signal_connect_swapped (widget, "notify::active", G_CALLBACK (restrict_data_changed), page); - g_signal_connect_swapped (widget, "notify::active", G_CALLBACK (ce_page_changed), page); + g_signal_connect_swapped (page->restrict_data_check, "notify::active", G_CALLBACK (restrict_data_changed), page); + g_signal_connect_swapped (page->restrict_data_check, "notify::active", G_CALLBACK (ce_page_changed), page); } static void connect_details_page (CEPageDetails *page) { NMSettingConnection *sc; - GtkWidget *heading, *widget; guint speed; guint strength; NMDeviceState state; @@ -224,24 +218,18 @@ connect_details_page (CEPageDetails *page) } if (speed > 0) speed_label = g_strdup_printf (_("%d Mb/s"), speed); - heading = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "speed_heading_label")); - widget = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "speed_label")); - panel_set_device_widget_details (GTK_LABEL (heading), GTK_LABEL (widget), speed_label); + panel_set_device_widget_details (page->speed_heading_label, page->speed_label, 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)); - heading = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "mac_heading_label")); - widget = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "mac_label")); - panel_set_device_widget_details (GTK_LABEL (heading), GTK_LABEL (widget), hw_address); + panel_set_device_widget_details (page->mac_heading_label, page->mac_label, hw_address); if (device_is_active && active_ap) security_string = get_ap_security_string (active_ap); - heading = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "security_heading_label")); - widget = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "security_label")); - panel_set_device_widget_details (GTK_LABEL (heading), GTK_LABEL (widget), security_string); + panel_set_device_widget_details (page->security_heading_label, page->security_label, security_string); strength = 0; if (page->ap != NULL) @@ -259,65 +247,51 @@ connect_details_page (CEPageDetails *page) strength_label = C_("Signal strength", "Good"); else strength_label = C_("Signal strength", "Excellent"); - heading = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "strength_heading_label")); - widget = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "strength_label")); - panel_set_device_widget_details (GTK_LABEL (heading), GTK_LABEL (widget), strength_label); + panel_set_device_widget_details (page->strength_heading_label, page->strength_label, strength_label); /* set IP entries */ - panel_set_device_widgets (GTK_LABEL (gtk_builder_get_object (CE_PAGE (page)->builder, "ipv4_heading_label")), - GTK_LABEL (gtk_builder_get_object (CE_PAGE (page)->builder, "ipv4_label")), - GTK_LABEL (gtk_builder_get_object (CE_PAGE (page)->builder, "ipv6_heading_label")), - GTK_LABEL (gtk_builder_get_object (CE_PAGE (page)->builder, "ipv6_label")), - GTK_LABEL (gtk_builder_get_object (CE_PAGE (page)->builder, "dns_heading_label")), - GTK_LABEL (gtk_builder_get_object (CE_PAGE (page)->builder, "dns_label")), - GTK_LABEL (gtk_builder_get_object (CE_PAGE (page)->builder, "route_heading_label")), - GTK_LABEL (gtk_builder_get_object (CE_PAGE (page)->builder, "route_label")), + panel_set_device_widgets (page->ipv4_heading_label, page->ipv4_label, + page->ipv6_heading_label, page->ipv6_label, + page->dns_heading_label, page->dns_label, + page->route_heading_label, page->route_label, device_is_active ? page->device : NULL); if (!device_is_active && CE_PAGE (page)->connection) update_last_used (page, CE_PAGE (page)->connection); - else { - heading = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "last_used_heading_label")); - widget = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "last_used_label")); - panel_set_device_widget_details (GTK_LABEL (heading), GTK_LABEL (widget), NULL); - } + else + panel_set_device_widget_details (page->last_used_heading_label, page->last_used_label, NULL); /* Auto connect check */ - widget = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, - "auto_connect_check")); if (g_str_equal (type, NM_SETTING_VPN_SETTING_NAME)) { - gtk_widget_hide (widget); + gtk_widget_hide (GTK_WIDGET (page->auto_connect_check)); } else { g_object_bind_property (sc, "autoconnect", - widget, "active", + page->auto_connect_check, "active", G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); - g_signal_connect_swapped (widget, "toggled", G_CALLBACK (ce_page_changed), page); + g_signal_connect_swapped (page->auto_connect_check, "toggled", G_CALLBACK (ce_page_changed), page); } /* All users check */ - widget = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, - "all_user_check")); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (page->all_user_check), nm_setting_connection_get_num_permissions (sc) == 0); - g_signal_connect_swapped (widget, "toggled", + g_signal_connect_swapped (page->all_user_check, "toggled", G_CALLBACK (all_user_changed), page); - g_signal_connect_swapped (widget, "toggled", G_CALLBACK (ce_page_changed), page); + g_signal_connect_swapped (page->all_user_check, "toggled", G_CALLBACK (ce_page_changed), page); /* Restrict Data check */ update_restrict_data (page); /* Forget button */ - widget = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "forget_button")); - g_signal_connect_swapped (widget, "clicked", G_CALLBACK (forget_cb), page); + g_signal_connect_swapped (page->forget_button, "clicked", G_CALLBACK (forget_cb), page); if (g_str_equal (type, NM_SETTING_WIRELESS_SETTING_NAME)) - gtk_button_set_label (GTK_BUTTON (widget), _("Forget Connection")); + gtk_button_set_label (page->forget_button, _("Forget Connection")); else if (g_str_equal (type, NM_SETTING_WIRED_SETTING_NAME)) - gtk_button_set_label (GTK_BUTTON (widget), _("Remove Connection Profile")); + gtk_button_set_label (page->forget_button, _("Remove Connection Profile")); else if (g_str_equal (type, NM_SETTING_VPN_SETTING_NAME)) - gtk_button_set_label (GTK_BUTTON (widget), _("Remove VPN")); + gtk_button_set_label (page->forget_button, _("Remove VPN")); else - gtk_widget_hide (widget); + gtk_widget_hide (GTK_WIDGET (page->forget_button)); } static void @@ -345,6 +319,29 @@ ce_page_details_new (NMConnection *connection, "/org/gnome/control-center/network/details-page.ui", _("Details"))); + page->all_user_check = GTK_CHECK_BUTTON (gtk_builder_get_object (CE_PAGE (page)->builder, "all_user_check")); + page->auto_connect_check = GTK_CHECK_BUTTON (gtk_builder_get_object (CE_PAGE (page)->builder, "auto_connect_check")); + page->dns_heading_label = GTK_LABEL (gtk_builder_get_object (CE_PAGE (page)->builder, "dns_heading_label")); + page->dns_label = GTK_LABEL (gtk_builder_get_object (CE_PAGE (page)->builder, "dns_label")); + page->forget_button = GTK_BUTTON (gtk_builder_get_object (CE_PAGE (page)->builder, "forget_button")); + page->ipv4_heading_label = GTK_LABEL (gtk_builder_get_object (CE_PAGE (page)->builder, "ipv4_heading_label")); + page->ipv4_label = GTK_LABEL (gtk_builder_get_object (CE_PAGE (page)->builder, "ipv4_label")); + page->ipv6_heading_label = GTK_LABEL (gtk_builder_get_object (CE_PAGE (page)->builder, "ipv6_heading_label")); + page->ipv6_label = GTK_LABEL (gtk_builder_get_object (CE_PAGE (page)->builder, "ipv6_label")); + page->last_used_heading_label = GTK_LABEL (gtk_builder_get_object (CE_PAGE (page)->builder, "last_used_heading_label")); + page->last_used_label = GTK_LABEL (gtk_builder_get_object (CE_PAGE (page)->builder, "last_used_label")); + page->mac_heading_label = GTK_LABEL (gtk_builder_get_object (CE_PAGE (page)->builder, "mac_heading_label")); + page->mac_label = GTK_LABEL (gtk_builder_get_object (CE_PAGE (page)->builder, "mac_label")); + page->restrict_data_check = GTK_CHECK_BUTTON (gtk_builder_get_object (CE_PAGE (page)->builder, "restrict_data_check")); + page->route_heading_label = GTK_LABEL (gtk_builder_get_object (CE_PAGE (page)->builder, "route_heading_label")); + page->route_label = GTK_LABEL (gtk_builder_get_object (CE_PAGE (page)->builder, "route_label")); + page->security_heading_label = GTK_LABEL (gtk_builder_get_object (CE_PAGE (page)->builder, "security_heading_label")); + page->security_label = GTK_LABEL (gtk_builder_get_object (CE_PAGE (page)->builder, "security_label")); + page->speed_heading_label = GTK_LABEL (gtk_builder_get_object (CE_PAGE (page)->builder, "speed_heading_label")); + page->speed_label = GTK_LABEL (gtk_builder_get_object (CE_PAGE (page)->builder, "speed_label")); + page->strength_heading_label = GTK_LABEL (gtk_builder_get_object (CE_PAGE (page)->builder, "strength_heading_label")); + page->strength_label = GTK_LABEL (gtk_builder_get_object (CE_PAGE (page)->builder, "strength_label")); + page->editor = editor; page->device = device; page->ap = ap; diff --git a/panels/network/connection-editor/ce-page-details.h b/panels/network/connection-editor/ce-page-details.h index fb85a2585..d337c8b88 100644 --- a/panels/network/connection-editor/ce-page-details.h +++ b/panels/network/connection-editor/ce-page-details.h @@ -44,6 +44,29 @@ struct _CEPageDetails { CEPage parent; + GtkCheckButton *all_user_check; + GtkCheckButton *auto_connect_check; + GtkLabel *dns_heading_label; + GtkLabel *dns_label; + GtkButton *forget_button; + GtkLabel *ipv4_heading_label; + GtkLabel *ipv4_label; + GtkLabel *ipv6_heading_label; + GtkLabel *ipv6_label; + GtkLabel *last_used_heading_label; + GtkLabel *last_used_label; + GtkLabel *mac_heading_label; + GtkLabel *mac_label; + GtkCheckButton *restrict_data_check; + GtkLabel *route_heading_label; + GtkLabel *route_label; + GtkLabel *security_heading_label; + GtkLabel *security_label; + GtkLabel *speed_heading_label; + GtkLabel *speed_label; + GtkLabel *strength_heading_label; + GtkLabel *strength_label; + NMDevice *device; NMAccessPoint *ap; NetConnectionEditor *editor; diff --git a/panels/network/connection-editor/ce-page-ip4.c b/panels/network/connection-editor/ce-page-ip4.c index 76726adb4..add4e84e7 100644 --- a/panels/network/connection-editor/ce-page-ip4.c +++ b/panels/network/connection-editor/ce-page-ip4.c @@ -32,8 +32,6 @@ #include "ce-page-ip4.h" #include "ui-helpers.h" -#define RADIO_IS_ACTIVE(x) (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (gtk_builder_get_object(CE_PAGE (page)->builder, x)))) - static void ensure_empty_address_row (CEPageIP4 *page); static void ensure_empty_routes_row (CEPageIP4 *page); @@ -58,23 +56,21 @@ method_changed (CEPageIP4 *page) gboolean addr_enabled; gboolean dns_enabled; gboolean routes_enabled; - GtkWidget *widget; - if (RADIO_IS_ACTIVE ("disabled_radio")) { + if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (page->disabled_radio))) { addr_enabled = FALSE; dns_enabled = FALSE; routes_enabled = FALSE; } else { - addr_enabled = RADIO_IS_ACTIVE ("manual_radio"); - dns_enabled = !RADIO_IS_ACTIVE ("local_radio"); - routes_enabled = !RADIO_IS_ACTIVE ("local_radio"); + addr_enabled = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (page->manual_radio)); + dns_enabled = !gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (page->local_radio)); + routes_enabled = !gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (page->local_radio)); } - widget = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "address_box")); - gtk_widget_set_visible (widget, addr_enabled); - gtk_widget_set_sensitive (page->dns_entry, dns_enabled); - gtk_widget_set_sensitive (page->routes_list, routes_enabled); - gtk_widget_set_sensitive (page->never_default, routes_enabled); + gtk_widget_set_visible (GTK_WIDGET (page->address_box), addr_enabled); + gtk_widget_set_sensitive (GTK_WIDGET (page->dns_entry), dns_enabled); + gtk_widget_set_sensitive (GTK_WIDGET (page->routes_list), routes_enabled); + gtk_widget_set_sensitive (GTK_WIDGET (page->never_default_check), routes_enabled); ce_page_changed (CE_PAGE (page)); } @@ -196,7 +192,6 @@ add_address_row (CEPageIP4 *page, const gchar *network, const gchar *gateway) { - GtkSizeGroup *group; GtkWidget *row; GtkWidget *row_box; GtkWidget *widget; @@ -245,8 +240,7 @@ add_address_row (CEPageIP4 *page, gtk_container_add (GTK_CONTAINER (row_box), delete_button); g_object_set_data (G_OBJECT (row), "delete-button", delete_button); - group = GTK_SIZE_GROUP (gtk_builder_get_object (CE_PAGE (page)->builder, "address_sizegroup")); - gtk_size_group_add_widget (group, delete_button); + gtk_size_group_add_widget (page->address_sizegroup, delete_button); gtk_container_add (GTK_CONTAINER (row), row_box); gtk_widget_show_all (row); @@ -277,17 +271,14 @@ ensure_empty_address_row (CEPageIP4 *page) static void add_address_box (CEPageIP4 *page) { - GtkWidget *widget; GtkWidget *list; gint i; - widget = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "address_box")); - page->address_list = list = gtk_list_box_new (); gtk_list_box_set_selection_mode (GTK_LIST_BOX (list), GTK_SELECTION_NONE); gtk_list_box_set_header_func (GTK_LIST_BOX (list), cc_list_box_update_header_func, NULL, NULL); gtk_list_box_set_sort_func (GTK_LIST_BOX (list), (GtkListBoxSortFunc)sort_first_last, NULL, NULL); - gtk_container_add (GTK_CONTAINER (widget), list); + gtk_container_add (GTK_CONTAINER (page->address_box), list); for (i = 0; i < nm_setting_ip_config_get_num_addresses (page->setting); i++) { NMIPAddress *addr; @@ -309,22 +300,18 @@ add_address_box (CEPageIP4 *page) if (nm_setting_ip_config_get_num_addresses (page->setting) == 0) ensure_empty_address_row (page); - gtk_widget_show_all (widget); + gtk_widget_show_all (GTK_WIDGET (page->address_box)); } static void add_dns_section (CEPageIP4 *page) { - GtkEntry *entry; GString *string; gint i; - page->auto_dns = GTK_SWITCH (gtk_builder_get_object (CE_PAGE (page)->builder, "auto_dns_switch")); - gtk_switch_set_active (page->auto_dns, !nm_setting_ip_config_get_ignore_auto_dns (page->setting)); - g_signal_connect_swapped (page->auto_dns, "notify::active", G_CALLBACK (ce_page_changed), page); + gtk_switch_set_active (page->auto_dns_switch, !nm_setting_ip_config_get_ignore_auto_dns (page->setting)); + g_signal_connect_swapped (page->auto_dns_switch, "notify::active", G_CALLBACK (ce_page_changed), page); - page->dns_entry = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "dns_entry")); - entry = GTK_ENTRY (page->dns_entry); string = g_string_new (""); for (i = 0; i < nm_setting_ip_config_get_num_dns (page->setting); i++) { @@ -338,9 +325,9 @@ add_dns_section (CEPageIP4 *page) g_string_append (string, address); } - gtk_entry_set_text (entry, string->str); + gtk_entry_set_text (page->dns_entry, string->str); - g_signal_connect_swapped (entry, "notify::text", G_CALLBACK (ce_page_changed), page); + g_signal_connect_swapped (page->dns_entry, "notify::text", G_CALLBACK (ce_page_changed), page); g_string_free (string, TRUE); } @@ -352,7 +339,6 @@ add_route_row (CEPageIP4 *page, const gchar *gateway, gint metric) { - GtkSizeGroup *group; GtkWidget *row; GtkWidget *row_box; GtkWidget *widget; @@ -403,8 +389,7 @@ add_route_row (CEPageIP4 *page, gtk_widget_set_hexpand (widget, TRUE); gtk_container_add (GTK_CONTAINER (row_box), widget); - group = GTK_SIZE_GROUP (gtk_builder_get_object (CE_PAGE (page)->builder, "routes_metric_sizegroup")); - gtk_size_group_add_widget (group, widget); + gtk_size_group_add_widget (page->routes_metric_sizegroup, widget); delete_button = gtk_button_new (); gtk_style_context_add_class (gtk_widget_get_style_context (delete_button), "image-button"); @@ -417,8 +402,7 @@ add_route_row (CEPageIP4 *page, gtk_container_add (GTK_CONTAINER (row_box), delete_button); g_object_set_data (G_OBJECT (row), "delete-button", delete_button); - group = GTK_SIZE_GROUP (gtk_builder_get_object (CE_PAGE (page)->builder, "routes_sizegroup")); - gtk_size_group_add_widget (group, delete_button); + gtk_size_group_add_widget (page->routes_sizegroup, delete_button); gtk_container_add (GTK_CONTAINER (row), row_box); gtk_widget_show_all (row); @@ -448,20 +432,16 @@ ensure_empty_routes_row (CEPageIP4 *page) static void add_routes_box (CEPageIP4 *page) { - GtkWidget *widget; GtkWidget *list; gint i; - widget = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "routes_box")); - page->routes_list = list = gtk_list_box_new (); gtk_list_box_set_selection_mode (GTK_LIST_BOX (list), GTK_SELECTION_NONE); gtk_list_box_set_header_func (GTK_LIST_BOX (list), cc_list_box_update_header_func, NULL, NULL); gtk_list_box_set_sort_func (GTK_LIST_BOX (list), (GtkListBoxSortFunc)sort_first_last, NULL, NULL); - gtk_container_add (GTK_CONTAINER (widget), list); - page->auto_routes = GTK_SWITCH (gtk_builder_get_object (CE_PAGE (page)->builder, "auto_routes_switch")); - gtk_switch_set_active (page->auto_routes, !nm_setting_ip_config_get_ignore_auto_routes (page->setting)); - g_signal_connect_swapped (page->auto_routes, "notify::active", G_CALLBACK (ce_page_changed), page); + gtk_container_add (GTK_CONTAINER (page->routes_box), list); + gtk_switch_set_active (page->auto_routes_switch, !nm_setting_ip_config_get_ignore_auto_routes (page->setting)); + g_signal_connect_swapped (page->auto_routes_switch, "notify::active", G_CALLBACK (ce_page_changed), page); for (i = 0; i < nm_setting_ip_config_get_num_routes (page->setting); i++) { @@ -485,7 +465,7 @@ add_routes_box (CEPageIP4 *page) if (nm_setting_ip_config_get_num_routes (page->setting) == 0) ensure_empty_routes_row (page); - gtk_widget_show_all (widget); + gtk_widget_show_all (GTK_WIDGET (page->routes_box)); } enum @@ -500,25 +480,35 @@ enum static void connect_ip4_page (CEPageIP4 *page) { - GtkToggleButton *radios[N_RADIO]; - GtkWidget *content; const gchar *str_method; gboolean disabled; - guint method, i; + guint method; + + page->address_box = GTK_BOX (gtk_builder_get_object (CE_PAGE (page)->builder, "address_box")); + page->address_sizegroup = GTK_SIZE_GROUP (gtk_builder_get_object (CE_PAGE (page)->builder, "address_sizegroup")); + page->auto_dns_switch = GTK_SWITCH (gtk_builder_get_object (CE_PAGE (page)->builder, "auto_dns_switch")); + page->auto_routes_switch = GTK_SWITCH (gtk_builder_get_object (CE_PAGE (page)->builder, "auto_routes_switch")); + page->automatic_radio = GTK_RADIO_BUTTON (gtk_builder_get_object (CE_PAGE (page)->builder, "automatic_radio")); + page->content_box = GTK_BOX (gtk_builder_get_object (CE_PAGE (page)->builder, "content_box")); + page->disabled_radio = GTK_RADIO_BUTTON (gtk_builder_get_object (CE_PAGE (page)->builder, "disabled_radio")); + page->dns_entry = GTK_ENTRY (gtk_builder_get_object (CE_PAGE (page)->builder, "dns_entry")); + page->local_radio = GTK_RADIO_BUTTON (gtk_builder_get_object (CE_PAGE (page)->builder, "local_radio")); + page->manual_radio = GTK_RADIO_BUTTON (gtk_builder_get_object (CE_PAGE (page)->builder, "manual_radio")); + page->never_default_check = GTK_CHECK_BUTTON (gtk_builder_get_object (CE_PAGE (page)->builder, "never_default_check")); + page->routes_box = GTK_BOX (gtk_builder_get_object (CE_PAGE (page)->builder, "routes_box")); + page->routes_metric_sizegroup = GTK_SIZE_GROUP (gtk_builder_get_object (CE_PAGE (page)->builder, "routes_metric_sizegroup")); + page->routes_sizegroup = GTK_SIZE_GROUP (gtk_builder_get_object (CE_PAGE (page)->builder, "routes_sizegroup")); add_address_box (page); add_dns_section (page); add_routes_box (page); - page->disabled = GTK_TOGGLE_BUTTON (gtk_builder_get_object (CE_PAGE (page)->builder, "disabled_radio")); - str_method = nm_setting_ip_config_get_method (page->setting); disabled = g_strcmp0 (str_method, NM_SETTING_IP4_CONFIG_METHOD_DISABLED) == 0; - gtk_toggle_button_set_active (page->disabled, disabled); - g_signal_connect_swapped (page->disabled, "notify::active", G_CALLBACK (ce_page_changed), page); - content = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "content_box")); - g_object_bind_property (page->disabled, "active", - content, "sensitive", + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (page->disabled_radio), disabled); + g_signal_connect_swapped (page->disabled_radio, "notify::active", G_CALLBACK (ce_page_changed), page); + g_object_bind_property (page->disabled_radio, "active", + page->content_box, "sensitive", G_BINDING_SYNC_CREATE | G_BINDING_INVERT_BOOLEAN); method = IP4_METHOD_AUTO; @@ -532,32 +522,27 @@ connect_ip4_page (CEPageIP4 *page) method = IP4_METHOD_DISABLED; } - page->never_default = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "never_default_check")); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (page->never_default), + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (page->never_default_check), nm_setting_ip_config_get_never_default (page->setting)); - g_signal_connect_swapped (page->never_default, "toggled", G_CALLBACK (ce_page_changed), page); - - /* Connect radio buttons */ - radios[RADIO_AUTOMATIC] = GTK_TOGGLE_BUTTON (gtk_builder_get_object (CE_PAGE (page)->builder, "automatic_radio")); - radios[RADIO_LOCAL] = GTK_TOGGLE_BUTTON (gtk_builder_get_object (CE_PAGE (page)->builder, "local_radio")); - radios[RADIO_MANUAL] = GTK_TOGGLE_BUTTON (gtk_builder_get_object (CE_PAGE (page)->builder, "manual_radio")); - radios[RADIO_DISABLED] = page->disabled; + g_signal_connect_swapped (page->never_default_check, "toggled", G_CALLBACK (ce_page_changed), page); - for (i = RADIO_AUTOMATIC; i < RADIO_DISABLED; i++) - g_signal_connect_swapped (radios[i], "toggled", G_CALLBACK (method_changed), page); + g_signal_connect_swapped (page->automatic_radio, "toggled", G_CALLBACK (method_changed), page); + g_signal_connect_swapped (page->local_radio, "toggled", G_CALLBACK (method_changed), page); + g_signal_connect_swapped (page->manual_radio, "toggled", G_CALLBACK (method_changed), page); + g_signal_connect_swapped (page->disabled_radio, "toggled", G_CALLBACK (method_changed), page); switch (method) { case IP4_METHOD_AUTO: - gtk_toggle_button_set_active (radios[RADIO_AUTOMATIC], TRUE); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (page->automatic_radio), TRUE); break; case IP4_METHOD_LINK_LOCAL: - gtk_toggle_button_set_active (radios[RADIO_LOCAL], TRUE); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (page->local_radio), TRUE); break; case IP4_METHOD_MANUAL: - gtk_toggle_button_set_active (radios[RADIO_MANUAL], TRUE); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (page->manual_radio), TRUE); break; case IP4_METHOD_DISABLED: - gtk_toggle_button_set_active (radios[RADIO_DISABLED], TRUE); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (page->disabled_radio), TRUE); break; default: break; @@ -609,14 +594,14 @@ ui_to_setting (CEPageIP4 *page) gchar *dns_text = NULL; guint i; - if (gtk_toggle_button_get_active (page->disabled)) { + if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (page->disabled_radio))) { method = NM_SETTING_IP4_CONFIG_METHOD_DISABLED; } else { - if (RADIO_IS_ACTIVE ("automatic_radio")) + if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (page->automatic_radio))) method = NM_SETTING_IP4_CONFIG_METHOD_AUTO; - else if (RADIO_IS_ACTIVE ("local_radio")) + else if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (page->local_radio))) method = NM_SETTING_IP4_CONFIG_METHOD_LINK_LOCAL; - else if (RADIO_IS_ACTIVE ("manual_radio")) + else if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (page->manual_radio))) method = NM_SETTING_IP4_CONFIG_METHOD_MANUAL; } @@ -716,11 +701,11 @@ ui_to_setting (CEPageIP4 *page) if (!nm_utils_ipaddr_valid (AF_INET, text)) { g_ptr_array_remove_range (dns_servers, 0, dns_servers->len); - widget_set_error (page->dns_entry); + widget_set_error (GTK_WIDGET (page->dns_entry)); ret = FALSE; break; } else { - widget_unset_error (page->dns_entry); + widget_unset_error (GTK_WIDGET (page->dns_entry)); g_ptr_array_add (dns_servers, g_strdup (text)); } } @@ -820,9 +805,9 @@ ui_to_setting (CEPageIP4 *page) if (!ret) goto out; - ignore_auto_dns = !gtk_switch_get_active (page->auto_dns); - ignore_auto_routes = !gtk_switch_get_active (page->auto_routes); - never_default = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (page->never_default)); + ignore_auto_dns = !gtk_switch_get_active (page->auto_dns_switch); + ignore_auto_routes = !gtk_switch_get_active (page->auto_routes_switch); + never_default = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (page->never_default_check)); g_object_set (page->setting, NM_SETTING_IP_CONFIG_METHOD, method, diff --git a/panels/network/connection-editor/ce-page-ip4.h b/panels/network/connection-editor/ce-page-ip4.h index 31a8eb601..2ae087fd7 100644 --- a/panels/network/connection-editor/ce-page-ip4.h +++ b/panels/network/connection-editor/ce-page-ip4.h @@ -43,15 +43,25 @@ struct _CEPageIP4 { CEPage parent; + GtkBox *address_box; + GtkSizeGroup *address_sizegroup; + GtkSwitch *auto_dns_switch; + GtkSwitch *auto_routes_switch; + GtkRadioButton *automatic_radio; + GtkBox *content_box; + GtkRadioButton *disabled_radio; + GtkEntry *dns_entry; + GtkRadioButton *local_radio; + GtkRadioButton *manual_radio; + GtkCheckButton *never_default_check; + GtkBox *routes_box; + GtkSizeGroup *routes_metric_sizegroup; + GtkSizeGroup *routes_sizegroup; + NMSettingIPConfig *setting; - GtkToggleButton *disabled; - GtkWidget *address_list; - GtkSwitch *auto_dns; - GtkWidget *dns_entry; - GtkSwitch *auto_routes; - GtkWidget *routes_list; - GtkWidget *never_default; + GtkWidget *address_list; + GtkWidget *routes_list; }; struct _CEPageIP4Class diff --git a/panels/network/connection-editor/ce-page-ip6.c b/panels/network/connection-editor/ce-page-ip6.c index ab07166cb..524c1e285 100644 --- a/panels/network/connection-editor/ce-page-ip6.c +++ b/panels/network/connection-editor/ce-page-ip6.c @@ -32,8 +32,6 @@ #include "ce-page-ip6.h" #include "ui-helpers.h" -#define RADIO_IS_ACTIVE(x) (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (gtk_builder_get_object(CE_PAGE (page)->builder, x)))) - static void ensure_empty_address_row (CEPageIP6 *page); static void ensure_empty_routes_row (CEPageIP6 *page); @@ -59,23 +57,21 @@ method_changed (CEPageIP6 *page) gboolean addr_enabled; gboolean dns_enabled; gboolean routes_enabled; - GtkWidget *widget; - if (RADIO_IS_ACTIVE ("disabled_radio")) { + if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (page->disabled_radio))) { addr_enabled = FALSE; dns_enabled = FALSE; routes_enabled = FALSE; } else { - addr_enabled = RADIO_IS_ACTIVE ("manual_radio"); - dns_enabled = !RADIO_IS_ACTIVE ("local_radio"); - routes_enabled = !RADIO_IS_ACTIVE ("local_radio"); + addr_enabled = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (page->manual_radio)); + dns_enabled = !gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (page->local_radio)); + routes_enabled = !gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (page->local_radio)); } - widget = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "address_box")); - gtk_widget_set_visible (widget, addr_enabled); - gtk_widget_set_sensitive (page->dns_entry, dns_enabled); - gtk_widget_set_sensitive (page->routes_list, routes_enabled); - gtk_widget_set_sensitive (page->never_default, routes_enabled); + gtk_widget_set_visible (GTK_WIDGET (page->address_box), addr_enabled); + gtk_widget_set_sensitive (GTK_WIDGET (page->dns_entry), dns_enabled); + gtk_widget_set_sensitive (GTK_WIDGET (page->routes_list), routes_enabled); + gtk_widget_set_sensitive (GTK_WIDGET (page->never_default_check), routes_enabled); ce_page_changed (CE_PAGE (page)); } @@ -175,7 +171,6 @@ add_address_row (CEPageIP6 *page, const gchar *network, const gchar *gateway) { - GtkSizeGroup *group; GtkWidget *row; GtkWidget *row_box; GtkWidget *widget; @@ -224,8 +219,7 @@ add_address_row (CEPageIP6 *page, gtk_container_add (GTK_CONTAINER (row_box), delete_button); g_object_set_data (G_OBJECT (row), "delete-button", delete_button); - group = GTK_SIZE_GROUP (gtk_builder_get_object (CE_PAGE (page)->builder, "address_sizegroup")); - gtk_size_group_add_widget (group, delete_button); + gtk_size_group_add_widget (page->address_sizegroup, delete_button); gtk_container_add (GTK_CONTAINER (row), row_box); gtk_widget_show_all (row); @@ -255,17 +249,14 @@ ensure_empty_address_row (CEPageIP6 *page) static void add_address_box (CEPageIP6 *page) { - GtkWidget *widget; GtkWidget *list; gint i; - widget = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "address_box")); - page->address_list = list = gtk_list_box_new (); gtk_list_box_set_selection_mode (GTK_LIST_BOX (list), GTK_SELECTION_NONE); gtk_list_box_set_header_func (GTK_LIST_BOX (list), cc_list_box_update_header_func, NULL, NULL); gtk_list_box_set_sort_func (GTK_LIST_BOX (list), (GtkListBoxSortFunc)sort_first_last, NULL, NULL); - gtk_container_add (GTK_CONTAINER (widget), list); + gtk_container_add (GTK_CONTAINER (page->address_box), list); for (i = 0; i < nm_setting_ip_config_get_num_addresses (page->setting); i++) { NMIPAddress *addr; @@ -279,22 +270,18 @@ add_address_box (CEPageIP6 *page) if (nm_setting_ip_config_get_num_addresses (page->setting) == 0) ensure_empty_address_row (page); - gtk_widget_show_all (widget); + gtk_widget_show_all (GTK_WIDGET (page->address_box)); } static void add_dns_section (CEPageIP6 *page) { - GtkEntry *entry; GString *string; gint i; - page->auto_dns = GTK_SWITCH (gtk_builder_get_object (CE_PAGE (page)->builder, "auto_dns_switch")); - gtk_switch_set_active (page->auto_dns, !nm_setting_ip_config_get_ignore_auto_dns (page->setting)); - g_signal_connect_swapped (page->auto_dns, "notify::active", G_CALLBACK (ce_page_changed), page); + gtk_switch_set_active (page->auto_dns_switch, !nm_setting_ip_config_get_ignore_auto_dns (page->setting)); + g_signal_connect_swapped (page->auto_dns_switch, "notify::active", G_CALLBACK (ce_page_changed), page); - page->dns_entry = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "dns_entry")); - entry = GTK_ENTRY (page->dns_entry); string = g_string_new (""); for (i = 0; i < nm_setting_ip_config_get_num_dns (page->setting); i++) { @@ -309,7 +296,7 @@ add_dns_section (CEPageIP6 *page) } - gtk_entry_set_text (entry, string->str); + gtk_entry_set_text (page->dns_entry, string->str); g_signal_connect_swapped (page->dns_entry, "notify::text", G_CALLBACK (ce_page_changed), page); @@ -323,7 +310,6 @@ add_route_row (CEPageIP6 *page, const gchar *gateway, const gchar *metric) { - GtkSizeGroup *group; GtkWidget *row; GtkWidget *row_box; GtkWidget *widget; @@ -371,8 +357,7 @@ add_route_row (CEPageIP6 *page, gtk_widget_set_hexpand (widget, TRUE); gtk_container_add (GTK_CONTAINER (row_box), widget); - group = GTK_SIZE_GROUP (gtk_builder_get_object (CE_PAGE (page)->builder, "routes_metric_sizegroup")); - gtk_size_group_add_widget (group, widget); + gtk_size_group_add_widget (page->routes_metric_sizegroup, widget); delete_button = gtk_button_new (); gtk_style_context_add_class (gtk_widget_get_style_context (delete_button), "image-button"); @@ -385,8 +370,7 @@ add_route_row (CEPageIP6 *page, gtk_container_add (GTK_CONTAINER (row_box), delete_button); g_object_set_data (G_OBJECT (row), "delete-button", delete_button); - group = GTK_SIZE_GROUP (gtk_builder_get_object (CE_PAGE (page)->builder, "routes_sizegroup")); - gtk_size_group_add_widget (group, delete_button); + gtk_size_group_add_widget (page->routes_sizegroup, delete_button); gtk_container_add (GTK_CONTAINER (row), row_box); gtk_widget_show_all (row); @@ -422,20 +406,16 @@ add_empty_route_row (CEPageIP6 *page) static void add_routes_box (CEPageIP6 *page) { - GtkWidget *widget; GtkWidget *list; gint i; - widget = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "routes_box")); - page->routes_list = list = gtk_list_box_new (); gtk_list_box_set_selection_mode (GTK_LIST_BOX (list), GTK_SELECTION_NONE); gtk_list_box_set_header_func (GTK_LIST_BOX (list), cc_list_box_update_header_func, NULL, NULL); gtk_list_box_set_sort_func (GTK_LIST_BOX (list), (GtkListBoxSortFunc)sort_first_last, NULL, NULL); - gtk_container_add (GTK_CONTAINER (widget), list); - page->auto_routes = GTK_SWITCH (gtk_builder_get_object (CE_PAGE (page)->builder, "auto_routes_switch")); - gtk_switch_set_active (page->auto_routes, !nm_setting_ip_config_get_ignore_auto_routes (page->setting)); - g_signal_connect_swapped (page->auto_routes, "notify::active", G_CALLBACK (ce_page_changed), page); + gtk_container_add (GTK_CONTAINER (page->routes_box), list); + gtk_switch_set_active (page->auto_routes_switch, !nm_setting_ip_config_get_ignore_auto_routes (page->setting)); + g_signal_connect_swapped (page->auto_routes_switch, "notify::active", G_CALLBACK (ce_page_changed), page); for (i = 0; i < nm_setting_ip_config_get_num_routes (page->setting); i++) { NMIPRoute *route; @@ -453,41 +433,42 @@ add_routes_box (CEPageIP6 *page) if (nm_setting_ip_config_get_num_routes (page->setting) == 0) add_empty_route_row (page); - gtk_widget_show_all (widget); + gtk_widget_show_all (GTK_WIDGET (page->routes_box)); } -enum -{ - RADIO_AUTOMATIC, - RADIO_DHCP, - RADIO_LOCAL, - RADIO_MANUAL, - RADIO_DISABLED, - N_RADIO -}; - static void connect_ip6_page (CEPageIP6 *page) { - GtkToggleButton *radios[N_RADIO]; - GtkWidget *content; const gchar *str_method; gboolean disabled; - guint method, i; + guint method; + + page->address_box = GTK_BOX (gtk_builder_get_object (CE_PAGE (page)->builder, "address_box")); + page->address_sizegroup = GTK_SIZE_GROUP (gtk_builder_get_object (CE_PAGE (page)->builder, "address_sizegroup")); + page->auto_dns_switch = GTK_SWITCH (gtk_builder_get_object (CE_PAGE (page)->builder, "auto_dns_switch")); + page->auto_routes_switch = GTK_SWITCH (gtk_builder_get_object (CE_PAGE (page)->builder, "auto_routes_switch")); + page->automatic_radio = GTK_RADIO_BUTTON (gtk_builder_get_object (CE_PAGE (page)->builder, "automatic_radio")); + page->content_box = GTK_BOX (gtk_builder_get_object (CE_PAGE (page)->builder, "content_box")); + page->dhcp_radio = GTK_RADIO_BUTTON (gtk_builder_get_object (CE_PAGE (page)->builder, "dhcp_radio")); + page->disabled_radio = GTK_RADIO_BUTTON (gtk_builder_get_object (CE_PAGE (page)->builder, "disabled_radio")); + page->dns_entry = GTK_ENTRY (gtk_builder_get_object (CE_PAGE (page)->builder, "dns_entry")); + page->local_radio = GTK_RADIO_BUTTON (gtk_builder_get_object (CE_PAGE (page)->builder, "local_radio")); + page->manual_radio = GTK_RADIO_BUTTON (gtk_builder_get_object (CE_PAGE (page)->builder, "manual_radio")); + page->never_default_check = GTK_CHECK_BUTTON (gtk_builder_get_object (CE_PAGE (page)->builder, "never_default_check")); + page->routes_box = GTK_BOX (gtk_builder_get_object (CE_PAGE (page)->builder, "routes_box")); + page->routes_metric_sizegroup = GTK_SIZE_GROUP (gtk_builder_get_object (CE_PAGE (page)->builder, "routes_metric_sizegroup")); + page->routes_sizegroup = GTK_SIZE_GROUP (gtk_builder_get_object (CE_PAGE (page)->builder, "routes_sizegroup")); add_address_box (page); add_dns_section (page); add_routes_box (page); - page->disabled = GTK_TOGGLE_BUTTON (gtk_builder_get_object (CE_PAGE (page)->builder, "disabled_radio")); - str_method = nm_setting_ip_config_get_method (page->setting); disabled = g_strcmp0 (str_method, NM_SETTING_IP6_CONFIG_METHOD_IGNORE) == 0; - gtk_toggle_button_set_active (page->disabled, disabled); - g_signal_connect_swapped (page->disabled, "notify::active", G_CALLBACK (ce_page_changed), page); - content = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "content_box")); - g_object_bind_property (page->disabled, "active", - content, "sensitive", + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (page->disabled_radio), disabled); + g_signal_connect_swapped (page->disabled_radio, "notify::active", G_CALLBACK (ce_page_changed), page); + g_object_bind_property (page->disabled_radio, "active", + page->content_box, "sensitive", G_BINDING_SYNC_CREATE | G_BINDING_INVERT_BOOLEAN); method = IP6_METHOD_AUTO; @@ -503,37 +484,32 @@ connect_ip6_page (CEPageIP6 *page) method = IP6_METHOD_IGNORE; } - page->never_default = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "never_default_check")); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (page->never_default), + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (page->never_default_check), nm_setting_ip_config_get_never_default (page->setting)); - g_signal_connect_swapped (page->never_default, "toggled", G_CALLBACK (ce_page_changed), page); - + g_signal_connect_swapped (page->never_default_check, "toggled", G_CALLBACK (ce_page_changed), page); - /* Connect radio buttons */ - radios[RADIO_AUTOMATIC] = GTK_TOGGLE_BUTTON (gtk_builder_get_object (CE_PAGE (page)->builder, "automatic_radio")); - radios[RADIO_DHCP] = GTK_TOGGLE_BUTTON (gtk_builder_get_object (CE_PAGE (page)->builder, "dhcp_radio")); - radios[RADIO_LOCAL] = GTK_TOGGLE_BUTTON (gtk_builder_get_object (CE_PAGE (page)->builder, "local_radio")); - radios[RADIO_MANUAL] = GTK_TOGGLE_BUTTON (gtk_builder_get_object (CE_PAGE (page)->builder, "manual_radio")); - radios[RADIO_DISABLED] = page->disabled; - for (i = RADIO_AUTOMATIC; i < RADIO_DISABLED; i++) - g_signal_connect_swapped (radios[i], "toggled", G_CALLBACK (method_changed), page); + g_signal_connect_swapped (page->automatic_radio, "toggled", G_CALLBACK (method_changed), page); + g_signal_connect_swapped (page->dhcp_radio, "toggled", G_CALLBACK (method_changed), page); + g_signal_connect_swapped (page->local_radio, "toggled", G_CALLBACK (method_changed), page); + g_signal_connect_swapped (page->manual_radio, "toggled", G_CALLBACK (method_changed), page); + g_signal_connect_swapped (page->disabled_radio, "toggled", G_CALLBACK (method_changed), page); switch (method) { case IP6_METHOD_AUTO: - gtk_toggle_button_set_active (radios[RADIO_AUTOMATIC], TRUE); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (page->automatic_radio), TRUE); break; case IP6_METHOD_DHCP: - gtk_toggle_button_set_active (radios[RADIO_DHCP], TRUE); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (page->dhcp_radio), TRUE); break; case IP6_METHOD_LINK_LOCAL: - gtk_toggle_button_set_active (radios[RADIO_LOCAL], TRUE); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (page->local_radio), TRUE); break; case IP6_METHOD_MANUAL: - gtk_toggle_button_set_active (radios[RADIO_MANUAL], TRUE); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (page->manual_radio), TRUE); break; case IP6_METHOD_IGNORE: - gtk_toggle_button_set_active (radios[RADIO_DISABLED], TRUE); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (page->disabled_radio), TRUE); break; default: break; @@ -555,16 +531,16 @@ ui_to_setting (CEPageIP6 *page) gchar *dns_text = NULL; guint i; - if (gtk_toggle_button_get_active (page->disabled)) { + if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (page->disabled_radio))) { method = NM_SETTING_IP6_CONFIG_METHOD_IGNORE; } else { - if (RADIO_IS_ACTIVE ("manual_radio")) { + if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (page->manual_radio))) { method = NM_SETTING_IP6_CONFIG_METHOD_MANUAL; - } else if (RADIO_IS_ACTIVE ("local_radio")) { + } else if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (page->local_radio))) { method = NM_SETTING_IP6_CONFIG_METHOD_LINK_LOCAL; - } else if (RADIO_IS_ACTIVE ("dhcp_radio")) { + } else if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (page->dhcp_radio))) { method = NM_SETTING_IP6_CONFIG_METHOD_DHCP; - } else if (RADIO_IS_ACTIVE ("automatic_radio")) { + } else if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (page->automatic_radio))) { method = NM_SETTING_IP6_CONFIG_METHOD_AUTO; } } @@ -666,11 +642,11 @@ ui_to_setting (CEPageIP6 *page) if (inet_pton (AF_INET6, text, &tmp_addr) <= 0) { g_clear_pointer (&dns_addresses, g_strfreev); - widget_set_error (page->dns_entry); + widget_set_error (GTK_WIDGET (page->dns_entry)); ret = FALSE; break; } else { - widget_unset_error (page->dns_entry); + widget_unset_error (GTK_WIDGET (page->dns_entry)); nm_setting_ip_config_add_dns (page->setting, text); } } @@ -763,9 +739,9 @@ ui_to_setting (CEPageIP6 *page) if (!ret) goto out; - ignore_auto_dns = !gtk_switch_get_active (page->auto_dns); - ignore_auto_routes = !gtk_switch_get_active (page->auto_routes); - never_default = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (page->never_default)); + ignore_auto_dns = !gtk_switch_get_active (page->auto_dns_switch); + ignore_auto_routes = !gtk_switch_get_active (page->auto_routes_switch); + never_default = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (page->never_default_check)); g_object_set (page->setting, NM_SETTING_IP_CONFIG_METHOD, method, diff --git a/panels/network/connection-editor/ce-page-ip6.h b/panels/network/connection-editor/ce-page-ip6.h index 57933b7e5..e6c1c2ac9 100644 --- a/panels/network/connection-editor/ce-page-ip6.h +++ b/panels/network/connection-editor/ce-page-ip6.h @@ -43,15 +43,26 @@ struct _CEPageIP6 { CEPage parent; + GtkBox *address_box; + GtkSizeGroup *address_sizegroup; + GtkSwitch *auto_dns_switch; + GtkSwitch *auto_routes_switch; + GtkRadioButton *automatic_radio; + GtkBox *content_box; + GtkRadioButton *dhcp_radio; + GtkRadioButton *disabled_radio; + GtkEntry *dns_entry; + GtkRadioButton *local_radio; + GtkRadioButton *manual_radio; + GtkCheckButton *never_default_check; + GtkBox *routes_box; + GtkSizeGroup *routes_metric_sizegroup; + GtkSizeGroup *routes_sizegroup; + NMSettingIPConfig *setting; - GtkToggleButton *disabled; GtkWidget *address_list; - GtkSwitch *auto_dns; - GtkWidget *dns_entry; - GtkSwitch *auto_routes; GtkWidget *routes_list; - GtkWidget *never_default; }; struct _CEPageIP6Class diff --git a/panels/network/connection-editor/ce-page-security.c b/panels/network/connection-editor/ce-page-security.c index 9e72f2184..8ff86288c 100644 --- a/panels/network/connection-editor/ce-page-security.c +++ b/panels/network/connection-editor/ce-page-security.c @@ -126,16 +126,14 @@ wsec_size_group_clear (GtkSizeGroup *group) static void security_combo_changed (CEPageSecurity *page) { - GtkWidget *vbox; GList *l, *children; g_autoptr(WirelessSecurity) sec = NULL; wsec_size_group_clear (page->group); - vbox = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "box")); - children = gtk_container_get_children (GTK_CONTAINER (vbox)); + children = gtk_container_get_children (GTK_CONTAINER (page->box)); for (l = children; l; l = l->next) { - gtk_container_remove (GTK_CONTAINER (vbox), GTK_WIDGET (l->data)); + gtk_container_remove (GTK_CONTAINER (page->box), GTK_WIDGET (l->data)); } sec = security_combo_get_active (page); @@ -149,10 +147,10 @@ security_combo_changed (CEPageSecurity *page) if (parent) gtk_container_remove (GTK_CONTAINER (parent), sec_widget); - gtk_size_group_add_widget (page->group, page->security_heading); + gtk_size_group_add_widget (page->group, GTK_WIDGET (page->security_label)); wireless_security_add_to_size_group (sec, page->group); - gtk_container_add (GTK_CONTAINER (vbox), sec_widget); + gtk_container_add (GTK_CONTAINER (page->box), sec_widget); } ce_page_changed (CE_PAGE (page)); @@ -213,7 +211,6 @@ finish_setup (CEPageSecurity *page) NMUtilsSecurityType default_type = NMU_SEC_NONE; int active = -1; int item = 0; - GtkComboBox *combo; GtkCellRenderer *renderer; sw = nm_connection_get_setting_wireless (connection); @@ -221,8 +218,9 @@ finish_setup (CEPageSecurity *page) page->group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); - page->security_heading = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "security_label")); - page->security_combo = combo = GTK_COMBO_BOX (gtk_builder_get_object (CE_PAGE (page)->builder, "security_combo")); + page->box = GTK_BOX (gtk_builder_get_object (CE_PAGE (page)->builder, "box")); + page->security_label = GTK_LABEL (gtk_builder_get_object (CE_PAGE (page)->builder, "security_label")); + page->security_combo = GTK_COMBO_BOX (gtk_builder_get_object (CE_PAGE (page)->builder, "security_combo")); dev_caps = NM_WIFI_DEVICE_CAP_CIPHER_WEP40 | NM_WIFI_DEVICE_CAP_CIPHER_WEP104 @@ -338,20 +336,18 @@ finish_setup (CEPageSecurity *page) } } - gtk_combo_box_set_model (combo, GTK_TREE_MODEL (sec_model)); - gtk_cell_layout_clear (GTK_CELL_LAYOUT (combo)); + gtk_combo_box_set_model (page->security_combo, GTK_TREE_MODEL (sec_model)); + gtk_cell_layout_clear (GTK_CELL_LAYOUT (page->security_combo)); renderer = gtk_cell_renderer_text_new (); - gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo), renderer, TRUE); - gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo), renderer, "text", S_NAME_COLUMN, NULL); - gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (combo), renderer, set_sensitive, &page->adhoc, NULL); + gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (page->security_combo), renderer, TRUE); + gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (page->security_combo), renderer, "text", S_NAME_COLUMN, NULL); + gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (page->security_combo), renderer, set_sensitive, &page->adhoc, NULL); - gtk_combo_box_set_active (combo, active < 0 ? 0 : (guint32) active); - - page->security_combo = combo; + gtk_combo_box_set_active (page->security_combo, active < 0 ? 0 : (guint32) active); security_combo_changed (page); - g_signal_connect_swapped (combo, "changed", + g_signal_connect_swapped (page->security_combo, "changed", G_CALLBACK (security_combo_changed), page); } diff --git a/panels/network/connection-editor/ce-page-security.h b/panels/network/connection-editor/ce-page-security.h index fa7e731a1..d71c1d97b 100644 --- a/panels/network/connection-editor/ce-page-security.h +++ b/panels/network/connection-editor/ce-page-security.h @@ -43,8 +43,10 @@ struct _CEPageSecurity { CEPage parent; + GtkBox *box; GtkComboBox *security_combo; - GtkWidget *security_heading; + GtkLabel *security_label; + GtkSizeGroup *group; gboolean adhoc; }; diff --git a/panels/network/connection-editor/ce-page-vpn.c b/panels/network/connection-editor/ce-page-vpn.c index f8f20c099..5f004d112 100644 --- a/panels/network/connection-editor/ce-page-vpn.c +++ b/panels/network/connection-editor/ce-page-vpn.c @@ -75,8 +75,7 @@ vpn_gnome3ify_editor (GtkWidget *widget) static void load_vpn_plugin (CEPageVpn *page, NMConnection *connection) { - CEPage *parent = CE_PAGE (page); - GtkWidget *ui_widget, *failure; + GtkWidget *ui_widget; page->editor = nm_vpn_editor_plugin_get_editor (page->plugin, connection, @@ -92,10 +91,9 @@ load_vpn_plugin (CEPageVpn *page, NMConnection *connection) } vpn_gnome3ify_editor (ui_widget); - failure = GTK_WIDGET (gtk_builder_get_object (parent->builder, "failure_label")); - gtk_widget_destroy (failure); + gtk_widget_destroy (GTK_WIDGET (page->failure_label)); - gtk_box_pack_start (page->box, ui_widget, TRUE, TRUE, 0); + gtk_box_pack_start (page->page, ui_widget, TRUE, TRUE, 0); gtk_widget_show_all (ui_widget); g_signal_connect_swapped (page->editor, "changed", G_CALLBACK (ce_page_changed), page); @@ -107,8 +105,8 @@ connect_vpn_page (CEPageVpn *page) const gchar *name; name = nm_setting_connection_get_id (page->setting_connection); - gtk_entry_set_text (page->name, name); - g_signal_connect_swapped (page->name, "changed", G_CALLBACK (ce_page_changed), page); + gtk_entry_set_text (page->name_entry, name); + g_signal_connect_swapped (page->name_entry, "changed", G_CALLBACK (ce_page_changed), page); } static gboolean @@ -119,7 +117,7 @@ validate (CEPage *page, CEPageVpn *self = CE_PAGE_VPN (page); g_object_set (self->setting_connection, - NM_SETTING_CONNECTION_ID, gtk_entry_get_text (self->name), + NM_SETTING_CONNECTION_ID, gtk_entry_get_text (self->name_entry), NULL); if (!nm_setting_verify (NM_SETTING (self->setting_connection), NULL, error)) @@ -186,8 +184,9 @@ ce_page_vpn_new (NMConnection *connection, "/org/gnome/control-center/network/vpn-page.ui", _("Identity"))); - page->name = GTK_ENTRY (gtk_builder_get_object (CE_PAGE (page)->builder, "name_entry")); - page->box = GTK_BOX (gtk_builder_get_object (CE_PAGE (page)->builder, "page")); + page->failure_label = GTK_LABEL (gtk_builder_get_object (CE_PAGE (page)->builder, "failure_label")); + page->name_entry = GTK_ENTRY (gtk_builder_get_object (CE_PAGE (page)->builder, "name_entry")); + page->page = GTK_BOX (gtk_builder_get_object (CE_PAGE (page)->builder, "page")); g_signal_connect (page, "initialized", G_CALLBACK (finish_setup), NULL); diff --git a/panels/network/connection-editor/ce-page-vpn.h b/panels/network/connection-editor/ce-page-vpn.h index 9fa706656..4c95f75f6 100644 --- a/panels/network/connection-editor/ce-page-vpn.h +++ b/panels/network/connection-editor/ce-page-vpn.h @@ -45,12 +45,13 @@ struct _CEPageVpn { CEPage parent; + GtkLabel *failure_label; + GtkEntry *name_entry; + GtkBox *page; + NMSettingConnection *setting_connection; NMSettingVpn *setting_vpn; - GtkEntry *name; - GtkBox *box; - NMVpnEditorPlugin *plugin; NMVpnEditor *editor; }; diff --git a/panels/network/connection-editor/ce-page-wifi.c b/panels/network/connection-editor/ce-page-wifi.c index 50ca048f9..3efe41623 100644 --- a/panels/network/connection-editor/ce-page-wifi.c +++ b/panels/network/connection-editor/ce-page-wifi.c @@ -36,7 +36,6 @@ G_DEFINE_TYPE (CEPageWifi, ce_page_wifi, CE_TYPE_PAGE) static void connect_wifi_page (CEPageWifi *page) { - GtkWidget *widget; GBytes *ssid; g_autofree gchar *utf8_ssid = NULL; GPtrArray *bssid_array; @@ -47,20 +46,14 @@ connect_wifi_page (CEPageWifi *page) const gchar *cloned_mac; gint i; - widget = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, - "ssid_entry")); - ssid = nm_setting_wireless_get_ssid (page->setting); if (ssid) utf8_ssid = nm_utils_ssid_to_utf8 (g_bytes_get_data (ssid, NULL), g_bytes_get_size (ssid)); else utf8_ssid = g_strdup (""); - gtk_entry_set_text (GTK_ENTRY (widget), utf8_ssid); - - g_signal_connect_swapped (widget, "changed", G_CALLBACK (ce_page_changed), page); + gtk_entry_set_text (page->ssid_entry, utf8_ssid); - widget = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, - "bssid_combo")); + g_signal_connect_swapped (page->ssid_entry, "changed", G_CALLBACK (ce_page_changed), page); bssid_array = g_ptr_array_new (); for (i = 0; i < nm_setting_wireless_get_num_seen_bssids (page->setting); i++) { @@ -69,25 +62,20 @@ connect_wifi_page (CEPageWifi *page) g_ptr_array_add (bssid_array, NULL); bssid_list = (gchar **) g_ptr_array_free (bssid_array, FALSE); s_bssid_str = nm_setting_wireless_get_bssid (page->setting); - ce_page_setup_mac_combo (GTK_COMBO_BOX_TEXT (widget), s_bssid_str, bssid_list); + ce_page_setup_mac_combo (page->bssid_combo, s_bssid_str, bssid_list); g_strfreev (bssid_list); - g_signal_connect_swapped (widget, "changed", G_CALLBACK (ce_page_changed), page); + g_signal_connect_swapped (page->bssid_combo, "changed", G_CALLBACK (ce_page_changed), page); - widget = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, - "mac_combo")); mac_list = ce_page_get_mac_list (CE_PAGE (page)->client, NM_TYPE_DEVICE_WIFI, NM_DEVICE_WIFI_PERMANENT_HW_ADDRESS); s_mac_str = nm_setting_wireless_get_mac_address (page->setting); - ce_page_setup_mac_combo (GTK_COMBO_BOX_TEXT (widget), s_mac_str, mac_list); + ce_page_setup_mac_combo (page->mac_combo, s_mac_str, mac_list); g_strfreev (mac_list); - g_signal_connect_swapped (widget, "changed", G_CALLBACK (ce_page_changed), page); + g_signal_connect_swapped (page->mac_combo, "changed", G_CALLBACK (ce_page_changed), page); - - widget = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, - "cloned_mac_combo")); cloned_mac = nm_setting_wireless_get_cloned_mac_address (page->setting); - ce_page_setup_cloned_mac_combo (GTK_COMBO_BOX_TEXT (widget), cloned_mac); - g_signal_connect_swapped (widget, "changed", G_CALLBACK (ce_page_changed), page); + ce_page_setup_cloned_mac_combo (page->cloned_mac_combo, cloned_mac); + g_signal_connect_swapped (page->cloned_mac_combo, "changed", G_CALLBACK (ce_page_changed), page); } static void @@ -96,25 +84,22 @@ ui_to_setting (CEPageWifi *page) g_autoptr(GBytes) ssid = NULL; const gchar *utf8_ssid, *bssid; GtkWidget *entry; - GtkComboBoxText *combo; g_autofree gchar *device_mac = NULL; g_autofree gchar *cloned_mac = NULL; - entry = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "ssid_entry")); - utf8_ssid = gtk_entry_get_text (GTK_ENTRY (entry)); + utf8_ssid = gtk_entry_get_text (page->ssid_entry); if (!utf8_ssid || !*utf8_ssid) ssid = NULL; else { ssid = g_bytes_new_static (utf8_ssid, strlen (utf8_ssid)); } - entry = gtk_bin_get_child (GTK_BIN (gtk_builder_get_object (CE_PAGE (page)->builder, "bssid_combo"))); + entry = gtk_bin_get_child (GTK_BIN (page->bssid_combo)); bssid = gtk_entry_get_text (GTK_ENTRY (entry)); if (*bssid == '\0') bssid = NULL; - entry = gtk_bin_get_child (GTK_BIN (gtk_builder_get_object (CE_PAGE (page)->builder, "mac_combo"))); + entry = gtk_bin_get_child (GTK_BIN (page->mac_combo)); device_mac = ce_page_trim_address (gtk_entry_get_text (GTK_ENTRY (entry))); - combo = GTK_COMBO_BOX_TEXT (gtk_builder_get_object (CE_PAGE (page)->builder, "cloned_mac_combo")); - cloned_mac = ce_page_cloned_mac_get (combo); + cloned_mac = ce_page_cloned_mac_get (page->cloned_mac_combo); g_object_set (page->setting, NM_SETTING_WIRELESS_SSID, ssid, @@ -125,15 +110,15 @@ ui_to_setting (CEPageWifi *page) } static gboolean -validate (CEPage *page, +validate (CEPage *parent, NMConnection *connection, GError **error) { + CEPageWifi *page = (CEPageWifi *) parent; GtkWidget *entry; - GtkComboBoxText *combo; gboolean ret = TRUE; - entry = gtk_bin_get_child (GTK_BIN (gtk_builder_get_object (page->builder, "bssid_combo"))); + entry = gtk_bin_get_child (GTK_BIN (page->bssid_combo)); if (!ce_page_address_is_valid (gtk_entry_get_text (GTK_ENTRY (entry)))) { widget_set_error (entry); ret = FALSE; @@ -141,7 +126,7 @@ validate (CEPage *page, widget_unset_error (entry); } - entry = gtk_bin_get_child (GTK_BIN (gtk_builder_get_object (page->builder, "mac_combo"))); + entry = gtk_bin_get_child (GTK_BIN (page->mac_combo)); if (!ce_page_address_is_valid (gtk_entry_get_text (GTK_ENTRY (entry)))) { widget_set_error (entry); ret = FALSE; @@ -149,12 +134,11 @@ validate (CEPage *page, widget_unset_error (entry); } - combo = GTK_COMBO_BOX_TEXT (gtk_builder_get_object (page->builder, "cloned_mac_combo")); - if (!ce_page_cloned_mac_combo_valid (combo)) { - widget_set_error (gtk_bin_get_child (GTK_BIN (combo))); + if (!ce_page_cloned_mac_combo_valid (page->cloned_mac_combo)) { + widget_set_error (gtk_bin_get_child (GTK_BIN (page->cloned_mac_combo))); ret = FALSE; } else { - widget_unset_error (gtk_bin_get_child (GTK_BIN (combo))); + widget_unset_error (gtk_bin_get_child (GTK_BIN (page->cloned_mac_combo))); } if (!ret) @@ -190,6 +174,11 @@ ce_page_wifi_new (NMConnection *connection, "/org/gnome/control-center/network/wifi-page.ui", _("Identity"))); + page->bssid_combo = GTK_COMBO_BOX_TEXT (gtk_builder_get_object (CE_PAGE (page)->builder, "bssid_combo")); + page->cloned_mac_combo = GTK_COMBO_BOX_TEXT (gtk_builder_get_object (CE_PAGE (page)->builder, "cloned_mac_combo")); + page->mac_combo = GTK_COMBO_BOX_TEXT (gtk_builder_get_object (CE_PAGE (page)->builder, "mac_combo")); + page->ssid_entry = GTK_ENTRY (gtk_builder_get_object (CE_PAGE (page)->builder, "ssid_entry")); + page->setting = nm_connection_get_setting_wireless (connection); connect_wifi_page (page); diff --git a/panels/network/connection-editor/ce-page-wifi.h b/panels/network/connection-editor/ce-page-wifi.h index 28c3024f0..e7764fc99 100644 --- a/panels/network/connection-editor/ce-page-wifi.h +++ b/panels/network/connection-editor/ce-page-wifi.h @@ -43,6 +43,11 @@ struct _CEPageWifi { CEPage parent; + GtkComboBoxText *bssid_combo; + GtkComboBoxText *cloned_mac_combo; + GtkComboBoxText *mac_combo; + GtkEntry *ssid_entry; + NMSettingWireless *setting; }; diff --git a/panels/network/net-device-ethernet.c b/panels/network/net-device-ethernet.c index 2e84e46ae..4d9b94a73 100644 --- a/panels/network/net-device-ethernet.c +++ b/panels/network/net-device-ethernet.c @@ -39,14 +39,18 @@ struct _NetDeviceEthernet { NetDeviceSimple parent; - GtkBuilder *builder; - - GtkWidget *list; - GtkWidget *scrolled_window; - GtkWidget *details; - GtkWidget *details_button; - GtkWidget *add_profile_button; - gboolean updating_device; + GtkBuilder *builder; + GtkButton *add_profile_button; + GtkBox *box; + GtkButton *details_button; + GtkFrame *details_frame; + HdyActionRow *details_row; + GtkLabel *device_label; + GtkSwitch *device_off_switch; + GtkScrolledWindow *scrolled_window; + + GtkListBox *list; + gboolean updating_device; GHashTable *connections; }; @@ -75,11 +79,9 @@ device_ethernet_add_to_stack (NetObject *object, GtkSizeGroup *heading_size_group) { NetDeviceEthernet *device = NET_DEVICE_ETHERNET (object); - GtkWidget *vbox; - vbox = GTK_WIDGET (gtk_builder_get_object (device->builder, "box")); - gtk_stack_add_named (stack, vbox, net_object_get_id (object)); - return vbox; + gtk_stack_add_named (stack, GTK_WIDGET (device->box), net_object_get_id (object)); + return GTK_WIDGET (device->box); } static void @@ -203,29 +205,25 @@ device_ethernet_refresh_ui (NetDeviceEthernet *device) { NMDevice *nm_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)); - widget = GTK_WIDGET (gtk_builder_get_object (device->builder, "device_label")); - gtk_label_set_label (GTK_LABEL (widget), net_object_get_title (NET_OBJECT (device))); + gtk_label_set_label (device->device_label, net_object_get_title (NET_OBJECT (device))); - widget = GTK_WIDGET (gtk_builder_get_object (device->builder, "device_off_switch")); state = nm_device_get_state (nm_device); - gtk_widget_set_sensitive (widget, + gtk_widget_set_sensitive (GTK_WIDGET (device->device_off_switch), state != NM_DEVICE_STATE_UNAVAILABLE && state != NM_DEVICE_STATE_UNMANAGED); device->updating_device = TRUE; - gtk_switch_set_active (GTK_SWITCH (widget), device_state_to_off_switch (state)); + gtk_switch_set_active (device->device_off_switch, device_state_to_off_switch (state)); device->updating_device = FALSE; if (state != NM_DEVICE_STATE_UNAVAILABLE) speed = net_device_simple_get_speed (NET_DEVICE_SIMPLE (device)); - 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); + hdy_action_row_set_title (device->details_row, status); populate_ui (device); } @@ -246,7 +244,7 @@ show_details (NetDeviceEthernet *device, GtkButton *button, const gchar *title) NMClient *client; NMDevice *nmdev; - window = gtk_widget_get_toplevel (GTK_WIDGET (gtk_builder_get_object (device->builder, "vbox6"))); + window = gtk_widget_get_toplevel (GTK_WIDGET (device->box)); row = g_object_get_data (G_OBJECT (button), "row"); connection = NM_CONNECTION (g_object_get_data (G_OBJECT (row), "connection")); @@ -274,7 +272,7 @@ show_details_for_wired (NetDeviceEthernet *device) * profile. It is also used to display ethernet in the * device list. */ - show_details (device, GTK_BUTTON (device->details_button), _("Wired")); + show_details (device, device->details_button, _("Wired")); } static void @@ -386,22 +384,22 @@ populate_ui (NetDeviceEthernet *device) n_connections = g_slist_length (connections); if (n_connections > 1) { - gtk_widget_hide (device->details); + gtk_widget_hide (GTK_WIDGET (device->details_frame)); for (l = connections; l; l = l->next) { NMConnection *connection = l->data; add_row (device, connection); } - gtk_widget_show (device->scrolled_window); + gtk_widget_show (GTK_WIDGET (device->scrolled_window)); } else if (n_connections == 1) { connection = connections->data; - gtk_widget_hide (device->scrolled_window); - gtk_widget_show_all (device->details); + gtk_widget_hide (GTK_WIDGET (device->scrolled_window)); + gtk_widget_show_all (GTK_WIDGET (device->details_frame)); g_object_set_data (G_OBJECT (device->details_button), "row", device->details_button); g_object_set_data (G_OBJECT (device->details_button), "connection", connection); } else { - gtk_widget_hide (device->scrolled_window); - gtk_widget_hide (device->details); + gtk_widget_hide (GTK_WIDGET (device->scrolled_window)); + gtk_widget_hide (GTK_WIDGET (device->details_frame)); } g_slist_free (connections); @@ -445,7 +443,7 @@ add_profile (NetDeviceEthernet *device) nm_connection_add_setting (connection, nm_setting_wired_new ()); - window = gtk_widget_get_toplevel (GTK_WIDGET (gtk_builder_get_object (device->builder, "vbox6"))); + window = gtk_widget_get_toplevel (GTK_WIDGET (device->box)); nmdev = net_device_get_nm_device (NET_DEVICE (device)); editor = net_connection_editor_new (GTK_WINDOW (window), connection, nmdev, NULL, client); @@ -466,7 +464,7 @@ device_off_toggled (NetDeviceEthernet *device) client = net_object_get_client (NET_OBJECT (device)); nm_device = net_device_get_nm_device (NET_DEVICE (device)); - if (gtk_switch_get_active (GTK_SWITCH (gtk_builder_get_object (device->builder, "device_off_switch")))) { + if (gtk_switch_get_active (device->device_off_switch)) { connection = net_device_get_find_connection (NET_DEVICE (device)); if (connection != NULL) { nm_client_activate_connection_async (client, @@ -512,31 +510,21 @@ device_ethernet_constructed (GObject *object) { NetDeviceEthernet *device = NET_DEVICE_ETHERNET (object); NMClient *client; - GtkWidget *list; - GtkWidget *swin; - GtkWidget *widget; - widget = GTK_WIDGET (gtk_builder_get_object (device->builder, - "device_off_switch")); - g_signal_connect_swapped (widget, "notify::active", + g_signal_connect_swapped (device->device_off_switch, "notify::active", G_CALLBACK (device_off_toggled), device); - device->scrolled_window = swin = GTK_WIDGET (gtk_builder_get_object (device->builder, "scrolled_window")); - device->list = list = GTK_WIDGET (gtk_list_box_new ()); - gtk_list_box_set_selection_mode (GTK_LIST_BOX (list), GTK_SELECTION_NONE); - gtk_list_box_set_header_func (GTK_LIST_BOX (list), cc_list_box_update_header_func, NULL, NULL); - gtk_container_add (GTK_CONTAINER (swin), list); - g_signal_connect_swapped (list, "row-activated", + device->list = GTK_LIST_BOX (gtk_list_box_new ()); + gtk_list_box_set_selection_mode (device->list, GTK_SELECTION_NONE); + gtk_list_box_set_header_func (device->list, cc_list_box_update_header_func, NULL, NULL); + gtk_container_add (GTK_CONTAINER (device->scrolled_window), GTK_WIDGET (device->list)); + g_signal_connect_swapped (device->list, "row-activated", G_CALLBACK (connection_activated), device); - gtk_widget_show (list); - - device->details = GTK_WIDGET (gtk_builder_get_object (device->builder, "details_frame")); + gtk_widget_show (GTK_WIDGET (device->list)); - device->details_button = GTK_WIDGET (gtk_builder_get_object (device->builder, "details_button")); g_signal_connect_swapped (device->details_button, "clicked", G_CALLBACK (show_details_for_wired), device); - device->add_profile_button = GTK_WIDGET (gtk_builder_get_object (device->builder, "add_profile_button")); g_signal_connect_swapped (device->add_profile_button, "clicked", G_CALLBACK (add_profile), device); @@ -595,6 +583,15 @@ net_device_ethernet_init (NetDeviceEthernet *device) return; } + device->add_profile_button = GTK_BUTTON (gtk_builder_get_object (device->builder, "add_profile_button")); + device->box = GTK_BOX (gtk_builder_get_object (device->builder, "box")); + device->details_button = GTK_BUTTON (gtk_builder_get_object (device->builder, "details_button")); + device->details_frame = GTK_FRAME (gtk_builder_get_object (device->builder, "details_frame")); + device->details_row = HDY_ACTION_ROW (gtk_builder_get_object (device->builder, "details_row")); + device->device_label = GTK_LABEL (gtk_builder_get_object (device->builder, "device_label")); + device->device_off_switch = GTK_SWITCH (gtk_builder_get_object (device->builder, "device_off_switch")); + device->scrolled_window = GTK_SCROLLED_WINDOW (gtk_builder_get_object (device->builder, "scrolled_window")); + device->connections = g_hash_table_new (NULL, NULL); g_signal_connect (device, "notify::title", G_CALLBACK (device_title_changed), NULL); diff --git a/panels/network/net-device-mobile.c b/panels/network/net-device-mobile.c index 7c00d0c78..cf3c98f05 100644 --- a/panels/network/net-device-mobile.c +++ b/panels/network/net-device-mobile.c @@ -38,7 +38,29 @@ static void nm_device_mobile_refresh_ui (NetDeviceMobile *device_mobile); struct _NetDeviceMobile { NetDevice parent; - GtkBuilder *builder; + + GtkBuilder *builder; + GtkBox *box; + GtkLabel *device_label; + GtkSwitch *device_off_switch; + GtkLabel *dns_heading_label; + GtkLabel *dns_label; + GtkLabel *imei_heading_label; + GtkLabel *imei_label; + GtkLabel *ipv4_heading_label; + GtkLabel *ipv4_label; + GtkLabel *ipv6_heading_label; + GtkLabel *ipv6_label; + GtkListStore *mobile_connections_list_store; + GtkComboBox *network_combo; + GtkLabel *network_label; + GtkButton *options_button; + GtkLabel *provider_heading_label; + GtkLabel *provider_label; + GtkLabel *route_heading_label; + GtkLabel *route_label; + GtkLabel *status_label; + gboolean updating_device; /* Old MM < 0.7 support */ @@ -71,21 +93,14 @@ device_mobile_proxy_add_to_stack (NetObject *object, GtkStack *stack, GtkSizeGroup *heading_size_group) { - GtkWidget *widget; NetDeviceMobile *device_mobile = NET_DEVICE_MOBILE (object); /* add widgets to size group */ - widget = GTK_WIDGET (gtk_builder_get_object (device_mobile->builder, - "imei_heading_label")); - gtk_size_group_add_widget (heading_size_group, widget); - widget = GTK_WIDGET (gtk_builder_get_object (device_mobile->builder, - "network_label")); - gtk_size_group_add_widget (heading_size_group, widget); - - widget = GTK_WIDGET (gtk_builder_get_object (device_mobile->builder, - "box")); - gtk_stack_add_named (stack, widget, net_object_get_id (object)); - return widget; + gtk_size_group_add_widget (heading_size_group, GTK_WIDGET (device_mobile->imei_heading_label)); + gtk_size_group_add_widget (heading_size_group, GTK_WIDGET (device_mobile->network_label)); + + gtk_stack_add_named (stack, GTK_WIDGET (device_mobile->box), net_object_get_id (object)); + return GTK_WIDGET (device_mobile->box); } static void @@ -117,7 +132,7 @@ mobile_connection_changed_cb (NetDeviceMobile *device_mobile) if (device_mobile->updating_device) return; - ret = gtk_combo_box_get_active_iter (GTK_COMBO_BOX (gtk_builder_get_object (device_mobile->builder, "combobox_network")), &iter); + ret = gtk_combo_box_get_active_iter (device_mobile->network_combo, &iter); if (!ret) return; @@ -127,7 +142,7 @@ mobile_connection_changed_cb (NetDeviceMobile *device_mobile) client = net_object_get_client (NET_OBJECT (device_mobile)); /* get entry */ - model = gtk_combo_box_get_model (GTK_COMBO_BOX (gtk_builder_get_object (device_mobile->builder, "combobox_network"))); + model = gtk_combo_box_get_model (device_mobile->network_combo); gtk_tree_model_get (model, &iter, COLUMN_ID, &object_path, -1); @@ -158,7 +173,6 @@ static void mobilebb_enabled_toggled (NetDeviceMobile *device_mobile) { gboolean enabled = FALSE; - GtkSwitch *sw; NMDevice *device; device = net_device_get_nm_device (NET_DEVICE (device_mobile)); @@ -181,11 +195,8 @@ mobilebb_enabled_toggled (NetDeviceMobile *device_mobile) } } - sw = GTK_SWITCH (gtk_builder_get_object (device_mobile->builder, - "device_off_switch")); - device_mobile->updating_device = TRUE; - gtk_switch_set_active (sw, enabled); + gtk_switch_set_active (device_mobile->device_off_switch, enabled); device_mobile->updating_device = FALSE; } @@ -238,7 +249,6 @@ 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; @@ -259,9 +269,7 @@ device_mobile_refresh_equipment_id (NetDeviceMobile *device_mobile) "ControlCenter::EquipmentIdentifier"); } - heading = GTK_WIDGET (gtk_builder_get_object (device_mobile->builder, "imei_heading_label")); - widget = GTK_WIDGET (gtk_builder_get_object (device_mobile->builder, "imei_label")); - panel_set_device_widget_details (GTK_LABEL (heading), GTK_LABEL (widget), equipment_id); + panel_set_device_widget_details (device_mobile->imei_heading_label, device_mobile->imei_label, equipment_id); } static gchar * @@ -306,11 +314,6 @@ 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, "provider_heading_label")); - widget = GTK_WIDGET (gtk_builder_get_object (device_mobile->builder, "provider_label")); - if (device_mobile->mm_object != NULL) { g_autofree gchar *operator_name = NULL; MMModem3gpp *modem_3gpp; @@ -347,7 +350,7 @@ device_mobile_refresh_operator_name (NetDeviceMobile *device_mobile) operator_name); } - panel_set_device_widget_details (GTK_LABEL (heading), GTK_LABEL (widget), operator_name); + panel_set_device_widget_details (device_mobile->provider_heading_label, device_mobile->provider_label, operator_name); } else { const gchar *gsm; const gchar *cdma; @@ -360,13 +363,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 (GTK_LABEL (heading), GTK_LABEL (widget), both); + panel_set_device_widget_details (device_mobile->provider_heading_label, device_mobile->provider_label, both); } else if (gsm != NULL) { - panel_set_device_widget_details (GTK_LABEL (heading), GTK_LABEL (widget), gsm); + panel_set_device_widget_details (device_mobile->provider_heading_label, device_mobile->provider_label, gsm); } else if (cdma != NULL) { - panel_set_device_widget_details (GTK_LABEL (heading), GTK_LABEL (widget), cdma); + panel_set_device_widget_details (device_mobile->provider_heading_label, device_mobile->provider_label, cdma); } else { - panel_set_device_widget_details (GTK_LABEL (heading), GTK_LABEL (widget), NULL); + panel_set_device_widget_details (device_mobile->provider_heading_label, device_mobile->provider_label, NULL); } } } @@ -375,8 +378,6 @@ static void nm_device_mobile_refresh_ui (NetDeviceMobile *device_mobile) { gboolean is_connected; - GtkListStore *liststore; - GtkWidget *widget; NMDeviceModemCapabilities caps; NMDevice *nm_device; g_autofree gchar *status = NULL; @@ -384,24 +385,19 @@ nm_device_mobile_refresh_ui (NetDeviceMobile *device_mobile) nm_device = net_device_get_nm_device (NET_DEVICE (device_mobile)); /* set device kind */ - widget = GTK_WIDGET (gtk_builder_get_object (device_mobile->builder, "device_label")); - g_object_bind_property (device_mobile, "title", widget, "label", 0); + g_object_bind_property (device_mobile, "title", device_mobile->device_label, "label", 0); /* set up the device on/off switch */ - widget = GTK_WIDGET (gtk_builder_get_object (device_mobile->builder, "device_off_switch")); - gtk_widget_show (widget); + gtk_widget_show (GTK_WIDGET (device_mobile->device_off_switch)); mobilebb_enabled_toggled (device_mobile); /* set device state, with status */ - widget = GTK_WIDGET (gtk_builder_get_object (device_mobile->builder, "status_label")); status = panel_device_status_to_localized_string (nm_device, NULL); - gtk_label_set_label (GTK_LABEL (widget), status); + gtk_label_set_label (device_mobile->status_label, status); /* sensitive for other connection types if the device is currently connected */ - widget = GTK_WIDGET (gtk_builder_get_object (device_mobile->builder, - "options_button")); is_connected = net_device_get_find_connection (NET_DEVICE (device_mobile)) != NULL; - gtk_widget_set_sensitive (widget, is_connected); + gtk_widget_set_sensitive (GTK_WIDGET (device_mobile->options_button), is_connected); caps = nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (nm_device)); if ((caps & NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS) || @@ -412,23 +408,16 @@ nm_device_mobile_refresh_ui (NetDeviceMobile *device_mobile) } /* add possible connections to device */ - liststore = GTK_LIST_STORE (gtk_builder_get_object (device_mobile->builder, - "mobile_connections_list_store")); - widget = GTK_WIDGET (gtk_builder_get_object (device_mobile->builder, "network_combo")); device_add_device_connections (device_mobile, nm_device, - liststore, - GTK_COMBO_BOX (widget)); + device_mobile->mobile_connections_list_store, + device_mobile->network_combo); /* set IP entries */ - panel_set_device_widgets (GTK_LABEL (gtk_builder_get_object (device_mobile->builder, "ipv4_heading_label")), - GTK_LABEL (gtk_builder_get_object (device_mobile->builder, "ipv4_label")), - GTK_LABEL (gtk_builder_get_object (device_mobile->builder, "ipv6_heading_label")), - GTK_LABEL (gtk_builder_get_object (device_mobile->builder, "ipv6_label")), - GTK_LABEL (gtk_builder_get_object (device_mobile->builder, "dns_heading_label")), - GTK_LABEL (gtk_builder_get_object (device_mobile->builder, "dns_label")), - GTK_LABEL (gtk_builder_get_object (device_mobile->builder, "route_heading_label")), - GTK_LABEL (gtk_builder_get_object (device_mobile->builder, "route_label")), + panel_set_device_widgets (device_mobile->ipv4_heading_label, device_mobile->ipv4_label, + device_mobile->ipv6_heading_label, device_mobile->ipv6_label, + device_mobile->dns_heading_label, device_mobile->dns_label, + device_mobile->route_heading_label, device_mobile->route_label, nm_device); } @@ -452,7 +441,7 @@ device_off_toggled (NetDeviceMobile *device_mobile) if (device_mobile->updating_device) return; - active = gtk_switch_get_active (GTK_SWITCH (gtk_builder_get_object (device_mobile->builder, "device_off_switch"))); + active = gtk_switch_get_active (device_mobile->device_off_switch); if (active) { client = net_object_get_client (NET_OBJECT (device_mobile)); connection = net_device_get_find_connection (NET_DEVICE (device_mobile)); @@ -875,9 +864,7 @@ static void net_device_mobile_init (NetDeviceMobile *device_mobile) { g_autoptr(GError) error = NULL; - GtkWidget *widget; GtkCellRenderer *renderer; - GtkComboBox *combobox; device_mobile->builder = gtk_builder_new (); gtk_builder_add_from_resource (device_mobile->builder, @@ -888,27 +875,42 @@ net_device_mobile_init (NetDeviceMobile *device_mobile) return; } + device_mobile->box = GTK_BOX (gtk_builder_get_object (device_mobile->builder, "box")); + device_mobile->device_label = GTK_LABEL (gtk_builder_get_object (device_mobile->builder, "device_label")); + device_mobile->device_off_switch = GTK_SWITCH (gtk_builder_get_object (device_mobile->builder, "device_off_switch")); + device_mobile->dns_heading_label = GTK_LABEL (gtk_builder_get_object (device_mobile->builder, "dns_heading_label")); + device_mobile->dns_label = GTK_LABEL (gtk_builder_get_object (device_mobile->builder, "dns_label")); + device_mobile->imei_heading_label = GTK_LABEL (gtk_builder_get_object (device_mobile->builder, "imei_heading_label")); + device_mobile->imei_label = GTK_LABEL (gtk_builder_get_object (device_mobile->builder, "imei_label")); + device_mobile->ipv4_heading_label = GTK_LABEL (gtk_builder_get_object (device_mobile->builder, "ipv4_heading_label")); + device_mobile->ipv4_label = GTK_LABEL (gtk_builder_get_object (device_mobile->builder, "ipv4_label")); + device_mobile->ipv6_heading_label = GTK_LABEL (gtk_builder_get_object (device_mobile->builder, "ipv6_heading_label")); + device_mobile->ipv6_label = GTK_LABEL (gtk_builder_get_object (device_mobile->builder, "ipv6_label")); + device_mobile->mobile_connections_list_store = GTK_LIST_STORE (gtk_builder_get_object (device_mobile->builder, "mobile_connections_list_store")); + device_mobile->network_combo = GTK_COMBO_BOX (gtk_builder_get_object (device_mobile->builder, "network_combo")); + device_mobile->network_label = GTK_LABEL (gtk_builder_get_object (device_mobile->builder, "network_label")); + device_mobile->options_button = GTK_BUTTON (gtk_builder_get_object (device_mobile->builder, "options_button")); + device_mobile->provider_heading_label = GTK_LABEL (gtk_builder_get_object (device_mobile->builder, "provider_heading_label")); + device_mobile->provider_label = GTK_LABEL (gtk_builder_get_object (device_mobile->builder, "provider_label")); + device_mobile->route_heading_label = GTK_LABEL (gtk_builder_get_object (device_mobile->builder, "route_heading_label")); + device_mobile->route_label = GTK_LABEL (gtk_builder_get_object (device_mobile->builder, "route_label")); + device_mobile->status_label = GTK_LABEL (gtk_builder_get_object (device_mobile->builder, "status_label")); + /* setup mobile combobox model */ - combobox = GTK_COMBO_BOX (gtk_builder_get_object (device_mobile->builder, - "network_combo")); - g_signal_connect_swapped (combobox, "changed", + g_signal_connect_swapped (device_mobile->network_combo, "changed", G_CALLBACK (mobile_connection_changed_cb), device_mobile); renderer = gtk_cell_renderer_text_new (); - gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combobox), + gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (device_mobile->network_combo), renderer, FALSE); - gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combobox), renderer, + gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (device_mobile->network_combo), renderer, "text", COLUMN_TITLE, NULL); - widget = GTK_WIDGET (gtk_builder_get_object (device_mobile->builder, - "device_off_switch")); - g_signal_connect_swapped (widget, "notify::active", + g_signal_connect_swapped (device_mobile->device_off_switch, "notify::active", G_CALLBACK (device_off_toggled), device_mobile); - widget = GTK_WIDGET (gtk_builder_get_object (device_mobile->builder, - "options_button")); - g_signal_connect_swapped (widget, "clicked", + g_signal_connect_swapped (device_mobile->options_button, "clicked", G_CALLBACK (edit_connection), device_mobile); } diff --git a/panels/network/net-device-simple.c b/panels/network/net-device-simple.c index 18749647c..5ee92aa72 100644 --- a/panels/network/net-device-simple.c +++ b/panels/network/net-device-simple.c @@ -33,7 +33,14 @@ typedef struct { - GtkBuilder *builder; + GtkBuilder *builder; + GtkBox *box; + GtkLabel *device_label; + GtkSwitch *device_off_switch; + GtkGrid *grid; + GtkButton *options_button; + GtkSeparator *separator; + gboolean updating_device; } NetDeviceSimplePrivate; @@ -44,11 +51,9 @@ net_device_simple_set_show_separator (NetDeviceSimple *device_simple, gboolean show_separator) { NetDeviceSimplePrivate *priv = net_device_simple_get_instance_private (device_simple); - GtkWidget *widget; /* add widgets to size group */ - widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "separator")); - gtk_widget_set_visible (widget, show_separator); + gtk_widget_set_visible (GTK_WIDGET (priv->separator), show_separator); } static GtkWidget * @@ -56,15 +61,12 @@ device_simple_proxy_add_to_stack (NetObject *object, GtkStack *stack, GtkSizeGroup *heading_size_group) { - GtkWidget *widget; NetDeviceSimple *device_simple = NET_DEVICE_SIMPLE (object); NetDeviceSimplePrivate *priv = net_device_simple_get_instance_private (device_simple); /* add widgets to size group */ - widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, - "box")); - gtk_stack_add_named (stack, widget, net_object_get_id (object)); - return widget; + gtk_stack_add_named (stack, GTK_WIDGET (priv->box), net_object_get_id (object)); + return GTK_WIDGET (priv->box); } static void @@ -94,27 +96,23 @@ static void nm_device_simple_refresh_ui (NetDeviceSimple *device_simple) { NetDeviceSimplePrivate *priv = net_device_simple_get_instance_private (device_simple); - GtkWidget *widget; NMDevice *nm_device; NMDeviceState state; nm_device = net_device_get_nm_device (NET_DEVICE (device_simple)); /* set device kind */ - widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "device_label")); - g_object_bind_property (device_simple, "title", widget, "label", 0); + g_object_bind_property (device_simple, "title", priv->device_label, "label", 0); /* set up the device on/off switch */ - widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "device_off_switch")); state = nm_device_get_state (nm_device); - gtk_widget_set_visible (widget, + gtk_widget_set_visible (GTK_WIDGET (priv->device_off_switch), state != NM_DEVICE_STATE_UNAVAILABLE && state != NM_DEVICE_STATE_UNMANAGED); - update_off_switch_from_device_state (GTK_SWITCH (widget), state, device_simple); + update_off_switch_from_device_state (priv->device_off_switch, state, device_simple); /* set up the Options button */ - widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "options_button")); - gtk_widget_set_visible (widget, state != NM_DEVICE_STATE_UNMANAGED); + gtk_widget_set_visible (GTK_WIDGET (priv->options_button), state != NM_DEVICE_STATE_UNMANAGED); } static void @@ -138,7 +136,7 @@ device_off_toggled (NetDeviceSimple *device_simple) if (priv->updating_device) return; - active = gtk_switch_get_active (GTK_SWITCH (gtk_builder_get_object (priv->builder, "device_off_switch"))); + active = gtk_switch_get_active (priv->device_off_switch); if (active) { client = net_object_get_client (NET_OBJECT (device_simple)); connection = net_device_get_find_connection (NET_DEVICE (device_simple)); @@ -219,7 +217,6 @@ net_device_simple_init (NetDeviceSimple *device_simple) { NetDeviceSimplePrivate *priv = net_device_simple_get_instance_private (device_simple); g_autoptr(GError) error = NULL; - GtkWidget *widget; priv->builder = gtk_builder_new (); gtk_builder_add_from_resource (priv->builder, @@ -230,15 +227,18 @@ net_device_simple_init (NetDeviceSimple *device_simple) return; } + priv->box = GTK_BOX (gtk_builder_get_object (priv->builder, "box")); + priv->device_label = GTK_LABEL (gtk_builder_get_object (priv->builder, "device_label")); + priv->device_off_switch = GTK_SWITCH (gtk_builder_get_object (priv->builder, "device_off_switch")); + priv->grid = GTK_GRID (gtk_builder_get_object (priv->builder, "grid")); + priv->options_button = GTK_BUTTON (gtk_builder_get_object (priv->builder, "options_button")); + priv->separator = GTK_SEPARATOR (gtk_builder_get_object (priv->builder, "separator")); + /* setup simple combobox model */ - widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, - "device_off_switch")); - g_signal_connect_swapped (widget, "notify::active", + g_signal_connect_swapped (priv->device_off_switch, "notify::active", G_CALLBACK (device_off_toggled), device_simple); - widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, - "options_button")); - g_signal_connect_swapped (widget, "clicked", + g_signal_connect_swapped (priv->options_button, "clicked", G_CALLBACK (edit_connection), device_simple); } @@ -256,22 +256,19 @@ net_device_simple_add_row (NetDeviceSimple *device_simple, const char *property_name) { NetDeviceSimplePrivate *priv = net_device_simple_get_instance_private (device_simple); - GtkGrid *grid; GtkWidget *label, *value; GtkStyleContext *context; gint top_attach; - grid = GTK_GRID (gtk_builder_get_object (priv->builder, "grid")); - label = gtk_label_new (label_string); gtk_widget_set_halign (label, GTK_ALIGN_END); - gtk_container_add (GTK_CONTAINER (grid), label); + gtk_container_add (GTK_CONTAINER (priv->grid), label); context = gtk_widget_get_style_context (label); gtk_style_context_add_class (context, "dim-label"); gtk_widget_show (label); - gtk_container_child_get (GTK_CONTAINER (grid), label, + gtk_container_child_get (GTK_CONTAINER (priv->grid), label, "top-attach", &top_attach, NULL); @@ -279,7 +276,7 @@ net_device_simple_add_row (NetDeviceSimple *device_simple, gtk_widget_set_halign (value, GTK_ALIGN_START); g_object_bind_property (device_simple, property_name, value, "label", 0); gtk_label_set_mnemonic_widget (GTK_LABEL (label), value); - gtk_grid_attach (grid, value, 1, top_attach, 1, 1); + gtk_grid_attach (priv->grid, value, 1, top_attach, 1, 1); gtk_widget_show (value); } diff --git a/panels/network/net-device-wifi.c b/panels/network/net-device-wifi.c index ce1126725..54a8a147f 100644 --- a/panels/network/net-device-wifi.c +++ b/panels/network/net-device-wifi.c @@ -59,7 +59,26 @@ struct _NetDeviceWifi NetDevice parent; GtkBuilder *builder; - GtkSwitch *hotspot_switch; + GtkBox *center_box; + GtkButton *connect_hidden_button; + GtkSwitch *device_off_switch; + GtkBox *header_box; + GtkButton *history_button; + GtkLabel *hotspot_connected_heading_label; + GtkLabel *hotspot_connected_label; + GtkLabel *hotspot_network_name_heading_label; + GtkLabel *hotspot_network_name_label; + GtkSwitch *hotspot_off_switch; + GtkLabel *hotspot_security_heading_label; + GtkLabel *hotspot_security_key_heading_label; + GtkLabel *hotspot_security_key_label; + GtkLabel *hotspot_security_label; + GtkBox *listbox_box; + GtkNotebook *notebook; + GtkButton *start_hotspot_button; + GtkLabel *status_label; + GtkLabel *title_label; + gboolean updating_device; gchar *selected_ssid_title; gchar *selected_connection_id; @@ -85,13 +104,13 @@ G_DEFINE_TYPE (NetDeviceWifi, net_device_wifi, NET_TYPE_DEVICE) GtkWidget * net_device_wifi_get_header_widget (NetDeviceWifi *device_wifi) { - return GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, "header_box")); + return GTK_WIDGET (device_wifi->header_box); } GtkWidget * net_device_wifi_get_title_widget (NetDeviceWifi *device_wifi) { - return GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, "center_box")); + return GTK_WIDGET (device_wifi->center_box); } static GtkWidget * @@ -100,18 +119,15 @@ device_wifi_proxy_add_to_stack (NetObject *object, GtkSizeGroup *heading_size_group) { NMDevice *nmdevice; - GtkWidget *widget; NetDeviceWifi *device_wifi = NET_DEVICE_WIFI (object); nmdevice = net_device_get_nm_device (NET_DEVICE (object)); - widget = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, - "notebook")); - gtk_stack_add_titled (stack, widget, + gtk_stack_add_titled (stack, GTK_WIDGET (device_wifi->notebook), net_object_get_id (object), nm_device_get_description (nmdevice)); - return widget; + return GTK_WIDGET (device_wifi->notebook); } static void @@ -132,7 +148,6 @@ static void wireless_enabled_toggled (NetDeviceWifi *device_wifi) { gboolean enabled; - GtkSwitch *sw; NMDevice *device; device = net_device_get_nm_device (NET_DEVICE (device_wifi)); @@ -140,11 +155,9 @@ wireless_enabled_toggled (NetDeviceWifi *device_wifi) return; enabled = nm_client_wireless_get_enabled (net_object_get_client (NET_OBJECT (device_wifi))); - sw = GTK_SWITCH (gtk_builder_get_object (device_wifi->builder, - "device_off_switch")); device_wifi->updating_device = TRUE; - gtk_switch_set_active (sw, enabled); + gtk_switch_set_active (device_wifi->device_off_switch, enabled); if (!enabled) disable_scan_timeout (device_wifi); device_wifi->updating_device = FALSE; @@ -304,7 +317,6 @@ 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)); @@ -319,18 +331,10 @@ 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); - heading = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, "hotspot_network_name_heading_label")); - widget = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, "hotspot_network_name_label")); - panel_set_device_widget_details (GTK_LABEL (heading), GTK_LABEL (widget), hotspot_ssid); - heading = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, "hotspot_security_key_heading_label")); - widget = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, "hotspot_security_key_label")); - panel_set_device_widget_details (GTK_LABEL (heading), GTK_LABEL (widget), hotspot_secret); - heading = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, "hotspot_security_heading_label")); - widget = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, "hotspot_security_label")); - panel_set_device_widget_details (GTK_LABEL (heading), GTK_LABEL (widget), hotspot_security); - heading = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, "hotspot_connected_heading_label")); - widget = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, "hotspot_connected_label")); - panel_set_device_widget_details (GTK_LABEL (heading), GTK_LABEL (widget), NULL); + panel_set_device_widget_details (device_wifi->hotspot_network_name_heading_label, device_wifi->hotspot_network_name_label, hotspot_ssid); + panel_set_device_widget_details (device_wifi->hotspot_security_key_heading_label, device_wifi->hotspot_security_key_label, hotspot_secret); + panel_set_device_widget_details (device_wifi->hotspot_security_heading_label, device_wifi->hotspot_security_label, hotspot_security); + panel_set_device_widget_details (device_wifi->hotspot_connected_heading_label, device_wifi->hotspot_connected_label, NULL); } static void @@ -398,7 +402,6 @@ nm_device_wifi_refresh_ui (NetDeviceWifi *device_wifi) { NMDevice *nm_device; NMClient *client; - GtkWidget *widget; g_autofree gchar *status = NULL; if (device_is_hotspot (device_wifi)) { @@ -422,9 +425,8 @@ nm_device_wifi_refresh_ui (NetDeviceWifi *device_wifi) /* keep this in sync with the signal handler setup in cc_network_panel_init */ wireless_enabled_toggled (device_wifi); - widget = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, "status_label")); status = panel_device_status_to_localized_string (nm_device, NULL); - gtk_label_set_label (GTK_LABEL (widget), status); + gtk_label_set_label (device_wifi->status_label, status); /* update list of APs */ show_wifi_list (device_wifi); @@ -447,7 +449,7 @@ device_off_toggled (NetDeviceWifi *device_wifi) return; client = net_object_get_client (NET_OBJECT (device_wifi)); - active = gtk_switch_get_active (GTK_SWITCH (gtk_builder_get_object (device_wifi->builder, "device_off_switch"))); + active = gtk_switch_get_active (device_wifi->device_off_switch); nm_client_wireless_set_enabled (client, active); if (!active) disable_scan_timeout (device_wifi); @@ -668,15 +670,12 @@ is_hotspot_connection (NMConnection *connection) static void show_hotspot_ui (NetDeviceWifi *device_wifi) { - GtkWidget *widget; - /* show hotspot tab */ - widget = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, "notebook")); - gtk_notebook_set_current_page (GTK_NOTEBOOK (widget), 1); + gtk_notebook_set_current_page (device_wifi->notebook, 1); /* force switch to on as this succeeded */ device_wifi->updating_device = TRUE; - gtk_switch_set_active (device_wifi->hotspot_switch, TRUE); + gtk_switch_set_active (device_wifi->hotspot_off_switch, TRUE); device_wifi->updating_device = FALSE; } @@ -791,7 +790,7 @@ start_hotspot (NetDeviceWifi *device_wifi) client = net_object_get_client (NET_OBJECT (device_wifi)); device = net_device_get_nm_device (NET_DEVICE (device_wifi)); - window = gtk_widget_get_toplevel (GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, "notebook_view"))); + window = gtk_widget_get_toplevel (GTK_WIDGET (device_wifi->notebook)); if (!device_wifi->hotspot_dialog) device_wifi->hotspot_dialog = cc_wifi_hotspot_dialog_new (GTK_WINDOW (window)); @@ -859,7 +858,7 @@ stop_shared_connection (NetDeviceWifi *device_wifi) if (!found) { g_warning ("Could not stop hotspot connection as no connection attached to the device could be found."); device_wifi->updating_device = TRUE; - gtk_switch_set_active (device_wifi->hotspot_switch, TRUE); + gtk_switch_set_active (device_wifi->hotspot_off_switch, TRUE); device_wifi->updating_device = FALSE; return; } @@ -874,7 +873,7 @@ stop_hotspot_response_cb (NetDeviceWifi *device_wifi, gint response, GtkWidget * stop_shared_connection (device_wifi); } else { device_wifi->updating_device = TRUE; - gtk_switch_set_active (device_wifi->hotspot_switch, TRUE); + gtk_switch_set_active (device_wifi->hotspot_off_switch, TRUE); device_wifi->updating_device = FALSE; } gtk_widget_destroy (dialog); @@ -909,9 +908,7 @@ switch_hotspot_changed_cb (NetDeviceWifi *device_wifi) static void show_wifi_list (NetDeviceWifi *device_wifi) { - GtkWidget *widget; - widget = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, "notebook")); - gtk_notebook_set_current_page (GTK_NOTEBOOK (widget), 0); + gtk_notebook_set_current_page (device_wifi->notebook, 0); } static void @@ -922,9 +919,7 @@ net_device_wifi_constructed (GObject *object) NMClientPermissionResult perm; NMDevice *nm_device; NMDeviceWifiCapabilities caps; - GtkWidget *list_container; GtkWidget *list; - GtkWidget *widget; G_OBJECT_CLASS (net_device_wifi_parent_class)->constructed (object); @@ -934,10 +929,9 @@ net_device_wifi_constructed (GObject *object) nm_device = net_device_get_nm_device (NET_DEVICE (device_wifi)); - list_container = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, "listbox_box")); list = GTK_WIDGET (cc_wifi_connection_list_new (client, NM_DEVICE_WIFI (nm_device), TRUE, TRUE, FALSE)); gtk_widget_show (list); - gtk_container_add (GTK_CONTAINER (list_container), list); + gtk_container_add (GTK_CONTAINER (device_wifi->listbox_box), list); gtk_list_box_set_header_func (GTK_LIST_BOX (list), cc_list_box_update_header_func, NULL, NULL); gtk_list_box_set_sort_func (GTK_LIST_BOX (list), (GtkListBoxSortFunc)ap_sort, NULL, NULL); @@ -949,22 +943,19 @@ net_device_wifi_constructed (GObject *object) device_wifi); /* only enable the button if the user can create a hotspot */ - widget = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, - "start_hotspot_button")); perm = nm_client_get_permission_result (client, NM_CLIENT_PERMISSION_WIFI_SHARE_OPEN); caps = nm_device_wifi_get_capabilities (NM_DEVICE_WIFI (nm_device)); if (perm != NM_CLIENT_PERMISSION_RESULT_YES && perm != NM_CLIENT_PERMISSION_RESULT_AUTH) { - gtk_widget_set_tooltip_text (widget, _("System policy prohibits use as a Hotspot")); - gtk_widget_set_sensitive (widget, FALSE); + gtk_widget_set_tooltip_text (GTK_WIDGET (device_wifi->start_hotspot_button), _("System policy prohibits use as a Hotspot")); + gtk_widget_set_sensitive (GTK_WIDGET (device_wifi->start_hotspot_button), FALSE); } else if (!(caps & (NM_WIFI_DEVICE_CAP_AP | NM_WIFI_DEVICE_CAP_ADHOC))) { - gtk_widget_set_tooltip_text (widget, _("Wireless device does not support Hotspot mode")); - gtk_widget_set_sensitive (widget, FALSE); + gtk_widget_set_tooltip_text (GTK_WIDGET (device_wifi->start_hotspot_button), _("Wireless device does not support Hotspot mode")); + gtk_widget_set_sensitive (GTK_WIDGET (device_wifi->start_hotspot_button), FALSE); } else - gtk_widget_set_sensitive (widget, TRUE); + gtk_widget_set_sensitive (GTK_WIDGET (device_wifi->start_hotspot_button), TRUE); - widget = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, "title_label")); - g_object_bind_property (device_wifi, "title", widget, "label", 0); + g_object_bind_property (device_wifi, "title", device_wifi->title_label, "label", 0); nm_device_wifi_refresh_ui (device_wifi); } @@ -1404,7 +1395,6 @@ static void net_device_wifi_init (NetDeviceWifi *device_wifi) { g_autoptr(GError) error = NULL; - GtkWidget *widget; device_wifi->builder = gtk_builder_new (); gtk_builder_add_from_resource (device_wifi->builder, @@ -1415,38 +1405,45 @@ net_device_wifi_init (NetDeviceWifi *device_wifi) return; } + device_wifi->center_box = GTK_BOX (gtk_builder_get_object (device_wifi->builder, "center_box")); + device_wifi->connect_hidden_button = GTK_BUTTON (gtk_builder_get_object (device_wifi->builder, "connect_hidden_button")); + device_wifi->device_off_switch = GTK_SWITCH (gtk_builder_get_object (device_wifi->builder, "device_off_switch")); + device_wifi->header_box = GTK_BOX (gtk_builder_get_object (device_wifi->builder, "header_box")); + device_wifi->history_button = GTK_BUTTON (gtk_builder_get_object (device_wifi->builder, "history_button")); + device_wifi->hotspot_connected_heading_label = GTK_LABEL (gtk_builder_get_object (device_wifi->builder, "hotspot_connected_heading_label")); + device_wifi->hotspot_connected_label = GTK_LABEL (gtk_builder_get_object (device_wifi->builder, "hotspot_connected_label")); + device_wifi->hotspot_network_name_heading_label = GTK_LABEL (gtk_builder_get_object (device_wifi->builder, "hotspot_network_name_heading_label")); + device_wifi->hotspot_network_name_label = GTK_LABEL (gtk_builder_get_object (device_wifi->builder, "hotspot_network_name_label")); + device_wifi->hotspot_off_switch = GTK_SWITCH (gtk_builder_get_object (device_wifi->builder, "hotspot_off_switch")); + device_wifi->hotspot_security_heading_label = GTK_LABEL (gtk_builder_get_object (device_wifi->builder, "hotspot_security_heading_label")); + device_wifi->hotspot_security_key_heading_label = GTK_LABEL (gtk_builder_get_object (device_wifi->builder, "hotspot_security_key_heading_label")); + device_wifi->hotspot_security_key_label = GTK_LABEL (gtk_builder_get_object (device_wifi->builder, "hotspot_security_key_label")); + device_wifi->hotspot_security_label = GTK_LABEL (gtk_builder_get_object (device_wifi->builder, "hotspot_security_label")); + device_wifi->listbox_box = GTK_BOX (gtk_builder_get_object (device_wifi->builder, "listbox_box")); + device_wifi->notebook = GTK_NOTEBOOK (gtk_builder_get_object (device_wifi->builder, "notebook")); + device_wifi->start_hotspot_button = GTK_BUTTON (gtk_builder_get_object (device_wifi->builder, "start_hotspot_button")); + device_wifi->status_label = GTK_LABEL (gtk_builder_get_object (device_wifi->builder, "status_label")); + device_wifi->title_label = GTK_LABEL (gtk_builder_get_object (device_wifi->builder, "title_label")); + device_wifi->cancellable = g_cancellable_new (); /* setup wifi views */ - widget = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, - "device_off_switch")); - g_signal_connect_swapped (widget, "notify::active", + g_signal_connect_swapped (device_wifi->device_off_switch, "notify::active", G_CALLBACK (device_off_toggled), device_wifi); /* setup view */ - widget = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, - "notebook")); - gtk_notebook_set_show_tabs (GTK_NOTEBOOK (widget), FALSE); - gtk_notebook_set_current_page (GTK_NOTEBOOK (widget), 0); - - widget = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, - "start_hotspot_button")); - g_signal_connect_swapped (widget, "clicked", + gtk_notebook_set_show_tabs (device_wifi->notebook, FALSE); + gtk_notebook_set_current_page (device_wifi->notebook, 0); + + g_signal_connect_swapped (device_wifi->start_hotspot_button, "clicked", G_CALLBACK (start_hotspot), device_wifi); - widget = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, - "connect_hidden_button")); - g_signal_connect_swapped (widget, "clicked", + g_signal_connect_swapped (device_wifi->connect_hidden_button, "clicked", G_CALLBACK (connect_to_hidden_network), device_wifi); - widget = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, - "history_button")); - g_signal_connect_swapped (widget, "clicked", + g_signal_connect_swapped (device_wifi->history_button, "clicked", G_CALLBACK (open_history), device_wifi); - widget = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, - "hotspot_off_switch")); - device_wifi->hotspot_switch = GTK_SWITCH (widget); - g_signal_connect_swapped (widget, "notify::active", + g_signal_connect_swapped (device_wifi->hotspot_off_switch, "notify::active", G_CALLBACK (switch_hotspot_changed_cb), device_wifi); } diff --git a/panels/network/net-proxy.c b/panels/network/net-proxy.c index 362789399..b4938e59d 100644 --- a/panels/network/net-proxy.c +++ b/panels/network/net-proxy.c @@ -31,17 +31,35 @@ typedef enum { MODE_DISABLED, MODE_MANUAL, - MODE_AUTOMATIC, - N_MODES + MODE_AUTOMATIC } ProxyMode; struct _NetProxy { NetObject parent; - GSettings *settings; GtkBuilder *builder; - GtkRadioButton *mode_radios[3]; + GtkRadioButton *automatic_radio; + GtkDialog *dialog; + GtkButton *dialog_button; + GtkFrame *main_widget; + GtkRadioButton *manual_radio; + GtkRadioButton *none_radio; + GtkEntry *proxy_ftp_entry; + GtkEntry *proxy_http_entry; + GtkEntry *proxy_https_entry; + GtkEntry *proxy_ignore_entry; + GtkAdjustment *proxy_port_ftp_adjustment; + GtkAdjustment *proxy_port_http_adjustment; + GtkAdjustment *proxy_port_https_adjustment; + GtkAdjustment *proxy_port_socks_adjustment; + GtkEntry *proxy_socks_entry; + GtkEntry *proxy_url_entry; + GtkLabel *proxy_warning_label; + GtkStack *stack; + GtkLabel *status_label; + + GSettings *settings; }; G_DEFINE_TYPE (NetProxy, net_proxy, NET_TYPE_OBJECT) @@ -65,17 +83,12 @@ static inline void panel_update_status_label (NetProxy *self, ProxyMode mode) { - GtkLabel *label; - - /* update the label */ - label = GTK_LABEL (gtk_builder_get_object (self->builder, "status_label")); - gtk_label_set_label (label, panel_get_string_for_value (mode)); + gtk_label_set_label (self->status_label, panel_get_string_for_value (mode)); } static void check_wpad_warning (NetProxy *proxy) { - GtkWidget *widget; g_autofree gchar *autoconfig_url = NULL; GString *string = NULL; gboolean ret = FALSE; @@ -110,10 +123,8 @@ check_wpad_warning (NetProxy *proxy) g_string_append (string, _("This is not recommended for untrusted public networks.")); g_string_append (string, "</small>"); out: - widget = GTK_WIDGET (gtk_builder_get_object (proxy->builder, - "proxy_warning_label")); - gtk_label_set_markup (GTK_LABEL (widget), string->str); - gtk_widget_set_visible (widget, (string->len > 0)); + gtk_label_set_markup (proxy->proxy_warning_label, string->str); + gtk_widget_set_visible (GTK_WIDGET (proxy->proxy_warning_label), (string->len > 0)); g_string_free (string, TRUE); } @@ -127,20 +138,16 @@ settings_changed_cb (NetProxy *proxy) static void panel_proxy_mode_setup_widgets (NetProxy *proxy, ProxyMode value) { - GtkStack *stack; - - stack = GTK_STACK (gtk_builder_get_object (proxy->builder, "stack")); - /* hide or show the PAC text box */ switch (value) { case MODE_DISABLED: - gtk_stack_set_visible_child_name (stack, "disabled"); + gtk_stack_set_visible_child_name (proxy->stack, "disabled"); break; case MODE_MANUAL: - gtk_stack_set_visible_child_name (stack, "manual"); + gtk_stack_set_visible_child_name (proxy->stack, "manual"); break; case MODE_AUTOMATIC: - gtk_stack_set_visible_child_name (stack, "automatic"); + gtk_stack_set_visible_child_name (proxy->stack, "automatic"); break; default: g_assert_not_reached (); @@ -159,11 +166,11 @@ panel_proxy_mode_radio_changed_cb (NetProxy *proxy, GtkRadioButton *radio) return; /* get selected radio */ - if (radio == proxy->mode_radios[MODE_DISABLED]) + if (radio == proxy->none_radio) value = MODE_DISABLED; - else if (radio == proxy->mode_radios[MODE_MANUAL]) + else if (radio == proxy->manual_radio) value = MODE_MANUAL; - else if (radio == proxy->mode_radios[MODE_AUTOMATIC]) + else if (radio == proxy->automatic_radio) value = MODE_AUTOMATIC; else g_assert_not_reached (); @@ -181,14 +188,8 @@ panel_proxy_mode_radio_changed_cb (NetProxy *proxy, GtkRadioButton *radio) static void show_dialog_cb (NetProxy *self) { - GtkWidget *toplevel; - GtkWindow *dialog; - - toplevel = gtk_widget_get_toplevel (GTK_WIDGET (gtk_builder_get_object (self->builder, "main_widget"))); - dialog = GTK_WINDOW (gtk_builder_get_object (self->builder, "dialog")); - - gtk_window_set_transient_for (dialog, GTK_WINDOW (toplevel)); - gtk_window_present (dialog); + gtk_window_set_transient_for (GTK_WINDOW (self->dialog), GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (self->main_widget)))); + gtk_window_present (GTK_WINDOW (self->dialog)); } static GtkWidget * @@ -196,24 +197,19 @@ net_proxy_add_to_stack (NetObject *object, GtkStack *stack, GtkSizeGroup *heading_size_group) { - GtkWidget *widget; NetProxy *proxy = NET_PROXY (object); - widget = GTK_WIDGET (gtk_builder_get_object (proxy->builder, - "main_widget")); - gtk_size_group_add_widget (heading_size_group, widget); - gtk_stack_add_named (stack, widget, net_object_get_id (object)); - return widget; + gtk_size_group_add_widget (heading_size_group, GTK_WIDGET (proxy->main_widget)); + gtk_stack_add_named (stack, GTK_WIDGET (proxy->main_widget), net_object_get_id (object)); + return GTK_WIDGET (proxy->main_widget); } static void net_proxy_finalize (GObject *object) { NetProxy *proxy = NET_PROXY (object); - GtkWidget *widget; - widget = GTK_WIDGET (gtk_builder_get_object (proxy->builder, "dialog")); - gtk_widget_destroy (widget); + gtk_widget_destroy (GTK_WIDGET (proxy->dialog)); g_clear_object (&proxy->settings); g_clear_object (&proxy->builder); @@ -282,15 +278,12 @@ set_ignore_hosts (const GValue *value, static void net_proxy_init (NetProxy *proxy) { - GtkAdjustment *adjustment; g_autoptr(GSettings) http_settings = NULL; g_autoptr(GSettings) https_settings = NULL; g_autoptr(GSettings) ftp_settings = NULL; g_autoptr(GSettings) socks_settings = NULL; ProxyMode value; - GtkWidget *widget; g_autoptr(GError) error = NULL; - guint i; proxy->builder = gtk_builder_new (); gtk_builder_add_from_resource (proxy->builder, @@ -301,6 +294,26 @@ net_proxy_init (NetProxy *proxy) return; } + proxy->automatic_radio = GTK_RADIO_BUTTON (gtk_builder_get_object (proxy->builder, "automatic_radio")); + proxy->dialog = GTK_DIALOG (gtk_builder_get_object (proxy->builder, "dialog")); + proxy->dialog_button = GTK_BUTTON (gtk_builder_get_object (proxy->builder, "dialog_button")); + proxy->main_widget = GTK_FRAME (gtk_builder_get_object (proxy->builder, "main_widget")); + proxy->manual_radio = GTK_RADIO_BUTTON (gtk_builder_get_object (proxy->builder, "manual_radio")); + proxy->none_radio = GTK_RADIO_BUTTON (gtk_builder_get_object (proxy->builder, "none_radio")); + proxy->proxy_ftp_entry = GTK_ENTRY (gtk_builder_get_object (proxy->builder, "proxy_ftp_entry")); + proxy->proxy_http_entry = GTK_ENTRY (gtk_builder_get_object (proxy->builder, "proxy_http_entry")); + proxy->proxy_https_entry = GTK_ENTRY (gtk_builder_get_object (proxy->builder, "proxy_https_entry")); + proxy->proxy_ignore_entry = GTK_ENTRY (gtk_builder_get_object (proxy->builder, "proxy_ignore_entry")); + proxy->proxy_port_ftp_adjustment = GTK_ADJUSTMENT (gtk_builder_get_object (proxy->builder, "proxy_port_ftp_adjustment")); + proxy->proxy_port_http_adjustment = GTK_ADJUSTMENT (gtk_builder_get_object (proxy->builder, "proxy_port_http_adjustment")); + proxy->proxy_port_https_adjustment = GTK_ADJUSTMENT (gtk_builder_get_object (proxy->builder, "proxy_port_https_adjustment")); + proxy->proxy_port_socks_adjustment = GTK_ADJUSTMENT (gtk_builder_get_object (proxy->builder, "proxy_port_socks_adjustment")); + proxy->proxy_socks_entry = GTK_ENTRY (gtk_builder_get_object (proxy->builder, "proxy_socks_entry")); + proxy->proxy_url_entry = GTK_ENTRY (gtk_builder_get_object (proxy->builder, "proxy_url_entry")); + proxy->proxy_warning_label = GTK_LABEL (gtk_builder_get_object (proxy->builder, "proxy_warning_label")); + proxy->stack = GTK_STACK (gtk_builder_get_object (proxy->builder, "stack")); + proxy->status_label = GTK_LABEL (gtk_builder_get_object (proxy->builder, "status_label")); + proxy->settings = g_settings_new ("org.gnome.system.proxy"); g_signal_connect_swapped (proxy->settings, "changed", @@ -311,107 +324,84 @@ net_proxy_init (NetProxy *proxy) value = g_settings_get_enum (proxy->settings, "mode"); /* bind the proxy values */ - widget = GTK_WIDGET (gtk_builder_get_object (proxy->builder, - "proxy_url_entry")); g_settings_bind (proxy->settings, "autoconfig-url", - widget, "text", + proxy->proxy_url_entry, "text", G_SETTINGS_BIND_DEFAULT); /* bind the HTTP proxy values */ http_settings = g_settings_get_child (proxy->settings, "http"); - widget = GTK_WIDGET (gtk_builder_get_object (proxy->builder, - "proxy_http_entry")); g_settings_bind (http_settings, "host", - widget, "text", + proxy->proxy_http_entry, "text", G_SETTINGS_BIND_DEFAULT); - adjustment = GTK_ADJUSTMENT (gtk_builder_get_object (proxy->builder, - "proxy_port_http_adjustment")); g_settings_bind (http_settings, "port", - adjustment, "value", + proxy->proxy_port_http_adjustment, "value", G_SETTINGS_BIND_DEFAULT); /* bind the HTTPS proxy values */ https_settings = g_settings_get_child (proxy->settings, "https"); - widget = GTK_WIDGET (gtk_builder_get_object (proxy->builder, - "proxy_https_entry")); g_settings_bind (https_settings, "host", - widget, "text", + proxy->proxy_https_entry, "text", G_SETTINGS_BIND_DEFAULT); - adjustment = GTK_ADJUSTMENT (gtk_builder_get_object (proxy->builder, - "proxy_port_https_adjustment")); g_settings_bind (https_settings, "port", - adjustment, "value", + proxy->proxy_port_https_adjustment, "value", G_SETTINGS_BIND_DEFAULT); /* bind the FTP proxy values */ ftp_settings = g_settings_get_child (proxy->settings, "ftp"); - widget = GTK_WIDGET (gtk_builder_get_object (proxy->builder, - "proxy_ftp_entry")); g_settings_bind (ftp_settings, "host", - widget, "text", + proxy->proxy_ftp_entry, "text", G_SETTINGS_BIND_DEFAULT); - adjustment = GTK_ADJUSTMENT (gtk_builder_get_object (proxy->builder, - "proxy_port_ftp_adjustment")); g_settings_bind (ftp_settings, "port", - adjustment, "value", + proxy->proxy_port_ftp_adjustment, "value", G_SETTINGS_BIND_DEFAULT); /* bind the SOCKS proxy values */ socks_settings = g_settings_get_child (proxy->settings, "socks"); - widget = GTK_WIDGET (gtk_builder_get_object (proxy->builder, - "proxy_socks_entry")); g_settings_bind (socks_settings, "host", - widget, "text", + proxy->proxy_socks_entry, "text", G_SETTINGS_BIND_DEFAULT); - adjustment = GTK_ADJUSTMENT (gtk_builder_get_object (proxy->builder, - "proxy_port_socks_adjustment")); g_settings_bind (socks_settings, "port", - adjustment, "value", + proxy->proxy_port_socks_adjustment, "value", G_SETTINGS_BIND_DEFAULT); /* bind the proxy ignore hosts */ - widget = GTK_WIDGET (gtk_builder_get_object (proxy->builder, - "proxy_ignore_entry")); g_settings_bind_with_mapping (proxy->settings, "ignore-hosts", - widget, "text", + proxy->proxy_ignore_entry, "text", G_SETTINGS_BIND_DEFAULT, get_ignore_hosts, set_ignore_hosts, NULL, NULL); - /* radio buttons */ - proxy->mode_radios[MODE_DISABLED] = - GTK_RADIO_BUTTON (gtk_builder_get_object (proxy->builder, "none_radio")); - proxy->mode_radios[MODE_MANUAL] = - GTK_RADIO_BUTTON (gtk_builder_get_object (proxy->builder, "manual_radio")); - proxy->mode_radios[MODE_AUTOMATIC] = - GTK_RADIO_BUTTON (gtk_builder_get_object (proxy->builder, "automatic_radio")); - /* setup the radio before connecting to the :toggled signal */ - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (proxy->mode_radios[value]), TRUE); + switch (value) { + case MODE_DISABLED: + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (proxy->none_radio), TRUE); + break; + case MODE_MANUAL: + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (proxy->manual_radio), TRUE); + break; + case MODE_AUTOMATIC: + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (proxy->automatic_radio), TRUE); + break; + default: + g_assert_not_reached (); + } panel_proxy_mode_setup_widgets (proxy, value); panel_update_status_label (proxy, value); - for (i = MODE_DISABLED; i < N_MODES; i++) { - g_signal_connect_swapped (proxy->mode_radios[i], - "toggled", - G_CALLBACK (panel_proxy_mode_radio_changed_cb), - proxy); - } + g_signal_connect_swapped (proxy->none_radio, "toggled", G_CALLBACK (panel_proxy_mode_radio_changed_cb), proxy); + g_signal_connect_swapped (proxy->manual_radio, "toggled", G_CALLBACK (panel_proxy_mode_radio_changed_cb), proxy); + g_signal_connect_swapped (proxy->automatic_radio, "toggled", G_CALLBACK (panel_proxy_mode_radio_changed_cb), proxy); /* show dialog button */ - widget = GTK_WIDGET (gtk_builder_get_object (proxy->builder, "dialog_button")); - - g_signal_connect_swapped (widget, + g_signal_connect_swapped (proxy->dialog_button, "clicked", G_CALLBACK (show_dialog_cb), proxy); /* prevent the dialog from being destroyed */ - widget = GTK_WIDGET (gtk_builder_get_object (proxy->builder, "dialog")); - - g_signal_connect (widget, + g_signal_connect (proxy->dialog, "delete-event", G_CALLBACK (gtk_widget_hide_on_delete), - widget); + proxy->dialog); } NetProxy * diff --git a/panels/network/net-vpn.c b/panels/network/net-vpn.c index 0b8e0c31d..d6f761857 100644 --- a/panels/network/net-vpn.c +++ b/panels/network/net-vpn.c @@ -37,6 +37,12 @@ struct _NetVpn NetObject parent; GtkBuilder *builder; + GtkBox *box; + GtkLabel *device_label; + GtkSwitch *device_off_switch; + GtkButton *options_button; + GtkSeparator *separator; + NMConnection *connection; NMActiveConnection *active_connection; gchar *service_type; @@ -58,10 +64,7 @@ void net_vpn_set_show_separator (NetVpn *self, gboolean show_separator) { - GtkWidget *separator; - - separator = GTK_WIDGET (gtk_builder_get_object (self->builder, "separator")); - gtk_widget_set_visible (separator, show_separator); + gtk_widget_set_visible (GTK_WIDGET (self->separator), show_separator); } static void @@ -132,21 +135,16 @@ vpn_proxy_add_to_stack (NetObject *object, GtkStack *stack, GtkSizeGroup *heading_size_group) { - GtkWidget *widget; NetVpn *vpn = NET_VPN (object); /* add widgets to size group */ - widget = GTK_WIDGET (gtk_builder_get_object (vpn->builder, - "box")); - gtk_stack_add_named (stack, widget, net_object_get_id (object)); - return widget; + gtk_stack_add_named (stack, GTK_WIDGET (vpn->box), net_object_get_id (object)); + return GTK_WIDGET (vpn->box); } static void nm_device_refresh_vpn_ui (NetVpn *vpn) { - GtkWidget *widget; - GtkWidget *sw; const GPtrArray *acs; NMActiveConnection *a; gint i; @@ -155,15 +153,13 @@ nm_device_refresh_vpn_ui (NetVpn *vpn) NMClient *client; /* update title */ - widget = GTK_WIDGET (gtk_builder_get_object (vpn->builder, - "device_label")); /* Translators: this is the title of the connection details * window for vpn connections, it is also used to display * vpn connections in the device list. */ title = g_strdup_printf (_("%s VPN"), nm_connection_get_id (vpn->connection)); net_object_set_title (NET_OBJECT (vpn), title); - gtk_label_set_label (GTK_LABEL (widget), title); + gtk_label_set_label (vpn->device_label, title); if (vpn->active_connection) { g_signal_handlers_disconnect_by_func (vpn->active_connection, @@ -199,8 +195,7 @@ nm_device_refresh_vpn_ui (NetVpn *vpn) } vpn->updating_device = TRUE; - sw = GTK_WIDGET (gtk_builder_get_object (vpn->builder, "device_off_switch")); - gtk_switch_set_active (GTK_SWITCH (sw), + gtk_switch_set_active (vpn->device_off_switch, state != NM_VPN_CONNECTION_STATE_FAILED && state != NM_VPN_CONNECTION_STATE_DISCONNECTED); vpn->updating_device = FALSE; @@ -231,7 +226,7 @@ device_off_toggled (NetVpn *vpn) if (vpn->updating_device) return; - active = gtk_switch_get_active (GTK_SWITCH (gtk_builder_get_object (vpn->builder, "device_off_switch"))); + active = gtk_switch_get_active (vpn->device_off_switch); if (active) { client = net_object_get_client (NET_OBJECT (vpn)); nm_client_activate_connection_async (client, @@ -270,14 +265,12 @@ static void vpn_proxy_edit (NetObject *object) { NetVpn *vpn = NET_VPN (object); - GtkWidget *button, *window; + GtkWidget *window; NetConnectionEditor *editor; NMClient *client; g_autofree gchar *title = NULL; - button = GTK_WIDGET (gtk_builder_get_object (vpn->builder, - "options_button")); - window = gtk_widget_get_toplevel (button); + window = gtk_widget_get_toplevel (GTK_WIDGET (vpn->options_button)); client = net_object_get_client (object); @@ -403,7 +396,6 @@ static void net_vpn_init (NetVpn *vpn) { g_autoptr(GError) error = NULL; - GtkWidget *widget; vpn->builder = gtk_builder_new (); gtk_builder_add_from_resource (vpn->builder, @@ -414,13 +406,15 @@ net_vpn_init (NetVpn *vpn) return; } - widget = GTK_WIDGET (gtk_builder_get_object (vpn->builder, - "device_off_switch")); - g_signal_connect_swapped (widget, "notify::active", + vpn->box = GTK_BOX (gtk_builder_get_object (vpn->builder, "box")); + vpn->device_label = GTK_LABEL (gtk_builder_get_object (vpn->builder, "device_label")); + vpn->device_off_switch = GTK_SWITCH (gtk_builder_get_object (vpn->builder, "device_off_switch")); + vpn->options_button = GTK_BUTTON (gtk_builder_get_object (vpn->builder, "options_button")); + vpn->separator = GTK_SEPARATOR (gtk_builder_get_object (vpn->builder, "separator")); + + g_signal_connect_swapped (vpn->device_off_switch, "notify::active", G_CALLBACK (device_off_toggled), vpn); - widget = GTK_WIDGET (gtk_builder_get_object (vpn->builder, - "options_button")); - g_signal_connect_swapped (widget, "clicked", + g_signal_connect_swapped (vpn->options_button, "clicked", G_CALLBACK (edit_connection), vpn); } diff --git a/panels/network/wireless-security/eap-method-fast.c b/panels/network/wireless-security/eap-method-fast.c index 84ccfc0e9..3d789d6a5 100644 --- a/panels/network/wireless-security/eap-method-fast.c +++ b/panels/network/wireless-security/eap-method-fast.c @@ -36,6 +36,16 @@ struct _EAPMethodFAST { EAPMethod parent; + GtkEntry *anon_identity_entry; + GtkLabel *anon_identity_label; + GtkComboBox *inner_auth_combo; + GtkLabel *inner_auth_label; + GtkBox *inner_auth_box; + GtkFileChooserButton *pac_file_button; + GtkLabel *pac_file_label; + GtkCheckButton *pac_provision_check; + GtkComboBox *pac_provision_combo; + GtkSizeGroup *size_group; WirelessSecurity *sec_parent; gboolean is_editor; @@ -53,7 +63,7 @@ destroy (EAPMethod *parent) static gboolean validate (EAPMethod *parent, GError **error) { - GtkWidget *widget; + EAPMethodFAST *self = (EAPMethodFAST *) parent; GtkTreeModel *model; GtkTreeIter iter; g_autoptr(EAPMethod) eap = NULL; @@ -61,23 +71,17 @@ validate (EAPMethod *parent, GError **error) gboolean provisioning; gboolean valid = TRUE; - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "pac_provision_check")); - g_assert (widget); - provisioning = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "pac_file_button")); - g_assert (widget); - file = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (widget)); + provisioning = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (self->pac_provision_check)); + file = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (self->pac_file_button)); if (!provisioning && !file) { - widget_set_error (widget); + widget_set_error (GTK_WIDGET (self->pac_file_button)); g_set_error_literal (error, NMA_ERROR, NMA_ERROR_GENERIC, _("missing EAP-FAST PAC file")); valid = FALSE; } else - widget_unset_error (widget); + widget_unset_error (GTK_WIDGET (self->pac_file_button)); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "inner_auth_combo")); - g_assert (widget); - model = gtk_combo_box_get_model (GTK_COMBO_BOX (widget)); - gtk_combo_box_get_active_iter (GTK_COMBO_BOX (widget), &iter); + model = gtk_combo_box_get_model (self->inner_auth_combo); + gtk_combo_box_get_active_iter (self->inner_auth_combo, &iter); gtk_tree_model_get (model, &iter, I_METHOD_COLUMN, &eap, -1); g_assert (eap); valid = eap_method_validate (eap, valid ? error : NULL) && valid; @@ -88,7 +92,6 @@ static void add_to_size_group (EAPMethod *parent, GtkSizeGroup *group) { EAPMethodFAST *method = (EAPMethodFAST *) parent; - GtkWidget *widget; GtkTreeModel *model; GtkTreeIter iter; g_autoptr(EAPMethod) eap = NULL; @@ -97,27 +100,13 @@ add_to_size_group (EAPMethod *parent, GtkSizeGroup *group) g_object_unref (method->size_group); method->size_group = g_object_ref (group); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "anon_identity_label")); - g_assert (widget); - gtk_size_group_add_widget (group, widget); - - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "pac_file_label")); - g_assert (widget); - gtk_size_group_add_widget (group, widget); - - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "pac_provision_check")); - g_assert (widget); - gtk_size_group_add_widget (group, widget); + gtk_size_group_add_widget (group, GTK_WIDGET (method->anon_identity_label)); + gtk_size_group_add_widget (group, GTK_WIDGET (method->pac_file_label)); + gtk_size_group_add_widget (group, GTK_WIDGET (method->pac_provision_check)); + gtk_size_group_add_widget (group, GTK_WIDGET (method->inner_auth_label)); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "inner_auth_label")); - g_assert (widget); - gtk_size_group_add_widget (group, widget); - - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "inner_auth_combo")); - g_assert (widget); - - model = gtk_combo_box_get_model (GTK_COMBO_BOX (widget)); - gtk_combo_box_get_active_iter (GTK_COMBO_BOX (widget), &iter); + model = gtk_combo_box_get_model (method->inner_auth_combo); + gtk_combo_box_get_active_iter (method->inner_auth_combo, &iter); gtk_tree_model_get (model, &iter, I_METHOD_COLUMN, &eap, -1); g_assert (eap); eap_method_add_to_size_group (eap, group); @@ -126,8 +115,8 @@ add_to_size_group (EAPMethod *parent, GtkSizeGroup *group) static void fill_connection (EAPMethod *parent, NMConnection *connection, NMSettingSecretFlags flags) { + EAPMethodFAST *self = (EAPMethodFAST *) parent; NMSetting8021x *s_8021x; - GtkWidget *widget; const char *text; char *filename; g_autoptr(EAPMethod) eap = NULL; @@ -141,25 +130,19 @@ fill_connection (EAPMethod *parent, NMConnection *connection, NMSettingSecretFla nm_setting_802_1x_add_eap_method (s_8021x, "fast"); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "anon_identity_entry")); - g_assert (widget); - text = gtk_entry_get_text (GTK_ENTRY (widget)); + text = gtk_entry_get_text (self->anon_identity_entry); if (text && strlen (text)) g_object_set (s_8021x, NM_SETTING_802_1X_ANONYMOUS_IDENTITY, text, NULL); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "pac_file_button")); - g_assert (widget); - filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (widget)); + filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (self->pac_file_button)); g_object_set (s_8021x, NM_SETTING_802_1X_PAC_FILE, filename, NULL); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "pac_provision_check")); - enabled = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)); + enabled = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (self->pac_provision_check)); if (!enabled) g_object_set (G_OBJECT (s_8021x), NM_SETTING_802_1X_PHASE1_FAST_PROVISIONING, "0", NULL); else { - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "pac_provision_combo")); - pac_provisioning = gtk_combo_box_get_active (GTK_COMBO_BOX (widget)); + pac_provisioning = gtk_combo_box_get_active (self->pac_provision_combo); switch (pac_provisioning) { case 0: /* Anonymous */ @@ -177,9 +160,8 @@ fill_connection (EAPMethod *parent, NMConnection *connection, NMSettingSecretFla } } - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "inner_auth_combo")); - model = gtk_combo_box_get_model (GTK_COMBO_BOX (widget)); - gtk_combo_box_get_active_iter (GTK_COMBO_BOX (widget), &iter); + model = gtk_combo_box_get_model (self->inner_auth_combo); + gtk_combo_box_get_active_iter (self->inner_auth_combo, &iter); gtk_tree_model_get (model, &iter, I_METHOD_COLUMN, &eap, -1); g_assert (eap); @@ -189,26 +171,20 @@ fill_connection (EAPMethod *parent, NMConnection *connection, NMSettingSecretFla static void inner_auth_combo_changed_cb (EAPMethodFAST *self) { - EAPMethod *parent = (EAPMethod *) self; - GtkWidget *combo, *vbox; g_autoptr(EAPMethod) eap = NULL; GList *elt, *children; GtkTreeModel *model; GtkTreeIter iter; GtkWidget *eap_widget; - combo = GTK_WIDGET (gtk_builder_get_object (parent->builder, "inner_auth_combo")); - vbox = GTK_WIDGET (gtk_builder_get_object (parent->builder, "inner_auth_box")); - g_assert (vbox); - /* Remove any previous wireless security widgets */ - children = gtk_container_get_children (GTK_CONTAINER (vbox)); + children = gtk_container_get_children (GTK_CONTAINER (self->inner_auth_box)); for (elt = children; elt; elt = g_list_next (elt)) - gtk_container_remove (GTK_CONTAINER (vbox), GTK_WIDGET (elt->data)); + gtk_container_remove (GTK_CONTAINER (self->inner_auth_box), GTK_WIDGET (elt->data)); g_list_free (children); - model = gtk_combo_box_get_model (GTK_COMBO_BOX (combo)); - gtk_combo_box_get_active_iter (GTK_COMBO_BOX (combo), &iter); + model = gtk_combo_box_get_model (self->inner_auth_combo); + gtk_combo_box_get_active_iter (self->inner_auth_combo, &iter); gtk_tree_model_get (model, &iter, I_METHOD_COLUMN, &eap, -1); g_assert (eap); @@ -218,19 +194,17 @@ inner_auth_combo_changed_cb (EAPMethodFAST *self) if (self->size_group) eap_method_add_to_size_group (eap, self->size_group); - gtk_container_add (GTK_CONTAINER (vbox), eap_widget); + gtk_container_add (GTK_CONTAINER (self->inner_auth_box), eap_widget); wireless_security_notify_changed (self->sec_parent); } -static GtkWidget * +static void inner_auth_combo_init (EAPMethodFAST *method, NMConnection *connection, NMSetting8021x *s_8021x, gboolean secrets_only) { - EAPMethod *parent = (EAPMethod *) method; - GtkWidget *combo; g_autoptr(GtkListStore) auth_model = NULL; GtkTreeIter iter; g_autoptr(EAPMethodSimple) em_gtc = NULL; @@ -282,40 +256,29 @@ inner_auth_combo_init (EAPMethodFAST *method, if (phase2_auth && !strcasecmp (phase2_auth, "mschapv2")) active = 1; - combo = GTK_WIDGET (gtk_builder_get_object (parent->builder, "inner_auth_combo")); - g_assert (combo); - - gtk_combo_box_set_model (GTK_COMBO_BOX (combo), GTK_TREE_MODEL (auth_model)); - gtk_combo_box_set_active (GTK_COMBO_BOX (combo), active); + gtk_combo_box_set_model (method->inner_auth_combo, GTK_TREE_MODEL (auth_model)); + gtk_combo_box_set_active (method->inner_auth_combo, active); - g_signal_connect_swapped (combo, "changed", G_CALLBACK (inner_auth_combo_changed_cb), method); - return combo; + g_signal_connect_swapped (method->inner_auth_combo, "changed", G_CALLBACK (inner_auth_combo_changed_cb), method); } static void update_secrets (EAPMethod *parent, NMConnection *connection) { + EAPMethodFAST *self = (EAPMethodFAST *) parent; eap_method_phase2_update_secrets_helper (parent, connection, - GTK_COMBO_BOX (gtk_builder_get_object (parent->builder, "inner_auth_combo")), + self->inner_auth_combo, I_METHOD_COLUMN); } static void pac_toggled_cb (EAPMethodFAST *self) { - GtkWidget *widget; - EAPMethod *parent = (EAPMethod *) self; gboolean enabled = FALSE; - GtkWidget *provision_combo; - - provision_combo = GTK_WIDGET (gtk_builder_get_object (parent->builder, "pac_provision_combo")); - g_return_if_fail (provision_combo); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "pac_provision_check")); - enabled = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)); - - gtk_widget_set_sensitive (provision_combo, enabled); + enabled = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (self->pac_provision_check)); + gtk_widget_set_sensitive (GTK_WIDGET (self->pac_provision_combo), enabled); wireless_security_notify_changed (self->sec_parent); } @@ -334,7 +297,6 @@ eap_method_fast_new (WirelessSecurity *ws_parent, { EAPMethod *parent; EAPMethodFAST *method; - GtkWidget *widget; GtkFileFilter *filter; NMSetting8021x *s_8021x = NULL; const char *filename; @@ -358,13 +320,20 @@ eap_method_fast_new (WirelessSecurity *ws_parent, method->sec_parent = ws_parent; method->is_editor = is_editor; + method->anon_identity_entry = GTK_ENTRY (gtk_builder_get_object (parent->builder, "anon_identity_entry")); + method->anon_identity_label = GTK_LABEL (gtk_builder_get_object (parent->builder, "anon_identity_label")); + method->inner_auth_combo = GTK_COMBO_BOX (gtk_builder_get_object (parent->builder, "inner_auth_combo")); + method->inner_auth_label = GTK_LABEL (gtk_builder_get_object (parent->builder, "inner_auth_label")); + method->inner_auth_box = GTK_BOX (gtk_builder_get_object (parent->builder, "inner_auth_box")); + method->pac_file_button = GTK_FILE_CHOOSER_BUTTON (gtk_builder_get_object (parent->builder, "pac_file_button")); + method->pac_file_label = GTK_LABEL (gtk_builder_get_object (parent->builder, "pac_file_label")); + method->pac_provision_check = GTK_CHECK_BUTTON (gtk_builder_get_object (parent->builder, "pac_provision_check")); + method->pac_provision_combo = GTK_COMBO_BOX (gtk_builder_get_object (parent->builder, "pac_provision_combo")); + if (connection) s_8021x = nm_connection_get_setting_802_1x (connection); - - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "pac_provision_combo")); - g_assert (widget); - gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 0); + gtk_combo_box_set_active (method->pac_provision_combo, 0); if (s_8021x) { const char *fast_prov; @@ -373,67 +342,55 @@ eap_method_fast_new (WirelessSecurity *ws_parent, if (!strcmp (fast_prov, "0")) provisioning_enabled = FALSE; else if (!strcmp (fast_prov, "1")) - gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 0); + gtk_combo_box_set_active (method->pac_provision_combo, 0); else if (!strcmp (fast_prov, "2")) - gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 1); + gtk_combo_box_set_active (method->pac_provision_combo, 1); else if (!strcmp (fast_prov, "3")) - gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 2); + gtk_combo_box_set_active (method->pac_provision_combo, 2); } } - gtk_widget_set_sensitive (widget, provisioning_enabled); - g_signal_connect_swapped (widget, "changed", G_CALLBACK (changed_cb), method); + gtk_widget_set_sensitive (GTK_WIDGET (method->pac_provision_combo), provisioning_enabled); + g_signal_connect_swapped (method->pac_provision_combo, "changed", G_CALLBACK (changed_cb), method); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "pac_provision_check")); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), provisioning_enabled); - g_signal_connect_swapped (widget, "toggled", G_CALLBACK (pac_toggled_cb), method); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (method->pac_provision_check), provisioning_enabled); + g_signal_connect_swapped (method->pac_provision_check, "toggled", G_CALLBACK (pac_toggled_cb), method); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "anon_identity_entry")); if (s_8021x && nm_setting_802_1x_get_anonymous_identity (s_8021x)) - gtk_entry_set_text (GTK_ENTRY (widget), nm_setting_802_1x_get_anonymous_identity (s_8021x)); - g_signal_connect_swapped (widget, "changed", G_CALLBACK (changed_cb), method); + gtk_entry_set_text (method->anon_identity_entry, nm_setting_802_1x_get_anonymous_identity (s_8021x)); + g_signal_connect_swapped (method->anon_identity_entry, "changed", G_CALLBACK (changed_cb), method); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "pac_file_button")); - g_assert (widget); - gtk_file_chooser_set_local_only (GTK_FILE_CHOOSER (widget), TRUE); - gtk_file_chooser_button_set_title (GTK_FILE_CHOOSER_BUTTON (widget), + gtk_file_chooser_set_local_only (GTK_FILE_CHOOSER (method->pac_file_button), TRUE); + gtk_file_chooser_button_set_title (method->pac_file_button, _("Choose a PAC file")); - g_signal_connect_swapped (widget, "selection-changed", G_CALLBACK (changed_cb), method); + g_signal_connect_swapped (method->pac_file_button, "selection-changed", G_CALLBACK (changed_cb), method); filter = gtk_file_filter_new (); gtk_file_filter_add_pattern (filter, "*.pac"); gtk_file_filter_set_name (filter, _("PAC files (*.pac)")); - gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (widget), filter); + gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (method->pac_file_button), filter); filter = gtk_file_filter_new (); gtk_file_filter_add_pattern (filter, "*"); gtk_file_filter_set_name (filter, _("All files")); - gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (widget), filter); + gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (method->pac_file_button), filter); if (connection && s_8021x) { filename = nm_setting_802_1x_get_pac_file (s_8021x); if (filename) - gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (widget), filename); + gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (method->pac_file_button), filename); } - widget = inner_auth_combo_init (method, connection, s_8021x, secrets_only); + inner_auth_combo_init (method, connection, s_8021x, secrets_only); inner_auth_combo_changed_cb (method); if (secrets_only) { - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "anon_identity_label")); - gtk_widget_hide (widget); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "anon_identity_entry")); - gtk_widget_hide (widget); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "pac_provision_check")); - gtk_widget_hide (widget); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "pac_provision_combo")); - gtk_widget_hide (widget); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "pac_file_label")); - gtk_widget_hide (widget); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "pac_file_button")); - gtk_widget_hide (widget); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "inner_auth_label")); - gtk_widget_hide (widget); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "inner_auth_combo")); - gtk_widget_hide (widget); + gtk_widget_hide (GTK_WIDGET (method->anon_identity_label)); + gtk_widget_hide (GTK_WIDGET (method->anon_identity_entry)); + gtk_widget_hide (GTK_WIDGET (method->pac_provision_check)); + gtk_widget_hide (GTK_WIDGET (method->pac_provision_combo)); + gtk_widget_hide (GTK_WIDGET (method->pac_file_label)); + gtk_widget_hide (GTK_WIDGET (method->pac_file_button)); + gtk_widget_hide (GTK_WIDGET (method->inner_auth_label)); + gtk_widget_hide (GTK_WIDGET (method->inner_auth_combo)); } return method; diff --git a/panels/network/wireless-security/eap-method-leap.c b/panels/network/wireless-security/eap-method-leap.c index 43ea0e021..2466625a7 100644 --- a/panels/network/wireless-security/eap-method-leap.c +++ b/panels/network/wireless-security/eap-method-leap.c @@ -34,24 +34,23 @@ struct _EAPMethodLEAP { EAPMethod parent; + GtkGrid *grid; + GtkEntry *password_entry; + GtkLabel *password_label; + GtkCheckButton *show_password_check; + GtkEntry *username_entry; + GtkLabel *username_label; + WirelessSecurity *ws_parent; gboolean editing_connection; - - GtkEntry *username_entry; - GtkEntry *password_entry; - GtkToggleButton *show_password; }; static void show_toggled_cb (EAPMethodLEAP *method) { - EAPMethod *parent = (EAPMethod *) method; - GtkWidget *widget; gboolean visible; - - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "show_password_check")); - visible = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)); + visible = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (method->show_password_check)); gtk_entry_set_visibility (method->password_entry, visible); } @@ -86,15 +85,9 @@ validate (EAPMethod *parent, GError **error) static void add_to_size_group (EAPMethod *parent, GtkSizeGroup *group) { - GtkWidget *widget; - - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "username_label")); - g_assert (widget); - gtk_size_group_add_widget (group, widget); - - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "password_label")); - g_assert (widget); - gtk_size_group_add_widget (group, widget); + EAPMethodLEAP *self = (EAPMethodLEAP *) parent; + gtk_size_group_add_widget (group, GTK_WIDGET (self->username_label)); + gtk_size_group_add_widget (group, GTK_WIDGET (self->password_label)); } static void @@ -103,7 +96,6 @@ fill_connection (EAPMethod *parent, NMConnection *connection, NMSettingSecretFla EAPMethodLEAP *method = (EAPMethodLEAP *) parent; NMSetting8021x *s_8021x; NMSettingSecretFlags secret_flags; - GtkWidget *passwd_entry; s_8021x = nm_connection_get_setting_802_1x (connection); g_assert (s_8021x); @@ -113,25 +105,23 @@ fill_connection (EAPMethod *parent, NMConnection *connection, NMSettingSecretFla g_object_set (s_8021x, NM_SETTING_802_1X_IDENTITY, gtk_entry_get_text (method->username_entry), NULL); g_object_set (s_8021x, NM_SETTING_802_1X_PASSWORD, gtk_entry_get_text (method->password_entry), NULL); - passwd_entry = GTK_WIDGET (gtk_builder_get_object (parent->builder, "password_entry")); - g_assert (passwd_entry); - /* Save 802.1X password flags to the connection */ - secret_flags = nma_utils_menu_to_secret_flags (passwd_entry); + secret_flags = nma_utils_menu_to_secret_flags (GTK_WIDGET (method->password_entry)); nm_setting_set_secret_flags (NM_SETTING (s_8021x), parent->password_flags_name, secret_flags, NULL); /* Update secret flags and popup when editing the connection */ if (method->editing_connection) - nma_utils_update_password_storage (passwd_entry, secret_flags, + nma_utils_update_password_storage (GTK_WIDGET (method->password_entry), secret_flags, NM_SETTING (s_8021x), parent->password_flags_name); } static void update_secrets (EAPMethod *parent, NMConnection *connection) { + EAPMethodLEAP *self = (EAPMethodLEAP *) parent; helper_fill_secret_entry (connection, - GTK_ENTRY (gtk_builder_get_object (parent->builder, "password_entry")), + self->password_entry, NM_TYPE_SETTING_802_1X, (HelperSecretFunc) nm_setting_802_1x_get_password); } @@ -151,7 +141,7 @@ set_userpass_ui (EAPMethodLEAP *method) else gtk_entry_set_text (method->password_entry, ""); - gtk_toggle_button_set_active (method->show_password, wireless_security_get_show_password (method->ws_parent)); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (method->show_password_check), wireless_security_get_show_password (method->ws_parent)); } static void @@ -167,22 +157,18 @@ widgets_unrealized (EAPMethodLEAP *method) gtk_entry_get_text (method->username_entry), gtk_entry_get_text (method->password_entry), (gboolean) -1, - gtk_toggle_button_get_active (method->show_password)); + gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (method->show_password_check))); } static void destroy (EAPMethod *parent) { EAPMethodLEAP *method = (EAPMethodLEAP *) parent; - GtkWidget *widget; - - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "grid")); - g_assert (widget); - g_signal_handlers_disconnect_by_data (widget, method); + g_signal_handlers_disconnect_by_data (method->grid, method); g_signal_handlers_disconnect_by_data (method->username_entry, method->ws_parent); g_signal_handlers_disconnect_by_data (method->password_entry, method->ws_parent); - g_signal_handlers_disconnect_by_data (method->show_password, method); + g_signal_handlers_disconnect_by_data (method->show_password_check, method); } static void @@ -198,7 +184,6 @@ eap_method_leap_new (WirelessSecurity *ws_parent, { EAPMethodLEAP *method; EAPMethod *parent; - GtkWidget *widget; NMSetting8021x *s_8021x = NULL; parent = eap_method_init (sizeof (EAPMethodLEAP), @@ -219,34 +204,30 @@ eap_method_leap_new (WirelessSecurity *ws_parent, method->editing_connection = secrets_only ? FALSE : TRUE; method->ws_parent = ws_parent; - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "grid")); - g_assert (widget); - g_signal_connect_swapped (widget, "realize", G_CALLBACK (widgets_realized), method); - g_signal_connect_swapped (widget, "unrealize", G_CALLBACK (widgets_unrealized), method); + method->grid = GTK_GRID (gtk_builder_get_object (parent->builder, "grid")); + method->password_entry = GTK_ENTRY (gtk_builder_get_object (parent->builder, "password_entry")); + method->password_label = GTK_LABEL (gtk_builder_get_object (parent->builder, "password_label")); + method->show_password_check = GTK_CHECK_BUTTON (gtk_builder_get_object (parent->builder, "show_password_check")); + method->username_entry = GTK_ENTRY (gtk_builder_get_object (parent->builder, "username_entry")); + method->username_label = GTK_LABEL (gtk_builder_get_object (parent->builder, "username_label")); + + g_signal_connect_swapped (method->grid, "realize", G_CALLBACK (widgets_realized), method); + g_signal_connect_swapped (method->grid, "unrealize", G_CALLBACK (widgets_unrealized), method); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "username_entry")); - g_assert (widget); - method->username_entry = GTK_ENTRY (widget); - g_signal_connect_swapped (widget, "changed", G_CALLBACK (changed_cb), method); + g_signal_connect_swapped (method->username_entry, "changed", G_CALLBACK (changed_cb), method); if (secrets_only) - gtk_widget_set_sensitive (widget, FALSE); + gtk_widget_set_sensitive (GTK_WIDGET (method->username_entry), FALSE); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "password_entry")); - g_assert (widget); - method->password_entry = GTK_ENTRY (widget); - g_signal_connect_swapped (widget, "changed", G_CALLBACK (changed_cb), method); + g_signal_connect_swapped (method->password_entry, "changed", G_CALLBACK (changed_cb), method); /* Create password-storage popup menu for password entry under entry's secondary icon */ if (connection) s_8021x = nm_connection_get_setting_802_1x (connection); - nma_utils_setup_password_storage (widget, 0, (NMSetting *) s_8021x, parent->password_flags_name, + nma_utils_setup_password_storage (GTK_WIDGET (method->password_entry), 0, (NMSetting *) s_8021x, parent->password_flags_name, FALSE, secrets_only); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "show_password_check")); - g_assert (widget); - method->show_password = GTK_TOGGLE_BUTTON (widget); - g_signal_connect_swapped (widget, "toggled", G_CALLBACK (show_toggled_cb), method); + g_signal_connect_swapped (method->show_password_check, "toggled", G_CALLBACK (show_toggled_cb), method); /* Initialize the UI fields with the security settings from method->ws_parent. * This will be done again when the widget gets realized. It must be done here as well, diff --git a/panels/network/wireless-security/eap-method-peap.c b/panels/network/wireless-security/eap-method-peap.c index 8a4095b76..a202ad3b8 100644 --- a/panels/network/wireless-security/eap-method-peap.c +++ b/panels/network/wireless-security/eap-method-peap.c @@ -35,6 +35,17 @@ struct _EAPMethodPEAP { EAPMethod parent; + GtkEntry *anon_identity_entry; + GtkLabel *anon_identity_label; + GtkFileChooserButton *ca_cert_button; + GtkLabel *ca_cert_label; + GtkCheckButton *ca_cert_not_required_check; + GtkBox *inner_auth_box; + GtkComboBox *inner_auth_combo; + GtkLabel *inner_auth_label; + GtkComboBox *version_combo; + GtkLabel *version_label; + GtkSizeGroup *size_group; WirelessSecurity *sec_parent; gboolean is_editor; @@ -52,29 +63,26 @@ destroy (EAPMethod *parent) static gboolean validate (EAPMethod *parent, GError **error) { - GtkWidget *widget; + EAPMethodPEAP *self = (EAPMethodPEAP *) parent; GtkTreeModel *model; GtkTreeIter iter; g_autoptr(EAPMethod) eap = NULL; gboolean valid = FALSE; g_autoptr(GError) local_error = NULL; - if (!eap_method_validate_filepicker (GTK_FILE_CHOOSER (gtk_builder_get_object (parent->builder, "ca_cert_button")), + if (!eap_method_validate_filepicker (GTK_FILE_CHOOSER (self->ca_cert_button), TYPE_CA_CERT, NULL, NULL, &local_error)) { g_set_error (error, NMA_ERROR, NMA_ERROR_GENERIC, _("invalid EAP-PEAP CA certificate: %s"), local_error->message); return FALSE; } - if (eap_method_ca_cert_required (GTK_TOGGLE_BUTTON (gtk_builder_get_object (parent->builder, "ca_cert_not_required_check")), - GTK_FILE_CHOOSER (gtk_builder_get_object (parent->builder, "ca_cert_button")))) { + if (eap_method_ca_cert_required (GTK_TOGGLE_BUTTON (self->ca_cert_not_required_check), + GTK_FILE_CHOOSER (self->ca_cert_button))) { g_set_error_literal (error, NMA_ERROR, NMA_ERROR_GENERIC, _("invalid EAP-PEAP CA certificate: no certificate specified")); return FALSE; } - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "inner_auth_combo")); - g_assert (widget); - - model = gtk_combo_box_get_model (GTK_COMBO_BOX (widget)); - gtk_combo_box_get_active_iter (GTK_COMBO_BOX (widget), &iter); + model = gtk_combo_box_get_model (self->inner_auth_combo); + gtk_combo_box_get_active_iter (self->inner_auth_combo, &iter); gtk_tree_model_get (model, &iter, I_METHOD_COLUMN, &eap, -1); g_assert (eap); valid = eap_method_validate (eap, error); @@ -84,10 +92,8 @@ validate (EAPMethod *parent, GError **error) static void ca_cert_not_required_toggled (EAPMethodPEAP *self) { - EAPMethod *parent = (EAPMethod *) self; - - eap_method_ca_cert_not_required_toggled (GTK_TOGGLE_BUTTON (gtk_builder_get_object (parent->builder, "ca_cert_not_required_check")), - GTK_FILE_CHOOSER (gtk_builder_get_object (parent->builder, "ca_cert_button"))); + eap_method_ca_cert_not_required_toggled (GTK_TOGGLE_BUTTON (self->ca_cert_not_required_check), + GTK_FILE_CHOOSER (self->ca_cert_button)); wireless_security_notify_changed (self->sec_parent); } @@ -95,7 +101,6 @@ static void add_to_size_group (EAPMethod *parent, GtkSizeGroup *group) { EAPMethodPEAP *method = (EAPMethodPEAP *) parent; - GtkWidget *widget; GtkTreeModel *model; GtkTreeIter iter; g_autoptr(EAPMethod) eap = NULL; @@ -104,31 +109,14 @@ add_to_size_group (EAPMethod *parent, GtkSizeGroup *group) g_object_unref (method->size_group); method->size_group = g_object_ref (group); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "ca_cert_not_required_check")); - g_assert (widget); - gtk_size_group_add_widget (group, widget); - - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "anon_identity_label")); - g_assert (widget); - gtk_size_group_add_widget (group, widget); - - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "ca_cert_label")); - g_assert (widget); - gtk_size_group_add_widget (group, widget); - - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "version_label")); - g_assert (widget); - gtk_size_group_add_widget (group, widget); - - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "inner_auth_label")); - g_assert (widget); - gtk_size_group_add_widget (group, widget); + gtk_size_group_add_widget (group, GTK_WIDGET (method->ca_cert_not_required_check)); + gtk_size_group_add_widget (group, GTK_WIDGET (method->anon_identity_label)); + gtk_size_group_add_widget (group, GTK_WIDGET (method->ca_cert_label)); + gtk_size_group_add_widget (group, GTK_WIDGET (method->version_label)); + gtk_size_group_add_widget (group, GTK_WIDGET (method->inner_auth_label)); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "inner_auth_combo")); - g_assert (widget); - - model = gtk_combo_box_get_model (GTK_COMBO_BOX (widget)); - gtk_combo_box_get_active_iter (GTK_COMBO_BOX (widget), &iter); + model = gtk_combo_box_get_model (method->inner_auth_combo); + gtk_combo_box_get_active_iter (method->inner_auth_combo, &iter); gtk_tree_model_get (model, &iter, I_METHOD_COLUMN, &eap, -1); g_assert (eap); eap_method_add_to_size_group (eap, group); @@ -137,9 +125,9 @@ add_to_size_group (EAPMethod *parent, GtkSizeGroup *group) static void fill_connection (EAPMethod *parent, NMConnection *connection, NMSettingSecretFlags flags) { + EAPMethodPEAP *self = (EAPMethodPEAP *) parent; NMSetting8021x *s_8021x; NMSetting8021xCKFormat format = NM_SETTING_802_1X_CK_FORMAT_UNKNOWN; - GtkWidget *widget; const char *text; g_autofree gchar *filename = NULL; g_autoptr(EAPMethod) eap = NULL; @@ -154,23 +142,18 @@ fill_connection (EAPMethod *parent, NMConnection *connection, NMSettingSecretFla nm_setting_802_1x_add_eap_method (s_8021x, "peap"); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "anon_identity_entry")); - g_assert (widget); - text = gtk_entry_get_text (GTK_ENTRY (widget)); + text = gtk_entry_get_text (self->anon_identity_entry); if (text && strlen (text)) g_object_set (s_8021x, NM_SETTING_802_1X_ANONYMOUS_IDENTITY, text, NULL); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "ca_cert_button")); - g_assert (widget); - filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (widget)); + filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (self->ca_cert_button)); if (!nm_setting_802_1x_set_ca_cert (s_8021x, filename, NM_SETTING_802_1X_CK_SCHEME_PATH, &format, &error)) { g_warning ("Couldn't read CA certificate '%s': %s", filename, error ? error->message : "(unknown)"); ca_cert_error = TRUE; } eap_method_ca_cert_ignore_set (parent, connection, filename, ca_cert_error); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "version_combo")); - peapver_active = gtk_combo_box_get_active (GTK_COMBO_BOX (widget)); + peapver_active = gtk_combo_box_get_active (self->version_combo); switch (peapver_active) { case 1: /* PEAP v0 */ g_object_set (G_OBJECT (s_8021x), NM_SETTING_802_1X_PHASE1_PEAPVER, "0", NULL); @@ -183,36 +166,30 @@ fill_connection (EAPMethod *parent, NMConnection *connection, NMSettingSecretFla break; } - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "inner_auth_combo")); - model = gtk_combo_box_get_model (GTK_COMBO_BOX (widget)); - gtk_combo_box_get_active_iter (GTK_COMBO_BOX (widget), &iter); + model = gtk_combo_box_get_model (self->inner_auth_combo); + gtk_combo_box_get_active_iter (self->inner_auth_combo, &iter); gtk_tree_model_get (model, &iter, I_METHOD_COLUMN, &eap, -1); g_assert (eap); eap_method_fill_connection (eap, connection, flags); } + static void inner_auth_combo_changed_cb (EAPMethodPEAP *self) { - EAPMethod *parent = (EAPMethod *) self; - GtkWidget *combo, *box; g_autoptr(EAPMethod) eap = NULL; GList *elt, *children; GtkTreeModel *model; GtkTreeIter iter; GtkWidget *eap_widget; - box = GTK_WIDGET (gtk_builder_get_object (parent->builder, "inner_auth_box")); - g_assert (box); - /* Remove any previous wireless security widgets */ - children = gtk_container_get_children (GTK_CONTAINER (box)); + children = gtk_container_get_children (GTK_CONTAINER (self->inner_auth_box)); for (elt = children; elt; elt = g_list_next (elt)) - gtk_container_remove (GTK_CONTAINER (box), GTK_WIDGET (elt->data)); + gtk_container_remove (GTK_CONTAINER (self->inner_auth_box), GTK_WIDGET (elt->data)); - combo = GTK_WIDGET (gtk_builder_get_object (parent->builder, "inner_auth_combo")); - model = gtk_combo_box_get_model (GTK_COMBO_BOX (combo)); - gtk_combo_box_get_active_iter (GTK_COMBO_BOX (combo), &iter); + model = gtk_combo_box_get_model (self->inner_auth_combo); + gtk_combo_box_get_active_iter (self->inner_auth_combo, &iter); gtk_tree_model_get (model, &iter, I_METHOD_COLUMN, &eap, -1); g_assert (eap); @@ -222,19 +199,17 @@ inner_auth_combo_changed_cb (EAPMethodPEAP *self) if (self->size_group) eap_method_add_to_size_group (eap, self->size_group); - gtk_container_add (GTK_CONTAINER (box), eap_widget); + gtk_container_add (GTK_CONTAINER (self->inner_auth_box), eap_widget); wireless_security_notify_changed (self->sec_parent); } -static GtkWidget * +static void inner_auth_combo_init (EAPMethodPEAP *method, NMConnection *connection, NMSetting8021x *s_8021x, gboolean secrets_only) { - EAPMethod *parent = (EAPMethod *) method; - GtkWidget *combo; g_autoptr(GtkListStore) auth_model = NULL; GtkTreeIter iter; g_autoptr(EAPMethodSimple) em_mschap_v2 = NULL; @@ -301,22 +276,19 @@ inner_auth_combo_init (EAPMethodPEAP *method, if (phase2_auth && !strcasecmp (phase2_auth, "gtc")) active = 2; - combo = GTK_WIDGET (gtk_builder_get_object (parent->builder, "inner_auth_combo")); - g_assert (combo); - - gtk_combo_box_set_model (GTK_COMBO_BOX (combo), GTK_TREE_MODEL (auth_model)); - gtk_combo_box_set_active (GTK_COMBO_BOX (combo), active); + gtk_combo_box_set_model (method->inner_auth_combo, GTK_TREE_MODEL (auth_model)); + gtk_combo_box_set_active (method->inner_auth_combo, active); - g_signal_connect_swapped (combo, "changed", G_CALLBACK (inner_auth_combo_changed_cb), method); - return combo; + g_signal_connect_swapped (method->inner_auth_combo, "changed", G_CALLBACK (inner_auth_combo_changed_cb), method); } static void update_secrets (EAPMethod *parent, NMConnection *connection) { + EAPMethodPEAP *self = (EAPMethodPEAP *) parent; eap_method_phase2_update_secrets_helper (parent, connection, - GTK_COMBO_BOX (gtk_builder_get_object (parent->builder, "inner_auth_combo")), + self->inner_auth_combo, I_METHOD_COLUMN); } @@ -334,7 +306,6 @@ eap_method_peap_new (WirelessSecurity *ws_parent, { EAPMethod *parent; EAPMethodPEAP *method; - GtkWidget *widget, *widget_ca_not_required_checkbox; GtkFileFilter *filter; NMSetting8021x *s_8021x = NULL; const char *filename; @@ -357,39 +328,43 @@ eap_method_peap_new (WirelessSecurity *ws_parent, method->sec_parent = ws_parent; method->is_editor = is_editor; + method->anon_identity_entry = GTK_ENTRY (gtk_builder_get_object (parent->builder, "anon_identity_entry")); + method->anon_identity_label = GTK_LABEL (gtk_builder_get_object (parent->builder, "anon_identity_label")); + method->ca_cert_button = GTK_FILE_CHOOSER_BUTTON (gtk_builder_get_object (parent->builder, "ca_cert_button")); + method->ca_cert_label = GTK_LABEL (gtk_builder_get_object (parent->builder, "ca_cert_label")); + method->ca_cert_not_required_check = GTK_CHECK_BUTTON (gtk_builder_get_object (parent->builder, "ca_cert_not_required_check")); + method->inner_auth_combo = GTK_COMBO_BOX (gtk_builder_get_object (parent->builder, "inner_auth_combo")); + method->inner_auth_label = GTK_LABEL (gtk_builder_get_object (parent->builder, "inner_auth_label")); + method->inner_auth_box = GTK_BOX (gtk_builder_get_object (parent->builder, "inner_auth_box")); + method->version_combo = GTK_COMBO_BOX (gtk_builder_get_object (parent->builder, "version_combo")); + method->version_label = GTK_LABEL (gtk_builder_get_object (parent->builder, "version_label")); + if (connection) s_8021x = nm_connection_get_setting_802_1x (connection); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "ca_cert_not_required_check")); - g_assert (widget); - g_signal_connect_swapped (widget, "toggled", G_CALLBACK (ca_cert_not_required_toggled), method); - widget_ca_not_required_checkbox = widget; + g_signal_connect_swapped (method->ca_cert_not_required_check, "toggled", G_CALLBACK (ca_cert_not_required_toggled), method); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "ca_cert_button")); - g_assert (widget); - gtk_file_chooser_set_local_only (GTK_FILE_CHOOSER (widget), TRUE); - gtk_file_chooser_button_set_title (GTK_FILE_CHOOSER_BUTTON (widget), + gtk_file_chooser_set_local_only (GTK_FILE_CHOOSER (method->ca_cert_button), TRUE); + gtk_file_chooser_button_set_title (method->ca_cert_button, _("Choose a Certificate Authority certificate")); - g_signal_connect_swapped (widget, "selection-changed", G_CALLBACK (changed_cb), method); + g_signal_connect_swapped (method->ca_cert_button, "selection-changed", G_CALLBACK (changed_cb), method); filter = eap_method_default_file_chooser_filter_new (FALSE); - gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (widget), filter); + gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (method->ca_cert_button), filter); if (connection && s_8021x) { filename = NULL; if (nm_setting_802_1x_get_ca_cert_scheme (s_8021x) == NM_SETTING_802_1X_CK_SCHEME_PATH) { filename = nm_setting_802_1x_get_ca_cert_path (s_8021x); if (filename) - gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (widget), filename); + gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (method->ca_cert_button), filename); } - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget_ca_not_required_checkbox), + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (method->ca_cert_not_required_check), !filename && eap_method_ca_cert_ignore_get (parent, connection)); } - widget = inner_auth_combo_init (method, connection, s_8021x, secrets_only); + inner_auth_combo_init (method, connection, s_8021x, secrets_only); inner_auth_combo_changed_cb (method); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "version_combo")); - g_assert (widget); - gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 0); + gtk_combo_box_set_active (method->version_combo, 0); if (s_8021x) { const char *peapver; @@ -397,37 +372,27 @@ eap_method_peap_new (WirelessSecurity *ws_parent, if (peapver) { /* Index 0 is "Automatic" */ if (!strcmp (peapver, "0")) - gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 1); + gtk_combo_box_set_active (method->version_combo, 1); else if (!strcmp (peapver, "1")) - gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 2); + gtk_combo_box_set_active (method->version_combo, 2); } } - g_signal_connect_swapped (widget, "changed", G_CALLBACK (changed_cb), method); + g_signal_connect_swapped (method->version_combo, "changed", G_CALLBACK (changed_cb), method); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "anon_identity_entry")); if (s_8021x && nm_setting_802_1x_get_anonymous_identity (s_8021x)) - gtk_entry_set_text (GTK_ENTRY (widget), nm_setting_802_1x_get_anonymous_identity (s_8021x)); - g_signal_connect_swapped (widget, "changed", G_CALLBACK (changed_cb), method); + gtk_entry_set_text (method->anon_identity_entry, nm_setting_802_1x_get_anonymous_identity (s_8021x)); + g_signal_connect_swapped (method->anon_identity_entry, "changed", G_CALLBACK (changed_cb), method); if (secrets_only) { - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "anon_identity_label")); - gtk_widget_hide (widget); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "anon_identity_entry")); - gtk_widget_hide (widget); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "ca_cert_label")); - gtk_widget_hide (widget); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "ca_cert_button")); - gtk_widget_hide (widget); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "ca_cert_not_required_check")); - gtk_widget_hide (widget); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "inner_auth_label")); - gtk_widget_hide (widget); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "inner_auth_combo")); - gtk_widget_hide (widget); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "version_label")); - gtk_widget_hide (widget); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "version_combo")); - gtk_widget_hide (widget); + gtk_widget_hide (GTK_WIDGET (method->anon_identity_label)); + gtk_widget_hide (GTK_WIDGET (method->anon_identity_entry)); + gtk_widget_hide (GTK_WIDGET (method->ca_cert_label)); + gtk_widget_hide (GTK_WIDGET (method->ca_cert_button)); + gtk_widget_hide (GTK_WIDGET (method->ca_cert_not_required_check)); + gtk_widget_hide (GTK_WIDGET (method->inner_auth_label)); + gtk_widget_hide (GTK_WIDGET (method->inner_auth_combo)); + gtk_widget_hide (GTK_WIDGET (method->version_label)); + gtk_widget_hide (GTK_WIDGET (method->version_combo)); } return method; diff --git a/panels/network/wireless-security/eap-method-simple.c b/panels/network/wireless-security/eap-method-simple.c index 434d2f6da..8c4ca4edc 100644 --- a/panels/network/wireless-security/eap-method-simple.c +++ b/panels/network/wireless-security/eap-method-simple.c @@ -34,26 +34,27 @@ struct _EAPMethodSimple { EAPMethod parent; + GtkGrid *grid; + GtkEntry *password_entry; + GtkLabel *password_label; + GtkToggleButton *show_password_check; + GtkEntry *username_entry; + GtkLabel *username_label; + WirelessSecurity *ws_parent; EAPMethodSimpleType type; EAPMethodSimpleFlags flags; - GtkEntry *username_entry; - GtkEntry *password_entry; - GtkToggleButton *show_password; guint idle_func_id; }; static void show_toggled_cb (EAPMethodSimple *self) { - EAPMethod *parent = (EAPMethod *) self; - GtkWidget *widget; gboolean visible; - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "show_password_check")); - visible = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)); + visible = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (self->show_password_check)); gtk_entry_set_visibility (self->password_entry, visible); } @@ -100,15 +101,9 @@ validate (EAPMethod *parent, GError **error) static void add_to_size_group (EAPMethod *parent, GtkSizeGroup *group) { - GtkWidget *widget; - - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "username_label")); - g_assert (widget); - gtk_size_group_add_widget (group, widget); - - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "password_label")); - g_assert (widget); - gtk_size_group_add_widget (group, widget); + EAPMethodSimple *self = (EAPMethodSimple *) parent; + gtk_size_group_add_widget (group, GTK_WIDGET (self->username_label)); + gtk_size_group_add_widget (group, GTK_WIDGET (self->password_label)); } typedef struct { @@ -180,10 +175,7 @@ fill_connection (EAPMethod *parent, NMConnection *connection, NMSettingSecretFla /* Update secret flags and popup when editing the connection */ if (!(method->flags & EAP_METHOD_SIMPLE_FLAG_SECRETS_ONLY)) { - GtkWidget *passwd_entry = GTK_WIDGET (gtk_builder_get_object (parent->builder, "password_entry")); - g_assert (passwd_entry); - - nma_utils_update_password_storage (passwd_entry, flags, + nma_utils_update_password_storage (GTK_WIDGET (method->password_entry), flags, NM_SETTING (s_8021x), parent->password_flags_name); } } @@ -191,8 +183,9 @@ fill_connection (EAPMethod *parent, NMConnection *connection, NMSettingSecretFla static void update_secrets (EAPMethod *parent, NMConnection *connection) { + EAPMethodSimple *self = (EAPMethodSimple *) parent; helper_fill_secret_entry (connection, - GTK_ENTRY (gtk_builder_get_object (parent->builder, "password_entry")), + self->password_entry, NM_TYPE_SETTING_802_1X, (HelperSecretFunc) nm_setting_802_1x_get_password); } @@ -216,10 +209,10 @@ password_storage_changed (EAPMethodSimple *method) if (always_ask && !secrets_only) { /* we always clear this button and do not restore it * (because we want to hide the password). */ - gtk_toggle_button_set_active (method->show_password, FALSE); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (method->show_password_check), FALSE); } - gtk_widget_set_sensitive (GTK_WIDGET (method->show_password), + gtk_widget_set_sensitive (GTK_WIDGET (method->show_password_check), !always_ask || secrets_only); if (!method->idle_func_id) @@ -241,7 +234,7 @@ set_userpass_ui (EAPMethodSimple *method) else gtk_entry_set_text (method->password_entry, ""); - gtk_toggle_button_set_active (method->show_password, wireless_security_get_show_password (method->ws_parent)); + gtk_toggle_button_set_active (method->show_password_check, wireless_security_get_show_password (method->ws_parent)); } static void @@ -257,23 +250,19 @@ widgets_unrealized (EAPMethodSimple *method) gtk_entry_get_text (method->username_entry), gtk_entry_get_text (method->password_entry), always_ask_selected (method->password_entry), - gtk_toggle_button_get_active (method->show_password)); + gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (method->show_password_check))); } static void destroy (EAPMethod *parent) { EAPMethodSimple *method = (EAPMethodSimple *) parent; - GtkWidget *widget; - - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "grid")); - g_assert (widget); - g_signal_handlers_disconnect_by_data (widget, method); + g_signal_handlers_disconnect_by_data (method->grid, method); g_signal_handlers_disconnect_by_data (method->username_entry, method->ws_parent); g_signal_handlers_disconnect_by_data (method->password_entry, method->ws_parent); g_signal_handlers_disconnect_by_data (method->password_entry, method); - g_signal_handlers_disconnect_by_data (method->show_password, method); + g_signal_handlers_disconnect_by_data (method->show_password_check, method); nm_clear_g_source (&method->idle_func_id); } @@ -292,7 +281,6 @@ eap_method_simple_new (WirelessSecurity *ws_parent, { EAPMethod *parent; EAPMethodSimple *method; - GtkWidget *widget; NMSetting8021x *s_8021x = NULL; parent = eap_method_init (sizeof (EAPMethodSimple), @@ -315,36 +303,32 @@ eap_method_simple_new (WirelessSecurity *ws_parent, method->type = type; g_assert (type < EAP_METHOD_SIMPLE_TYPE_LAST); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "grid")); - g_assert (widget); - g_signal_connect_swapped (widget, "realize", G_CALLBACK (widgets_realized), method); - g_signal_connect_swapped (widget, "unrealize", G_CALLBACK (widgets_unrealized), method); + method->grid = GTK_GRID (gtk_builder_get_object (parent->builder, "grid")); + method->password_label = GTK_LABEL (gtk_builder_get_object (parent->builder, "password_label")); + method->username_label = GTK_LABEL (gtk_builder_get_object (parent->builder, "username_label")); + method->password_entry = GTK_ENTRY (gtk_builder_get_object (parent->builder, "password_entry")); + method->show_password_check = GTK_TOGGLE_BUTTON (gtk_builder_get_object (parent->builder, "show_password_check")); + method->username_entry = GTK_ENTRY (gtk_builder_get_object (parent->builder, "username_entry")); + + g_signal_connect_swapped (method->grid, "realize", G_CALLBACK (widgets_realized), method); + g_signal_connect_swapped (method->grid, "unrealize", G_CALLBACK (widgets_unrealized), method); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "username_entry")); - g_assert (widget); - method->username_entry = GTK_ENTRY (widget); - g_signal_connect_swapped (widget, "changed", G_CALLBACK (changed_cb), method); + g_signal_connect_swapped (method->username_entry, "changed", G_CALLBACK (changed_cb), method); if (method->flags & EAP_METHOD_SIMPLE_FLAG_SECRETS_ONLY) - gtk_widget_set_sensitive (widget, FALSE); + gtk_widget_set_sensitive (GTK_WIDGET (method->username_entry), FALSE); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "password_entry")); - g_assert (widget); - method->password_entry = GTK_ENTRY (widget); - g_signal_connect_swapped (widget, "changed", G_CALLBACK (changed_cb), method); + g_signal_connect_swapped (method->password_entry, "changed", G_CALLBACK (changed_cb), method); /* Create password-storage popup menu for password entry under entry's secondary icon */ if (connection) s_8021x = nm_connection_get_setting_802_1x (connection); - nma_utils_setup_password_storage (widget, 0, (NMSetting *) s_8021x, parent->password_flags_name, + nma_utils_setup_password_storage (GTK_WIDGET (method->password_entry), 0, (NMSetting *) s_8021x, parent->password_flags_name, FALSE, flags & EAP_METHOD_SIMPLE_FLAG_SECRETS_ONLY); g_signal_connect_swapped (method->password_entry, "notify::secondary-icon-name", G_CALLBACK (password_storage_changed), method); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "show_password_check")); - g_assert (widget); - method->show_password = GTK_TOGGLE_BUTTON (widget); - g_signal_connect_swapped (widget, "toggled", G_CALLBACK (show_toggled_cb), method); + g_signal_connect_swapped (method->show_password_check, "toggled", G_CALLBACK (show_toggled_cb), method); /* Initialize the UI fields with the security settings from method->ws_parent. * This will be done again when the widget gets realized. It must be done here as well, diff --git a/panels/network/wireless-security/eap-method-tls.c b/panels/network/wireless-security/eap-method-tls.c index 5d261ddb8..3e722b844 100644 --- a/panels/network/wireless-security/eap-method-tls.c +++ b/panels/network/wireless-security/eap-method-tls.c @@ -34,6 +34,19 @@ struct _EAPMethodTLS { EAPMethod parent; + GtkFileChooserButton *ca_cert_button; + GtkLabel *ca_cert_label; + GtkCheckButton *ca_cert_not_required_check; + GtkEntry *identity_entry; + GtkLabel *identity_label; + GtkFileChooserButton *private_key_button; + GtkLabel *private_key_label; + GtkEntry *private_key_password_entry; + GtkLabel *private_key_password_label; + GtkCheckButton *show_password_check; + GtkFileChooserButton *user_cert_button; + GtkLabel *user_cert_label; + WirelessSecurity *sec_parent; gboolean editing_connection; }; @@ -42,60 +55,51 @@ struct _EAPMethodTLS { static void show_toggled_cb (EAPMethodTLS *self) { - EAPMethod *method = (EAPMethod *) self; - GtkWidget *widget; gboolean visible; - widget = GTK_WIDGET (gtk_builder_get_object (method->builder, "show_password_check")); - visible = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)); - - widget = GTK_WIDGET (gtk_builder_get_object (method->builder, "private_key_password_entry")); - gtk_entry_set_visibility (GTK_ENTRY (widget), visible); + visible = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (self->show_password_check)); + gtk_entry_set_visibility (self->private_key_password_entry, visible); } static gboolean validate (EAPMethod *parent, GError **error) { + EAPMethodTLS *self = (EAPMethodTLS *) parent; NMSetting8021xCKFormat format = NM_SETTING_802_1X_CK_FORMAT_UNKNOWN; - GtkWidget *widget; const char *password, *identity; g_autoptr(GError) ca_cert_error = NULL; g_autoptr(GError) private_key_error = NULL; g_autoptr(GError) user_cert_error = NULL; gboolean ret = TRUE; - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "identity_entry")); - g_assert (widget); - identity = gtk_entry_get_text (GTK_ENTRY (widget)); + identity = gtk_entry_get_text (self->identity_entry); if (!identity || !strlen (identity)) { - widget_set_error (widget); + widget_set_error (GTK_WIDGET (self->identity_entry)); g_set_error_literal (error, NMA_ERROR, NMA_ERROR_GENERIC, _("missing EAP-TLS identity")); ret = FALSE; } else { - widget_unset_error (widget); + widget_unset_error (GTK_WIDGET (self->identity_entry)); } - if (!eap_method_validate_filepicker (GTK_FILE_CHOOSER (gtk_builder_get_object (parent->builder, "ca_cert_button")), + if (!eap_method_validate_filepicker (GTK_FILE_CHOOSER (self->ca_cert_button), TYPE_CA_CERT, NULL, NULL, &ca_cert_error)) { - widget_set_error (GTK_WIDGET (gtk_builder_get_object (parent->builder, "ca_cert_button"))); + widget_set_error (GTK_WIDGET (self->ca_cert_button)); if (ret) { g_set_error (error, NMA_ERROR, NMA_ERROR_GENERIC, _("invalid EAP-TLS CA certificate: %s"), ca_cert_error->message); ret = FALSE; } - } else if (eap_method_ca_cert_required (GTK_TOGGLE_BUTTON (gtk_builder_get_object (parent->builder, "ca_cert_not_required_check")), - GTK_FILE_CHOOSER (gtk_builder_get_object (parent->builder, "ca_cert_button")))) { - widget_set_error (GTK_WIDGET (gtk_builder_get_object (parent->builder, "ca_cert_button"))); + } else if (eap_method_ca_cert_required (GTK_TOGGLE_BUTTON (self->ca_cert_not_required_check), + GTK_FILE_CHOOSER (self->ca_cert_button))) { + widget_set_error (GTK_WIDGET (self->ca_cert_button)); if (ret) { g_set_error_literal (error, NMA_ERROR, NMA_ERROR_GENERIC, _("invalid EAP-TLS CA certificate: no certificate specified")); ret = FALSE; } } - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "private_key_password_entry")); - g_assert (widget); - password = gtk_entry_get_text (GTK_ENTRY (widget)); + password = gtk_entry_get_text (self->private_key_password_entry); - if (!eap_method_validate_filepicker (GTK_FILE_CHOOSER (gtk_builder_get_object (parent->builder, "private_key_button")), + if (!eap_method_validate_filepicker (GTK_FILE_CHOOSER (self->private_key_button), TYPE_PRIVATE_KEY, password, &format, @@ -104,17 +108,17 @@ validate (EAPMethod *parent, GError **error) g_set_error (error, NMA_ERROR, NMA_ERROR_GENERIC, _("invalid EAP-TLS private-key: %s"), private_key_error->message); ret = FALSE; } - widget_set_error (GTK_WIDGET (gtk_builder_get_object (parent->builder, "private_key_button"))); + widget_set_error (GTK_WIDGET (self->private_key_button)); } if (format != NM_SETTING_802_1X_CK_FORMAT_PKCS12) { - if (!eap_method_validate_filepicker (GTK_FILE_CHOOSER (gtk_builder_get_object (parent->builder, "user_cert_button")), + if (!eap_method_validate_filepicker (GTK_FILE_CHOOSER (self->user_cert_button), TYPE_CLIENT_CERT, NULL, NULL, &user_cert_error)) { if (ret) { g_set_error (error, NMA_ERROR, NMA_ERROR_GENERIC, _("invalid EAP-TLS user-certificate: %s"), user_cert_error->message); ret = FALSE; } - widget_set_error (GTK_WIDGET (gtk_builder_get_object (parent->builder, "user_cert_button"))); + widget_set_error (GTK_WIDGET (self->user_cert_button)); } } @@ -124,41 +128,22 @@ validate (EAPMethod *parent, GError **error) static void ca_cert_not_required_toggled (EAPMethodTLS *self) { - EAPMethod *parent = (EAPMethod *) self; - - eap_method_ca_cert_not_required_toggled (GTK_TOGGLE_BUTTON (gtk_builder_get_object (parent->builder, "ca_cert_not_required_check")), - GTK_FILE_CHOOSER (gtk_builder_get_object (parent->builder, "ca_cert_button"))); + eap_method_ca_cert_not_required_toggled (GTK_TOGGLE_BUTTON (self->ca_cert_not_required_check), + GTK_FILE_CHOOSER (self->ca_cert_button)); wireless_security_notify_changed (self->sec_parent); } static void add_to_size_group (EAPMethod *parent, GtkSizeGroup *group) { - GtkWidget *widget; - - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "ca_cert_not_required_check")); - g_assert (widget); - gtk_size_group_add_widget (group, widget); - - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "identity_label")); - g_assert (widget); - gtk_size_group_add_widget (group, widget); - - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "user_cert_label")); - g_assert (widget); - gtk_size_group_add_widget (group, widget); - - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "ca_cert_label")); - g_assert (widget); - gtk_size_group_add_widget (group, widget); - - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "private_key_label")); - g_assert (widget); - gtk_size_group_add_widget (group, widget); - - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "private_key_password_label")); - g_assert (widget); - gtk_size_group_add_widget (group, widget); + EAPMethodTLS *self = (EAPMethodTLS *) parent; + + gtk_size_group_add_widget (group, GTK_WIDGET (self->ca_cert_not_required_check)); + gtk_size_group_add_widget (group, GTK_WIDGET (self->identity_label)); + gtk_size_group_add_widget (group, GTK_WIDGET (self->user_cert_label)); + gtk_size_group_add_widget (group, GTK_WIDGET (self->ca_cert_label)); + gtk_size_group_add_widget (group, GTK_WIDGET (self->private_key_label)); + gtk_size_group_add_widget (group, GTK_WIDGET (self->private_key_password_label)); } static void @@ -168,7 +153,6 @@ fill_connection (EAPMethod *parent, NMConnection *connection, NMSettingSecretFla NMSetting8021xCKFormat format = NM_SETTING_802_1X_CK_FORMAT_UNKNOWN; NMSetting8021x *s_8021x; NMSettingSecretFlags secret_flags; - GtkWidget *widget, *passwd_entry; g_autofree gchar *ca_filename = NULL; g_autofree gchar *pk_filename = NULL; const char *password = NULL; @@ -182,20 +166,12 @@ fill_connection (EAPMethod *parent, NMConnection *connection, NMSettingSecretFla else nm_setting_802_1x_add_eap_method (s_8021x, "tls"); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "identity_entry")); - g_assert (widget); - g_object_set (s_8021x, NM_SETTING_802_1X_IDENTITY, gtk_entry_get_text (GTK_ENTRY (widget)), NULL); + g_object_set (s_8021x, NM_SETTING_802_1X_IDENTITY, gtk_entry_get_text (method->identity_entry), NULL); /* TLS private key */ - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "private_key_password_entry")); - g_assert (widget); - password = gtk_entry_get_text (GTK_ENTRY (widget)); - g_assert (password); - passwd_entry = widget; - - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "private_key_button")); - g_assert (widget); - pk_filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (widget)); + password = gtk_entry_get_text (method->private_key_password_entry); + + pk_filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (method->private_key_button)); g_assert (pk_filename); if (parent->phase2) { @@ -209,13 +185,13 @@ fill_connection (EAPMethod *parent, NMConnection *connection, NMSettingSecretFla } /* Save 802.1X password flags to the connection */ - secret_flags = nma_utils_menu_to_secret_flags (passwd_entry); + secret_flags = nma_utils_menu_to_secret_flags (GTK_WIDGET (method->private_key_password_entry)); nm_setting_set_secret_flags (NM_SETTING (s_8021x), parent->password_flags_name, secret_flags, NULL); /* Update secret flags and popup when editing the connection */ if (method->editing_connection) { - nma_utils_update_password_storage (passwd_entry, secret_flags, + nma_utils_update_password_storage (GTK_WIDGET (method->private_key_password_entry), secret_flags, NM_SETTING (s_8021x), parent->password_flags_name); } @@ -226,9 +202,7 @@ fill_connection (EAPMethod *parent, NMConnection *connection, NMSettingSecretFla /* If the key is pkcs#12 nm_setting_802_1x_set_private_key() already * set the client certificate for us. */ - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "user_cert_button")); - g_assert (widget); - cc_filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (widget)); + cc_filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (method->user_cert_button)); g_assert (cc_filename); format = NM_SETTING_802_1X_CK_FORMAT_UNKNOWN; @@ -244,9 +218,7 @@ fill_connection (EAPMethod *parent, NMConnection *connection, NMSettingSecretFla } /* TLS CA certificate */ - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "ca_cert_button")); - g_assert (widget); - ca_filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (widget)); + ca_filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (method->ca_cert_button)); format = NM_SETTING_802_1X_CK_FORMAT_UNKNOWN; if (parent->phase2) { @@ -268,25 +240,22 @@ fill_connection (EAPMethod *parent, NMConnection *connection, NMSettingSecretFla static void private_key_picker_helper (EAPMethod *parent, const char *filename, gboolean changed) { + EAPMethodTLS *self = (EAPMethodTLS *) parent; g_autoptr(NMSetting8021x) setting = NULL; NMSetting8021xCKFormat cert_format = NM_SETTING_802_1X_CK_FORMAT_UNKNOWN; const char *password; - GtkWidget *widget; - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "private_key_password_entry")); - g_assert (widget); - password = gtk_entry_get_text (GTK_ENTRY (widget)); + password = gtk_entry_get_text (self->private_key_password_entry); setting = (NMSetting8021x *) nm_setting_802_1x_new (); nm_setting_802_1x_set_private_key (setting, filename, password, NM_SETTING_802_1X_CK_SCHEME_PATH, &cert_format, NULL); /* With PKCS#12, the client cert must be the same as the private key */ - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "user_cert_button")); if (cert_format == NM_SETTING_802_1X_CK_FORMAT_PKCS12) { - gtk_file_chooser_unselect_all (GTK_FILE_CHOOSER (widget)); - gtk_widget_set_sensitive (widget, FALSE); + gtk_file_chooser_unselect_all (GTK_FILE_CHOOSER (self->user_cert_button)); + gtk_widget_set_sensitive (GTK_WIDGET (self->user_cert_button), FALSE); } else if (changed) - gtk_widget_set_sensitive (widget, TRUE); + gtk_widget_set_sensitive (GTK_WIDGET (self->user_cert_button), TRUE); /* Warn the user if the private key is unencrypted */ if (!eap_method_is_encrypted_private_key (filename)) { @@ -394,12 +363,12 @@ setup_filepicker (GtkFileChooserButton *button, static void update_secrets (EAPMethod *parent, NMConnection *connection) { + EAPMethodTLS *self = (EAPMethodTLS *) parent; NMSetting8021x *s_8021x; HelperSecretFunc password_func; SchemeFunc scheme_func; PathFunc path_func; const char *filename; - GtkWidget *widget; if (parent->phase2) { password_func = (HelperSecretFunc) nm_setting_802_1x_get_phase2_private_key_password; @@ -412,7 +381,7 @@ update_secrets (EAPMethod *parent, NMConnection *connection) } helper_fill_secret_entry (connection, - GTK_ENTRY (gtk_builder_get_object (parent->builder, "private_key_password_entry")), + self->private_key_password_entry, NM_TYPE_SETTING_802_1X, password_func); @@ -420,11 +389,8 @@ update_secrets (EAPMethod *parent, NMConnection *connection) s_8021x = nm_connection_get_setting_802_1x (connection); if (s_8021x && (scheme_func (s_8021x) == NM_SETTING_802_1X_CK_SCHEME_PATH)) { filename = path_func (s_8021x); - if (filename) { - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "private_key_button")); - g_assert (widget); - gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (widget), filename); - } + if (filename) + gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (self->private_key_button), filename); } } @@ -436,7 +402,6 @@ eap_method_tls_new (WirelessSecurity *ws_parent, { EAPMethodTLS *method; EAPMethod *parent; - GtkWidget *widget; NMSetting8021x *s_8021x = NULL; gboolean ca_not_required = FALSE; @@ -460,78 +425,72 @@ eap_method_tls_new (WirelessSecurity *ws_parent, method->sec_parent = ws_parent; method->editing_connection = secrets_only ? FALSE : TRUE; + method->ca_cert_button = GTK_FILE_CHOOSER_BUTTON (gtk_builder_get_object (parent->builder, "ca_cert_button")); + method->ca_cert_label = GTK_LABEL (gtk_builder_get_object (parent->builder, "ca_cert_label")); + method->ca_cert_not_required_check = GTK_CHECK_BUTTON (gtk_builder_get_object (parent->builder, "ca_cert_not_required_check")); + method->identity_entry = GTK_ENTRY (gtk_builder_get_object (parent->builder, "identity_entry")); + method->identity_label = GTK_LABEL (gtk_builder_get_object (parent->builder, "identity_label")); + method->private_key_button = GTK_FILE_CHOOSER_BUTTON (gtk_builder_get_object (parent->builder, "private_key_button")); + method->private_key_label = GTK_LABEL (gtk_builder_get_object (parent->builder, "private_key_label")); + method->private_key_password_entry = GTK_ENTRY (gtk_builder_get_object (parent->builder, "private_key_password_entry")); + method->private_key_password_label = GTK_LABEL (gtk_builder_get_object (parent->builder, "private_key_password_label")); + method->show_password_check = GTK_CHECK_BUTTON (gtk_builder_get_object (parent->builder, "show_password_check")); + method->user_cert_button = GTK_FILE_CHOOSER_BUTTON (gtk_builder_get_object (parent->builder, "user_cert_button")); + method->user_cert_label = GTK_LABEL (gtk_builder_get_object (parent->builder, "user_cert_label")); + if (connection) s_8021x = nm_connection_get_setting_802_1x (connection); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "ca_cert_not_required_check")); - g_assert (widget); - g_signal_connect_swapped (widget, "toggled", G_CALLBACK (ca_cert_not_required_toggled), method); + g_signal_connect_swapped (method->ca_cert_not_required_check, "toggled", G_CALLBACK (ca_cert_not_required_toggled), method); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "identity_entry")); - g_assert (widget); - g_signal_connect_swapped (widget, "changed", G_CALLBACK (changed_cb), method); + g_signal_connect_swapped (method->identity_entry, "changed", G_CALLBACK (changed_cb), method); if (s_8021x && nm_setting_802_1x_get_identity (s_8021x)) - gtk_entry_set_text (GTK_ENTRY (widget), nm_setting_802_1x_get_identity (s_8021x)); + gtk_entry_set_text (method->identity_entry, nm_setting_802_1x_get_identity (s_8021x)); - setup_filepicker (GTK_FILE_CHOOSER_BUTTON (gtk_builder_get_object (parent->builder, "user_cert_button")), + setup_filepicker (method->user_cert_button, _("Choose your personal certificate"), ws_parent, parent, s_8021x, phase2 ? nm_setting_802_1x_get_phase2_client_cert_scheme : nm_setting_802_1x_get_client_cert_scheme, phase2 ? nm_setting_802_1x_get_phase2_client_cert_path : nm_setting_802_1x_get_client_cert_path, FALSE, TRUE); - setup_filepicker (GTK_FILE_CHOOSER_BUTTON (gtk_builder_get_object (parent->builder, "ca_cert_button")), + setup_filepicker (method->ca_cert_button, _("Choose a Certificate Authority certificate"), ws_parent, parent, s_8021x, phase2 ? nm_setting_802_1x_get_phase2_ca_cert_scheme : nm_setting_802_1x_get_ca_cert_scheme, phase2 ? nm_setting_802_1x_get_phase2_ca_cert_path : nm_setting_802_1x_get_ca_cert_path, FALSE, FALSE); - setup_filepicker (GTK_FILE_CHOOSER_BUTTON (gtk_builder_get_object (parent->builder, "private_key_button")), + setup_filepicker (method->private_key_button, _("Choose your private key"), ws_parent, parent, s_8021x, phase2 ? nm_setting_802_1x_get_phase2_private_key_scheme : nm_setting_802_1x_get_private_key_scheme, phase2 ? nm_setting_802_1x_get_phase2_private_key_path : nm_setting_802_1x_get_private_key_path, TRUE, FALSE); - if (connection && eap_method_ca_cert_ignore_get (parent, connection)) { - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "ca_cert_button")); - ca_not_required = !gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (widget)); - } - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "ca_cert_not_required_check")); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), ca_not_required); + if (connection && eap_method_ca_cert_ignore_get (parent, connection)) + ca_not_required = !gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (method->ca_cert_button)); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (method->ca_cert_not_required_check), ca_not_required); /* Fill secrets, if any */ if (connection) update_secrets (parent, connection); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "private_key_password_entry")); - g_assert (widget); - g_signal_connect_swapped (widget, "changed", G_CALLBACK (changed_cb), method); + g_signal_connect_swapped (method->private_key_password_entry, "changed", G_CALLBACK (changed_cb), method); /* Create password-storage popup menu for password entry under entry's secondary icon */ - nma_utils_setup_password_storage (widget, 0, (NMSetting *) s_8021x, parent->password_flags_name, + nma_utils_setup_password_storage (GTK_WIDGET (method->private_key_password_entry), 0, (NMSetting *) s_8021x, parent->password_flags_name, FALSE, secrets_only); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "show_password_check")); - g_assert (widget); - g_signal_connect_swapped (widget, "toggled", G_CALLBACK (show_toggled_cb), method); + g_signal_connect_swapped (method->show_password_check, "toggled", G_CALLBACK (show_toggled_cb), method); if (secrets_only) { - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "identity_entry")); - gtk_widget_set_sensitive (widget, FALSE); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "user_cert_label")); - gtk_widget_hide (widget); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "user_cert_button")); - gtk_widget_hide (widget); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "private_key_label")); - gtk_widget_hide (widget); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "private_key_button")); - gtk_widget_hide (widget); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "ca_cert_label")); - gtk_widget_hide (widget); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "ca_cert_button")); - gtk_widget_hide (widget); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "ca_cert_not_required_check")); - gtk_widget_hide (widget); + gtk_widget_set_sensitive (GTK_WIDGET (method->identity_entry), FALSE); + gtk_widget_hide (GTK_WIDGET (method->user_cert_label)); + gtk_widget_hide (GTK_WIDGET (method->user_cert_button)); + gtk_widget_hide (GTK_WIDGET (method->private_key_label)); + gtk_widget_hide (GTK_WIDGET (method->private_key_button)); + gtk_widget_hide (GTK_WIDGET (method->ca_cert_label)); + gtk_widget_hide (GTK_WIDGET (method->ca_cert_button)); + gtk_widget_hide (GTK_WIDGET (method->ca_cert_not_required_check)); } return method; diff --git a/panels/network/wireless-security/eap-method-ttls.c b/panels/network/wireless-security/eap-method-ttls.c index 81ebc1553..c5ce84378 100644 --- a/panels/network/wireless-security/eap-method-ttls.c +++ b/panels/network/wireless-security/eap-method-ttls.c @@ -35,6 +35,17 @@ struct _EAPMethodTTLS { EAPMethod parent; + GtkEntry *anon_identity_entry; + GtkLabel *anon_identity_label; + GtkFileChooserButton *ca_cert_button; + GtkLabel *ca_cert_label; + GtkCheckButton *ca_cert_not_required_check; + GtkEntry *domain_match_entry; + GtkLabel *domain_match_label; + GtkComboBox *inner_auth_combo; + GtkLabel *inner_auth_label; + GtkBox *inner_auth_box; + GtkSizeGroup *size_group; WirelessSecurity *sec_parent; gboolean is_editor; @@ -52,29 +63,26 @@ destroy (EAPMethod *parent) static gboolean validate (EAPMethod *parent, GError **error) { - GtkWidget *widget; + EAPMethodTTLS *self = (EAPMethodTTLS *) parent; GtkTreeModel *model; GtkTreeIter iter; g_autoptr(EAPMethod) eap = NULL; gboolean valid = FALSE; g_autoptr(GError) local_error = NULL; - if (!eap_method_validate_filepicker (GTK_FILE_CHOOSER (gtk_builder_get_object (parent->builder, "ca_cert_button")), + if (!eap_method_validate_filepicker (GTK_FILE_CHOOSER (self->ca_cert_button), TYPE_CA_CERT, NULL, NULL, &local_error)) { g_set_error (error, NMA_ERROR, NMA_ERROR_GENERIC, _("invalid EAP-TTLS CA certificate: %s"), local_error->message); return FALSE; } - if (eap_method_ca_cert_required (GTK_TOGGLE_BUTTON (gtk_builder_get_object (parent->builder, "ca_cert_not_required_check")), - GTK_FILE_CHOOSER (gtk_builder_get_object (parent->builder, "ca_cert_button")))) { + if (eap_method_ca_cert_required (GTK_TOGGLE_BUTTON (self->ca_cert_not_required_check), + GTK_FILE_CHOOSER (self->ca_cert_button))) { g_set_error_literal (error, NMA_ERROR, NMA_ERROR_GENERIC, _("invalid EAP-TTLS CA certificate: no certificate specified")); return FALSE; } - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "inner_auth_combo")); - g_assert (widget); - - model = gtk_combo_box_get_model (GTK_COMBO_BOX (widget)); - gtk_combo_box_get_active_iter (GTK_COMBO_BOX (widget), &iter); + model = gtk_combo_box_get_model (self->inner_auth_combo); + gtk_combo_box_get_active_iter (self->inner_auth_combo, &iter); gtk_tree_model_get (model, &iter, I_METHOD_COLUMN, &eap, -1); g_assert (eap); valid = eap_method_validate (eap, error); @@ -84,9 +92,8 @@ validate (EAPMethod *parent, GError **error) static void ca_cert_not_required_toggled (EAPMethodTTLS *self) { - EAPMethod *parent = (EAPMethod *) self; - eap_method_ca_cert_not_required_toggled (GTK_TOGGLE_BUTTON (gtk_builder_get_object (parent->builder, "ca_cert_not_required_check")), - GTK_FILE_CHOOSER (gtk_builder_get_object (parent->builder, "ca_cert_button"))); + eap_method_ca_cert_not_required_toggled (GTK_TOGGLE_BUTTON (self->ca_cert_not_required_check), + GTK_FILE_CHOOSER (self->ca_cert_button)); wireless_security_notify_changed (self->sec_parent); } @@ -94,7 +101,6 @@ static void add_to_size_group (EAPMethod *parent, GtkSizeGroup *group) { EAPMethodTTLS *method = (EAPMethodTTLS *) parent; - GtkWidget *widget; GtkTreeModel *model; GtkTreeIter iter; g_autoptr(EAPMethod) eap = NULL; @@ -103,31 +109,14 @@ add_to_size_group (EAPMethod *parent, GtkSizeGroup *group) g_object_unref (method->size_group); method->size_group = g_object_ref (group); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "ca_cert_not_required_check")); - g_assert (widget); - gtk_size_group_add_widget (group, widget); - - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "anon_identity_label")); - g_assert (widget); - gtk_size_group_add_widget (group, widget); - - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "domain_match_label")); - g_assert (widget); - gtk_size_group_add_widget (group, widget); - - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "ca_cert_label")); - g_assert (widget); - gtk_size_group_add_widget (group, widget); - - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "inner_auth_label")); - g_assert (widget); - gtk_size_group_add_widget (group, widget); + gtk_size_group_add_widget (group, GTK_WIDGET (method->ca_cert_not_required_check)); + gtk_size_group_add_widget (group, GTK_WIDGET (method->anon_identity_label)); + gtk_size_group_add_widget (group, GTK_WIDGET (method->domain_match_label)); + gtk_size_group_add_widget (group, GTK_WIDGET (method->ca_cert_label)); + gtk_size_group_add_widget (group, GTK_WIDGET (method->inner_auth_label)); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "inner_auth_combo")); - g_assert (widget); - - model = gtk_combo_box_get_model (GTK_COMBO_BOX (widget)); - gtk_combo_box_get_active_iter (GTK_COMBO_BOX (widget), &iter); + model = gtk_combo_box_get_model (method->inner_auth_combo); + gtk_combo_box_get_active_iter (method->inner_auth_combo, &iter); gtk_tree_model_get (model, &iter, I_METHOD_COLUMN, &eap, -1); g_assert (eap); eap_method_add_to_size_group (eap, group); @@ -136,9 +125,9 @@ add_to_size_group (EAPMethod *parent, GtkSizeGroup *group) static void fill_connection (EAPMethod *parent, NMConnection *connection, NMSettingSecretFlags flags) { + EAPMethodTTLS *self = (EAPMethodTTLS *) parent; NMSetting8021x *s_8021x; NMSetting8021xCKFormat format = NM_SETTING_802_1X_CK_FORMAT_UNKNOWN; - GtkWidget *widget; const char *text; g_autofree gchar *filename = NULL; g_autoptr(EAPMethod) eap = NULL; @@ -152,30 +141,23 @@ fill_connection (EAPMethod *parent, NMConnection *connection, NMSettingSecretFla nm_setting_802_1x_add_eap_method (s_8021x, "ttls"); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "anon_identity_entry")); - g_assert (widget); - text = gtk_entry_get_text (GTK_ENTRY (widget)); + text = gtk_entry_get_text (self->anon_identity_entry); if (text && strlen (text)) g_object_set (s_8021x, NM_SETTING_802_1X_ANONYMOUS_IDENTITY, text, NULL); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "domain_match_entry")); - g_assert (widget); - text = gtk_entry_get_text (GTK_ENTRY (widget)); + text = gtk_entry_get_text (self->domain_match_entry); if (text && strlen (text)) g_object_set (s_8021x, NM_SETTING_802_1X_DOMAIN_SUFFIX_MATCH, text, NULL); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "ca_cert_button")); - g_assert (widget); - filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (widget)); + filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (self->ca_cert_button)); if (!nm_setting_802_1x_set_ca_cert (s_8021x, filename, NM_SETTING_802_1X_CK_SCHEME_PATH, &format, &error)) { g_warning ("Couldn't read CA certificate '%s': %s", filename, error ? error->message : "(unknown)"); ca_cert_error = TRUE; } eap_method_ca_cert_ignore_set (parent, connection, filename, ca_cert_error); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "inner_auth_combo")); - model = gtk_combo_box_get_model (GTK_COMBO_BOX (widget)); - gtk_combo_box_get_active_iter (GTK_COMBO_BOX (widget), &iter); + model = gtk_combo_box_get_model (self->inner_auth_combo); + gtk_combo_box_get_active_iter (self->inner_auth_combo, &iter); gtk_tree_model_get (model, &iter, I_METHOD_COLUMN, &eap, -1); g_assert (eap); @@ -185,26 +167,20 @@ fill_connection (EAPMethod *parent, NMConnection *connection, NMSettingSecretFla static void inner_auth_combo_changed_cb (EAPMethodTTLS *self) { - EAPMethod *parent = (EAPMethod *) self; - GtkWidget *combo, *box; g_autoptr(EAPMethod) eap = NULL; GList *elt, *children; GtkTreeModel *model; GtkTreeIter iter; GtkWidget *eap_widget; - combo = GTK_WIDGET (gtk_builder_get_object (parent->builder, "inner_auth_combo")); - box = GTK_WIDGET (gtk_builder_get_object (parent->builder, "inner_auth_box")); - g_assert (box); - /* Remove any previous wireless security widgets */ - children = gtk_container_get_children (GTK_CONTAINER (box)); + children = gtk_container_get_children (GTK_CONTAINER (self->inner_auth_box)); for (elt = children; elt; elt = g_list_next (elt)) - gtk_container_remove (GTK_CONTAINER (box), GTK_WIDGET (elt->data)); + gtk_container_remove (GTK_CONTAINER (self->inner_auth_box), GTK_WIDGET (elt->data)); g_list_free (children); - model = gtk_combo_box_get_model (GTK_COMBO_BOX (combo)); - gtk_combo_box_get_active_iter (GTK_COMBO_BOX (combo), &iter); + model = gtk_combo_box_get_model (self->inner_auth_combo); + gtk_combo_box_get_active_iter (self->inner_auth_combo, &iter); gtk_tree_model_get (model, &iter, I_METHOD_COLUMN, &eap, -1); g_assert (eap); @@ -214,19 +190,17 @@ inner_auth_combo_changed_cb (EAPMethodTTLS *self) if (self->size_group) eap_method_add_to_size_group (eap, self->size_group); - gtk_container_add (GTK_CONTAINER (box), eap_widget); + gtk_container_add (GTK_CONTAINER (self->inner_auth_box), eap_widget); wireless_security_notify_changed (self->sec_parent); } -static GtkWidget * +static void inner_auth_combo_init (EAPMethodTTLS *method, NMConnection *connection, NMSetting8021x *s_8021x, gboolean secrets_only) { - EAPMethod *parent = (EAPMethod *) method; - GtkWidget *combo; g_autoptr(GtkListStore) auth_model = NULL; GtkTreeIter iter; g_autoptr(EAPMethodSimple) em_pap = NULL; @@ -355,22 +329,19 @@ inner_auth_combo_init (EAPMethodTTLS *method, if (phase2_auth && !strcasecmp (phase2_auth, "gtc")) active = 6; - combo = GTK_WIDGET (gtk_builder_get_object (parent->builder, "inner_auth_combo")); - g_assert (combo); + gtk_combo_box_set_model (method->inner_auth_combo, GTK_TREE_MODEL (auth_model)); + gtk_combo_box_set_active (method->inner_auth_combo, active); - gtk_combo_box_set_model (GTK_COMBO_BOX (combo), GTK_TREE_MODEL (auth_model)); - gtk_combo_box_set_active (GTK_COMBO_BOX (combo), active); - - g_signal_connect_swapped (combo, "changed", G_CALLBACK (inner_auth_combo_changed_cb), method); - return combo; + g_signal_connect_swapped (method->inner_auth_combo, "changed", G_CALLBACK (inner_auth_combo_changed_cb), method); } static void update_secrets (EAPMethod *parent, NMConnection *connection) { + EAPMethodTTLS *self = (EAPMethodTTLS *) parent; eap_method_phase2_update_secrets_helper (parent, connection, - GTK_COMBO_BOX (gtk_builder_get_object (parent->builder, "inner_auth_combo")), + self->inner_auth_combo, I_METHOD_COLUMN); } @@ -388,7 +359,6 @@ eap_method_ttls_new (WirelessSecurity *ws_parent, { EAPMethod *parent; EAPMethodTTLS *method; - GtkWidget *widget, *widget_ca_not_required_checkbox; GtkFileFilter *filter; NMSetting8021x *s_8021x = NULL; const char *filename; @@ -411,64 +381,59 @@ eap_method_ttls_new (WirelessSecurity *ws_parent, method->sec_parent = ws_parent; method->is_editor = is_editor; + method->anon_identity_entry = GTK_ENTRY (gtk_builder_get_object (parent->builder, "anon_identity_entry")); + method->anon_identity_label = GTK_LABEL (gtk_builder_get_object (parent->builder, "anon_identity_label")); + method->ca_cert_button = GTK_FILE_CHOOSER_BUTTON (gtk_builder_get_object (parent->builder, "ca_cert_button")); + method->ca_cert_label = GTK_LABEL (gtk_builder_get_object (parent->builder, "ca_cert_label")); + method->ca_cert_not_required_check = GTK_CHECK_BUTTON (gtk_builder_get_object (parent->builder, "ca_cert_not_required_check")); + method->domain_match_entry = GTK_ENTRY (gtk_builder_get_object (parent->builder, "domain_match_entry")); + method->domain_match_label = GTK_LABEL (gtk_builder_get_object (parent->builder, "domain_match_label")); + method->inner_auth_combo = GTK_COMBO_BOX (gtk_builder_get_object (parent->builder, "inner_auth_combo")); + method->inner_auth_label = GTK_LABEL (gtk_builder_get_object (parent->builder, "inner_auth_label")); + method->inner_auth_box = GTK_BOX (gtk_builder_get_object (parent->builder, "inner_auth_box")); + if (connection) s_8021x = nm_connection_get_setting_802_1x (connection); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "ca_cert_not_required_check")); - g_assert (widget); - g_signal_connect_swapped (widget, "toggled", G_CALLBACK (ca_cert_not_required_toggled), method); - widget_ca_not_required_checkbox = widget; + g_signal_connect_swapped (method->ca_cert_not_required_check, "toggled", G_CALLBACK (ca_cert_not_required_toggled), method); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "ca_cert_button")); - g_assert (widget); - gtk_file_chooser_set_local_only (GTK_FILE_CHOOSER (widget), TRUE); - gtk_file_chooser_button_set_title (GTK_FILE_CHOOSER_BUTTON (widget), + gtk_file_chooser_set_local_only (GTK_FILE_CHOOSER (method->ca_cert_button), TRUE); + gtk_file_chooser_button_set_title (method->ca_cert_button, _("Choose a Certificate Authority certificate")); - g_signal_connect_swapped (widget, "selection-changed", G_CALLBACK (changed_cb), method); + g_signal_connect_swapped (method->ca_cert_button, "selection-changed", G_CALLBACK (changed_cb), method); filter = eap_method_default_file_chooser_filter_new (FALSE); - gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (widget), filter); + gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (method->ca_cert_button), filter); if (connection && s_8021x) { filename = NULL; if (nm_setting_802_1x_get_ca_cert_scheme (s_8021x) == NM_SETTING_802_1X_CK_SCHEME_PATH) { filename = nm_setting_802_1x_get_ca_cert_path (s_8021x); if (filename) - gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (widget), filename); + gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (method->ca_cert_button), filename); } - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget_ca_not_required_checkbox), + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (method->ca_cert_not_required_check), !filename && eap_method_ca_cert_ignore_get (parent, connection)); } - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "anon_identity_entry")); if (s_8021x && nm_setting_802_1x_get_anonymous_identity (s_8021x)) - gtk_entry_set_text (GTK_ENTRY (widget), nm_setting_802_1x_get_anonymous_identity (s_8021x)); - g_signal_connect_swapped (widget, "changed", G_CALLBACK (changed_cb), method); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "domain_match_entry")); + gtk_entry_set_text (method->anon_identity_entry, nm_setting_802_1x_get_anonymous_identity (s_8021x)); + g_signal_connect_swapped (method->anon_identity_entry, "changed", G_CALLBACK (changed_cb), method); if (s_8021x && nm_setting_802_1x_get_domain_suffix_match (s_8021x)) - gtk_entry_set_text (GTK_ENTRY (widget), nm_setting_802_1x_get_domain_suffix_match (s_8021x)); - g_signal_connect_swapped (widget, "changed", G_CALLBACK (changed_cb), method); + gtk_entry_set_text (method->domain_match_entry, nm_setting_802_1x_get_domain_suffix_match (s_8021x)); + g_signal_connect_swapped (method->domain_match_entry, "changed", G_CALLBACK (changed_cb), method); - widget = inner_auth_combo_init (method, connection, s_8021x, secrets_only); + inner_auth_combo_init (method, connection, s_8021x, secrets_only); inner_auth_combo_changed_cb (method); if (secrets_only) { - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "anon_identity_label")); - gtk_widget_hide (widget); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "anon_identity_entry")); - gtk_widget_hide (widget); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "domain_match_label")); - gtk_widget_hide (widget); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "domain_match_entry")); - gtk_widget_hide (widget); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "ca_cert_label")); - gtk_widget_hide (widget); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "ca_cert_button")); - gtk_widget_hide (widget); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "ca_cert_not_required_check")); - gtk_widget_hide (widget); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "inner_auth_label")); - gtk_widget_hide (widget); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "inner_auth_combo")); - gtk_widget_hide (widget); + gtk_widget_hide (GTK_WIDGET (method->anon_identity_label)); + gtk_widget_hide (GTK_WIDGET (method->anon_identity_entry)); + gtk_widget_hide (GTK_WIDGET (method->domain_match_label)); + gtk_widget_hide (GTK_WIDGET (method->domain_match_entry)); + gtk_widget_hide (GTK_WIDGET (method->ca_cert_label)); + gtk_widget_hide (GTK_WIDGET (method->ca_cert_button)); + gtk_widget_hide (GTK_WIDGET (method->ca_cert_not_required_check)); + gtk_widget_hide (GTK_WIDGET (method->inner_auth_label)); + gtk_widget_hide (GTK_WIDGET (method->inner_auth_combo)); } return method; diff --git a/panels/network/wireless-security/ws-dynamic-wep.c b/panels/network/wireless-security/ws-dynamic-wep.c index 2d28295d7..f4a1fad58 100644 --- a/panels/network/wireless-security/ws-dynamic-wep.c +++ b/panels/network/wireless-security/ws-dynamic-wep.c @@ -32,6 +32,11 @@ struct _WirelessSecurityDynamicWEP { WirelessSecurity parent; + GtkComboBox *auth_combo; + GtkLabel *auth_label; + GtkGrid *grid; + GtkBox *method_box; + GtkSizeGroup *size_group; }; @@ -47,13 +52,15 @@ destroy (WirelessSecurity *parent) static GtkWidget * get_widget (WirelessSecurity *parent) { - return GTK_WIDGET (gtk_builder_get_object (parent->builder, "grid")); + WirelessSecurityDynamicWEP *self = (WirelessSecurityDynamicWEP *) parent; + return GTK_WIDGET (self->grid); } static gboolean validate (WirelessSecurity *parent, GError **error) { - return ws_802_1x_validate (GTK_COMBO_BOX (gtk_builder_get_object (parent->builder, "auth_combo")), error); + WirelessSecurityDynamicWEP *self = (WirelessSecurityDynamicWEP *) parent; + return ws_802_1x_validate (self->auth_combo, error); } static void @@ -65,17 +72,16 @@ add_to_size_group (WirelessSecurity *parent, GtkSizeGroup *group) g_object_unref (sec->size_group); sec->size_group = g_object_ref (group); - ws_802_1x_add_to_size_group (sec->size_group, - GTK_LABEL (gtk_builder_get_object (parent->builder, "auth_label")), - GTK_COMBO_BOX (gtk_builder_get_object (parent->builder, "auth_combo"))); + ws_802_1x_add_to_size_group (sec->size_group, sec->auth_label, sec->auth_combo); } static void fill_connection (WirelessSecurity *parent, NMConnection *connection) { + WirelessSecurityDynamicWEP *self = (WirelessSecurityDynamicWEP *) parent; NMSettingWirelessSecurity *s_wireless_sec; - ws_802_1x_fill_connection (GTK_COMBO_BOX (gtk_builder_get_object (parent->builder, "auth_combo")), connection); + ws_802_1x_fill_connection (self->auth_combo, connection); s_wireless_sec = nm_connection_get_setting_wireless_security (connection); g_assert (s_wireless_sec); @@ -91,7 +97,7 @@ auth_combo_changed_cb (GtkWidget *combo, gpointer user_data) ws_802_1x_auth_combo_changed (combo, parent, - GTK_BOX (gtk_builder_get_object (parent->builder, "method_box")), + sec->method_box, sec->size_group); } @@ -101,6 +107,7 @@ ws_dynamic_wep_new (NMConnection *connection, gboolean secrets_only) { WirelessSecurity *parent; + WirelessSecurityDynamicWEP *self; parent = wireless_security_init (sizeof (WirelessSecurityDynamicWEP), get_widget, @@ -111,18 +118,24 @@ ws_dynamic_wep_new (NMConnection *connection, "/org/gnome/ControlCenter/network/ws-dynamic-wep.ui"); if (!parent) return NULL; + self = (WirelessSecurityDynamicWEP *) parent; + + self->auth_combo = GTK_COMBO_BOX (gtk_builder_get_object (parent->builder, "auth_combo")); + self->auth_label = GTK_LABEL (gtk_builder_get_object (parent->builder, "auth_label")); + self->grid = GTK_GRID (gtk_builder_get_object (parent->builder, "grid")); + self->method_box = GTK_BOX (gtk_builder_get_object (parent->builder, "method_box")); wireless_security_set_adhoc_compatible (parent, FALSE); wireless_security_set_hotspot_compatible (parent, FALSE); ws_802_1x_auth_combo_init (parent, - GTK_COMBO_BOX (gtk_builder_get_object (parent->builder, "auth_combo")), - GTK_LABEL (gtk_builder_get_object (parent->builder, "auth_label")), + self->auth_combo, + self->auth_label, (GCallback) auth_combo_changed_cb, connection, is_editor, secrets_only); - auth_combo_changed_cb (GTK_WIDGET (gtk_builder_get_object (parent->builder, "auth_combo")), (gpointer) parent); + auth_combo_changed_cb (GTK_WIDGET (self->auth_combo), (gpointer) parent); return (WirelessSecurityDynamicWEP *) parent; } diff --git a/panels/network/wireless-security/ws-leap.c b/panels/network/wireless-security/ws-leap.c index 860883bb6..0abbbcbba 100644 --- a/panels/network/wireless-security/ws-leap.c +++ b/panels/network/wireless-security/ws-leap.c @@ -32,6 +32,14 @@ struct _WirelessSecurityLEAP { WirelessSecurity parent; + + GtkGrid *grid; + GtkEntry *password_entry; + GtkLabel *password_label; + GtkCheckButton *show_password_check; + GtkEntry *username_entry; + GtkLabel *username_label; + gboolean editing_connection; const char *password_flags_name; }; @@ -39,51 +47,43 @@ struct _WirelessSecurityLEAP { static void show_toggled_cb (WirelessSecurityLEAP *self) { - WirelessSecurity *sec = (WirelessSecurity *) self; - GtkWidget *widget; gboolean visible; - widget = GTK_WIDGET (gtk_builder_get_object (sec->builder, "show_password_check")); - visible = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)); - - widget = GTK_WIDGET (gtk_builder_get_object (sec->builder, "password_entry")); - gtk_entry_set_visibility (GTK_ENTRY (widget), visible); + visible = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (self->show_password_check)); + gtk_entry_set_visibility (self->password_entry, visible); } static GtkWidget * get_widget (WirelessSecurity *parent) { - return GTK_WIDGET (gtk_builder_get_object (parent->builder, "grid")); + WirelessSecurityLEAP *self = (WirelessSecurityLEAP *) parent; + return GTK_WIDGET (self->grid); } static gboolean validate (WirelessSecurity *parent, GError **error) { - GtkWidget *entry; + WirelessSecurityLEAP *self = (WirelessSecurityLEAP *) parent; const char *text; gboolean ret = TRUE; - entry = GTK_WIDGET (gtk_builder_get_object (parent->builder, "username_entry")); - g_assert (entry); - text = gtk_entry_get_text (GTK_ENTRY (entry)); + text = gtk_entry_get_text (self->username_entry); if (!text || !strlen (text)) { - widget_set_error (entry); + widget_set_error (GTK_WIDGET (self->username_entry)); g_set_error_literal (error, NMA_ERROR, NMA_ERROR_GENERIC, _("missing leap-username")); ret = FALSE; } else - widget_unset_error (entry); + widget_unset_error (GTK_WIDGET (self->username_entry)); - entry = GTK_WIDGET (gtk_builder_get_object (parent->builder, "password_entry")); - g_assert (entry); - text = gtk_entry_get_text (GTK_ENTRY (entry)); + text = gtk_entry_get_text (self->password_entry); if (!text || !strlen (text)) { - widget_set_error (entry); + widget_set_error (GTK_WIDGET (self->password_entry)); if (ret) { g_set_error_literal (error, NMA_ERROR, NMA_ERROR_GENERIC, _("missing leap-password")); ret = FALSE; } } else - widget_unset_error (entry); + widget_unset_error (GTK_WIDGET (self->password_entry)); return ret; } @@ -91,13 +91,9 @@ validate (WirelessSecurity *parent, GError **error) static void add_to_size_group (WirelessSecurity *parent, GtkSizeGroup *group) { - GtkWidget *widget; - - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "username_label")); - gtk_size_group_add_widget (group, widget); - - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "password_label")); - gtk_size_group_add_widget (group, widget); + WirelessSecurityLEAP *sec = (WirelessSecurityLEAP *) parent; + gtk_size_group_add_widget (group, GTK_WIDGET (sec->username_label)); + gtk_size_group_add_widget (group, GTK_WIDGET (sec->password_label)); } static void @@ -106,19 +102,14 @@ fill_connection (WirelessSecurity *parent, NMConnection *connection) WirelessSecurityLEAP *sec = (WirelessSecurityLEAP *) parent; NMSettingWirelessSecurity *s_wireless_sec; NMSettingSecretFlags secret_flags; - GtkWidget *widget, *passwd_entry; const char *leap_password = NULL, *leap_username = NULL; /* Blow away the old security setting by adding a clear one */ s_wireless_sec = (NMSettingWirelessSecurity *) nm_setting_wireless_security_new (); nm_connection_add_setting (connection, (NMSetting *) s_wireless_sec); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "username_entry")); - leap_username = gtk_entry_get_text (GTK_ENTRY (widget)); - - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "password_entry")); - passwd_entry = widget; - leap_password = gtk_entry_get_text (GTK_ENTRY (widget)); + leap_username = gtk_entry_get_text (sec->username_entry); + leap_password = gtk_entry_get_text (sec->password_entry); g_object_set (s_wireless_sec, NM_SETTING_WIRELESS_SECURITY_KEY_MGMT, "ieee8021x", @@ -128,21 +119,22 @@ fill_connection (WirelessSecurity *parent, NMConnection *connection) NULL); /* Save LEAP_PASSWORD_FLAGS to the connection */ - secret_flags = nma_utils_menu_to_secret_flags (passwd_entry); + secret_flags = nma_utils_menu_to_secret_flags (GTK_WIDGET (sec->password_entry)); nm_setting_set_secret_flags (NM_SETTING (s_wireless_sec), sec->password_flags_name, secret_flags, NULL); /* Update secret flags and popup when editing the connection */ if (sec->editing_connection) - nma_utils_update_password_storage (passwd_entry, secret_flags, + nma_utils_update_password_storage (GTK_WIDGET (sec->password_entry), secret_flags, NM_SETTING (s_wireless_sec), sec->password_flags_name); } static void update_secrets (WirelessSecurity *parent, NMConnection *connection) { + WirelessSecurityLEAP *self = (WirelessSecurityLEAP *) parent; helper_fill_secret_entry (connection, - GTK_ENTRY (gtk_builder_get_object (parent->builder, "password_entry")), + self->password_entry, NM_TYPE_SETTING_WIRELESS_SECURITY, (HelperSecretFunc) nm_setting_wireless_security_get_leap_password); } @@ -158,7 +150,6 @@ ws_leap_new (NMConnection *connection, gboolean secrets_only) { WirelessSecurity *parent; WirelessSecurityLEAP *sec; - GtkWidget *widget; NMSettingWirelessSecurity *wsec = NULL; parent = wireless_security_init (sizeof (WirelessSecurityLEAP), @@ -189,29 +180,30 @@ ws_leap_new (NMConnection *connection, gboolean secrets_only) sec->editing_connection = secrets_only ? FALSE : TRUE; sec->password_flags_name = NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD; - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "password_entry")); - g_assert (widget); - g_signal_connect_swapped (widget, "changed", G_CALLBACK (changed_cb), sec); + sec->grid = GTK_GRID (gtk_builder_get_object (parent->builder, "grid")); + sec->password_entry = GTK_ENTRY (gtk_builder_get_object (parent->builder, "password_entry")); + sec->password_label = GTK_LABEL (gtk_builder_get_object (parent->builder, "password_label")); + sec->show_password_check = GTK_CHECK_BUTTON (gtk_builder_get_object (parent->builder, "show_password_check")); + sec->username_entry = GTK_ENTRY (gtk_builder_get_object (parent->builder, "username_entry")); + sec->username_label = GTK_LABEL (gtk_builder_get_object (parent->builder, "username_label")); + + g_signal_connect_swapped (sec->password_entry, "changed", G_CALLBACK (changed_cb), sec); /* Create password-storage popup menu for password entry under entry's secondary icon */ - nma_utils_setup_password_storage (widget, 0, (NMSetting *) wsec, sec->password_flags_name, + nma_utils_setup_password_storage (GTK_WIDGET (sec->password_entry), 0, (NMSetting *) wsec, sec->password_flags_name, FALSE, secrets_only); if (wsec) update_secrets (WIRELESS_SECURITY (sec), connection); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "username_entry")); - g_assert (widget); - g_signal_connect_swapped (widget, "changed", G_CALLBACK (changed_cb), sec); + g_signal_connect_swapped (sec->username_entry, "changed", G_CALLBACK (changed_cb), sec); if (wsec) - gtk_entry_set_text (GTK_ENTRY (widget), nm_setting_wireless_security_get_leap_username (wsec)); + gtk_entry_set_text (sec->username_entry, nm_setting_wireless_security_get_leap_username (wsec)); if (secrets_only) - gtk_widget_hide (widget); + gtk_widget_hide (GTK_WIDGET (sec->username_entry)); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "show_password_check")); - g_assert (widget); - g_signal_connect_swapped (widget, "toggled", G_CALLBACK (show_toggled_cb), sec); + g_signal_connect_swapped (sec->show_password_check, "toggled", G_CALLBACK (show_toggled_cb), sec); return sec; } diff --git a/panels/network/wireless-security/ws-wep-key.c b/panels/network/wireless-security/ws-wep-key.c index fd3c07b22..4d84d5eb6 100644 --- a/panels/network/wireless-security/ws-wep-key.c +++ b/panels/network/wireless-security/ws-wep-key.c @@ -33,6 +33,15 @@ struct _WirelessSecurityWEPKey { WirelessSecurity parent; + GtkComboBox *auth_method_combo; + GtkLabel *auth_method_label; + GtkGrid *grid; + GtkEntry *key_entry; + GtkComboBox *key_index_combo; + GtkLabel *key_index_label; + GtkLabel *key_label; + GtkCheckButton *show_key_check; + gboolean editing_connection; const char *password_flags_name; @@ -44,44 +53,34 @@ struct _WirelessSecurityWEPKey { static void show_toggled_cb (WirelessSecurityWEPKey *self) { - WirelessSecurity *parent = (WirelessSecurity *) self; - GtkWidget *widget, *button; gboolean visible; - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "key_entry")); - g_assert (widget); - - button = GTK_WIDGET (gtk_builder_get_object (parent->builder, "show_key_check")); - visible = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button)); - gtk_entry_set_visibility (GTK_ENTRY (widget), visible); + visible = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (self->show_key_check)); + gtk_entry_set_visibility (self->key_entry, visible); } static void key_index_combo_changed_cb (WirelessSecurityWEPKey *self) { - WirelessSecurity *parent = (WirelessSecurity *) self; - GtkWidget *combo, *entry; const char *key; int key_index; /* Save WEP key for old key index */ - entry = GTK_WIDGET (gtk_builder_get_object (parent->builder, "key_entry")); - key = gtk_entry_get_text (GTK_ENTRY (entry)); + key = gtk_entry_get_text (self->key_entry); if (key) g_strlcpy (self->keys[self->cur_index], key, sizeof (self->keys[self->cur_index])); else memset (self->keys[self->cur_index], 0, sizeof (self->keys[self->cur_index])); - combo = GTK_WIDGET (gtk_builder_get_object (parent->builder, "key_index_combo")); - key_index = gtk_combo_box_get_active (GTK_COMBO_BOX (combo)); + key_index = gtk_combo_box_get_active (self->key_index_combo); g_return_if_fail (key_index <= 3); g_return_if_fail (key_index >= 0); /* Populate entry with key from new index */ - gtk_entry_set_text (GTK_ENTRY (entry), self->keys[key_index]); + gtk_entry_set_text (self->key_entry, self->keys[key_index]); self->cur_index = key_index; - wireless_security_notify_changed (parent); + wireless_security_notify_changed ((WirelessSecurity *) self); } static void @@ -97,23 +96,20 @@ destroy (WirelessSecurity *parent) static GtkWidget * get_widget (WirelessSecurity *parent) { - return GTK_WIDGET (gtk_builder_get_object (parent->builder, "grid")); + WirelessSecurityWEPKey *self = (WirelessSecurityWEPKey *) parent; + return GTK_WIDGET (self->grid); } static gboolean validate (WirelessSecurity *parent, GError **error) { WirelessSecurityWEPKey *sec = (WirelessSecurityWEPKey *) parent; - GtkWidget *entry; const char *key; int i; - entry = GTK_WIDGET (gtk_builder_get_object (parent->builder, "key_entry")); - g_assert (entry); - - key = gtk_entry_get_text (GTK_ENTRY (entry)); + key = gtk_entry_get_text (sec->key_entry); if (!key) { - widget_set_error (entry); + widget_set_error (GTK_WIDGET (sec->key_entry)); g_set_error_literal (error, NMA_ERROR, NMA_ERROR_GENERIC, _("missing wep-key")); return FALSE; } @@ -122,7 +118,7 @@ validate (WirelessSecurity *parent, GError **error) if ((strlen (key) == 10) || (strlen (key) == 26)) { for (i = 0; i < strlen (key); i++) { if (!g_ascii_isxdigit (key[i])) { - widget_set_error (entry); + widget_set_error (GTK_WIDGET (sec->key_entry)); g_set_error (error, NMA_ERROR, NMA_ERROR_GENERIC, _("invalid wep-key: key with a length of %zu must contain only hex-digits"), strlen (key)); return FALSE; } @@ -130,19 +126,19 @@ validate (WirelessSecurity *parent, GError **error) } else if ((strlen (key) == 5) || (strlen (key) == 13)) { for (i = 0; i < strlen (key); i++) { if (!g_ascii_isprint (key[i])) { - widget_set_error (entry); + widget_set_error (GTK_WIDGET (sec->key_entry)); g_set_error (error, NMA_ERROR, NMA_ERROR_GENERIC, _("invalid wep-key: key with a length of %zu must contain only ascii characters"), strlen (key)); return FALSE; } } } else { - widget_set_error (entry); + widget_set_error (GTK_WIDGET (sec->key_entry)); g_set_error (error, NMA_ERROR, NMA_ERROR_GENERIC, _("invalid wep-key: wrong key length %zu. A key must be either of length 5/13 (ascii) or 10/26 (hex)"), strlen (key)); return FALSE; } } else if (sec->type == NM_WEP_KEY_TYPE_PASSPHRASE) { if (!*key || (strlen (key) > 64)) { - widget_set_error (entry); + widget_set_error (GTK_WIDGET (sec->key_entry)); if (!*key) g_set_error_literal (error, NMA_ERROR, NMA_ERROR_GENERIC, _("invalid wep-key: passphrase must be non-empty")); else @@ -150,7 +146,7 @@ validate (WirelessSecurity *parent, GError **error) return FALSE; } } - widget_unset_error (entry); + widget_unset_error (GTK_WIDGET (sec->key_entry)); return TRUE; } @@ -158,16 +154,10 @@ validate (WirelessSecurity *parent, GError **error) static void add_to_size_group (WirelessSecurity *parent, GtkSizeGroup *group) { - GtkWidget *widget; - - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "auth_method_label")); - gtk_size_group_add_widget (group, widget); - - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "key_label")); - gtk_size_group_add_widget (group, widget); - - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "key_index_label")); - gtk_size_group_add_widget (group, widget); + WirelessSecurityWEPKey *self = (WirelessSecurityWEPKey *) parent; + gtk_size_group_add_widget (group, GTK_WIDGET (self->auth_method_label)); + gtk_size_group_add_widget (group, GTK_WIDGET (self->key_label)); + gtk_size_group_add_widget (group, GTK_WIDGET (self->key_index_label)); } static void @@ -176,17 +166,13 @@ fill_connection (WirelessSecurity *parent, NMConnection *connection) WirelessSecurityWEPKey *sec = (WirelessSecurityWEPKey *) parent; NMSettingWirelessSecurity *s_wsec; NMSettingSecretFlags secret_flags; - GtkWidget *widget, *passwd_entry; gint auth_alg; const char *key; int i; - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "auth_method_combo")); - auth_alg = gtk_combo_box_get_active (GTK_COMBO_BOX (widget)); + auth_alg = gtk_combo_box_get_active (sec->auth_method_combo); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "key_entry")); - passwd_entry = widget; - key = gtk_entry_get_text (GTK_ENTRY (widget)); + key = gtk_entry_get_text (sec->key_entry); g_strlcpy (sec->keys[sec->cur_index], key, sizeof (sec->keys[sec->cur_index])); /* Blow away the old security setting by adding a clear one */ @@ -206,12 +192,12 @@ fill_connection (WirelessSecurity *parent, NMConnection *connection) } /* Save WEP_KEY_FLAGS to the connection */ - secret_flags = nma_utils_menu_to_secret_flags (passwd_entry); + secret_flags = nma_utils_menu_to_secret_flags (GTK_WIDGET (sec->key_entry)); g_object_set (s_wsec, NM_SETTING_WIRELESS_SECURITY_WEP_KEY_FLAGS, secret_flags, NULL); /* Update secret flags and popup when editing the connection */ if (sec->editing_connection) - nma_utils_update_password_storage (passwd_entry, secret_flags, + nma_utils_update_password_storage (GTK_WIDGET (sec->key_entry), secret_flags, NM_SETTING (s_wsec), sec->password_flags_name); } @@ -221,10 +207,6 @@ wep_entry_filter_cb (WirelessSecurityWEPKey *self, gint length, gint *position) { - WirelessSecurity *parent = (WirelessSecurity *) self; - GtkWidget *widget; - - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "key_entry")); if (self->type == NM_WEP_KEY_TYPE_KEY) { int i, count = 0; g_autofree gchar *result = g_new (gchar, length+1); @@ -236,11 +218,11 @@ wep_entry_filter_cb (WirelessSecurityWEPKey *self, result[count] = 0; if (count > 0) { - g_signal_handlers_block_by_func (widget, G_CALLBACK (wep_entry_filter_cb), self); - gtk_editable_insert_text (GTK_EDITABLE (widget), result, count, position); - g_signal_handlers_unblock_by_func (widget, G_CALLBACK (wep_entry_filter_cb), self); + g_signal_handlers_block_by_func (self->key_entry, G_CALLBACK (wep_entry_filter_cb), self); + gtk_editable_insert_text (GTK_EDITABLE (self->key_entry), result, count, position); + g_signal_handlers_unblock_by_func (self->key_entry, G_CALLBACK (wep_entry_filter_cb), self); } - g_signal_stop_emission_by_name (widget, "insert-text"); + g_signal_stop_emission_by_name (self->key_entry, "insert-text"); } } @@ -249,7 +231,6 @@ update_secrets (WirelessSecurity *parent, NMConnection *connection) { WirelessSecurityWEPKey *sec = (WirelessSecurityWEPKey *) parent; NMSettingWirelessSecurity *s_wsec; - GtkWidget *widget; const char *tmp; int i; @@ -260,9 +241,8 @@ update_secrets (WirelessSecurity *parent, NMConnection *connection) g_strlcpy (sec->keys[i], tmp, sizeof (sec->keys[i])); } - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "key_entry")); if (strlen (sec->keys[sec->cur_index])) - gtk_entry_set_text (GTK_ENTRY (widget), sec->keys[sec->cur_index]); + gtk_entry_set_text (sec->key_entry, sec->keys[sec->cur_index]); } static void @@ -279,7 +259,6 @@ ws_wep_key_new (NMConnection *connection, { WirelessSecurity *parent; WirelessSecurityWEPKey *sec; - GtkWidget *widget; NMSettingWirelessSecurity *s_wsec = NULL; NMSetting *setting = NULL; guint8 default_key_idx = 0; @@ -295,20 +274,27 @@ ws_wep_key_new (NMConnection *connection, "/org/gnome/ControlCenter/network/ws-wep-key.ui"); if (!parent) return NULL; - sec = (WirelessSecurityWEPKey *) parent; + + sec->auth_method_combo = GTK_COMBO_BOX (gtk_builder_get_object (parent->builder, "auth_method_combo")); + sec->auth_method_label = GTK_LABEL (gtk_builder_get_object (parent->builder, "auth_method_label")); + sec->grid = GTK_GRID (gtk_builder_get_object (parent->builder, "grid")); + sec->key_entry = GTK_ENTRY (gtk_builder_get_object (parent->builder, "key_entry")); + sec->key_index_combo = GTK_COMBO_BOX (gtk_builder_get_object (parent->builder, "key_index_combo")); + sec->key_index_label = GTK_LABEL (gtk_builder_get_object (parent->builder, "key_index_label")); + sec->key_label = GTK_LABEL (gtk_builder_get_object (parent->builder, "key_label")); + sec->show_key_check = GTK_CHECK_BUTTON (gtk_builder_get_object (parent->builder, "show_key_check")); + sec->editing_connection = secrets_only ? FALSE : TRUE; sec->password_flags_name = NM_SETTING_WIRELESS_SECURITY_WEP_KEY0; sec->type = type; - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "key_entry")); - g_assert (widget); - gtk_entry_set_width_chars (GTK_ENTRY (widget), 28); + gtk_entry_set_width_chars (sec->key_entry, 28); /* Create password-storage popup menu for password entry under entry's secondary icon */ if (connection) setting = (NMSetting *) nm_connection_get_setting_wireless_security (connection); - nma_utils_setup_password_storage (widget, 0, setting, sec->password_flags_name, + nma_utils_setup_password_storage (GTK_WIDGET (sec->key_entry), 0, setting, sec->password_flags_name, FALSE, secrets_only); if (connection) { @@ -328,40 +314,35 @@ ws_wep_key_new (NMConnection *connection, } } - g_signal_connect_swapped (widget, "changed", G_CALLBACK (changed_cb), sec); - g_signal_connect_swapped (widget, "insert-text", G_CALLBACK (wep_entry_filter_cb), sec); + g_signal_connect_swapped (sec->key_entry, "changed", G_CALLBACK (changed_cb), sec); + g_signal_connect_swapped (sec->key_entry, "insert-text", G_CALLBACK (wep_entry_filter_cb), sec); if (sec->type == NM_WEP_KEY_TYPE_KEY) - gtk_entry_set_max_length (GTK_ENTRY (widget), 26); + gtk_entry_set_max_length (sec->key_entry, 26); else if (sec->type == NM_WEP_KEY_TYPE_PASSPHRASE) - gtk_entry_set_max_length (GTK_ENTRY (widget), 64); + gtk_entry_set_max_length (sec->key_entry, 64); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "key_index_combo")); if (connection && s_wsec) default_key_idx = nm_setting_wireless_security_get_wep_tx_keyidx (s_wsec); - gtk_combo_box_set_active (GTK_COMBO_BOX (widget), default_key_idx); + gtk_combo_box_set_active (sec->key_index_combo, default_key_idx); sec->cur_index = default_key_idx; - g_signal_connect_swapped (widget, "changed", G_CALLBACK (key_index_combo_changed_cb), sec); + g_signal_connect_swapped (sec->key_index_combo, "changed", G_CALLBACK (key_index_combo_changed_cb), sec); /* Key index is useless with adhoc networks */ if (is_adhoc || secrets_only) { - gtk_widget_hide (widget); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "key_index_label")); - gtk_widget_hide (widget); + gtk_widget_hide (GTK_WIDGET (sec->key_index_combo)); + gtk_widget_hide (GTK_WIDGET (sec->key_index_label)); } /* Fill the key entry with the key for that index */ if (connection) update_secrets (WIRELESS_SECURITY (sec), connection); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "show_key_check")); - g_assert (widget); - g_signal_connect_swapped (widget, "toggled", G_CALLBACK (show_toggled_cb), sec); + g_signal_connect_swapped (sec->show_key_check, "toggled", G_CALLBACK (show_toggled_cb), sec); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "auth_method_combo")); - gtk_combo_box_set_active (GTK_COMBO_BOX (widget), is_shared_key ? 1 : 0); + gtk_combo_box_set_active (sec->auth_method_combo, is_shared_key ? 1 : 0); - g_signal_connect_swapped (widget, "changed", G_CALLBACK (changed_cb), sec); + g_signal_connect_swapped (sec->auth_method_combo, "changed", G_CALLBACK (changed_cb), sec); /* Don't show auth method for adhoc (which always uses open-system) or * when in "simple" mode. @@ -369,10 +350,9 @@ ws_wep_key_new (NMConnection *connection, if (is_adhoc || secrets_only) { /* Ad-Hoc connections can't use Shared Key auth */ if (is_adhoc) - gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 0); - gtk_widget_hide (widget); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "auth_method_label")); - gtk_widget_hide (widget); + gtk_combo_box_set_active (sec->auth_method_combo, 0); + gtk_widget_hide (GTK_WIDGET (sec->auth_method_combo)); + gtk_widget_hide (GTK_WIDGET (sec->auth_method_label)); } return sec; diff --git a/panels/network/wireless-security/ws-wpa-eap.c b/panels/network/wireless-security/ws-wpa-eap.c index 1a8e791ae..312074cbf 100644 --- a/panels/network/wireless-security/ws-wpa-eap.c +++ b/panels/network/wireless-security/ws-wpa-eap.c @@ -32,6 +32,11 @@ struct _WirelessSecurityWPAEAP { WirelessSecurity parent; + GtkComboBox *auth_combo; + GtkLabel *auth_label; + GtkGrid *grid; + GtkBox *method_box; + GtkSizeGroup *size_group; }; @@ -48,13 +53,15 @@ destroy (WirelessSecurity *parent) static GtkWidget * get_widget (WirelessSecurity *parent) { - return GTK_WIDGET (gtk_builder_get_object (parent->builder, "grid")); + WirelessSecurityWPAEAP *self = (WirelessSecurityWPAEAP *) parent; + return GTK_WIDGET (self->grid); } static gboolean validate (WirelessSecurity *parent, GError **error) { - return ws_802_1x_validate (GTK_COMBO_BOX (gtk_builder_get_object (parent->builder, "auth_combo")), error); + WirelessSecurityWPAEAP *self = (WirelessSecurityWPAEAP *) parent; + return ws_802_1x_validate (self->auth_combo, error); } static void @@ -66,17 +73,16 @@ add_to_size_group (WirelessSecurity *parent, GtkSizeGroup *group) g_object_unref (sec->size_group); sec->size_group = g_object_ref (group); - ws_802_1x_add_to_size_group (sec->size_group, - GTK_LABEL (gtk_builder_get_object (parent->builder, "auth_label")), - GTK_COMBO_BOX (gtk_builder_get_object (parent->builder, "auth_combo"))); + ws_802_1x_add_to_size_group (sec->size_group, sec->auth_label, sec->auth_combo); } static void fill_connection (WirelessSecurity *parent, NMConnection *connection) { + WirelessSecurityWPAEAP *self = (WirelessSecurityWPAEAP *) parent; NMSettingWirelessSecurity *s_wireless_sec; - ws_802_1x_fill_connection (GTK_COMBO_BOX (gtk_builder_get_object (parent->builder, "auth_combo")), connection); + ws_802_1x_fill_connection (self->auth_combo, connection); s_wireless_sec = nm_connection_get_setting_wireless_security (connection); g_assert (s_wireless_sec); @@ -92,7 +98,7 @@ auth_combo_changed_cb (GtkWidget *combo, gpointer user_data) ws_802_1x_auth_combo_changed (combo, parent, - GTK_BOX (gtk_builder_get_object (parent->builder, "method_box")), + sec->method_box, sec->size_group); } @@ -102,6 +108,7 @@ ws_wpa_eap_new (NMConnection *connection, gboolean secrets_only) { WirelessSecurity *parent; + WirelessSecurityWPAEAP *self; parent = wireless_security_init (sizeof (WirelessSecurityWPAEAP), get_widget, @@ -112,18 +119,24 @@ ws_wpa_eap_new (NMConnection *connection, "/org/gnome/ControlCenter/network/ws-wpa-eap.ui"); if (!parent) return NULL; + self = (WirelessSecurityWPAEAP *) parent; + + self->auth_combo = GTK_COMBO_BOX (gtk_builder_get_object (parent->builder, "auth_combo")); + self->auth_label = GTK_LABEL (gtk_builder_get_object (parent->builder, "auth_label")); + self->grid = GTK_GRID (gtk_builder_get_object (parent->builder, "grid")); + self->method_box = GTK_BOX (gtk_builder_get_object (parent->builder, "method_box")); wireless_security_set_adhoc_compatible (parent, FALSE); wireless_security_set_hotspot_compatible (parent, FALSE); ws_802_1x_auth_combo_init (parent, - GTK_COMBO_BOX (gtk_builder_get_object (parent->builder, "auth_combo")), - GTK_LABEL (gtk_builder_get_object (parent->builder, "auth_label")), + self->auth_combo, + self->auth_label, (GCallback) auth_combo_changed_cb, connection, is_editor, secrets_only); - auth_combo_changed_cb (GTK_WIDGET (gtk_builder_get_object (parent->builder, "auth_combo")), parent); + auth_combo_changed_cb (GTK_WIDGET (self->auth_combo), parent); return (WirelessSecurityWPAEAP *) parent; } diff --git a/panels/network/wireless-security/ws-wpa-psk.c b/panels/network/wireless-security/ws-wpa-psk.c index a02d38c5e..4e1ba3006 100644 --- a/panels/network/wireless-security/ws-wpa-psk.c +++ b/panels/network/wireless-security/ws-wpa-psk.c @@ -36,6 +36,13 @@ struct _WirelessSecurityWPAPSK { WirelessSecurity parent; + GtkGrid *grid; + GtkEntry *password_entry; + GtkLabel *password_label; + GtkCheckButton *show_password_check; + GtkComboBox *type_combo; + GtkLabel *type_label; + gboolean editing_connection; const char *password_flags_name; }; @@ -43,38 +50,31 @@ struct _WirelessSecurityWPAPSK { static GtkWidget * get_widget (WirelessSecurity *parent) { - return GTK_WIDGET (gtk_builder_get_object (parent->builder, "grid")); + WirelessSecurityWPAPSK *self = (WirelessSecurityWPAPSK *) parent; + return GTK_WIDGET (self->grid); } static void show_toggled_cb (WirelessSecurityWPAPSK *self) { - WirelessSecurity *sec = (WirelessSecurity *) self; - GtkWidget *widget; gboolean visible; - widget = GTK_WIDGET (gtk_builder_get_object (sec->builder, "show_password_check")); - visible = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)); - - widget = GTK_WIDGET (gtk_builder_get_object (sec->builder, "password_entry")); - gtk_entry_set_visibility (GTK_ENTRY (widget), visible); + visible = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (self->show_password_check)); + gtk_entry_set_visibility (self->password_entry, visible); } static gboolean validate (WirelessSecurity *parent, GError **error) { - GtkWidget *entry; + WirelessSecurityWPAPSK *self = (WirelessSecurityWPAPSK *) parent; const char *key; gsize len; int i; - entry = GTK_WIDGET (gtk_builder_get_object (parent->builder, "password_entry")); - g_assert (entry); - - key = gtk_entry_get_text (GTK_ENTRY (entry)); + key = gtk_entry_get_text (self->password_entry); len = key ? strlen (key) : 0; if ((len < 8) || (len > 64)) { - widget_set_error (entry); + widget_set_error (GTK_WIDGET (self->password_entry)); g_set_error (error, NMA_ERROR, NMA_ERROR_GENERIC, _("invalid wpa-psk: invalid key-length %zu. Must be [8,63] bytes or 64 hex digits"), len); return FALSE; } @@ -83,13 +83,13 @@ validate (WirelessSecurity *parent, GError **error) /* Hex PSK */ for (i = 0; i < len; i++) { if (!isxdigit (key[i])) { - widget_set_error (entry); + widget_set_error (GTK_WIDGET (self->password_entry)); g_set_error_literal (error, NMA_ERROR, NMA_ERROR_GENERIC, _("invalid wpa-psk: cannot interpret key with 64 bytes as hex")); return FALSE; } } } - widget_unset_error (entry); + widget_unset_error (GTK_WIDGET (self->password_entry)); /* passphrase can be between 8 and 63 characters inclusive */ @@ -99,20 +99,15 @@ validate (WirelessSecurity *parent, GError **error) static void add_to_size_group (WirelessSecurity *parent, GtkSizeGroup *group) { - GtkWidget *widget; - - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "type_label")); - gtk_size_group_add_widget (group, widget); - - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "password_label")); - gtk_size_group_add_widget (group, widget); + WirelessSecurityWPAPSK *self = (WirelessSecurityWPAPSK *) parent; + gtk_size_group_add_widget (group, GTK_WIDGET (self->type_label)); + gtk_size_group_add_widget (group, GTK_WIDGET (self->password_label)); } static void fill_connection (WirelessSecurity *parent, NMConnection *connection) { WirelessSecurityWPAPSK *wpa_psk = (WirelessSecurityWPAPSK *) parent; - GtkWidget *widget, *passwd_entry; const char *key; NMSettingWireless *s_wireless; NMSettingWirelessSecurity *s_wireless_sec; @@ -131,19 +126,17 @@ fill_connection (WirelessSecurity *parent, NMConnection *connection) s_wireless_sec = (NMSettingWirelessSecurity *) nm_setting_wireless_security_new (); nm_connection_add_setting (connection, (NMSetting *) s_wireless_sec); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "password_entry")); - passwd_entry = widget; - key = gtk_entry_get_text (GTK_ENTRY (widget)); + key = gtk_entry_get_text (wpa_psk->password_entry); g_object_set (s_wireless_sec, NM_SETTING_WIRELESS_SECURITY_PSK, key, NULL); /* Save PSK_FLAGS to the connection */ - secret_flags = nma_utils_menu_to_secret_flags (passwd_entry); + secret_flags = nma_utils_menu_to_secret_flags (GTK_WIDGET (wpa_psk->password_entry)); nm_setting_set_secret_flags (NM_SETTING (s_wireless_sec), NM_SETTING_WIRELESS_SECURITY_PSK, secret_flags, NULL); /* Update secret flags and popup when editing the connection */ if (wpa_psk->editing_connection) - nma_utils_update_password_storage (passwd_entry, secret_flags, + nma_utils_update_password_storage (GTK_WIDGET (wpa_psk->password_entry), secret_flags, NM_SETTING (s_wireless_sec), wpa_psk->password_flags_name); wireless_security_clear_ciphers (connection); @@ -169,8 +162,9 @@ fill_connection (WirelessSecurity *parent, NMConnection *connection) static void update_secrets (WirelessSecurity *parent, NMConnection *connection) { + WirelessSecurityWPAPSK *self = (WirelessSecurityWPAPSK *) parent; helper_fill_secret_entry (connection, - GTK_ENTRY (gtk_builder_get_object (parent->builder, "password_entry")), + self->password_entry, NM_TYPE_SETTING_WIRELESS_SECURITY, (HelperSecretFunc) nm_setting_wireless_security_get_psk); } @@ -187,7 +181,6 @@ ws_wpa_psk_new (NMConnection *connection, gboolean secrets_only) WirelessSecurity *parent; WirelessSecurityWPAPSK *sec; NMSetting *setting = NULL; - GtkWidget *widget; parent = wireless_security_init (sizeof (WirelessSecurityWPAPSK), get_widget, @@ -198,42 +191,41 @@ ws_wpa_psk_new (NMConnection *connection, gboolean secrets_only) "/org/gnome/ControlCenter/network/ws-wpa-psk.ui"); if (!parent) return NULL; + sec = (WirelessSecurityWPAPSK *) parent; + + sec->grid = GTK_GRID (gtk_builder_get_object (parent->builder, "grid")); + sec->password_entry = GTK_ENTRY (gtk_builder_get_object (parent->builder, "password_entry")); + sec->password_label = GTK_LABEL (gtk_builder_get_object (parent->builder, "password_label")); + sec->show_password_check = GTK_CHECK_BUTTON (gtk_builder_get_object (parent->builder, "show_password_check")); + sec->type_combo = GTK_COMBO_BOX (gtk_builder_get_object (parent->builder, "type_combo")); + sec->type_label = GTK_LABEL (gtk_builder_get_object (parent->builder, "type_label")); wireless_security_set_adhoc_compatible (parent, FALSE); - sec = (WirelessSecurityWPAPSK *) parent; + sec->editing_connection = secrets_only ? FALSE : TRUE; sec->password_flags_name = NM_SETTING_WIRELESS_SECURITY_PSK; - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "password_entry")); - g_assert (widget); - g_signal_connect_swapped (widget, "changed", G_CALLBACK (changed_cb), sec); - gtk_entry_set_width_chars (GTK_ENTRY (widget), 28); + g_signal_connect_swapped (sec->password_entry, "changed", G_CALLBACK (changed_cb), sec); + gtk_entry_set_width_chars (sec->password_entry, 28); /* Create password-storage popup menu for password entry under entry's secondary icon */ if (connection) setting = (NMSetting *) nm_connection_get_setting_wireless_security (connection); - nma_utils_setup_password_storage (widget, 0, setting, sec->password_flags_name, + nma_utils_setup_password_storage (GTK_WIDGET (sec->password_entry), 0, setting, sec->password_flags_name, FALSE, secrets_only); /* Fill secrets, if any */ if (connection) update_secrets (WIRELESS_SECURITY (sec), connection); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "show_password_check")); - g_assert (widget); - g_signal_connect_swapped (widget, "toggled", G_CALLBACK (show_toggled_cb), sec); + g_signal_connect_swapped (sec->show_password_check, "toggled", G_CALLBACK (show_toggled_cb), sec); /* Hide WPA/RSN for now since this can be autodetected by NM and the * supplicant when connecting to the AP. */ - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "type_combo")); - g_assert (widget); - gtk_widget_hide (widget); - - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "type_label")); - g_assert (widget); - gtk_widget_hide (widget); + gtk_widget_hide (GTK_WIDGET (sec->type_combo)); + gtk_widget_hide (GTK_WIDGET (sec->type_label)); return sec; } |