From a8d46e0bcb88cd8d62a974d0a7f393c4dcf0326f Mon Sep 17 00:00:00 2001 From: Evan Battaglia Date: Sun, 4 Dec 2005 06:16:00 +0000 Subject: [PATCH] More data source fixes --- ChangeLog | 4 ++++ TODO | 13 +++++++------ src/acquire.c | 4 ++++ src/acquire.h | 1 + src/datasource_gc.c | 3 ++- src/datasource_google.c | 11 +++++++++-- src/datasource_gps.c | 3 +-- 7 files changed, 28 insertions(+), 11 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1634f86e..a6186009 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2005-12-03 +Evan Battaglia + * Data sources -- check for existence of necessary things + 2005-11-25 Evan Battaglia * Created "data sources" structure to easily add new data sources via GPS babel. diff --git a/TODO b/TODO index 8cfb4c59..8df9b993 100644 --- 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 diff --git a/src/acquire.c b/src/acquire.c index 1c3809b6..1544bbc0 100644 --- a/src/acquire.c +++ b/src/acquire.c @@ -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) ); diff --git a/src/acquire.h b/src/acquire.h index c8acdedf..091cacfb 100644 --- a/src/acquire.h +++ b/src/acquire.h @@ -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; diff --git a/src/datasource_gc.c b/src/datasource_gc.c index 35e55c5c..59da496f 100644 --- a/src/datasource_gc.c +++ b/src/datasource_gc.c @@ -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, diff --git a/src/datasource_google.c b/src/datasource_google.c index afd31c2a..dd709f29 100644 --- a/src/datasource_google.c +++ b/src/datasource_google.c @@ -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 ) diff --git a/src/datasource_gps.c b/src/datasource_gps.c index 11cd7491..c7401b9f 100644 --- a/src/datasource_gps.c +++ b/src/datasource_gps.c @@ -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; -- 2.39.5