network: Get connection editor root widget from a virtual method

This commit is contained in:
Robert Ancell 2019-11-06 14:55:12 +13:00
parent f5949160c3
commit eb4e124b04
19 changed files with 134 additions and 64 deletions

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<interface> <interface>
<!-- interface-requires gtk+ 3.0 --> <!-- interface-requires gtk+ 3.0 -->
<object class="GtkNotebook" id="page"> <object class="GtkNotebook" id="notebook">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="show_tabs">False</property> <property name="show_tabs">False</property>

View file

@ -37,9 +37,10 @@
struct _CEPage8021xSecurity { struct _CEPage8021xSecurity {
CEPage parent; CEPage parent;
GtkBox *box; GtkBox *box;
GtkSwitch *enable_8021x_switch; GtkSwitch *enable_8021x_switch;
GtkLabel *security_label; GtkNotebook *notebook;
GtkLabel *security_label;
GtkWidget *security_widget; GtkWidget *security_widget;
WirelessSecurity *security; WirelessSecurity *security;
@ -106,7 +107,8 @@ ce_page_8021x_security_new (NMConnection *connection,
"/org/gnome/control-center/network/8021x-security-page.ui")); "/org/gnome/control-center/network/8021x-security-page.ui"));
self->box = GTK_BOX (gtk_builder_get_object (CE_PAGE (self)->builder, "box")); self->box = GTK_BOX (gtk_builder_get_object (CE_PAGE (self)->builder, "box"));
self->enable_8021x_switch = GTK_SWITCH (gtk_builder_get_object (CE_PAGE (self)->builder, "enable_8021x_switch")); self->enable_8021x_switch = GTK_SWITCH (gtk_builder_get_object (CE_PAGE (self)->builder, "enable_8021x_switch"));
self->notebook = GTK_NOTEBOOK (gtk_builder_get_object (CE_PAGE (self)->builder, "notebook"));
self->security_label = GTK_LABEL (gtk_builder_get_object (CE_PAGE (self)->builder, "security_label")); self->security_label = GTK_LABEL (gtk_builder_get_object (CE_PAGE (self)->builder, "security_label"));
if (nm_connection_get_setting_802_1x (connection)) if (nm_connection_get_setting_802_1x (connection))
@ -128,6 +130,13 @@ ce_page_8021x_security_get_security_setting (CEPage *page)
return NULL; return NULL;
} }
static GtkWidget *
ce_page_8021x_security_get_widget (CEPage *page)
{
CEPage8021xSecurity *self = CE_PAGE_8021X_SECURITY (page);
return GTK_WIDGET (self->notebook);
}
static const gchar * static const gchar *
ce_page_8021x_security_get_title (CEPage *page) ce_page_8021x_security_get_title (CEPage *page)
{ {
@ -202,6 +211,7 @@ ce_page_8021x_security_class_init (CEPage8021xSecurityClass *security_class)
object_class->dispose = dispose; object_class->dispose = dispose;
parent_class->get_security_setting = ce_page_8021x_security_get_security_setting; 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->get_title = ce_page_8021x_security_get_title;
parent_class->validate = ce_page_8021x_security_validate; parent_class->validate = ce_page_8021x_security_validate;
} }

View file

