From bada88f917fca5e6c22cb3f4fc7c605049a221af Mon Sep 17 00:00:00 2001 From: "Dr. Johann Pfefferl" Date: Tue, 11 May 2010 13:39:19 +0200 Subject: [PATCH] Defined an struct element which holds the working directory --- gps-tracker.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/gps-tracker.c b/gps-tracker.c index 9074d0f..d92a8e6 100644 --- a/gps-tracker.c +++ b/gps-tracker.c @@ -15,24 +15,25 @@ typedef struct { GtkWidget *status_label; GtkButton *start_stop_button, *save_button; gboolean tracking_is_on; + FILE *outf_p; + gchar *working_dir; } AppData; static gchar * interface_file_chooser (AppData * appdata, GtkFileChooserAction action) { GtkWidget *dialog; gchar *filename = NULL; - gchar save_fname[256]; + gchar tmpname[PATH_MAX]; time_t t; struct tm *tmp; t = time(NULL); tmp = localtime(&t); - strftime(save_fname, sizeof(save_fname), "gps-tracker-%F-%H-%M.gpx", tmp); + strftime(tmpname, sizeof(tmpname), "gps-tracker-%F-%H-%M.gpx", tmp); dialog = hildon_file_chooser_dialog_new (GTK_WINDOW (appdata->window), action); - gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER (dialog), save_fname); - g_snprintf(save_fname, sizeof(save_fname), "%s" G_DIR_SEPARATOR_S "MyDocs", g_get_home_dir()); - gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(dialog), save_fname); gtk_widget_show_all (GTK_WIDGET (dialog)); + gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER (dialog), tmpname); + gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(dialog), appdata->working_dir); if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_OK) { filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog)); @@ -181,6 +182,7 @@ int main (int argc, char **argv) LocationGPSDControl *control; LocationGPSDevice *device; + data->working_dir = g_strdup_printf("%s" G_DIR_SEPARATOR_S "MyDocs", g_get_home_dir()); data->program = hildon_program_get_instance (); g_set_application_name("GPS tracker"); @@ -237,6 +239,7 @@ int main (int argc, char **argv) g_object_unref (device); g_object_unref (control); + g_free(data->working_dir); g_free(data); return 0; -- 1.7.9.5