]> git.street.me.uk Git - andy/viking.git/commitdiff
Prevent Gtk Warnings in deleting all TrackWaypoint items
authorRob Norris <rw_norris@hotmail.com>
Sun, 12 Mar 2017 22:48:44 +0000 (22:48 +0000)
committerRob Norris <rw_norris@hotmail.com>
Mon, 13 Mar 2017 23:41:02 +0000 (23:41 +0000)
If the set of items is empty, then the containing treeview entry
won't be present either - so don't attempt to delete the non-existent
entry.

src/viktrwlayer.c

index 25bb2a98544b73336592e136d7588819e82c51ff..a4b230981ab093edbfb47b7fbe86f87e6bbc105a 100644 (file)
@@ -5006,9 +5006,10 @@ void vik_trw_layer_delete_all_routes ( VikTrwLayer *vtl )
 
   g_hash_table_foreach(vtl->routes_iters, (GHFunc) remove_item_from_treeview, VIK_LAYER(vtl)->vt);
   g_hash_table_remove_all(vtl->routes_iters);
-  g_hash_table_remove_all(vtl->routes);
 
-  vik_treeview_item_delete ( VIK_LAYER(vtl)->vt, &(vtl->routes_iter) );
+  if ( g_hash_table_size (vtl->routes) > 0 )
+    vik_treeview_item_delete ( VIK_LAYER(vtl)->vt, &(vtl->routes_iter) );
+  g_hash_table_remove_all(vtl->routes);
 
   vik_layer_emit_update ( VIK_LAYER(vtl) );
 }
@@ -5023,9 +5024,10 @@ void vik_trw_layer_delete_all_tracks ( VikTrwLayer *vtl )
 
   g_hash_table_foreach(vtl->tracks_iters, (GHFunc) remove_item_from_treeview, VIK_LAYER(vtl)->vt);
   g_hash_table_remove_all(vtl->tracks_iters);
-  g_hash_table_remove_all(vtl->tracks);
 
-  vik_treeview_item_delete ( VIK_LAYER(vtl)->vt, &(vtl->tracks_iter) );
+  if ( g_hash_table_size (vtl->tracks) > 0 )
+    vik_treeview_item_delete ( VIK_LAYER(vtl)->vt, &(vtl->tracks_iter) );
+  g_hash_table_remove_all(vtl->tracks);
 
   vik_layer_emit_update ( VIK_LAYER(vtl) );
 }
@@ -5040,9 +5042,10 @@ void vik_trw_layer_delete_all_waypoints ( VikTrwLayer *vtl )
 
   g_hash_table_foreach(vtl->waypoints_iters, (GHFunc) remove_item_from_treeview, VIK_LAYER(vtl)->vt);
   g_hash_table_remove_all(vtl->waypoints_iters);
-  g_hash_table_remove_all(vtl->waypoints);
 
-  vik_treeview_item_delete ( VIK_LAYER(vtl)->vt, &(vtl->waypoints_iter) );
+  if ( g_hash_table_size (vtl->waypoints) > 0 )
+    vik_treeview_item_delete ( VIK_LAYER(vtl)->vt, &(vtl->waypoints_iter) );
+  g_hash_table_remove_all(vtl->waypoints);
 
   vik_layer_emit_update ( VIK_LAYER(vtl) );
 }