]> git.street.me.uk Git - andy/viking.git/commitdiff
Create and use a function to detect when a TrackWaypoint layer is empty.
authorRob Norris <rw_norris@hotmail.com>
Tue, 26 Feb 2013 22:30:22 +0000 (22:30 +0000)
committerRob Norris <rw_norris@hotmail.com>
Sun, 3 Mar 2013 11:05:22 +0000 (11:05 +0000)
src/acquire.c
src/viktrwlayer.c
src/viktrwlayer.h

index 62a3beb5b6cc68646d1b36d7f6085d8286555818..96d379e696a077c1f45591422b8c52672d2bd7aa 100644 (file)
@@ -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));
       }
index 08728011d7ed639ed8344d5ae211c222af35d629..9877ce045fbcf3c99c7d865e4f86c2d84f37c33d 100644 (file)
@@ -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
index 7d0b9da91e686b926061cac42921724482c180dc..70cadd3695184af24176a2902fd8a9fd51401e0e 100644 (file)
@@ -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 );