network: Move GtkBuilder code from CEPage to its subclasses

This commit is contained in:
Robert Ancell 2019-11-06 15:05:29 +13:00
parent eb4e124b04
commit d46579144e
10 changed files with 235 additions and 141 deletions

View file

@ -35,6 +35,7 @@ struct _CEPageEthernet
{
CEPage parent;
GtkBuilder *builder;
GtkComboBoxText *cloned_mac;
GtkComboBoxText *device_mac;
GtkGrid *grid;
@ -140,6 +141,16 @@ ui_to_setting (CEPageEthernet *self)
NULL);
}
static void
ce_page_ethernet_dispose (GObject *object)
{
CEPageEthernet *self = CE_PAGE_ETHERNET (object);
g_clear_object (&self->builder);
G_OBJECT_CLASS (ce_page_ethernet_parent_class)->dispose (object);
}
static GtkWidget *
ce_page_ethernet_get_widget (CEPage *page)
{
@ -198,8 +209,10 @@ ce_page_ethernet_init (CEPageEthernet *self)
static void
ce_page_ethernet_class_init (CEPageEthernetClass *class)
{
GObjectClass *object_class = G_OBJECT_CLASS (class);
CEPageClass *page_class = CE_PAGE_CLASS (class);
object_class->dispose = ce_page_ethernet_dispose;
page_class->get_widget = ce_page_ethernet_get_widget;
page_class->get_title = ce_page_ethernet_get_title;
page_class->validate = ce_page_ethernet_validate;
@ -210,17 +223,24 @@ ce_page_ethernet_new (NMConnection *connection,
NMClient *client)
{
CEPageEthernet *self;
g_autoptr(GError) error = NULL;
self = CE_PAGE_ETHERNET (ce_page_new (ce_page_ethernet_get_type (),
connection,
"/org/gnome/control-center/network/ethernet-page.ui"));
self = CE_PAGE_ETHERNET (g_object_new (ce_page_ethernet_get_type (),
"connection", connection,
NULL));
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_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->builder = gtk_builder_new ();
if (!gtk_builder_add_from_resource (self->builder, "/org/gnome/control-center/network/ethernet-page.ui", &error)) {
g_warning ("Couldn't load builder file: %s", error->message);
return NULL;
}
self->cloned_mac = GTK_COMBO_BOX_TEXT (gtk_builder_get_object (self->builder, "cloned_mac_combo"));
self->device_mac = GTK_COMBO_BOX_TEXT (gtk_builder_get_object (self->builder, "mac_combo"));
self->grid = GTK_GRID (gtk_builder_get_object (self->builder, "grid"));
self->mtu = GTK_SPIN_BUTTON (gtk_builder_get_object (self->builder, "mtu_spin"));
self->mtu_label = GTK_WIDGET (gtk_builder_get_object (self->builder, "mtu_label"));
self->name = GTK_ENTRY (gtk_builder_get_object (self->builder, "name_entry"));
self->client = client;
self->setting_connection = nm_connection_get_setting_connection (connection);