From d25255240a9050cad2f7da9d3b4da19a5a4d04bd Mon Sep 17 00:00:00 2001 From: Rob Norris Date: Thu, 15 Jul 2010 23:50:08 +0100 Subject: [PATCH] On acquiring data from sources (inc. GPS) automatically set the view to see it. Except for GeoCaches; as it's likely you're requesting data for the current area, so no point in trying to change the view. --- src/acquire.c | 7 ++++++- src/acquire.h | 2 +- src/datasource_bfilter.c | 4 ++++ src/datasource_gc.c | 1 + src/datasource_google.c | 1 + src/datasource_gps.c | 1 + 6 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/acquire.c b/src/acquire.c index 67d1771d..1a65e91f 100644 --- a/src/acquire.c +++ b/src/acquire.c @@ -95,7 +95,7 @@ static void get_from_anything ( w_and_interface_t *wi ) gchar *cmd = wi->cmd; gchar *extra = wi->extra; gboolean result = TRUE; - VikTrwLayer *vtl; + VikTrwLayer *vtl = NULL; gboolean creating_new_layer = TRUE; @@ -155,6 +155,11 @@ static void get_from_anything ( w_and_interface_t *wi ) else gtk_label_set_text ( GTK_LABEL(w->status), _("No data.") ); } + /* View this data if available and is desired */ + if ( vtl && source_interface->autoview ) { + vik_trw_layer_auto_set_view ( vtl, vik_layers_panel_get_viewport(w->vlp) ); + vik_layers_panel_emit_update (w->vlp); + } if ( source_interface->keep_dialog_open ) { gtk_dialog_set_response_sensitive ( GTK_DIALOG(w->dialog), GTK_RESPONSE_ACCEPT, TRUE ); gtk_dialog_set_response_sensitive ( GTK_DIALOG(w->dialog), GTK_RESPONSE_REJECT, FALSE ); diff --git a/src/acquire.h b/src/acquire.h index ae173643..d6cd2246 100644 --- a/src/acquire.h +++ b/src/acquire.h @@ -61,7 +61,6 @@ typedef enum { VIK_DATASOURCE_INPUTTYPE_TRWLAYER_TRACK } vik_datasource_inputtype_t; - /* returns pointer to state if OK, otherwise NULL */ typedef gpointer (*VikDataSourceInitFunc) (); @@ -97,6 +96,7 @@ struct _VikDataSourceInterface { vik_datasource_type_t type; vik_datasource_mode_t mode; vik_datasource_inputtype_t inputtype; + gboolean autoview; gboolean keep_dialog_open; /* when done */ diff --git a/src/datasource_bfilter.c b/src/datasource_bfilter.c index b7699e3d..cfcb4b69 100644 --- a/src/datasource_bfilter.c +++ b/src/datasource_bfilter.c @@ -62,6 +62,7 @@ VikDataSourceInterface vik_datasource_bfilter_simplify_interface = { VIK_DATASOURCE_SHELL_CMD, VIK_DATASOURCE_CREATENEWLAYER, VIK_DATASOURCE_INPUTTYPE_TRWLAYER, + TRUE, FALSE, /* keep dialog open after success */ NULL, NULL, NULL, (VikDataSourceGetCmdStringFunc) datasource_bfilter_simplify_get_cmd_string, @@ -96,6 +97,7 @@ VikDataSourceInterface vik_datasource_bfilter_dup_interface = { VIK_DATASOURCE_SHELL_CMD, VIK_DATASOURCE_CREATENEWLAYER, VIK_DATASOURCE_INPUTTYPE_TRWLAYER, + TRUE, FALSE, /* keep dialog open after success */ NULL, NULL, NULL, (VikDataSourceGetCmdStringFunc) datasource_bfilter_dup_get_cmd_string, @@ -127,6 +129,7 @@ VikDataSourceInterface vik_datasource_bfilter_polygon_interface = { VIK_DATASOURCE_SHELL_CMD, VIK_DATASOURCE_CREATENEWLAYER, VIK_DATASOURCE_INPUTTYPE_TRWLAYER_TRACK, + TRUE, FALSE, /* keep dialog open after success */ NULL, NULL, NULL, (VikDataSourceGetCmdStringFunc) datasource_bfilter_polygon_get_cmd_string, @@ -161,6 +164,7 @@ VikDataSourceInterface vik_datasource_bfilter_exclude_polygon_interface = { VIK_DATASOURCE_SHELL_CMD, VIK_DATASOURCE_CREATENEWLAYER, VIK_DATASOURCE_INPUTTYPE_TRWLAYER_TRACK, + TRUE, FALSE, /* keep dialog open after success */ NULL, NULL, NULL, (VikDataSourceGetCmdStringFunc) datasource_bfilter_exclude_polygon_get_cmd_string, diff --git a/src/datasource_gc.c b/src/datasource_gc.c index 78feb585..82b825d4 100644 --- a/src/datasource_gc.c +++ b/src/datasource_gc.c @@ -64,6 +64,7 @@ VikDataSourceInterface vik_datasource_gc_interface = { VIK_DATASOURCE_SHELL_CMD, VIK_DATASOURCE_ADDTOLAYER, VIK_DATASOURCE_INPUTTYPE_NONE, + FALSE, TRUE, (VikDataSourceInitFunc) datasource_gc_init, (VikDataSourceCheckExistenceFunc) datasource_gc_check_existence, diff --git a/src/datasource_google.c b/src/datasource_google.c index 7cafd330..95d4516a 100644 --- a/src/datasource_google.c +++ b/src/datasource_google.c @@ -52,6 +52,7 @@ VikDataSourceInterface vik_datasource_google_interface = { VIK_DATASOURCE_ADDTOLAYER, VIK_DATASOURCE_INPUTTYPE_NONE, TRUE, + TRUE, (VikDataSourceInitFunc) datasource_google_init, (VikDataSourceCheckExistenceFunc) NULL, (VikDataSourceAddSetupWidgetsFunc) datasource_google_add_setup_widgets, diff --git a/src/datasource_gps.c b/src/datasource_gps.c index 822d4ff2..3e6ccced 100644 --- a/src/datasource_gps.c +++ b/src/datasource_gps.c @@ -58,6 +58,7 @@ VikDataSourceInterface vik_datasource_gps_interface = { VIK_DATASOURCE_CREATENEWLAYER, VIK_DATASOURCE_INPUTTYPE_NONE, TRUE, + TRUE, (VikDataSourceInitFunc) datasource_gps_init_func, (VikDataSourceCheckExistenceFunc) NULL, (VikDataSourceAddSetupWidgetsFunc) datasource_gps_add_setup_widgets, -- 2.39.5