@ -37,6 +37,7 @@ struct _CEPageDetails
GtkLabel *dns_heading_label; GtkLabel *dns_heading_label;
GtkLabel *dns_label; GtkLabel *dns_label;
GtkButton *forget_button; GtkButton *forget_button;
GtkGrid *grid;
GtkLabel *ipv4_heading_label; GtkLabel *ipv4_heading_label;
GtkLabel *ipv4_label; GtkLabel *ipv4_label;
GtkLabel *ipv6_heading_label; GtkLabel *ipv6_heading_label;
@ -393,6 +394,13 @@ connect_details_page (CEPageDetails *self)
gtk_widget_hide (GTK_WIDGET (self->forget_button)); gtk_widget_hide (GTK_WIDGET (self->forget_button));
} }
static GtkWidget *
ce_page_details_get_widget (CEPage *page)
{
CEPageDetails *self = CE_PAGE_DETAILS (page);
return GTK_WIDGET (self->grid);
}
static const gchar * static const gchar *
ce_page_details_get_title (CEPage *page) ce_page_details_get_title (CEPage *page)
{ {
@ -409,6 +417,7 @@ ce_page_details_class_init (CEPageDetailsClass *class)
{ {
CEPageClass *page_class = CE_PAGE_CLASS (class); CEPageClass *page_class = CE_PAGE_CLASS (class);
page_class->get_widget = ce_page_details_get_widget;
page_class->get_title = ce_page_details_get_title; page_class->get_title = ce_page_details_get_title;
} }
@ -430,6 +439,7 @@ ce_page_details_new (NMConnection *connection,
self->dns_heading_label = GTK_LABEL (gtk_builder_get_object (CE_PAGE (self)->builder, "dns_heading_label")); self->dns_heading_label = GTK_LABEL (gtk_builder_get_object (CE_PAGE (self)->builder, "dns_heading_label"));
self->dns_label = GTK_LABEL (gtk_builder_get_object (CE_PAGE (self)->builder, "dns_label")); self->dns_label = GTK_LABEL (gtk_builder_get_object (CE_PAGE (self)->builder, "dns_label"));
self->forget_button = GTK_BUTTON (gtk_builder_get_object (CE_PAGE (self)->builder, "forget_button")); self->forget_button = GTK_BUTTON (gtk_builder_get_object (CE_PAGE (self)->builder, "forget_button"));
self->grid = GTK_GRID (gtk_builder_get_object (CE_PAGE (self)->builder, "grid"));
self->ipv4_heading_label = GTK_LABEL (gtk_builder_get_object (CE_PAGE (self)->builder, "ipv4_heading_label")); self->ipv4_heading_label = GTK_LABEL (gtk_builder_get_object (CE_PAGE (self)->builder, "ipv4_heading_label"));
self->ipv4_label = GTK_LABEL (gtk_builder_get_object (CE_PAGE (self)->builder, "ipv4_label")); self->ipv4_label = GTK_LABEL (gtk_builder_get_object (CE_PAGE (self)->builder, "ipv4_label"));
self->ipv6_heading_label = GTK_LABEL (gtk_builder_get_object (CE_PAGE (self)->builder, "ipv6_heading_label")); self->ipv6_heading_label = GTK_LABEL (gtk_builder_get_object (CE_PAGE (self)->builder, "ipv6_heading_label"));

View file

@ -35,11 +35,12 @@ struct _CEPageEthernet
{ {
CEPage parent; CEPage parent;
GtkEntry *name;
GtkComboBoxText *device_mac;
GtkComboBoxText *cloned_mac; GtkComboBoxText *cloned_mac;
GtkComboBoxText *device_mac;
GtkGrid *grid;
GtkSpinButton *mtu; GtkSpinButton *mtu;
GtkWidget *mtu_label; GtkWidget *mtu_label;
GtkEntry *name;
NMClient *client; NMClient *client;
NMSettingConnection *setting_connection; NMSettingConnection *setting_connection;
@ -139,6 +140,13 @@ ui_to_setting (CEPageEthernet *self)
NULL); NULL);
} }
static GtkWidget *
ce_page_ethernet_get_widget (CEPage *page)
{
CEPageEthernet *self = CE_PAGE_ETHERNET (page);
return GTK_WIDGET (self->grid);
}
static const gchar * static const gchar *
ce_page_ethernet_get_title (CEPage *page) ce_page_ethernet_get_title (CEPage *page)
{ {
@ -192,6 +200,7 @@ ce_page_ethernet_class_init (CEPageEthernetClass *class)
{ {
CEPageClass *page_class = CE_PAGE_CLASS (class); CEPageClass *page_class = CE_PAGE_CLASS (class);
page_class->get_widget = ce_page_ethernet_get_widget;
page_class->get_title = ce_page_ethernet_get_title; page_class->get_title = ce_page_ethernet_get_title;
page_class->validate = ce_page_ethernet_validate; page_class->validate = ce_page_ethernet_validate;
} }
@ -206,11 +215,12 @@ ce_page_ethernet_new (NMConnection *connection,
connection, connection,
"/org/gnome/control-center/network/ethernet-page.ui")); "/org/gnome/control-center/network/ethernet-page.ui"));
self->name = GTK_ENTRY (gtk_builder_get_object (CE_PAGE (self)->builder, "name_entry"));
self->device_mac = GTK_COMBO_BOX_TEXT (gtk_builder_get_object (CE_PAGE (self)->builder, "mac_combo"));
self->cloned_mac = GTK_COMBO_BOX_TEXT (gtk_builder_get_object (CE_PAGE (self)->builder, "cloned_mac_combo")); self->cloned_mac = GTK_COMBO_BOX_TEXT (gtk_builder_get_object (CE_PAGE (self)->builder, "cloned_mac_combo"));
self->device_mac = GTK_COMBO_BOX_TEXT (gtk_builder_get_object (CE_PAGE (self)->builder, "mac_combo"));
self->grid = GTK_GRID (gtk_builder_get_object (CE_PAGE (self)->builder, "grid"));
self->mtu = GTK_SPIN_BUTTON (gtk_builder_get_object (CE_PAGE (self)->builder, "mtu_spin")); self->mtu = GTK_SPIN_BUTTON (gtk_builder_get_object (CE_PAGE (self)->builder, "mtu_spin"));
self->mtu_label = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (self)->builder, "mtu_label")); self->mtu_label = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (self)->builder, "mtu_label"));
self->name = GTK_ENTRY (gtk_builder_get_object (CE_PAGE (self)->builder, "name_entry"));
self->client = client; self->client = client;
self->setting_connection = nm_connection_get_setting_connection (connection); self->setting_connection = nm_connection_get_setting_connection (connection);

