summaryrefslogtreecommitdiff
path: root/panels/network/connection-editor/ce-page-ip4.c
diff options
context:
space:
mode:
authorRobert Ancell <robert.ancell@canonical.com>2019-10-15 12:25:48 +1300
committerGeorges Basile Stavracas Neto <georges.stavracas@gmail.com>2019-10-22 20:11:45 +0000
commit8b6e3fb7365072da84cf45e97cd8f91ea64b75ce (patch)
tree25bb499f038e2e77e2905c3ed6b5719843cde532 /panels/network/connection-editor/ce-page-ip4.c
parentb331d75df5b1bce5222ff5a722037af4566d15ca (diff)
downloadgnome-control-center-8b6e3fb7365072da84cf45e97cd8f91ea64b75ce.tar.gz
network: Store widgets inside objects
This is a step towards replacing GtkBuilder with GtkTemplate
Diffstat (limited to 'panels/network/connection-editor/ce-page-ip4.c')
-rw-r--r--panels/network/connection-editor/ce-page-ip4.c135
1 files changed, 60 insertions, 75 deletions
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,