diff options
author | Robert Ancell <robert.ancell@canonical.com> | 2017-09-04 16:12:07 +1200 |
---|---|---|
committer | Robert Ancell <robert.ancell@canonical.com> | 2017-09-25 14:17:24 -0400 |
commit | c6981636dc38a9fdc844db40964c5d89cf10615e (patch) | |
tree | 4f132f929d2f2de633fbf3a6a180e57d9d6967ec /panels/network/connection-editor/ce-page-ip6.c | |
parent | 045b1f03b9339c9a696277f6bc1194dbc0bb1c6b (diff) | |
download | gnome-control-center-c6981636dc38a9fdc844db40964c5d89cf10615e.tar.gz |
Replace old-fashioned GObject boilerplate with G_DEFINE_TYPEwip/rancell/g-define-type
As well as simplifying the code this allows us to make use of the g_auto memory
management macros.
Diffstat (limited to 'panels/network/connection-editor/ce-page-ip6.c')
-rw-r--r-- | panels/network/connection-editor/ce-page-ip6.c | 50 |
1 files changed, 33 insertions, 17 deletions
diff --git a/panels/network/connection-editor/ce-page-ip6.c b/panels/network/connection-editor/ce-page-ip6.c index c9daab1ec..ec6154a52 100644 --- a/panels/network/connection-editor/ce-page-ip6.c +++ b/panels/network/connection-editor/ce-page-ip6.c @@ -26,17 +26,33 @@ #include <arpa/inet.h> #include <glib-object.h> #include <glib/gi18n.h> +#include <gtk/gtk.h> #include <NetworkManager.h> #include "shell/list-box-helper.h" #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)))) +#define RADIO_IS_ACTIVE(x) (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (gtk_builder_get_object(ce_page_get_builder (CE_PAGE (page)), x)))) static void ensure_empty_address_row (CEPageIP6 *page); static void ensure_empty_routes_row (CEPageIP6 *page); +struct _CEPageIP6 +{ + CEPage parent_instance; + + NMSettingIPConfig *setting; + + GtkToggleButton *disabled; + GtkWidget *address_list; + GtkSwitch *auto_dns; + GtkWidget *dns_entry; + GtkSwitch *auto_routes; + GtkWidget *routes_list; + GtkWidget *never_default; +}; + G_DEFINE_TYPE (CEPageIP6, ce_page_ip6, CE_TYPE_PAGE) enum { @@ -71,7 +87,7 @@ method_changed (GtkToggleButton *button, CEPageIP6 *page) routes_enabled = !RADIO_IS_ACTIVE ("radio_local"); } - widget = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "address_section")); + widget = GTK_WIDGET (gtk_builder_get_object (ce_page_get_builder (CE_PAGE (page)), "address_section")); 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); @@ -232,7 +248,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")); + group = GTK_SIZE_GROUP (gtk_builder_get_object (ce_page_get_builder (CE_PAGE (page)), "address_sizegroup")); gtk_size_group_add_widget (group, delete_button); gtk_container_add (GTK_CONTAINER (row), row_box); @@ -267,7 +283,7 @@ add_address_section (CEPageIP6 *page) GtkWidget *list; gint i; - widget = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "address_section")); + widget = GTK_WIDGET (gtk_builder_get_object (ce_page_get_builder (CE_PAGE (page)), "address_section")); page->address_list = list = gtk_list_box_new (); gtk_list_box_set_selection_mode (GTK_LIST_BOX (list), GTK_SELECTION_NONE); @@ -298,11 +314,11 @@ add_dns_section (CEPageIP6 *page) GString *string; gint i; - page->auto_dns = GTK_SWITCH (gtk_builder_get_object (CE_PAGE (page)->builder, "auto_dns_switch")); + page->auto_dns = GTK_SWITCH (gtk_builder_get_object (ce_page_get_builder (CE_PAGE (page)), "auto_dns_switch")); gtk_switch_set_active (page->auto_dns, !nm_setting_ip_config_get_ignore_auto_dns (page->setting)); g_signal_connect (page->auto_dns, "notify::active", G_CALLBACK (switch_toggled), page); - page->dns_entry = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "dns_entry")); + page->dns_entry = GTK_WIDGET (gtk_builder_get_object (ce_page_get_builder (CE_PAGE (page)), "dns_entry")); entry = GTK_ENTRY (page->dns_entry); string = g_string_new (""); @@ -380,7 +396,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")); + group = GTK_SIZE_GROUP (gtk_builder_get_object (ce_page_get_builder (CE_PAGE (page)), "routes_metric_sizegroup")); gtk_size_group_add_widget (group, widget); delete_button = gtk_button_new (); @@ -394,7 +410,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")); + group = GTK_SIZE_GROUP (gtk_builder_get_object (ce_page_get_builder (CE_PAGE (page)), "routes_sizegroup")); gtk_size_group_add_widget (group, delete_button); gtk_container_add (GTK_CONTAINER (row), row_box); @@ -435,14 +451,14 @@ add_routes_section (CEPageIP6 *page) GtkWidget *list; gint i; - widget = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "routes_section")); + widget = GTK_WIDGET (gtk_builder_get_object (ce_page_get_builder (CE_PAGE (page)), "routes_section")); 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")); + page->auto_routes = GTK_SWITCH (gtk_builder_get_object (ce_page_get_builder (CE_PAGE (page)), "auto_routes_switch")); gtk_switch_set_active (page->auto_routes, !nm_setting_ip_config_get_ignore_auto_routes (page->setting)); g_signal_connect (page->auto_routes, "notify::active", G_CALLBACK (switch_toggled), page); @@ -489,13 +505,13 @@ connect_ip6_page (CEPageIP6 *page) add_dns_section (page); add_routes_section (page); - page->disabled = GTK_TOGGLE_BUTTON (gtk_builder_get_object (CE_PAGE (page)->builder, "radio_disabled")); + page->disabled = GTK_TOGGLE_BUTTON (gtk_builder_get_object (ce_page_get_builder (CE_PAGE (page)), "radio_disabled")); 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, "page_content")); + content = GTK_WIDGET (gtk_builder_get_object (ce_page_get_builder (CE_PAGE (page)), "page_content")); g_object_bind_property (page->disabled, "active", content, "sensitive", G_BINDING_SYNC_CREATE | G_BINDING_INVERT_BOOLEAN); @@ -513,17 +529,17 @@ 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")); + page->never_default = GTK_WIDGET (gtk_builder_get_object (ce_page_get_builder (CE_PAGE (page)), "never_default_check")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (page->never_default), 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, "radio_automatic")); - radios[RADIO_DHCP] = GTK_TOGGLE_BUTTON (gtk_builder_get_object (CE_PAGE (page)->builder, "radio_dhcp")); - radios[RADIO_LOCAL] = GTK_TOGGLE_BUTTON (gtk_builder_get_object (CE_PAGE (page)->builder, "radio_local")); - radios[RADIO_MANUAL] = GTK_TOGGLE_BUTTON (gtk_builder_get_object (CE_PAGE (page)->builder, "radio_manual")); + radios[RADIO_AUTOMATIC] = GTK_TOGGLE_BUTTON (gtk_builder_get_object (ce_page_get_builder (CE_PAGE (page)), "radio_automatic")); + radios[RADIO_DHCP] = GTK_TOGGLE_BUTTON (gtk_builder_get_object (ce_page_get_builder (CE_PAGE (page)), "radio_dhcp")); + radios[RADIO_LOCAL] = GTK_TOGGLE_BUTTON (gtk_builder_get_object (ce_page_get_builder (CE_PAGE (page)), "radio_local")); + radios[RADIO_MANUAL] = GTK_TOGGLE_BUTTON (gtk_builder_get_object (ce_page_get_builder (CE_PAGE (page)), "radio_manual")); radios[RADIO_DISABLED] = page->disabled; for (i = RADIO_AUTOMATIC; i < RADIO_DISABLED; i++) |