#include "viking.h"
#include "icons/icons.h"
#include "babel.h"
+#include "viktrwlayer.h"
#ifdef HAVE_UNISTD_H
#include <unistd.h>
static void vik_gps_layer_free ( VikGpsLayer *vgl );
static void vik_gps_layer_draw ( VikGpsLayer *vgl, VikViewport *vp );
static VikGpsLayer *vik_gps_layer_new ( VikViewport *vp );
+static void vik_gps_layer_post_read ( VikGpsLayer *vgl, VikViewport *vp, gboolean from_file );
static void gps_layer_marshall( VikGpsLayer *vgl, guint8 **data, gint *len );
static VikGpsLayer *gps_layer_unmarshall( guint8 *data, gint len, VikViewport *vvp );
(VikLayerFuncCreate) vik_gps_layer_create,
(VikLayerFuncRealize) vik_gps_layer_realize,
- (VikLayerFuncPostRead) NULL,
+ (VikLayerFuncPostRead) vik_gps_layer_post_read,
(VikLayerFuncFree) vik_gps_layer_free,
(VikLayerFuncProperties) NULL,
return vgl;
}
+static void vik_gps_layer_post_read ( VikGpsLayer *vgl, VikViewport *vvp, gboolean from_file )
+{
+ for (guint i = 0; i < NUM_TRW; i++) {
+ trw_layer_calculate_bounds_waypoints ( vgl->trw_children[i] );
+ trw_layer_calculate_bounds_tracks ( vgl->trw_children[i] );
+ }
+}
+
static void vik_gps_layer_draw ( VikGpsLayer *vgl, VikViewport *vp )
{
gint i;
vik_track_calculate_bounds ( trk );
}
-static void trw_layer_calculate_bounds_tracks ( VikTrwLayer *vtl )
+void trw_layer_calculate_bounds_tracks ( VikTrwLayer *vtl )
{
g_hash_table_foreach ( vtl->tracks, (GHFunc) trw_layer_calculate_bounds_track, NULL );
g_hash_table_foreach ( vtl->routes, (GHFunc) trw_layer_calculate_bounds_track, NULL );
void trw_layer_waypoint_rename ( VikTrwLayer *vtl, VikWaypoint *wp, const gchar *new_name );
void trw_layer_waypoint_reset_icon ( VikTrwLayer *vtl, VikWaypoint *wp );
void trw_layer_calculate_bounds_waypoints ( VikTrwLayer *vtl );
+void trw_layer_calculate_bounds_tracks ( VikTrwLayer *vtl );
gboolean vik_trw_layer_get_tracks_visibility ( VikTrwLayer *vtl );
gboolean vik_trw_layer_get_routes_visibility ( VikTrwLayer *vtl );