]> git.street.me.uk Git - andy/viking.git/commitdiff
More data source fixes
authorEvan Battaglia <gtoevan@gmx.net>
Sun, 4 Dec 2005 06:16:00 +0000 (06:16 +0000)
committerEvan Battaglia <gtoevan@gmx.net>
Sun, 4 Dec 2005 06:16:00 +0000 (06:16 +0000)
ChangeLog
TODO
src/acquire.c
src/acquire.h
src/datasource_gc.c
src/datasource_google.c
src/datasource_gps.c

index 1634f86ecd83f1b017c9ec4922e71dbcc447fe85..a618600965e5ad0755970c48ac2ee97fd44f521f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2005-12-03
+Evan Battaglia <gtoevan@gmx.net>
+       * Data sources -- check for existence of necessary things
+
 2005-11-25
 Evan Battaglia <gtoevan@gmx.net>
        * Created "data sources" structure to easily add new data sources via GPS babel.
diff --git a/TODO b/TODO
index 8cfb4c595169e48ca0bb10c6e1b6b7ebfefc3adf..8df9b99333d8a1271eab54167ad557225ee27c84 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,17 +1,18 @@
+FEATURE FREEZE!!!
+--------------
 BEFORE RELEASE:
        fix KH maps download
-       'zoom in too much' line drawing (ruler, tracks) bugs. maybe fix coord-to-screen to clip values (or make vik_viewport_coord_to_screen_clip)?
+       clipping -- OK as is?
        fix SEGFAULT when clicking too far right on elevation diagram
-       acquire crashes, sometimes (???)
        google maps download stops (try auto-download), extra processes in background doing nothing
        GPSBABEL!!!
-               * existence checkers function, use for unbuffer, gcget, sed, wget, etc.
-               * error if gcget isn't functioning correctly
+               * existence check sed, wget, etc.
                * Smooth over rough edges / ugliness / crashes
-               * Google address -> WP
-               * handling of special characters (both to wget/HTTP and shell) -- don't allow backdoor tricks
+------------------
                * Filter a TRW layer: simplify paths, get out waypoints inside a path, etc.
                * geocaches: all on screen / radius
+               * error if gcget isn't functioning correctly
+               * Google address -> WP
 
 FEATURES:
        Paste GPX files into Viking -> TRW Layer