View file

@ -39,20 +39,21 @@ struct _CEPageIP4
{ {
CEPage parent; CEPage parent;
GtkBox *address_box; GtkBox *address_box;
GtkSizeGroup *address_sizegroup; GtkSizeGroup *address_sizegroup;
GtkSwitch *auto_dns_switch; GtkSwitch *auto_dns_switch;
GtkSwitch *auto_routes_switch; GtkSwitch *auto_routes_switch;
GtkRadioButton *automatic_radio; GtkRadioButton *automatic_radio;
GtkBox *content_box; GtkBox *content_box;
GtkRadioButton *disabled_radio; GtkRadioButton *disabled_radio;
GtkEntry *dns_entry; GtkEntry *dns_entry;
GtkRadioButton *local_radio; GtkRadioButton *local_radio;
GtkRadioButton *manual_radio; GtkRadioButton *manual_radio;
GtkCheckButton *never_default_check; GtkCheckButton *never_default_check;
GtkBox *routes_box; GtkBox *routes_box;
GtkSizeGroup *routes_metric_sizegroup; GtkSizeGroup *routes_metric_sizegroup;
GtkSizeGroup *routes_sizegroup; GtkSizeGroup *routes_sizegroup;
GtkScrolledWindow *scrolled_window;
NMSettingIPConfig *setting; NMSettingIPConfig *setting;
@ -153,7 +154,7 @@ remove_row (CEPageIP4 *self)
GtkWidget *row; GtkWidget *row;
GtkWidget *row_box; GtkWidget *row_box;
row_box = gtk_widget_get_parent (GTK_WIDGET (CE_PAGE (self)->page)); row_box = gtk_widget_get_parent (GTK_WIDGET (self->scrolled_window));
row = gtk_widget_get_parent (row_box); row = gtk_widget_get_parent (row_box);
list = gtk_widget_get_parent (row); list = gtk_widget_get_parent (row);
@ -523,6 +524,7 @@ connect_ip4_page (CEPageIP4 *self)
self->routes_box = GTK_BOX (gtk_builder_get_object (CE_PAGE (self)->builder, "routes_box")); self->routes_box = GTK_BOX (gtk_builder_get_object (CE_PAGE (self)->builder, "routes_box"));
self->routes_metric_sizegroup = GTK_SIZE_GROUP (gtk_builder_get_object (CE_PAGE (self)->builder, "routes_metric_sizegroup")); self->routes_metric_sizegroup = GTK_SIZE_GROUP (gtk_builder_get_object (CE_PAGE (self)->builder, "routes_metric_sizegroup"));
self->routes_sizegroup = GTK_SIZE_GROUP (gtk_builder_get_object (CE_PAGE (self)->builder, "routes_sizegroup")); self->routes_sizegroup = GTK_SIZE_GROUP (gtk_builder_get_object (CE_PAGE (self)->builder, "routes_sizegroup"));
self->scrolled_window = GTK_SCROLLED_WINDOW (gtk_builder_get_object (CE_PAGE (self)->builder, "scrolled_window"));
add_address_box (self); add_address_box (self);
add_dns_section (self); add_dns_section (self);
@ -860,6 +862,13 @@ out:
return ret; return ret;
} }
static GtkWidget *
ce_page_ip4_get_widget (CEPage *page)
{
CEPageIP4 *self = CE_PAGE_IP4 (page);
return GTK_WIDGET (self->scrolled_window);
}
static const gchar * static const gchar *
ce_page_ip4_get_title (CEPage *page) ce_page_ip4_get_title (CEPage *page)
{ {
@ -887,6 +896,7 @@ ce_page_ip4_class_init (CEPageIP4Class *class)
{ {
CEPageClass *page_class = CE_PAGE_CLASS (class); CEPageClass *page_class = CE_PAGE_CLASS (class);
page_class->get_widget = ce_page_ip4_get_widget;
page_class->get_title = ce_page_ip4_get_title; page_class->get_title = ce_page_ip4_get_title;
page_class->validate = ce_page_ip4_validate; page_class->validate = ce_page_ip4_validate;
} }

View file

@ -40,21 +40,22 @@ struct _CEPageIP6
{ {
CEPage parent; CEPage parent;
GtkBox *address_box; GtkBox *address_box;
GtkSizeGroup *address_sizegroup; GtkSizeGroup *address_sizegroup;
GtkSwitch *auto_dns_switch; GtkSwitch *auto_dns_switch;
GtkSwitch *auto_routes_switch; GtkSwitch *auto_routes_switch;
GtkRadioButton *automatic_radio; GtkRadioButton *automatic_radio;
GtkBox *content_box; GtkBox *content_box;
GtkRadioButton *dhcp_radio; GtkRadioButton *dhcp_radio;
GtkRadioButton *disabled_radio; GtkRadioButton *disabled_radio;
GtkEntry *dns_entry; GtkEntry *dns_entry;
GtkRadioButton *local_radio; GtkRadioButton *local_radio;
GtkRadioButton *manual_radio; GtkRadioButton *manual_radio;
GtkCheckButton *never_default_check; GtkCheckButton *never_default_check;
GtkBox *routes_box; GtkBox *routes_box;
GtkSizeGroup *routes_metric_sizegroup; GtkSizeGroup *routes_metric_sizegroup;
GtkSizeGroup *routes_sizegroup; GtkSizeGroup *routes_sizegroup;
GtkScrolledWindow *scrolled_window;
NMSettingIPConfig *setting; NMSettingIPConfig *setting;
@ -136,7 +137,7 @@ remove_row (CEPageIP6 *self)
GtkWidget *row_box; GtkWidget *row_box;
GtkWidget *list; GtkWidget *list;
row_box = gtk_widget_get_parent (GTK_WIDGET (CE_PAGE (self)->page)); row_box = gtk_widget_get_parent (GTK_WIDGET (self->scrolled_window));
row = gtk_widget_get_parent (row_box); row = gtk_widget_get_parent (row_box);
list = gtk_widget_get_parent (row); list = gtk_widget_get_parent (row);
@ -485,6 +486,7 @@ connect_ip6_page (CEPageIP6 *self)
self->routes_box = GTK_BOX (gtk_builder_get_object (CE_PAGE (self)->builder, "routes_box")); self->routes_box = GTK_BOX (gtk_builder_get_object (CE_PAGE (self)->builder, "routes_box"));
self->routes_metric_sizegroup = GTK_SIZE_GROUP (gtk_builder_get_object (CE_PAGE (self)->builder, "routes_metric_sizegroup")); self->routes_metric_sizegroup = GTK_SIZE_GROUP (gtk_builder_get_object (CE_PAGE (self)->builder, "routes_metric_sizegroup"));
self->routes_sizegroup = GTK_SIZE_GROUP (gtk_builder_get_object (CE_PAGE (self)->builder, "routes_sizegroup")); self->routes_sizegroup = GTK_SIZE_GROUP (gtk_builder_get_object (CE_PAGE (self)->builder, "routes_sizegroup"));
self->scrolled_window = GTK_SCROLLED_WINDOW (gtk_builder_get_object (CE_PAGE (self)->builder, "scrolled_window"));
add_address_box (self); add_address_box (self);
add_dns_section (self); add_dns_section (self);
@ -784,6 +786,13 @@ out:
return ret; return ret;
} }
static GtkWidget *
ce_page_ip6_get_widget (CEPage *page)
{
CEPageIP6 *self = CE_PAGE_IP6 (page);
return GTK_WIDGET (self->scrolled_window);
}
static const gchar * static const gchar *
ce_page_ip6_get_title (CEPage *page) ce_page_ip6_get_title (CEPage *page)
{ {
@ -811,6 +820,7 @@ ce_page_ip6_class_init (CEPageIP6Class *class)
{ {
CEPageClass *page_class = CE_PAGE_CLASS (class); CEPageClass *page_class = CE_PAGE_CLASS (class);
page_class->get_widget = ce_page_ip6_get_widget;
page_class->get_title = ce_page_ip6_get_title; page_class->get_title = ce_page_ip6_get_title;
page_class->validate = ce_page_ip6_validate; page_class->validate = ce_page_ip6_validate;
} }

View file

@ -39,6 +39,7 @@ struct _CEPageSecurity
CEPage parent; CEPage parent;
GtkBox *box; GtkBox *box;
GtkNotebook *notebook;
GtkComboBox *security_combo; GtkComboBox *security_combo;
GtkLabel *security_label; GtkLabel *security_label;
@ -232,6 +233,7 @@ finish_setup (CEPageSecurity *self)
self->group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); self->group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
self->box = GTK_BOX (gtk_builder_get_object (CE_PAGE (self)->builder, "box")); self->box = GTK_BOX (gtk_builder_get_object (CE_PAGE (self)->builder, "box"));
self->notebook = GTK_NOTEBOOK (gtk_builder_get_object (CE_PAGE (self)->builder, "notebook"));
self->security_label = GTK_LABEL (gtk_builder_get_object (CE_PAGE (self)->builder, "security_label")); self->security_label = GTK_LABEL (gtk_builder_get_object (CE_PAGE (self)->builder, "security_label"));
self->security_combo = GTK_COMBO_BOX (gtk_builder_get_object (CE_PAGE (self)->builder, "security_combo")); self->security_combo = GTK_COMBO_BOX (gtk_builder_get_object (CE_PAGE (self)->builder, "security_combo"));
@ -380,6 +382,13 @@ ce_page_security_get_security_setting (CEPage *page)
return CE_PAGE_SECURITY (page)->security_setting; return CE_PAGE_SECURITY (page)->security_setting;
} }
static GtkWidget *
ce_page_security_get_widget (CEPage *page)
{
CEPageSecurity *self = CE_PAGE_SECURITY (page);
return GTK_WIDGET (self->notebook);
}
static const gchar * static const gchar *
ce_page_security_get_title (CEPage *page) ce_page_security_get_title (CEPage *page)
{ {
@ -449,6 +458,7 @@ ce_page_security_class_init (CEPageSecurityClass *class)
object_class->dispose = ce_page_security_dispose; object_class->dispose = ce_page_security_dispose;
page_class->get_security_setting = ce_page_security_get_security_setting; page_class->get_security_setting = ce_page_security_get_security_setting;
page_class->get_widget = ce_page_security_get_widget;
page_class->get_title = ce_page_security_get_title; page_class->get_title = ce_page_security_get_title;
page_class->validate = ce_page_security_validate; page_class->validate = ce_page_security_validate;
} }

View file

@ -33,9 +33,9 @@ struct _CEPageVpn
{ {
CEPage parent; CEPage parent;
GtkBox *box;
GtkLabel *failure_label; GtkLabel *failure_label;
GtkEntry *name_entry; GtkEntry *name_entry;
GtkBox *page;
NMSettingConnection *setting_connection; NMSettingConnection *setting_connection;
NMSettingVpn *setting_vpn; NMSettingVpn *setting_vpn;
@ -108,7 +108,7 @@ load_vpn_plugin (CEPageVpn *self, NMConnection *connection)
gtk_widget_destroy (GTK_WIDGET (self->failure_label)); gtk_widget_destroy (GTK_WIDGET (self->failure_label));
gtk_box_pack_start (self->page, ui_widget, TRUE, TRUE, 0); gtk_box_pack_start (self->box, ui_widget, TRUE, TRUE, 0);
gtk_widget_show_all (ui_widget); gtk_widget_show_all (ui_widget);
g_signal_connect_swapped (self->editor, "changed", G_CALLBACK (ce_page_changed), self); g_signal_connect_swapped (self->editor, "changed", G_CALLBACK (ce_page_changed), self);
@ -140,6 +140,13 @@ ce_page_vpn_get_security_setting (CEPage *page)
return NM_SETTING_VPN_SETTING_NAME; return NM_SETTING_VPN_SETTING_NAME;
} }
static GtkWidget *
ce_page_vpn_get_widget (CEPage *page)
{
CEPageVpn *self = CE_PAGE_VPN (page);
return GTK_WIDGET (self->box);
}
static const gchar * static const gchar *
ce_page_vpn_get_title (CEPage *page) ce_page_vpn_get_title (CEPage *page)
{ {
@ -179,6 +186,7 @@ ce_page_vpn_class_init (CEPageVpnClass *class)
object_class->dispose = ce_page_vpn_dispose; object_class->dispose = ce_page_vpn_dispose;
page_class->get_security_setting = ce_page_vpn_get_security_setting; page_class->get_security_setting = ce_page_vpn_get_security_setting;
page_class->get_widget = ce_page_vpn_get_widget;
page_class->get_title = ce_page_vpn_get_title; page_class->get_title = ce_page_vpn_get_title;
page_class->validate = ce_page_vpn_validate; page_class->validate = ce_page_vpn_validate;
} }
@ -210,9 +218,9 @@ ce_page_vpn_new (NMConnection *connection,
connection, connection,
"/org/gnome/control-center/network/vpn-page.ui")); "/org/gnome/control-center/network/vpn-page.ui"));
self->box = GTK_BOX (gtk_builder_get_object (CE_PAGE (self)->builder, "box"));
self->failure_label = GTK_LABEL (gtk_builder_get_object (CE_PAGE (self)->builder, "failure_label")); self->failure_label = GTK_LABEL (gtk_builder_get_object (CE_PAGE (self)->builder, "failure_label"));
self->name_entry = GTK_ENTRY (gtk_builder_get_object (CE_PAGE (self)->builder, "name_entry")); self->name_entry = GTK_ENTRY (gtk_builder_get_object (CE_PAGE (self)->builder, "name_entry"));
self->page = GTK_BOX (gtk_builder_get_object (CE_PAGE (self)->builder, "page"));
g_signal_connect (self, "initialized", G_CALLBACK (finish_setup), NULL); g_signal_connect (self, "initialized", G_CALLBACK (finish_setup), NULL);

