Construct the default filename from the date
authorDr. Johann Pfefferl <pfefferl@nghape.jpnet>
Sat, 8 May 2010 19:49:28 +0000 (21:49 +0200)
committerDr. Johann Pfefferl <pfefferl@nghape.jpnet>
Sat, 8 May 2010 19:49:28 +0000 (21:49 +0200)
gps-tracker.c

index 3f3b580..62bc73c 100644 (file)
@@ -21,8 +21,16 @@ static gchar * interface_file_chooser (AppData * appdata, GtkFileChooserAction a
 {
     GtkWidget *dialog;
     gchar *filename = NULL;
+    GDate *date = g_date_new();
+    gchar save_fname[256];
     
+    g_date_set_time_t (date, time (NULL));
+    g_date_strftime(save_fname, sizeof(save_fname), "gps-tracker-%F-%H-%M.gpx", date);
+    g_free (date);
     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));
 
     if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_OK) {
@@ -38,8 +46,10 @@ static void cb_start_stop (GtkWidget * w, AppData * data)
   data->tracking_is_on = !data->tracking_is_on;
   if(data->tracking_is_on) {
     hildon_banner_show_information(GTK_WIDGET(data->window), NULL, "Tracking started");
+    gtk_button_set_label (data->start_stop_button, "Stop");
   }
   else {
+    gtk_button_set_label (data->start_stop_button, "Start");
     hildon_banner_show_information(GTK_WIDGET(data->window), NULL, "Tracking stopped");
   }
 }
@@ -49,16 +59,14 @@ static void cb_file_save (GtkWidget * w, AppData * data)
     gchar *filename = NULL;
     filename = interface_file_chooser (data, GTK_FILE_CHOOSER_ACTION_SAVE);
 
-    if (filename == NULL) {
-        filename = "NULL";
+    if (filename) {
+        //FILE * f = fopen (filename, "w");
+        //fprintf (f, "This file was generated by Hildon File Chooser example.");
+        //fclose (f);
+        g_print ("File saved as %s\n", filename);
+        hildon_banner_show_information(GTK_WIDGET(data->window), NULL, filename);
     }
-    else {
-        FILE * f = fopen (filename, "w");
-        fprintf (f, "This file was generated by Hildon File Chooser example.");
-        fclose (f);
-    }
-
-    g_print ("File saved as %s\n", filename);
+    g_free(filename);
 }
 
 static void