index 1c3809b6b08c7cb78cda239dbfe2ac1ffbca44c0..1544bbc076efe5808960cbbcb4e7a1a970dbbc16 100644 (file)
@@ -152,6 +152,8 @@ void a_acquire ( VikWindow *vw, VikLayersPanel *vlp, VikViewport *vvp, VikDataSo
     dialog = gtk_dialog_new_with_buttons ( "", NULL, 0, GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT, NULL );
 
     first_dialog_data = interface->add_widgets_func(dialog, vvp);
+    gtk_window_set_title ( GTK_WINDOW(dialog), interface->window_title );
+
     if ( gtk_dialog_run ( GTK_DIALOG(dialog) ) != GTK_RESPONSE_ACCEPT ) {
       interface->first_cleanup_func(first_dialog_data);
       gtk_widget_destroy(dialog);
@@ -176,6 +178,7 @@ void a_acquire ( VikWindow *vw, VikLayersPanel *vlp, VikViewport *vvp, VikDataSo
 
   dialog = gtk_dialog_new_with_buttons ( "", NULL, 0, GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT, NULL );
   gtk_dialog_set_response_sensitive ( GTK_DIALOG(dialog), GTK_RESPONSE_ACCEPT, FALSE );
+  gtk_window_set_title ( GTK_WINDOW(dialog), interface->window_title );
 
 
   w->dialog = dialog;
@@ -194,6 +197,7 @@ void a_acquire ( VikWindow *vw, VikLayersPanel *vlp, VikViewport *vvp, VikDataSo
   else
     w->specific_data = NULL;
 
+
   g_thread_create((GThreadFunc)get_from_anything, wi, FALSE, NULL );
 
   gtk_dialog_run ( GTK_DIALOG(dialog) );
index c8acdedf2d2957c1a6020035496f283700056f49..091cacfb3133420494b50417e306fbbc68f14584 100644 (file)
@@ -55,6 +55,7 @@ typedef gpointer  (*VikDataSourceAddProgressWidgetsFunc) ( GtkWidget *dialog );
 typedef void (*VikDataSourceCleanupFunc) ( gpointer progress_widgets_data );
 
 struct _VikDataSourceInterface {
+  const gchar *window_title;
   const gchar *layer_title;
   vik_datasource_type_t type;
   vik_datasource_type_t mode;
index 35e55c5c70e15efa30af3f36366e500a15e4ffde..59da496fc2bed58ca9fe7b6930b62133348fe465 100644 (file)
@@ -37,7 +37,8 @@ static void datasource_gc_first_cleanup ( gpointer data );
 static gchar *datasource_gc_check_existence ();
 
 VikDataSourceInterface vik_datasource_gc_interface = {
-  "Acquire from gc",
+  "Download Geocaches",
+  "Geocaching.com Caches",
   VIK_DATASOURCE_SHELL_CMD,
   VIK_DATASOURCE_ADDTOLAYER,
   (VikDataSourceCheckExistenceFunc)    datasource_gc_check_existence,
index afd31c2ad8e9f3a29325896dc80f2b08483d2bc2..dd709f291cf553008c0b42d148a2d078b4e0c6df 100644 (file)
@@ -38,7 +38,8 @@ static void datasource_google_get_cmd_string ( datasource_google_widgets_t *widg
 static void datasource_google_first_cleanup ( gpointer data );
 
 VikDataSourceInterface vik_datasource_google_interface = {
-  "Acquire from Google",
+  "Google Directions",
+  "Google Directions",
   VIK_DATASOURCE_SHELL_CMD,
   VIK_DATASOURCE_ADDTOLAYER,
   (VikDataSourceCheckExistenceFunc)    NULL,
@@ -70,9 +71,15 @@ gpointer datasource_google_add_widgets ( GtkWidget *dialog, VikViewport *vvp )
 static void datasource_google_get_cmd_string ( datasource_google_widgets_t *widgets, gchar **cmd, gchar **input_type )
 {
   /* TODO: special characters handling!!! */
-  *cmd = g_strdup_printf( GOOGLE_DIRECTIONS_STRING, gtk_entry_get_text ( GTK_ENTRY(widgets->from_entry) ), gtk_entry_get_text ( GTK_ENTRY(widgets->to_entry) ) );
+  gchar *from_quoted, *to_quoted;
+  from_quoted = g_shell_quote ( gtk_entry_get_text ( GTK_ENTRY(widgets->from_entry) ) );
+  to_quoted = g_shell_quote ( gtk_entry_get_text ( GTK_ENTRY(widgets->to_entry) ) );
+
+  *cmd = g_strdup_printf( GOOGLE_DIRECTIONS_STRING, from_quoted, to_quoted );
   *input_type = g_strdup("google");
 
+  g_free(from_quoted);
+  g_free(to_quoted);
 }
 
 static void datasource_google_first_cleanup ( gpointer data )
index 11cd749133f6a36b0b94753d0b9e450de62dd0ed..c7401b9f36e2f14f3c5fef23bba8607e7d69511f 100644 (file)
@@ -35,6 +35,7 @@ gpointer datasource_gps_add_progress_widgets ( GtkWidget *dialog );
 
 VikDataSourceInterface vik_datasource_gps_interface = {
   "Acquire from GPS",
+  "Acquired from GPS",
   VIK_DATASOURCE_GPSBABEL_DIRECT,
   VIK_DATASOURCE_CREATENEWLAYER,
   (VikDataSourceCheckExistenceFunc)    NULL,
@@ -194,8 +195,6 @@ gpointer datasource_gps_add_progress_widgets ( GtkWidget *dialog )
   gtk_box_pack_start ( GTK_BOX(GTK_DIALOG(dialog)->vbox), wplabel, FALSE, FALSE, 5 );
   gtk_box_pack_start ( GTK_BOX(GTK_DIALOG(dialog)->vbox), trklabel, FALSE, FALSE, 5 );
 
-  gtk_window_set_title ( GTK_WINDOW(dialog), "Acquire data from GPS" );
-
   gtk_widget_show_all ( dialog );
 
   w_gps->gps_label = gpslabel;