From 8aff54f26665480064de7bc3d98bff6063c9b57d Mon Sep 17 00:00:00 2001 From: Rob Norris Date: Wed, 5 Dec 2012 18:38:59 +0000 Subject: [PATCH] Enable some layers to be created without needing a viewport. --- src/vikcoordlayer.c | 4 ++-- src/vikdemlayer.c | 14 +++++++------- src/vikgpslayer.c | 12 +++++++----- src/viktrwlayer.c | 6 +++--- 4 files changed, 19 insertions(+), 17 deletions(-) diff --git a/src/vikcoordlayer.c b/src/vikcoordlayer.c index 5b983b79..4361cab7 100644 --- a/src/vikcoordlayer.c +++ b/src/vikcoordlayer.c @@ -418,7 +418,7 @@ static void coord_layer_update_gc ( VikCoordLayer *vcl, VikViewport *vp, const g VikCoordLayer *vik_coord_layer_create ( VikViewport *vp ) { VikCoordLayer *vcl = vik_coord_layer_new (); - coord_layer_update_gc ( vcl, vp, "red" ); + if ( vp ) + coord_layer_update_gc ( vcl, vp, "red" ); return vcl; } - diff --git a/src/vikdemlayer.c b/src/vikdemlayer.c index 25301218..f1187371 100644 --- a/src/vikdemlayer.c +++ b/src/vikdemlayer.c @@ -851,14 +851,14 @@ VikDEMLayer *vik_dem_layer_create ( VikViewport *vp ) { VikDEMLayer *vdl = vik_dem_layer_new (); gint i; + if ( vp ) { + /* TODO: share GCS between layers */ + for ( i = 0; i < DEM_N_HEIGHT_COLORS; i++ ) + vdl->gcs[i] = vik_viewport_new_gc ( vp, dem_height_colors[i], UNUSED_LINE_THICKNESS ); - /* TODO: share GCS between layers */ - for ( i = 0; i < DEM_N_HEIGHT_COLORS; i++ ) - vdl->gcs[i] = vik_viewport_new_gc ( vp, dem_height_colors[i], UNUSED_LINE_THICKNESS ); - - for ( i = 0; i < DEM_N_GRADIENT_COLORS; i++ ) - vdl->gcsgradient[i] = vik_viewport_new_gc ( vp, dem_gradient_colors[i], UNUSED_LINE_THICKNESS ); - + for ( i = 0; i < DEM_N_GRADIENT_COLORS; i++ ) + vdl->gcsgradient[i] = vik_viewport_new_gc ( vp, dem_gradient_colors[i], UNUSED_LINE_THICKNESS ); + } return vdl; } /************************************************************** diff --git a/src/vikgpslayer.c b/src/vikgpslayer.c index 032df6d2..0d81e70c 100644 --- a/src/vikgpslayer.c +++ b/src/vikgpslayer.c @@ -593,11 +593,13 @@ VikGpsLayer *vik_gps_layer_new (VikViewport *vp) vgl->realtime_io_channel = NULL; vgl->realtime_io_watch_id = 0; vgl->realtime_retry_timer = 0; - vgl->realtime_track_gc = vik_viewport_new_gc ( vp, "#203070", 2 ); - vgl->realtime_track_bg_gc = vik_viewport_new_gc ( vp, "grey", 2 ); - vgl->realtime_track_pt1_gc = vik_viewport_new_gc ( vp, "red", 2 ); - vgl->realtime_track_pt2_gc = vik_viewport_new_gc ( vp, "green", 2 ); - vgl->realtime_track_pt_gc = vgl->realtime_track_pt1_gc; + if ( vp ) { + vgl->realtime_track_gc = vik_viewport_new_gc ( vp, "#203070", 2 ); + vgl->realtime_track_bg_gc = vik_viewport_new_gc ( vp, "grey", 2 ); + vgl->realtime_track_pt1_gc = vik_viewport_new_gc ( vp, "red", 2 ); + vgl->realtime_track_pt2_gc = vik_viewport_new_gc ( vp, "green", 2 ); + vgl->realtime_track_pt_gc = vgl->realtime_track_pt1_gc; + } vgl->realtime_track = NULL; /* Setting params here */ diff --git a/src/viktrwlayer.c b/src/viktrwlayer.c index c8220d6c..deffc29d 100644 --- a/src/viktrwlayer.c +++ b/src/viktrwlayer.c @@ -876,7 +876,7 @@ static gboolean trw_layer_set_param ( VikTrwLayer *vtl, guint16 id, VikLayerPara case PARAM_DM: vtl->drawmode = data.u; break; case PARAM_TC: vtl->track_color = data.c; - trw_layer_new_track_gcs ( vtl, vp ); + if ( vp ) trw_layer_new_track_gcs ( vtl, vp ); break; case PARAM_DP: vtl->drawpoints = data.b; break; case PARAM_DPS: @@ -900,13 +900,13 @@ static gboolean trw_layer_set_param ( VikTrwLayer *vtl, guint16 id, VikLayerPara case PARAM_LT: if ( data.u > 0 && data.u < 15 && data.u != vtl->line_thickness ) { vtl->line_thickness = data.u; - trw_layer_new_track_gcs ( vtl, vp ); + if ( vp ) trw_layer_new_track_gcs ( vtl, vp ); } break; case PARAM_BLT: if ( data.u <= 8 && data.u != vtl->bg_line_thickness ) { vtl->bg_line_thickness = data.u; - trw_layer_new_track_gcs ( vtl, vp ); + if ( vp ) trw_layer_new_track_gcs ( vtl, vp ); } break; case PARAM_TBGC: gdk_gc_set_rgb_fg_color(vtl->track_bg_gc, &(data.c)); break; -- 2.39.5