diff options
author | Robert Ancell <robert.ancell@canonical.com> | 2019-11-06 15:50:40 +1300 |
---|---|---|
committer | Robert Ancell <robert.ancell@canonical.com> | 2019-11-06 22:04:15 +1300 |
commit | eb7372d83b9e13aee852331b78fc7f364fe19878 (patch) | |
tree | a332d04af771793d0ec62a16e0082366c2c45c64 | |
parent | fc25e17a9f50114f2269ddc2a2491bcd93c1897e (diff) | |
download | gnome-control-center-eb7372d83b9e13aee852331b78fc7f364fe19878.tar.gz |
network: Move connection reference outside of CEPage
-rw-r--r-- | panels/network/connection-editor/ce-page-8021x-security.c | 69 | ||||
-rw-r--r-- | panels/network/connection-editor/ce-page-8021x-security.h | 3 | ||||
-rw-r--r-- | panels/network/connection-editor/ce-page-details.c | 22 | ||||
-rw-r--r-- | panels/network/connection-editor/ce-page-details.h | 1 | ||||
-rw-r--r-- | panels/network/connection-editor/ce-page-ethernet.c | 4 | ||||
-rw-r--r-- | panels/network/connection-editor/ce-page-ip4.c | 4 | ||||
-rw-r--r-- | panels/network/connection-editor/ce-page-ip6.c | 4 | ||||
-rw-r--r-- | panels/network/connection-editor/ce-page-security.c | 30 | ||||
-rw-r--r-- | panels/network/connection-editor/ce-page-security.h | 3 | ||||
-rw-r--r-- | panels/network/connection-editor/ce-page-vpn.c | 22 | ||||
-rw-r--r-- | panels/network/connection-editor/ce-page-vpn.h | 3 | ||||
-rw-r--r-- | panels/network/connection-editor/ce-page-wifi.c | 4 | ||||
-rw-r--r-- | panels/network/connection-editor/ce-page.c | 89 | ||||
-rw-r--r-- | panels/network/connection-editor/ce-page.h | 2 | ||||
-rw-r--r-- | panels/network/connection-editor/net-connection-editor.c | 12 |
15 files changed, 91 insertions, 181 deletions
diff --git a/panels/network/connection-editor/ce-page-8021x-security.c b/panels/network/connection-editor/ce-page-8021x-security.c index 9884fa77b..fc35e6cca 100644 --- a/panels/network/connection-editor/ce-page-8021x-security.c +++ b/panels/network/connection-editor/ce-page-8021x-security.c @@ -43,6 +43,7 @@ struct _CEPage8021xSecurity { GtkGrid *grid; GtkLabel *security_label; + NMConnection *connection; GtkWidget *security_widget; WirelessSecurity *security; GtkSizeGroup *group; @@ -74,7 +75,7 @@ finish_setup (CEPage8021xSecurity *self, gpointer unused, GError *error, gpointe self->group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); - self->security = (WirelessSecurity *) ws_wpa_eap_new (CE_PAGE (self)->connection, TRUE, FALSE); + self->security = (WirelessSecurity *) ws_wpa_eap_new (self->connection, TRUE, FALSE); if (!self->security) { g_warning ("Could not load 802.1x user interface."); return; @@ -97,36 +98,6 @@ finish_setup (CEPage8021xSecurity *self, gpointer unused, GError *error, gpointe } -CEPage * -ce_page_8021x_security_new (NMConnection *connection, - NMClient *client) -{ - CEPage8021xSecurity *self; - g_autoptr(GError) error = NULL; - - self = CE_PAGE_8021X_SECURITY (g_object_new (ce_page_8021x_security_get_type (), - "connection", connection, - NULL)); - - self->builder = gtk_builder_new (); - if (!gtk_builder_add_from_resource (self->builder, "/org/gnome/control-center/network/8021x-security-page.ui", &error)) { - g_warning ("Couldn't load builder file: %s", error->message); - return NULL; - } - - self->box = GTK_BOX (gtk_builder_get_object (self->builder, "box")); - self->enable_8021x_switch = GTK_SWITCH (gtk_builder_get_object (self->builder, "enable_8021x_switch")); - self->grid = GTK_GRID (gtk_builder_get_object (self->builder, "grid")); - self->security_label = GTK_LABEL (gtk_builder_get_object (self->builder, "security_label")); - - if (nm_connection_get_setting_802_1x (connection)) - self->initial_have_8021x = TRUE; - - g_signal_connect (self, "initialized", G_CALLBACK (finish_setup), NULL); - - return CE_PAGE (self); -} - static const gchar * ce_page_8021x_security_get_security_setting (CEPage *page) { @@ -195,11 +166,12 @@ ce_page_8021x_security_init (CEPage8021xSecurity *self) } static void -dispose (GObject *object) +ce_page_8021x_security_dispose (GObject *object) { CEPage8021xSecurity *self = CE_PAGE_8021X_SECURITY (object); g_clear_object (&self->builder); + g_clear_object (&self->connection); g_clear_pointer (&self->security, wireless_security_unref); g_clear_object (&self->group); @@ -212,11 +184,38 @@ ce_page_8021x_security_class_init (CEPage8021xSecurityClass *security_class) GObjectClass *object_class = G_OBJECT_CLASS (security_class); CEPageClass *parent_class = CE_PAGE_CLASS (security_class); - /* virtual methods */ - object_class->dispose = dispose; - + object_class->dispose = ce_page_8021x_security_dispose; parent_class->get_security_setting = ce_page_8021x_security_get_security_setting; parent_class->get_widget = ce_page_8021x_security_get_widget; parent_class->get_title = ce_page_8021x_security_get_title; parent_class->validate = ce_page_8021x_security_validate; } + +CEPage * +ce_page_8021x_security_new (NMConnection *connection) +{ + CEPage8021xSecurity *self; + g_autoptr(GError) error = NULL; + + self = CE_PAGE_8021X_SECURITY (g_object_new (ce_page_8021x_security_get_type (), NULL)); + + self->builder = gtk_builder_new (); + if (!gtk_builder_add_from_resource (self->builder, "/org/gnome/control-center/network/8021x-security-page.ui", &error)) { + g_warning ("Couldn't load builder file: %s", error->message); + return NULL; + } + + self->box = GTK_BOX (gtk_builder_get_object (self->builder, "box")); + self->enable_8021x_switch = GTK_SWITCH (gtk_builder_get_object (self->builder, "enable_8021x_switch")); + self->grid = GTK_GRID (gtk_builder_get_object (self->builder, "grid")); + self->security_label = GTK_LABEL (gtk_builder_get_object (self->builder, "security_label")); + + self->connection = g_object_ref (connection); + + if (nm_connection_get_setting_802_1x (connection)) + self->initial_have_8021x = TRUE; + + g_signal_connect (self, "initialized", G_CALLBACK (finish_setup), NULL); + + return CE_PAGE (self); +} diff --git a/panels/network/connection-editor/ce-page-8021x-security.h b/panels/network/connection-editor/ce-page-8021x-security.h index f42c74d71..b89bd39f9 100644 --- a/panels/network/connection-editor/ce-page-8021x-security.h +++ b/panels/network/connection-editor/ce-page-8021x-security.h @@ -31,7 +31,6 @@ G_BEGIN_DECLS G_DECLARE_FINAL_TYPE (CEPage8021xSecurity, ce_page_8021x_security, CE, PAGE_8021X_SECURITY, CEPage) -CEPage *ce_page_8021x_security_new (NMConnection *connection, - NMClient *client); +CEPage *ce_page_8021x_security_new (NMConnection *connection); G_END_DECLS diff --git a/panels/network/connection-editor/ce-page-details.c b/panels/network/connection-editor/ce-page-details.c index 6c294fa56..34339ca17 100644 --- a/panels/network/connection-editor/ce-page-details.c +++ b/panels/network/connection-editor/ce-page-details.c @@ -57,6 +57,7 @@ struct _CEPageDetails GtkLabel *strength_heading_label; GtkLabel *strength_label; + NMConnection *connection; NMDevice *device; NMAccessPoint *ap; NetConnectionEditor *editor; @@ -153,7 +154,7 @@ all_user_changed (CEPageDetails *self) gboolean all_users; NMSettingConnection *sc; - sc = nm_connection_get_setting_connection (CE_PAGE (self)->connection); + sc = nm_connection_get_setting_connection (self->connection); all_users = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (self->all_user_check)); g_object_set (sc, "permissions", NULL, NULL); @@ -167,7 +168,7 @@ restrict_data_changed (CEPageDetails *self) NMSettingConnection *s_con; NMMetered metered; - s_con = nm_connection_get_setting_connection (CE_PAGE (self)->connection); + s_con = nm_connection_get_setting_connection (self->connection); if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (self->restrict_data_check))) metered = NM_METERED_YES; @@ -184,7 +185,7 @@ update_restrict_data (CEPageDetails *self) NMMetered metered; const gchar *type; - s_con = nm_connection_get_setting_connection (CE_PAGE (self)->connection); + s_con = nm_connection_get_setting_connection (self->connection); if (s_con == NULL) return; @@ -222,7 +223,7 @@ connect_details_page (CEPageDetails *self) NMIPConfig *ipv4_config = NULL, *ipv6_config = NULL; gboolean have_ipv4_address = FALSE, have_ipv6_address = FALSE; - sc = nm_connection_get_setting_connection (CE_PAGE (self)->connection); + sc = nm_connection_get_setting_connection (self->connection); type = nm_setting_connection_get_connection_type (sc); if (NM_IS_DEVICE_WIFI (self->device)) @@ -244,7 +245,7 @@ connect_details_page (CEPageDetails *self) ac = nm_device_get_active_connection (self->device); p1 = ac ? nm_active_connection_get_uuid (ac) : NULL; - p2 = nm_connection_get_uuid (CE_PAGE (self)->connection); + p2 = nm_connection_get_uuid (self->connection); if (g_strcmp0 (p1, p2) == 0) { device_is_active = TRUE; if (NM_IS_DEVICE_WIFI (self->device)) @@ -355,8 +356,8 @@ connect_details_page (CEPageDetails *self) gtk_label_set_label (self->ipv6_heading_label, _("IP Address")); } - if (!device_is_active && CE_PAGE (self)->connection) - update_last_used (self, CE_PAGE (self)->connection); + if (!device_is_active && self->connection) + update_last_used (self, self->connection); else { gtk_widget_set_visible (GTK_WIDGET (self->last_used_heading_label), FALSE); gtk_widget_set_visible (GTK_WIDGET (self->last_used_label), FALSE); @@ -401,6 +402,7 @@ ce_page_details_dispose (GObject *object) CEPageDetails *self = CE_PAGE_DETAILS (object); g_clear_object (&self->builder); + g_clear_object (&self->connection); G_OBJECT_CLASS (ce_page_details_parent_class)->dispose (object); } @@ -436,7 +438,6 @@ ce_page_details_class_init (CEPageDetailsClass *class) CEPage * ce_page_details_new (NMConnection *connection, - NMClient *client, NMDevice *device, NMAccessPoint *ap, NetConnectionEditor *editor) @@ -444,9 +445,7 @@ ce_page_details_new (NMConnection *connection, CEPageDetails *self; g_autoptr(GError) error = NULL; - self = CE_PAGE_DETAILS (g_object_new (ce_page_details_get_type (), - "connection", connection, - NULL)); + self = CE_PAGE_DETAILS (g_object_new (ce_page_details_get_type (), NULL)); self->builder = gtk_builder_new (); if (!gtk_builder_add_from_resource (self->builder, "/org/gnome/control-center/network/details-page.ui", &error)) { @@ -478,6 +477,7 @@ ce_page_details_new (NMConnection *connection, self->strength_heading_label = GTK_LABEL (gtk_builder_get_object (self->builder, "strength_heading_label")); self->strength_label = GTK_LABEL (gtk_builder_get_object (self->builder, "strength_label")); + self->connection = g_object_ref (connection); self->editor = editor; self->device = device; self->ap = ap; diff --git a/panels/network/connection-editor/ce-page-details.h b/panels/network/connection-editor/ce-page-details.h index 4bea550c5..c8e5c5f27 100644 --- a/panels/network/connection-editor/ce-page-details.h +++ b/panels/network/connection-editor/ce-page-details.h @@ -31,7 +31,6 @@ G_BEGIN_DECLS G_DECLARE_FINAL_TYPE (CEPageDetails, ce_page_details, CE, PAGE_DETAILS, CEPage) CEPage *ce_page_details_new (NMConnection *connection, - NMClient *client, NMDevice *device, NMAccessPoint *ap, NetConnectionEditor *editor); diff --git a/panels/network/connection-editor/ce-page-ethernet.c b/panels/network/connection-editor/ce-page-ethernet.c index 77578065e..670da53ee 100644 --- a/panels/network/connection-editor/ce-page-ethernet.c +++ b/panels/network/connection-editor/ce-page-ethernet.c @@ -225,9 +225,7 @@ ce_page_ethernet_new (NMConnection *connection, CEPageEthernet *self; g_autoptr(GError) error = NULL; - self = CE_PAGE_ETHERNET (g_object_new (ce_page_ethernet_get_type (), - "connection", connection, - NULL)); + self = CE_PAGE_ETHERNET (g_object_new (ce_page_ethernet_get_type (), NULL)); self->builder = gtk_builder_new (); if (!gtk_builder_add_from_resource (self->builder, "/org/gnome/control-center/network/ethernet-page.ui", &error)) { diff --git a/panels/network/connection-editor/ce-page-ip4.c b/panels/network/connection-editor/ce-page-ip4.c index 50162c90b..9b9ad8592 100644 --- a/panels/network/connection-editor/ce-page-ip4.c +++ b/panels/network/connection-editor/ce-page-ip4.c @@ -905,9 +905,7 @@ ce_page_ip4_new (NMConnection *connection, CEPageIP4 *self; g_autoptr(GError) error = NULL; - self = CE_PAGE_IP4 (g_object_new (ce_page_ip4_get_type (), - "connection", connection, - NULL)); + self = CE_PAGE_IP4 (g_object_new (ce_page_ip4_get_type (), NULL)); self->builder = gtk_builder_new (); if (!gtk_builder_add_from_resource (self->builder, "/org/gnome/control-center/network/ip4-page.ui", &error)) { diff --git a/panels/network/connection-editor/ce-page-ip6.c b/panels/network/connection-editor/ce-page-ip6.c index c58682075..16e81e43b 100644 --- a/panels/network/connection-editor/ce-page-ip6.c +++ b/panels/network/connection-editor/ce-page-ip6.c @@ -828,9 +828,7 @@ ce_page_ip6_new (NMConnection *connection, CEPageIP6 *self; g_autoptr(GError) error = NULL; - self = CE_PAGE_IP6 (g_object_new (ce_page_ip6_get_type (), - "connection", connection, - NULL)); + self = CE_PAGE_IP6 (g_object_new (ce_page_ip6_get_type (), NULL)); self->builder = gtk_builder_new (); if (!gtk_builder_add_from_resource (self->builder, "/org/gnome/control-center/network/ip6-page.ui", &error)) { diff --git a/panels/network/connection-editor/ce-page-security.c b/panels/network/connection-editor/ce-page-security.c index 5bac5ad68..619d2e8c3 100644 --- a/panels/network/connection-editor/ce-page-security.c +++ b/panels/network/connection-editor/ce-page-security.c @@ -44,6 +44,7 @@ struct _CEPageSecurity GtkComboBox *security_combo; GtkLabel *security_label; + NMConnection *connection; const gchar *security_setting; GtkSizeGroup *group; gboolean adhoc; @@ -215,7 +216,6 @@ set_sensitive (GtkCellLayout *cell_layout, static void finish_setup (CEPageSecurity *self) { - NMConnection *connection = CE_PAGE (self)->connection; NMSettingWireless *sw; NMSettingWirelessSecurity *sws; gboolean is_adhoc = FALSE; @@ -228,7 +228,7 @@ finish_setup (CEPageSecurity *self) int item = 0; GtkCellRenderer *renderer; - sw = nm_connection_get_setting_wireless (connection); + sw = nm_connection_get_setting_wireless (self->connection); g_assert (sw); self->group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); @@ -245,7 +245,7 @@ finish_setup (CEPageSecurity *self) is_adhoc = TRUE; self->adhoc = is_adhoc; - sws = nm_connection_get_setting_wireless_security (connection); + sws = nm_connection_get_setting_wireless_security (self->connection); if (sws) default_type = get_default_type_for_security (sws); @@ -266,14 +266,14 @@ finish_setup (CEPageSecurity *self) NMWepKeyType wep_type = NM_WEP_KEY_TYPE_KEY; if (default_type == NMU_SEC_STATIC_WEP) { - sws = nm_connection_get_setting_wireless_security (connection); + sws = nm_connection_get_setting_wireless_security (self->connection); if (sws) wep_type = nm_setting_wireless_security_get_wep_key_type (sws); if (wep_type == NM_WEP_KEY_TYPE_UNKNOWN) wep_type = NM_WEP_KEY_TYPE_KEY; } - ws_wep = ws_wep_key_new (connection, NM_WEP_KEY_TYPE_KEY, FALSE, FALSE); + ws_wep = ws_wep_key_new (self->connection, NM_WEP_KEY_TYPE_KEY, FALSE, FALSE); if (ws_wep) { add_security_item (self, WIRELESS_SECURITY (ws_wep), sec_model, &iter, _("WEP 40/128-bit Key (Hex or ASCII)"), @@ -283,7 +283,7 @@ finish_setup (CEPageSecurity *self) item++; } - ws_wep = ws_wep_key_new (connection, NM_WEP_KEY_TYPE_PASSPHRASE, FALSE, FALSE); + ws_wep = ws_wep_key_new (self->connection, NM_WEP_KEY_TYPE_PASSPHRASE, FALSE, FALSE); if (ws_wep) { add_security_item (self, WIRELESS_SECURITY (ws_wep), sec_model, &iter, _("WEP 128-bit Passphrase"), TRUE); @@ -296,7 +296,7 @@ finish_setup (CEPageSecurity *self) if (nm_utils_security_valid (NMU_SEC_LEAP, dev_caps, FALSE, is_adhoc, 0, 0, 0)) { WirelessSecurityLEAP *ws_leap; - ws_leap = ws_leap_new (connection, FALSE); + ws_leap = ws_leap_new (self->connection, FALSE); if (ws_leap) { add_security_item (self, WIRELESS_SECURITY (ws_leap), sec_model, &iter, _("LEAP"), FALSE); @@ -309,7 +309,7 @@ finish_setup (CEPageSecurity *self) if (nm_utils_security_valid (NMU_SEC_DYNAMIC_WEP, dev_caps, FALSE, is_adhoc, 0, 0, 0)) { WirelessSecurityDynamicWEP *ws_dynamic_wep; - ws_dynamic_wep = ws_dynamic_wep_new (connection, TRUE, FALSE); + ws_dynamic_wep = ws_dynamic_wep_new (self->connection, TRUE, FALSE); if (ws_dynamic_wep) { add_security_item (self, WIRELESS_SECURITY (ws_dynamic_wep), sec_model, &iter, _("Dynamic WEP (802.1x)"), FALSE); @@ -323,7 +323,7 @@ finish_setup (CEPageSecurity *self) nm_utils_security_valid (NMU_SEC_WPA2_PSK, dev_caps, FALSE, is_adhoc, 0, 0, 0)) { WirelessSecurityWPAPSK *ws_wpa_psk; - ws_wpa_psk = ws_wpa_psk_new (connection, FALSE); + ws_wpa_psk = ws_wpa_psk_new (self->connection, FALSE); if (ws_wpa_psk) { add_security_item (self, WIRELESS_SECURITY (ws_wpa_psk), sec_model, &iter, _("WPA & WPA2 Personal"), FALSE); @@ -337,7 +337,7 @@ finish_setup (CEPageSecurity *self) nm_utils_security_valid (NMU_SEC_WPA2_ENTERPRISE, dev_caps, FALSE, is_adhoc, 0, 0, 0)) { WirelessSecurityWPAEAP *ws_wpa_eap; - ws_wpa_eap = ws_wpa_eap_new (connection, TRUE, FALSE); + ws_wpa_eap = ws_wpa_eap_new (self->connection, TRUE, FALSE); if (ws_wpa_eap) { add_security_item (self, WIRELESS_SECURITY (ws_wpa_eap), sec_model, &iter, _("WPA & WPA2 Enterprise"), FALSE); @@ -368,6 +368,7 @@ ce_page_security_dispose (GObject *object) CEPageSecurity *self = CE_PAGE_SECURITY (object); g_clear_object (&self->builder); + g_clear_object (&self->connection); g_clear_object (&self->group); G_OBJECT_CLASS (ce_page_security_parent_class)->dispose (object); @@ -461,17 +462,14 @@ ce_page_security_class_init (CEPageSecurityClass *class) } CEPage * -ce_page_security_new (NMConnection *connection, - NMClient *client) +ce_page_security_new (NMConnection *connection) { CEPageSecurity *self; NMUtilsSecurityType default_type = NMU_SEC_NONE; NMSettingWirelessSecurity *sws; g_autoptr(GError) error = NULL; - self = CE_PAGE_SECURITY (g_object_new (ce_page_security_get_type (), - "connection", connection, - NULL)); + self = CE_PAGE_SECURITY (g_object_new (ce_page_security_get_type (), NULL)); self->builder = gtk_builder_new (); if (!gtk_builder_add_from_resource (self->builder, "/org/gnome/control-center/network/security-page.ui", &error)) { @@ -484,6 +482,8 @@ ce_page_security_new (NMConnection *connection, self->security_label = GTK_LABEL (gtk_builder_get_object (self->builder, "security_label")); self->security_combo = GTK_COMBO_BOX (gtk_builder_get_object (self->builder, "security_combo")); + self->connection = g_object_ref (connection); + sws = nm_connection_get_setting_wireless_security (connection); if (sws) default_type = get_default_type_for_security (sws); diff --git a/panels/network/connection-editor/ce-page-security.h b/panels/network/connection-editor/ce-page-security.h index 5c8d8a720..82d07f37e 100644 --- a/panels/network/connection-editor/ce-page-security.h +++ b/panels/network/connection-editor/ce-page-security.h @@ -29,7 +29,6 @@ G_BEGIN_DECLS G_DECLARE_FINAL_TYPE (CEPageSecurity, ce_page_security, CE, PAGE_SECURITY, CEPage) -CEPage *ce_page_security_new (NMConnection *connection, - NMClient *client); +CEPage *ce_page_security_new (NMConnection *connection); G_END_DECLS diff --git a/panels/network/connection-editor/ce-page-vpn.c b/panels/network/connection-editor/ce-page-vpn.c index 758c26a8b..a9d334c8c 100644 --- a/panels/network/connection-editor/ce-page-vpn.c +++ b/panels/network/connection-editor/ce-page-vpn.c @@ -38,6 +38,7 @@ struct _CEPageVpn GtkLabel *failure_label; GtkEntry *name_entry; + NMConnection *connection; NMSettingConnection *setting_connection; NMSettingVpn *setting_vpn; @@ -89,12 +90,12 @@ vpn_gnome3ify_editor (GtkWidget *widget) } static void -load_vpn_plugin (CEPageVpn *self, NMConnection *connection) +load_vpn_plugin (CEPageVpn *self) { GtkWidget *ui_widget; self->editor = nm_vpn_editor_plugin_get_editor (self->plugin, - connection, + self->connection, NULL); ui_widget = NULL; if (self->editor) @@ -131,6 +132,7 @@ ce_page_vpn_dispose (GObject *object) CEPageVpn *self = CE_PAGE_VPN (object); g_clear_object (&self->builder); + g_clear_object (&self->connection); g_clear_object (&self->editor); G_OBJECT_CLASS (ce_page_vpn_parent_class)->dispose (object); @@ -196,30 +198,26 @@ ce_page_vpn_class_init (CEPageVpnClass *class) static void finish_setup (CEPageVpn *self, gpointer unused, GError *error, gpointer user_data) { - NMConnection *connection = CE_PAGE (self)->connection; const char *vpn_type; - self->setting_connection = nm_connection_get_setting_connection (connection); - self->setting_vpn = nm_connection_get_setting_vpn (connection); + self->setting_connection = nm_connection_get_setting_connection (self->connection); + self->setting_vpn = nm_connection_get_setting_vpn (self->connection); vpn_type = nm_setting_vpn_get_service_type (self->setting_vpn); self->plugin = vpn_get_plugin_by_service (vpn_type); if (self->plugin) - load_vpn_plugin (self, connection); + load_vpn_plugin (self); connect_vpn_page (self); } CEPage * -ce_page_vpn_new (NMConnection *connection, - NMClient *client) +ce_page_vpn_new (NMConnection *connection) { CEPageVpn *self; g_autoptr(GError) error = NULL; - self = CE_PAGE_VPN (g_object_new (ce_page_vpn_get_type (), - "connection", connection, - NULL)); + self = CE_PAGE_VPN (g_object_new (ce_page_vpn_get_type (), NULL)); self->builder = gtk_builder_new (); if (!gtk_builder_add_from_resource (self->builder, "/org/gnome/control-center/network/vpn-page.ui", &error)) { @@ -231,6 +229,8 @@ ce_page_vpn_new (NMConnection *connection, self->failure_label = GTK_LABEL (gtk_builder_get_object (self->builder, "failure_label")); self->name_entry = GTK_ENTRY (gtk_builder_get_object (self->builder, "name_entry")); + self->connection = g_object_ref (connection); + g_signal_connect (self, "initialized", G_CALLBACK (finish_setup), NULL); return CE_PAGE (self); diff --git a/panels/network/connection-editor/ce-page-vpn.h b/panels/network/connection-editor/ce-page-vpn.h index 8f8920959..bc7b1e850 100644 --- a/panels/network/connection-editor/ce-page-vpn.h +++ b/panels/network/connection-editor/ce-page-vpn.h @@ -29,7 +29,6 @@ G_BEGIN_DECLS G_DECLARE_FINAL_TYPE (CEPageVpn, ce_page_vpn, CE, PAGE_VPN, CEPage) -CEPage *ce_page_vpn_new (NMConnection *connection, - NMClient *client); +CEPage *ce_page_vpn_new (NMConnection *connection); G_END_DECLS diff --git a/panels/network/connection-editor/ce-page-wifi.c b/panels/network/connection-editor/ce-page-wifi.c index f0968f66b..bd90b4519 100644 --- a/panels/network/connection-editor/ce-page-wifi.c +++ b/panels/network/connection-editor/ce-page-wifi.c @@ -211,9 +211,7 @@ ce_page_wifi_new (NMConnection *connection, CEPageWifi *self; g_autoptr(GError) error = NULL; - self = CE_PAGE_WIFI (g_object_new (ce_page_wifi_get_type (), - "connection", connection, - NULL)); + self = CE_PAGE_WIFI (g_object_new (ce_page_wifi_get_type (), NULL)); self->builder = gtk_builder_new (); if (!gtk_builder_add_from_resource (self->builder, "/org/gnome/control-center/network/wifi-page.ui", &error)) { diff --git a/panels/network/connection-editor/ce-page.c b/panels/network/connection-editor/ce-page.c index e53115036..34d4d5e77 100644 --- a/panels/network/connection-editor/ce-page.c +++ b/panels/network/connection-editor/ce-page.c @@ -36,12 +36,6 @@ G_DEFINE_ABSTRACT_TYPE (CEPage, ce_page, G_TYPE_OBJECT) enum { - PROP_0, - PROP_CONNECTION, - PROP_INITIALIZED, -}; - -enum { CHANGED, INITIALIZED, LAST_SIGNAL @@ -61,16 +55,6 @@ ce_page_validate (CEPage *self, NMConnection *connection, GError **error) return TRUE; } -static void -dispose (GObject *object) -{ - CEPage *self = CE_PAGE (object); - - g_clear_object (&self->connection); - - G_OBJECT_CLASS (ce_page_parent_class)->dispose (object); -} - GtkWidget * ce_page_get_widget (CEPage *self) { @@ -104,46 +88,6 @@ ce_page_changed (CEPage *self) } static void -get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) -{ - CEPage *self = CE_PAGE (object); - - switch (prop_id) { - case PROP_CONNECTION: - g_value_set_object (value, self->connection); - break; - case PROP_INITIALIZED: - g_value_set_boolean (value, self->initialized); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -static void -set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) -{ - CEPage *self = CE_PAGE (object); - - switch (prop_id) { - case PROP_CONNECTION: - g_clear_object (&self->connection); - self->connection = g_value_dup_object (value); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -static void ce_page_init (CEPage *self) { } @@ -153,28 +97,6 @@ ce_page_class_init (CEPageClass *page_class) { GObjectClass *object_class = G_OBJECT_CLASS (page_class); - /* virtual methods */ - object_class->dispose = dispose; - object_class->get_property = get_property; - object_class->set_property = set_property; - - /* Properties */ - g_object_class_install_property - (object_class, PROP_CONNECTION, - g_param_spec_object ("connection", - "Connection", - "Connection", - NM_TYPE_CONNECTION, - G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY)); - - g_object_class_install_property - (object_class, PROP_INITIALIZED, - g_param_spec_boolean ("initialized", - "Initialized", - "Initialized", - FALSE, - G_PARAM_READABLE)); - signals[CHANGED] = g_signal_new ("changed", G_OBJECT_CLASS_TYPE (object_class), @@ -204,10 +126,11 @@ emit_initialized (CEPage *self, } void -ce_page_complete_init (CEPage *self, - const gchar *setting_name, - GVariant *secrets, - GError *error) +ce_page_complete_init (CEPage *self, + NMConnection *connection, + const gchar *setting_name, + GVariant *secrets, + GError *error) { g_autoptr(GError) update_error = NULL; g_autoptr(GVariant) setting_dict = NULL; @@ -242,7 +165,7 @@ ce_page_complete_init (CEPage *self, } /* Update the connection with the new secrets */ - if (!nm_connection_update_secrets (self->connection, + if (!nm_connection_update_secrets (connection, setting_name, secrets, &update_error)) diff --git a/panels/network/connection-editor/ce-page.h b/panels/network/connection-editor/ce-page.h index 5931ab87d..234122378 100644 --- a/panels/network/connection-editor/ce-page.h +++ b/panels/network/connection-editor/ce-page.h @@ -45,7 +45,6 @@ struct _CEPage GObject parent; gboolean initialized; - NMConnection *connection; }; struct _CEPageClass @@ -69,6 +68,7 @@ gboolean ce_page_validate (CEPage *page, gboolean ce_page_get_initialized (CEPage *page); void ce_page_changed (CEPage *page); void ce_page_complete_init (CEPage *page, + NMConnection *connection, const gchar *setting_name, GVariant *variant, GError *error); diff --git a/panels/network/connection-editor/net-connection-editor.c b/panels/network/connection-editor/net-connection-editor.c index 191239056..0f76513c5 100644 --- a/panels/network/connection-editor/net-connection-editor.c +++ b/panels/network/connection-editor/net-connection-editor.c @@ -463,7 +463,7 @@ get_secrets_cb (GObject *source_object, if (!variant && g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) return; - ce_page_complete_init (info->page, info->setting_name, variant, g_steal_pointer (&error)); + ce_page_complete_init (info->page, info->editor->connection, info->setting_name, variant, g_steal_pointer (&error)); } static void @@ -533,14 +533,14 @@ net_connection_editor_set_connection (NetConnectionEditor *self, is_vpn = g_str_equal (type, NM_SETTING_VPN_SETTING_NAME); if (!self->is_new_connection) - add_page (self, ce_page_details_new (self->connection, self->client, self->device, self->ap, self)); + add_page (self, ce_page_details_new (self->connection, self->device, self->ap, self)); if (is_wifi) add_page (self, ce_page_wifi_new (self->connection, self->client)); else if (is_wired) add_page (self, ce_page_ethernet_new (self->connection, self->client)); else if (is_vpn) - add_page (self, ce_page_vpn_new (self->connection, self->client)); + add_page (self, ce_page_vpn_new (self->connection)); else { /* Unsupported type */ net_connection_editor_do_fallback (self, type); @@ -551,9 +551,9 @@ net_connection_editor_set_connection (NetConnectionEditor *self, add_page (self, ce_page_ip6_new (self->connection, self->client)); if (is_wifi) - add_page (self, ce_page_security_new (self->connection, self->client)); + add_page (self, ce_page_security_new (self->connection)); else if (is_wired) - add_page (self, ce_page_8021x_security_new (self->connection, self->client)); + add_page (self, ce_page_8021x_security_new (self->connection)); pages = g_slist_copy (self->initializing_pages); for (l = pages; l; l = l->next) { @@ -562,7 +562,7 @@ net_connection_editor_set_connection (NetConnectionEditor *self, security_setting = ce_page_get_security_setting (page); if (!security_setting || self->is_new_connection) { - ce_page_complete_init (page, NULL, NULL, NULL); + ce_page_complete_init (page, NULL, NULL, NULL, NULL); } else { get_secrets_for_page (self, page, security_setting); } |