static void security_combo_changed (GtkWidget *combo, gpointer user_data) { NMAWirelessDialog *self = NMA_WIRELESS_DIALOG (user_data); NMAWirelessDialogPrivate *priv = NMA_WIRELESS_DIALOG_GET_PRIVATE (self); GtkWidget *vbox; GList *elt, *children; GtkTreeIter iter; GtkTreeModel *model; WirelessSecurity *sec = NULL; GtkWidget *sec_widget; vbox = GTK_WIDGET (gtk_builder_get_object (priv->builder, "security_vbox")); g_assert (vbox); size_group_clear (priv->group); /* Remove any previous wireless security widgets */ children = gtk_container_get_children (GTK_CONTAINER (vbox)); for (elt = children; elt; elt = g_list_next (elt)) gtk_container_remove (GTK_CONTAINER (vbox), GTK_WIDGET (elt->data)); model = gtk_combo_box_get_model (GTK_COMBO_BOX (combo)); if (!gtk_combo_box_get_active_iter (GTK_COMBO_BOX (combo), &iter)) { g_warning ("%s: no active security combo box item.", __func__); return; } gtk_tree_model_get (model, &iter, S_SEC_COLUMN, &sec, -1); if (!sec) return; sec_widget = wireless_security_get_widget (sec); g_assert (sec_widget); size_group_add_permanent (priv->group, priv->builder); wireless_security_add_to_size_group (sec, priv->group); if (gtk_widget_get_parent (sec_widget)) gtk_widget_reparent (sec_widget, vbox); else gtk_container_add (GTK_CONTAINER (vbox), sec_widget); wireless_security_unref (sec); /* Re-validate */ wireless_security_changed_cb (NULL, sec); }
static WirelessSecurity * dialog_set_security (NMConnection *connection, const char *glade_file, GtkBox *box) { GList *children; GList *iter; WirelessSecurity *security; security = (WirelessSecurity *) ws_wpa_eap_new (glade_file, connection, FALSE); /* Remove any previous wireless security widgets */ children = gtk_container_get_children (GTK_CONTAINER (box)); for (iter = children; iter; iter = iter->next) gtk_container_remove (GTK_CONTAINER (box), GTK_WIDGET (iter->data)); gtk_box_pack_start (box, wireless_security_get_widget (security), TRUE, TRUE, 0); return security; }
static void wireless_security_combo_changed (GtkComboBox *combo, gpointer user_data) { CEPageWirelessSecurity *self = CE_PAGE_WIRELESS_SECURITY (user_data); GtkWidget *vbox; GList *elt, *children; WirelessSecurity *sec; vbox = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (self)->builder, "wireless_security_vbox")); g_assert (vbox); wsec_size_group_clear (self->group); /* Remove any previous wireless security widgets */ children = gtk_container_get_children (GTK_CONTAINER (vbox)); for (elt = children; elt; elt = g_list_next (elt)) gtk_container_remove (GTK_CONTAINER (vbox), GTK_WIDGET (elt->data)); sec = wireless_security_combo_get_active (self); if (sec) { GtkWidget *sec_widget; GtkWidget *widget, *parent; sec_widget = wireless_security_get_widget (sec); g_assert (sec_widget); parent = gtk_widget_get_parent (sec_widget); if (parent) gtk_container_remove (GTK_CONTAINER (parent), sec_widget); widget = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (self)->builder, "wireless_security_combo_label")); gtk_size_group_add_widget (self->group, widget); wireless_security_add_to_size_group (sec, self->group); gtk_container_add (GTK_CONTAINER (vbox), sec_widget); wireless_security_unref (sec); } ce_page_changed (CE_PAGE (self)); }
static void security_combo_changed (GtkComboBox *combo, gpointer user_data) { CEPageSecurity *page = CE_PAGE_SECURITY (user_data); GtkWidget *vbox; GList *l, *children; WirelessSecurity *sec; wsec_size_group_clear (page->group); vbox = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "vbox")); children = gtk_container_get_children (GTK_CONTAINER (vbox)); for (l = children; l; l = l->next) { gtk_container_remove (GTK_CONTAINER (vbox), GTK_WIDGET (l->data)); } sec = security_combo_get_active (page); if (sec) { GtkWidget *sec_widget; GtkWidget *parent; sec_widget = wireless_security_get_widget (sec); g_assert (sec_widget); parent = gtk_widget_get_parent (sec_widget); if (parent) gtk_container_remove (GTK_CONTAINER (parent), sec_widget); gtk_size_group_add_widget (page->group, page->security_heading); gtk_size_group_add_widget (page->group, page->firewall_heading); wireless_security_add_to_size_group (sec, page->group); gtk_container_add (GTK_CONTAINER (vbox), sec_widget); wireless_security_unref (sec); } ce_page_changed (CE_PAGE (page)); }