From 2752f38a723ddea64e4094cdef45db8103d13c42 Mon Sep 17 00:00:00 2001 From: Robert Ancell Date: Thu, 24 Oct 2019 13:21:17 +1300 Subject: [PATCH] network: Remove net_object_emit_removed --- panels/network/cc-network-panel.c | 45 +++++++++++++++---------------- panels/network/net-object.c | 14 ---------- panels/network/net-object.h | 1 - panels/network/net-vpn.c | 11 -------- 4 files changed, 22 insertions(+), 49 deletions(-) diff --git a/panels/network/cc-network-panel.c b/panels/network/cc-network-panel.c index 4b27324e7..818199337 100644 --- a/panels/network/cc-network-panel.c +++ b/panels/network/cc-network-panel.c @@ -234,17 +234,6 @@ cc_network_panel_get_help_uri (CcPanel *self) return "help:gnome-help/net"; } -static void -object_removed_cb (CcNetworkPanel *self, NetObject *object) -{ - GtkWidget *widget; - - /* remove device */ - widget = g_hash_table_lookup (self->device_to_widget, object); - if (widget != NULL) - gtk_widget_destroy (widget); -} - static void panel_refresh_device_titles (CcNetworkPanel *self) { @@ -483,22 +472,22 @@ panel_add_device (CcNetworkPanel *self, NMDevice *device) * be handled by the future Mobile Broadband panel */ if (NET_IS_DEVICE_BLUETOOTH (net_device)) update_bluetooth_section (self); - - g_signal_connect_object (net_device, "removed", - G_CALLBACK (object_removed_cb), self, G_CONNECT_SWAPPED); } static void panel_remove_device (CcNetworkPanel *self, NMDevice *device) { NetObject *net_device = NULL; + GtkWidget *widget; net_device = g_hash_table_lookup (self->nm_device_to_device, device); if (net_device == NULL) return; - /* NMObject will not fire the "removed" signal, so handle the UI removal explicitly */ - object_removed_cb (self, net_device); + widget = g_hash_table_lookup (self->device_to_widget, device); + if (widget != NULL) + gtk_widget_destroy (widget); + g_ptr_array_remove (self->bluetooth_devices, net_device); g_ptr_array_remove (self->ethernet_devices, net_device); g_ptr_array_remove (self->mobile_devices, net_device); @@ -620,8 +609,7 @@ panel_add_vpn_device (CcNetworkPanel *self, NMConnection *connection) /* add as a VPN object */ net_vpn = net_vpn_new (connection, self->client); - g_signal_connect_object (net_vpn, "removed", - G_CALLBACK (object_removed_cb), self, G_CONNECT_SWAPPED); + /* add as a panel */ add_object (self, NET_OBJECT (net_vpn), GTK_CONTAINER (self->box_vpn)); @@ -636,8 +624,7 @@ panel_add_vpn_device (CcNetworkPanel *self, NMConnection *connection) } static void -add_connection (CcNetworkPanel *self, - NMConnection *connection) +add_connection (CcNetworkPanel *self, NMConnection *connection) { NMSettingConnection *s_con; const gchar *type, *iface; @@ -661,9 +648,19 @@ add_connection (CcNetworkPanel *self, } static void -notify_connection_added_cb (CcNetworkPanel *self, NMRemoteConnection *connection) +client_connection_removed_cb (CcNetworkPanel *self, NMConnection *connection) { - add_connection (self, NM_CONNECTION (connection)); + guint i; + + for (i = 0; i < self->vpns->len; i++) { + NetVpn *vpn = g_ptr_array_index (self->vpns, i); + if (net_vpn_get_connection (vpn) == connection) { + GtkWidget *widget = g_hash_table_lookup (self->device_to_widget, vpn); + if (widget != NULL) + gtk_widget_destroy (widget); + return; + } + } } static void @@ -813,7 +810,9 @@ cc_network_panel_init (CcNetworkPanel *self) /* add remote settings such as VPN settings as virtual devices */ g_signal_connect_object (self->client, NM_CLIENT_CONNECTION_ADDED, - G_CALLBACK (notify_connection_added_cb), self, G_CONNECT_SWAPPED); + G_CALLBACK (add_connection), self, G_CONNECT_SWAPPED); + g_signal_connect_object (self->client, NM_CLIENT_CONNECTION_REMOVED, + G_CALLBACK (client_connection_removed_cb), self, G_CONNECT_SWAPPED); toplevel = gtk_widget_get_toplevel (GTK_WIDGET (self)); g_signal_connect_after (toplevel, "map", G_CALLBACK (on_toplevel_map), self); diff --git a/panels/network/net-object.c b/panels/network/net-object.c index c5e622ad7..d717bdb01 100644 --- a/panels/network/net-object.c +++ b/panels/network/net-object.c @@ -39,7 +39,6 @@ enum { enum { SIGNAL_CHANGED, - SIGNAL_REMOVED, SIGNAL_LAST }; @@ -53,13 +52,6 @@ net_object_emit_changed (NetObject *self) g_signal_emit (self, signals[SIGNAL_CHANGED], 0); } -void -net_object_emit_removed (NetObject *self) -{ - g_return_if_fail (NET_IS_OBJECT (self)); - g_signal_emit (self, signals[SIGNAL_REMOVED], 0); -} - const gchar * net_object_get_title (NetObject *self) { @@ -165,12 +157,6 @@ net_object_class_init (NetObjectClass *klass) 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); - signals[SIGNAL_REMOVED] = - g_signal_new ("removed", - G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST, - 0, - NULL, NULL, g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, 0); } static void diff --git a/panels/network/net-object.h b/panels/network/net-object.h index 56f03dab5..69078824e 100644 --- a/panels/network/net-object.h +++ b/panels/network/net-object.h @@ -46,7 +46,6 @@ const gchar *net_object_get_title (NetObject *object) void net_object_set_title (NetObject *object, const gchar *title); void net_object_emit_changed (NetObject *object); -void net_object_emit_removed (NetObject *object); GtkWidget *net_object_get_widget (NetObject *object, GtkSizeGroup *heading_size_group); diff --git a/panels/network/net-vpn.c b/panels/network/net-vpn.c index bb07f67ab..1fcb1b62c 100644 --- a/panels/network/net-vpn.c +++ b/panels/network/net-vpn.c @@ -60,13 +60,6 @@ connection_changed_cb (NetVpn *self) nm_device_refresh_vpn_ui (self); } -static void -connection_removed_cb (NetVpn *self, NMConnection *connection) -{ - if (self->connection == connection) - net_object_emit_removed (NET_OBJECT (self)); -} - static GtkWidget * vpn_proxy_get_widget (NetObject *object, GtkSizeGroup *heading_size_group) @@ -261,10 +254,6 @@ net_vpn_new (NMConnection *connection, self->client = g_object_ref (client); self->connection = g_object_ref (connection); - g_signal_connect_object (self->client, - NM_CLIENT_CONNECTION_REMOVED, - G_CALLBACK (connection_removed_cb), - self, G_CONNECT_SWAPPED); g_signal_connect_object (connection, NM_CONNECTION_CHANGED, G_CALLBACK (connection_changed_cb),