+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.
+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
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);
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;
else
w->specific_data = NULL;
+
g_thread_create((GThreadFunc)get_from_anything, wi, FALSE, NULL );
gtk_dialog_run ( GTK_DIALOG(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;
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,
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,
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 )
VikDataSourceInterface vik_datasource_gps_interface = {
"Acquire from GPS",
+ "Acquired from GPS",
VIK_DATASOURCE_GPSBABEL_DIRECT,
VIK_DATASOURCE_CREATENEWLAYER,
(VikDataSourceCheckExistenceFunc) NULL,
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;