Defined an struct element which holds the working directory
[gps-tracker] / gps-tracker.c
index 9074d0f..d92a8e6 100644 (file)
@@ -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;