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));
}
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
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 );