140
141
if (gconf_client_dir_exists (gconf_client, conn_gconf_path, NULL))
144
if ((selection = gtk_tree_view_get_selection (vpn_conn_view)) == NULL)
143
147
/* User-visible name of connection */
144
148
gconf_key = g_strdup_printf ("%s/name", conn_gconf_path);
145
149
gconf_client_set_string (gconf_client, gconf_key, conn_name, NULL);
198
remove_vpn_connection (const char *gconf_path, GtkTreeIter *iter)
202
g_snprintf (key, sizeof (key), "%s/name", gconf_path);
203
gconf_client_unset (gconf_client, key, NULL);
204
g_snprintf (key, sizeof (key), "%s/service_name", gconf_path);
205
gconf_client_unset (gconf_client, key, NULL);
206
g_snprintf (key, sizeof (key), "%s/vpn_data", gconf_path);
207
gconf_client_unset (gconf_client, key, NULL);
208
g_snprintf (key, sizeof (key), "%s/routes", gconf_path);
209
gconf_client_unset (gconf_client, key, NULL);
210
g_snprintf (key, sizeof (key), "%s/user_name", gconf_path);
211
gconf_client_unset (gconf_client, key, NULL);
213
g_snprintf (key, sizeof (key), "%s/last_attempt_success", gconf_path);
214
gconf_client_unset (gconf_client, key, NULL);
216
gconf_client_unset (gconf_client, gconf_path, NULL);
217
gconf_client_suggest_sync (gconf_client, NULL);
219
if (gtk_list_store_remove (vpn_conn_list, iter)) {
220
GtkTreeSelection *selection;
222
selection = gtk_tree_view_get_selection (vpn_conn_view);
223
gtk_tree_selection_select_iter (selection, iter);
193
228
vpn_druid_vpn_validity_changed (NetworkManagerVpnUI *vpn_ui,
194
229
gboolean is_valid,
631
648
const char *conn_name;
632
649
char key[PATH_MAX];
633
650
char *conn_gconf_path;
651
GtkTreeSelection *selection;
634
652
GtkTreeIter iter;
636
printf ("edit_cb\n");
638
654
if (!retrieve_data_from_selected_connection (&vpn_ui, &conn_vpn_data, &conn_routes, &conn_name, &conn_gconf_path))
657
if ((selection = gtk_tree_view_get_selection (vpn_conn_view)) == NULL)
660
if (!gtk_tree_selection_get_selected (selection, NULL, &iter))
641
663
vpn_edit_widget = vpn_ui->get_widget (vpn_ui, conn_vpn_data, conn_routes, conn_name);
643
665
g_slist_free (conn_vpn_data);
676
698
gconf_client_suggest_sync (gconf_client, NULL);
678
/* remove old entry */
679
g_snprintf (key, sizeof (key), "%s/name", conn_gconf_path);
680
gconf_client_unset (gconf_client, key, NULL);
681
g_snprintf (key, sizeof (key), "%s/service_name", conn_gconf_path);
682
gconf_client_unset (gconf_client, key, NULL);
683
g_snprintf (key, sizeof (key), "%s/vpn_data", conn_gconf_path);
684
gconf_client_unset (gconf_client, key, NULL);
685
/* TODO: at some point remove routes and user_name */
686
g_snprintf (key, sizeof (key), "%s/routes", conn_gconf_path);
687
gconf_client_unset (gconf_client, key, NULL);
688
g_snprintf (key, sizeof (key), "%s/user_name", conn_gconf_path);
689
gconf_client_unset (gconf_client, key, NULL);
690
gconf_client_unset (gconf_client, conn_gconf_path, NULL);
691
gconf_client_suggest_sync (gconf_client, NULL);
692
gtk_list_store_remove (vpn_conn_list, &iter);
700
selection = gtk_tree_view_get_selection (vpn_conn_view);
701
gtk_tree_selection_get_selected (selection, NULL, &iter);
702
remove_vpn_connection (conn_gconf_path, &iter);
695
704
add_vpn_connection (new_conn_name, vpn_ui->get_service_name (vpn_ui),
696
new_conn_data, new_conn_routes);
705
new_conn_data, new_conn_routes);
699
708
if (new_conn_data != NULL) {
749
756
gtk_tree_model_get (GTK_TREE_MODEL (vpn_conn_list), &iter, VPNCONN_GCONF_COLUMN, &conn_gconf_path, -1);
751
if (conn_gconf_path != NULL) {
754
g_snprintf (key, sizeof (key), "%s/name", conn_gconf_path);
755
gconf_client_unset (gconf_client, key, NULL);
756
g_snprintf (key, sizeof (key), "%s/service_name", conn_gconf_path);
757
gconf_client_unset (gconf_client, key, NULL);
758
g_snprintf (key, sizeof (key), "%s/vpn_data", conn_gconf_path);
759
gconf_client_unset (gconf_client, key, NULL);
760
g_snprintf (key, sizeof (key), "%s/routes", conn_gconf_path);
761
gconf_client_unset (gconf_client, key, NULL);
762
/* TODO: remove user_name */
763
g_snprintf (key, sizeof (key), "%s/user_name", conn_gconf_path);
764
gconf_client_unset (gconf_client, key, NULL);
765
g_snprintf (key, sizeof (key), "%s/last_attempt_success", conn_gconf_path);
766
gconf_client_unset (gconf_client, key, NULL);
768
gconf_client_unset (gconf_client, conn_gconf_path, NULL);
770
gconf_client_suggest_sync (gconf_client, NULL);
772
if (gtk_list_store_remove (vpn_conn_list, &iter))
773
gtk_tree_selection_select_iter (selection, &iter);
758
if (conn_gconf_path != NULL)
759
remove_vpn_connection (conn_gconf_path, &iter);
776
761
update_edit_del_sensitivity ();
882
865
vpn_list_cursor_changed_cb (GtkTreeView *treeview,
883
866
gpointer user_data)
885
/*printf ("*** vpn_list_cursor_changed_cb\n");*/
887
868
update_edit_del_sensitivity ();
872
vpn_list_row_activated_cb (GtkTreeView *treeview,
874
GtkTreeViewColumn *column,
877
edit_cb (NULL, NULL);
890
880
/* TODO: remove these once we get the GModule thing going */
891
881
//extern NetworkManagerVpnUI* vpn_ui_factory_vpnc (void);
892
882
extern NetworkManagerVpnUI* vpn_ui_factory_dummy (void);
928
918
#define VPN_NAME_FILES_DIR SYSCONFDIR"/NetworkManager/VPN"
921
vpn_list_sorter(GtkTreeModel *model,
932
gtk_tree_model_get_value(model, a, VPNCONN_NAME_COLUMN, &aval);
933
gtk_tree_model_get_value(model, b, VPNCONN_NAME_COLUMN, &bval);
934
aname = g_value_get_string(&aval);
935
bname = g_value_get_string(&bval);
936
res = strcasecmp(aname, bname);
937
g_value_unset(&aval);
938
g_value_unset(&bval);
1001
1015
vpn_type_details = GTK_VBOX (glade_xml_get_widget (xml, "vpn-connection-druid-details-box"));
1003
1017
w = glade_xml_get_widget (xml, "add");
1004
gtk_signal_connect (GTK_OBJECT (w), "clicked", GTK_SIGNAL_FUNC (add_cb), NULL);
1018
g_signal_connect (G_OBJECT (w), "clicked", GTK_SIGNAL_FUNC (add_cb), NULL);
1005
1019
vpn_edit = glade_xml_get_widget (xml, "edit");
1006
gtk_signal_connect (GTK_OBJECT (vpn_edit), "clicked", GTK_SIGNAL_FUNC (edit_cb), NULL);
1020
g_signal_connect (G_OBJECT (vpn_edit), "clicked", GTK_SIGNAL_FUNC (edit_cb), NULL);
1007
1021
vpn_export = glade_xml_get_widget (xml, "export");
1008
gtk_signal_connect (GTK_OBJECT (vpn_export), "clicked", GTK_SIGNAL_FUNC (export_cb), NULL);
1022
g_signal_connect (G_OBJECT (vpn_export), "clicked", GTK_SIGNAL_FUNC (export_cb), NULL);
1009
1023
vpn_delete = glade_xml_get_widget (xml, "delete");
1010
gtk_signal_connect (GTK_OBJECT (vpn_delete), "clicked", GTK_SIGNAL_FUNC (delete_cb), NULL);
1024
g_signal_connect (G_OBJECT (vpn_delete), "clicked", GTK_SIGNAL_FUNC (delete_cb), NULL);
1011
1025
g_signal_connect (dialog, "response",
1012
1026
G_CALLBACK (response_cb), NULL);
1013
1027
g_signal_connect (dialog, "delete_event",
1016
1030
vpn_conn_view = GTK_TREE_VIEW (glade_xml_get_widget (xml, "vpnlist"));
1017
1031
vpn_conn_list = gtk_list_store_new (VPNCONN_N_COLUMNS, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_BOOLEAN);
1019
gtk_signal_connect_after (GTK_OBJECT (vpn_conn_view), "cursor-changed",
1033
gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(vpn_conn_list),
1034
VPNCONN_NAME_COLUMN,
1038
gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(vpn_conn_list),
1039
VPNCONN_NAME_COLUMN,
1040
GTK_SORT_ASCENDING);
1042
g_signal_connect_after (G_OBJECT (vpn_conn_view), "cursor-changed",
1020
1043
GTK_SIGNAL_FUNC (vpn_list_cursor_changed_cb), NULL);
1045
g_signal_connect (G_OBJECT (vpn_conn_view), "row-activated",
1046
GTK_SIGNAL_FUNC (vpn_list_row_activated_cb), NULL);
1022
1048
get_all_vpn_connections ();
1024
1050
column = gtk_tree_view_column_new ();
1032
1058
gtk_tree_view_set_model (vpn_conn_view, GTK_TREE_MODEL (vpn_conn_list));
1033
1059
gtk_tree_view_expand_all (vpn_conn_view);
1061
if (gtk_tree_model_get_iter_first (GTK_TREE_MODEL (vpn_conn_list), &tree_iter)) {
1062
GtkTreeSelection *selection = gtk_tree_view_get_selection (vpn_conn_view);
1064
gtk_tree_selection_select_iter (selection, &tree_iter);
1035
1067
gtk_widget_show_all (dialog);
1037
1069
/* fill in possibly choices in the druid when adding a connection */
1048
1080
druid = GNOME_DRUID (glade_xml_get_widget (xml, "vpn-create-connection-druid"));
1049
gtk_signal_connect (GTK_OBJECT (druid), "cancel", GTK_SIGNAL_FUNC (vpn_druid_cancel), NULL);
1081
g_signal_connect (GTK_OBJECT (druid), "cancel", GTK_SIGNAL_FUNC (vpn_druid_cancel), NULL);
1050
1082
druid_confirm_page = GNOME_DRUID_PAGE_EDGE (glade_xml_get_widget (xml, "vpn-druid-vpn-confirm-page"));
1051
1083
/* use connect_after, otherwise gnome_druid_set_buttons_sensitive() won't work in prepare handlers */
1052
1084
w = glade_xml_get_widget (xml, "vpn-druid-vpn-type-page");
1053
gtk_signal_connect_after (GTK_OBJECT (w), "next", GTK_SIGNAL_FUNC (vpn_druid_vpn_type_page_next), NULL);
1085
g_signal_connect_after (G_OBJECT (w), "next", GTK_SIGNAL_FUNC (vpn_druid_vpn_type_page_next), NULL);
1054
1086
w = glade_xml_get_widget (xml, "vpn-druid-vpn-details-page");
1055
gtk_signal_connect_after (GTK_OBJECT (w), "prepare", GTK_SIGNAL_FUNC (vpn_druid_vpn_details_page_prepare), NULL);
1056
gtk_signal_connect_after (GTK_OBJECT (w), "next", GTK_SIGNAL_FUNC (vpn_druid_vpn_details_page_next), NULL);
1087
g_signal_connect_after (G_OBJECT (w), "prepare", GTK_SIGNAL_FUNC (vpn_druid_vpn_details_page_prepare), NULL);
1088
g_signal_connect_after (G_OBJECT (w), "next", GTK_SIGNAL_FUNC (vpn_druid_vpn_details_page_next), NULL);
1057
1089
w = glade_xml_get_widget (xml, "vpn-druid-vpn-confirm-page");
1058
gtk_signal_connect_after (GTK_OBJECT (w), "prepare", GTK_SIGNAL_FUNC (vpn_druid_vpn_confirm_page_prepare), NULL);
1059
gtk_signal_connect_after (GTK_OBJECT (w), "finish", GTK_SIGNAL_FUNC (vpn_druid_vpn_confirm_page_finish), NULL);
1090
g_signal_connect_after (G_OBJECT (w), "prepare", GTK_SIGNAL_FUNC (vpn_druid_vpn_confirm_page_prepare), NULL);
1091
g_signal_connect_after (G_OBJECT (w), "finish", GTK_SIGNAL_FUNC (vpn_druid_vpn_confirm_page_finish), NULL);
1061
1093
toplevel = gtk_widget_get_toplevel (GTK_WIDGET (druid));
1062
gtk_signal_connect (GTK_OBJECT (toplevel), "delete_event", GTK_SIGNAL_FUNC (vpn_window_close), NULL);
1094
g_signal_connect (G_OBJECT (toplevel), "delete_event", GTK_SIGNAL_FUNC (vpn_window_close), NULL);
1064
1096
druid_window = GTK_WINDOW (glade_xml_get_widget (xml, "vpn-create-connection"));