View file

@ -37,6 +37,7 @@ struct _CEPageWifi
GtkComboBoxText *bssid_combo; GtkComboBoxText *bssid_combo;
GtkComboBoxText *cloned_mac_combo; GtkComboBoxText *cloned_mac_combo;
GtkGrid *grid;
GtkComboBoxText *mac_combo; GtkComboBoxText *mac_combo;
GtkEntry *ssid_entry; GtkEntry *ssid_entry;
@ -122,6 +123,13 @@ ui_to_setting (CEPageWifi *self)
NULL); NULL);
} }
static GtkWidget *
ce_page_wifi_get_widget (CEPage *page)
{
CEPageWifi *self = CE_PAGE_WIFI (page);
return GTK_WIDGET (self->grid);
}
static const gchar * static const gchar *
ce_page_wifi_get_title (CEPage *page) ce_page_wifi_get_title (CEPage *page)
{ {
@ -178,6 +186,7 @@ ce_page_wifi_class_init (CEPageWifiClass *class)
{ {
CEPageClass *page_class= CE_PAGE_CLASS (class); CEPageClass *page_class= CE_PAGE_CLASS (class);
page_class->get_widget = ce_page_wifi_get_widget;
page_class->get_title = ce_page_wifi_get_title; page_class->get_title = ce_page_wifi_get_title;
page_class->validate = ce_page_wifi_class_validate; page_class->validate = ce_page_wifi_class_validate;
} }
@ -194,6 +203,7 @@ ce_page_wifi_new (NMConnection *connection,
self->bssid_combo = GTK_COMBO_BOX_TEXT (gtk_builder_get_object (CE_PAGE (self)->builder, "bssid_combo")); self->bssid_combo = GTK_COMBO_BOX_TEXT (gtk_builder_get_object (CE_PAGE (self)->builder, "bssid_combo"));
self->cloned_mac_combo = GTK_COMBO_BOX_TEXT (gtk_builder_get_object (CE_PAGE (self)->builder, "cloned_mac_combo")); self->cloned_mac_combo = GTK_COMBO_BOX_TEXT (gtk_builder_get_object (CE_PAGE (self)->builder, "cloned_mac_combo"));
self->grid = GTK_GRID (gtk_builder_get_object (CE_PAGE (self)->builder, "grid"));
self->mac_combo = GTK_COMBO_BOX_TEXT (gtk_builder_get_object (CE_PAGE (self)->builder, "mac_combo")); self->mac_combo = GTK_COMBO_BOX_TEXT (gtk_builder_get_object (CE_PAGE (self)->builder, "mac_combo"));
self->ssid_entry = GTK_ENTRY (gtk_builder_get_object (CE_PAGE (self)->builder, "ssid_entry")); self->ssid_entry = GTK_ENTRY (gtk_builder_get_object (CE_PAGE (self)->builder, "ssid_entry"));

View file

@ -66,7 +66,6 @@ dispose (GObject *object)
{ {
CEPage *self = CE_PAGE (object); CEPage *self = CE_PAGE (object);
g_clear_object (&self->page);
g_clear_object (&self->builder); g_clear_object (&self->builder);
g_clear_object (&self->connection); g_clear_object (&self->connection);
@ -74,11 +73,11 @@ dispose (GObject *object)
} }
GtkWidget * GtkWidget *
ce_page_get_page (CEPage *self) ce_page_get_widget (CEPage *self)
{ {
g_return_val_if_fail (CE_IS_PAGE (self), NULL); g_return_val_if_fail (CE_IS_PAGE (self), NULL);
return self->page; return CE_PAGE_GET_CLASS (self)->get_widget (self);
} }
const char * const char *
@ -214,13 +213,6 @@ ce_page_new (GType type,
g_warning ("Couldn't load builder file: %s", error->message); g_warning ("Couldn't load builder file: %s", error->message);
return NULL; return NULL;
} }
self->page = GTK_WIDGET (gtk_builder_get_object (self->builder, "page"));
if (!self->page) {
g_warning ("Couldn't load page widget from %s", ui_resource);
return NULL;
}
g_object_ref_sink (self->page);
} }
return g_steal_pointer (&self); return g_steal_pointer (&self);

