From: Rob Norris Date: Tue, 26 Feb 2013 22:30:22 +0000 (+0000) Subject: Create and use a function to detect when a TrackWaypoint layer is empty. X-Git-Url: https://git.street.me.uk/andy/viking.git/commitdiff_plain/bec82ff58cff2eb1d8335c4e1110a1d274ed9d11 Create and use a function to detect when a TrackWaypoint layer is empty. --- diff --git a/src/acquire.c b/src/acquire.c index 62a3beb5..96d379e6 100644 --- a/src/acquire.c +++ b/src/acquire.c @@ -104,9 +104,7 @@ static void on_complete_process (w_and_interface_t *wi) if ( wi->creating_new_layer ) { /* Only create the layer if it actually contains anything useful */ // TODO: create function for this operation to hide detail: - if ( g_hash_table_size (vik_trw_layer_get_tracks(wi->vtl)) || - g_hash_table_size (vik_trw_layer_get_waypoints(wi->vtl)) || - g_hash_table_size (vik_trw_layer_get_routes(wi->vtl)) ) { + if ( ! vik_trw_layer_is_empty ( wi->vtl ) ) { vik_layer_post_read ( VIK_LAYER(wi->vtl), wi->w->vvp, TRUE ); vik_aggregate_layer_add_layer( vik_layers_panel_get_top_layer(wi->w->vlp), VIK_LAYER(wi->vtl)); } diff --git a/src/viktrwlayer.c b/src/viktrwlayer.c index 08728011..9877ce04 100644 --- a/src/viktrwlayer.c +++ b/src/viktrwlayer.c @@ -2446,6 +2446,13 @@ GHashTable *vik_trw_layer_get_waypoints ( VikTrwLayer *l ) return l->waypoints; } +gboolean vik_trw_layer_is_empty ( VikTrwLayer *vtl ) +{ + return ! ( g_hash_table_size ( vtl->tracks ) || + g_hash_table_size ( vtl->routes ) || + g_hash_table_size ( vtl->waypoints ) ); +} + /* * ATM use a case sensitive find * Finds the first one diff --git a/src/viktrwlayer.h b/src/viktrwlayer.h index 7d0b9da9..70cadd36 100644 --- a/src/viktrwlayer.h +++ b/src/viktrwlayer.h @@ -81,6 +81,8 @@ gboolean vik_trw_layer_find_center ( VikTrwLayer *vtl, VikCoord *dest ); GHashTable *vik_trw_layer_get_tracks ( VikTrwLayer *l ); GHashTable *vik_trw_layer_get_routes ( VikTrwLayer *l ); GHashTable *vik_trw_layer_get_waypoints ( VikTrwLayer *l ); +gboolean vik_trw_layer_is_empty ( VikTrwLayer *vtl ); + gboolean vik_trw_layer_new_waypoint ( VikTrwLayer *vtl, GtkWindow *w, const VikCoord *def_coord ); VikCoordMode vik_trw_layer_get_coord_mode ( VikTrwLayer *vtl );