static void profile_select(GtkWidget *main_w, GtkTreeView *profile_l, gboolean destroy) { GList *fl_entry; profile_def *profile; GtkTreeSelection *sel; GtkTreeModel *model; GtkTreeIter iter; sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(profile_l)); if (gtk_tree_selection_get_selected(sel, &model, &iter)) { gtk_tree_model_get(model, &iter, 1, &fl_entry, -1); if (fl_entry) { profile = (profile_def *) fl_entry->data; if (profile_exists (profile->name)) { /* The new profile exists, change */ change_configuration_profile (profile->name); } else if (!profile_exists (get_profile_name())) { /* The new profile does not exist, and the previous profile has been deleted. Change to the default profile */ change_configuration_profile (NULL); } } } if (destroy) { /* * Destroy the profile dialog box. */ empty_profile_list (TRUE); window_destroy(main_w); } }
/* cancel button pressed, revert changes and exit dialog */ static void profile_dlg_cancel_cb(GtkWidget *cancel_bt, gpointer data _U_) { GtkWidget *main_w = gtk_widget_get_toplevel(cancel_bt); empty_profile_list (TRUE); window_destroy(GTK_WIDGET(main_w)); }
void init_profile_list(void) { WS_DIR *dir; /* scanned directory */ WS_DIRENT *file; /* current file */ const gchar *profiles_dir, *name; gchar *filename; empty_profile_list(TRUE); /* Default entry */ add_to_profile_list(DEFAULT_PROFILE, DEFAULT_PROFILE, PROF_STAT_DEFAULT, FALSE, FALSE); /* Local (user) profiles */ profiles_dir = get_profiles_dir(); if ((dir = ws_dir_open(profiles_dir, 0, NULL)) != NULL) { while ((file = ws_dir_read_name(dir)) != NULL) { name = ws_dir_get_name(file); filename = g_strdup_printf ("%s%s%s", profiles_dir, G_DIR_SEPARATOR_S, name); if (test_for_directory(filename) == EISDIR) { /*fl_entry =*/ add_to_profile_list(name, name, PROF_STAT_EXISTS, FALSE, FALSE); } g_free (filename); } ws_dir_close (dir); } /* Global profiles */ profiles_dir = get_global_profiles_dir(); if ((dir = ws_dir_open(profiles_dir, 0, NULL)) != NULL) { while ((file = ws_dir_read_name(dir)) != NULL) { name = ws_dir_get_name(file); filename = g_strdup_printf ("%s%s%s", profiles_dir, G_DIR_SEPARATOR_S, name); if (test_for_directory(filename) == EISDIR) { /*fl_entry =*/ add_to_profile_list(name, name, PROF_STAT_EXISTS, TRUE, TRUE); /*profile = (profile_def *) fl_entry->data;*/ } g_free (filename); } ws_dir_close (dir); } /* Make the current list and the edited list equal */ copy_profile_list (); }
static void copy_profile_list(void) { GList *flp_src; profile_def *profile; flp_src = edited_profiles; /* throw away the "old" destination list - a NULL list is ok here */ empty_profile_list(FALSE); /* copy the list entries */ while(flp_src) { profile = (flp_src)->data; current_profiles = add_profile_entry(current_profiles, profile->name, profile->reference, profile->status); flp_src = g_list_next(flp_src); } }
ProfileDialog::~ProfileDialog() { delete pd_ui_; empty_profile_list (TRUE); }