View file

@ -46,7 +46,6 @@ struct _CEPage
gboolean initialized; gboolean initialized;
GtkBuilder *builder; GtkBuilder *builder;
GtkWidget *page;
NMConnection *connection; NMConnection *connection;
}; };
@ -56,13 +55,14 @@ struct _CEPageClass
GObjectClass parent_class; GObjectClass parent_class;
gboolean (*validate) (CEPage *page, NMConnection *connection, GError **error); gboolean (*validate) (CEPage *page, NMConnection *connection, GError **error);
GtkWidget *(*get_widget) (CEPage *page);
const gchar *(*get_title) (CEPage *page); const gchar *(*get_title) (CEPage *page);
const gchar *(*get_security_setting) (CEPage *page); const gchar *(*get_security_setting) (CEPage *page);
}; };
GType ce_page_get_type (void); GType ce_page_get_type (void);
GtkWidget *ce_page_get_page (CEPage *page); GtkWidget *ce_page_get_widget (CEPage *page);
const gchar *ce_page_get_title (CEPage *page); const gchar *ce_page_get_title (CEPage *page);
const gchar *ce_page_get_security_setting (CEPage *page); const gchar *ce_page_get_security_setting (CEPage *page);
gboolean ce_page_validate (CEPage *page, gboolean ce_page_validate (CEPage *page,

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<interface> <interface>
<!-- interface-requires gtk+ 3.0 --> <!-- interface-requires gtk+ 3.0 -->
<object class="GtkGrid" id="page"> <object class="GtkGrid" id="grid">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="margin_start">24</property> <property name="margin_start">24</property>

View file

@ -6,7 +6,7 @@
<property name="step_increment">1</property> <property name="step_increment">1</property>
<property name="page_increment">10</property> <property name="page_increment">10</property>
</object> </object>
<object class="GtkGrid" id="page"> <object class="GtkGrid" id="grid">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="margin_start">50</property> <property name="margin_start">50</property>

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<interface> <interface>
<!-- interface-requires gtk+ 3.0 --> <!-- interface-requires gtk+ 3.0 -->
<object class="GtkScrolledWindow" id="page"> <object class="GtkScrolledWindow" id="scrolled_window">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="hscrollbar_policy">never</property> <property name="hscrollbar_policy">never</property>

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<interface> <interface>
<!-- interface-requires gtk+ 3.0 --> <!-- interface-requires gtk+ 3.0 -->
<object class="GtkScrolledWindow" id="page"> <object class="GtkScrolledWindow" id="scrolled_window">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="hscrollbar_policy">never</property> <property name="hscrollbar_policy">never</property>

View file

@ -345,7 +345,7 @@ update_sensitivity (NetConnectionEditor *self)
} }
for (l = self->pages; l; l = l->next) { for (l = self->pages; l; l = l->next) {
widget = ce_page_get_page (CE_PAGE (l->data)); widget = ce_page_get_widget (CE_PAGE (l->data));
gtk_widget_set_sensitive (widget, sensitive); gtk_widget_set_sensitive (widget, sensitive);
} }
} }
@ -417,7 +417,7 @@ page_initialized (NetConnectionEditor *self, GError *error, CEPage *page)
GList *children, *l; GList *children, *l;
gint i; gint i;
widget = ce_page_get_page (page); widget = ce_page_get_widget (page);
position = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (page), "position")); position = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (page), "position"));
g_object_set_data (G_OBJECT (widget), "position", GINT_TO_POINTER (position)); g_object_set_data (G_OBJECT (widget), "position", GINT_TO_POINTER (position));
children = gtk_container_get_children (GTK_CONTAINER (self->notebook)); children = gtk_container_get_children (GTK_CONTAINER (self->notebook));

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<interface> <interface>
<!-- interface-requires gtk+ 3.0 --> <!-- interface-requires gtk+ 3.0 -->
<object class="GtkNotebook" id="page"> <object class="GtkNotebook" id="notebook">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="show_tabs">False</property> <property name="show_tabs">False</property>

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<interface> <interface>
<!-- interface-requires gtk+ 3.0 --> <!-- interface-requires gtk+ 3.0 -->
<object class="GtkBox" id="page"> <object class="GtkBox" id="box">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="margin_start">50</property> <property name="margin_start">50</property>

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<interface> <interface>
<!-- interface-requires gtk+ 3.0 --> <!-- interface-requires gtk+ 3.0 -->
<object class="GtkGrid" id="page"> <object class="GtkGrid" id="grid">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="margin_start">50</property> <property name="margin_start">50</property>