From 510998041afa1310059a5123ea8cfbeb33f36c1d Mon Sep 17 00:00:00 2001 From: Dan Winship Date: Wed, 13 Feb 2013 15:14:24 -0500 Subject: [PATCH] network: mark connection editor changed when editing IPv4/IPv6 pages When this got rewritten to be different from nm-connection-editor's, some of the ce_page_changed() calls accidentally got dropped, so certain changes on these pages would not cause the "Apply" button to become sensitive. https://bugzilla.gnome.org/show_bug.cgi?id=693659 --- panels/network/connection-editor/ce-page-ip4.c | 11 +++++++++++ panels/network/connection-editor/ce-page-ip6.c | 11 +++++++++++ 2 files changed, 22 insertions(+) diff --git a/panels/network/connection-editor/ce-page-ip4.c b/panels/network/connection-editor/ce-page-ip4.c index e58ab06ae..2cd5cc258 100644 --- a/panels/network/connection-editor/ce-page-ip4.c +++ b/panels/network/connection-editor/ce-page-ip4.c @@ -84,6 +84,14 @@ method_changed (GtkComboBox *combo, CEPageIP4 *page) ce_page_changed (CE_PAGE (page)); } +static void +switch_toggled (GObject *object, + GParamSpec *pspec, + CEPage *page) +{ + ce_page_changed (page); +} + static void update_separator (GtkWidget **separator, GtkWidget *child, @@ -397,6 +405,7 @@ add_dns_section (CEPageIP4 *page) gtk_container_add (GTK_CONTAINER (frame), list); 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_ip4_config_get_ignore_auto_dns (page->setting)); + g_signal_connect (page->auto_dns, "notify::active", switch_toggled, page); add_section_toolbar (page, widget, G_CALLBACK (add_empty_dns_row)); @@ -535,6 +544,7 @@ add_routes_section (CEPageIP4 *page) gtk_container_add (GTK_CONTAINER (frame), 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_ip4_config_get_ignore_auto_routes (page->setting)); + g_signal_connect (page->auto_routes, "notify::active", switch_toggled, page); add_section_toolbar (page, widget, G_CALLBACK (add_empty_route_row)); @@ -588,6 +598,7 @@ connect_ip4_page (CEPageIP4 *page) add_routes_section (page); page->enabled = GTK_SWITCH (gtk_builder_get_object (CE_PAGE (page)->builder, "switch_enable")); + g_signal_connect (page->enabled, "notify::active", switch_toggled, page); str_method = nm_setting_ip4_config_get_method (page->setting); disabled = g_strcmp0 (str_method, NM_SETTING_IP4_CONFIG_METHOD_DISABLED) == 0; diff --git a/panels/network/connection-editor/ce-page-ip6.c b/panels/network/connection-editor/ce-page-ip6.c index 3a4fcd7c1..810a9845a 100644 --- a/panels/network/connection-editor/ce-page-ip6.c +++ b/panels/network/connection-editor/ce-page-ip6.c @@ -86,6 +86,14 @@ method_changed (GtkComboBox *combo, CEPageIP6 *page) ce_page_changed (CE_PAGE (page)); } +static void +switch_toggled (GObject *object, + GParamSpec *pspec, + CEPage *page) +{ + ce_page_changed (page); +} + static void update_separator (GtkWidget **separator, GtkWidget *child, @@ -401,6 +409,7 @@ add_dns_section (CEPageIP6 *page) gtk_container_add (GTK_CONTAINER (frame), list); 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_ip6_config_get_ignore_auto_dns (page->setting)); + g_signal_connect (page->auto_dns, "notify::active", switch_toggled, page); add_section_toolbar (page, widget, G_CALLBACK (add_empty_dns_row)); @@ -543,6 +552,7 @@ add_routes_section (CEPageIP6 *page) gtk_container_add (GTK_CONTAINER (frame), 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_ip6_config_get_ignore_auto_routes (page->setting)); + g_signal_connect (page->auto_routes, "notify::active", switch_toggled, page); add_section_toolbar (page, widget, G_CALLBACK (add_empty_route_row)); @@ -586,6 +596,7 @@ connect_ip6_page (CEPageIP6 *page) add_routes_section (page); page->enabled = GTK_SWITCH (gtk_builder_get_object (CE_PAGE (page)->builder, "switch_enable")); + g_signal_connect (page->enabled, "notify::active", switch_toggled, page); str_method = nm_setting_ip6_config_get_method (page->setting); disabled = g_strcmp0 (str_method, NM_SETTING_IP6_CONFIG_METHOD_IGNORE) == 0;