X-Git-Url: https://git.street.me.uk/andy/viking.git/blobdiff_plain/c9ee385c638ffa5266b9cc703620939ac03a7c07..b696432ba7da8628d74ab0bd1a51c6017a50e6c6:/src/viktrwlayer.c diff --git a/src/viktrwlayer.c b/src/viktrwlayer.c index a59e3759..05dc83fe 100644 --- a/src/viktrwlayer.c +++ b/src/viktrwlayer.c @@ -246,7 +246,7 @@ static void init_drawing_params ( struct DrawingParams *dp, VikViewport *vp ); static void trw_layer_marshall( VikTrwLayer *vtl, guint8 **data, gint *len ); -static VikTrwLayer *trw_layer_unmarshall( gpointer data, gint len, VikViewport *vvp ); +static VikTrwLayer *trw_layer_unmarshall( guint8 *data, gint len, VikViewport *vvp ); static gboolean trw_layer_set_param ( VikTrwLayer *vtl, guint16 id, VikLayerParamData data, VikViewport *vp ); static VikLayerParamData trw_layer_get_param ( VikTrwLayer *vtl, guint16 id ); @@ -603,7 +603,7 @@ static gboolean trw_layer_set_param ( VikTrwLayer *vtl, guint16 id, VikLayerPara trw_layer_new_track_gcs ( vtl, vp ); } break; - case PARAM_BLT: if ( data.u > 0 && data.u <= 8 && data.u != vtl->bg_line_thickness ) + case PARAM_BLT: if ( data.u >= 0 && data.u <= 8 && data.u != vtl->bg_line_thickness ) { vtl->bg_line_thickness = data.u; trw_layer_new_track_gcs ( vtl, vp ); @@ -675,8 +675,10 @@ static VikLayerParamData trw_layer_get_param ( VikTrwLayer *vtl, guint16 id ) static void trw_layer_marshall( VikTrwLayer *vtl, guint8 **data, gint *len ) { - guint8 *pd, *dd; - gint pl, dl; + guint8 *pd; + gchar *dd; + gsize dl; + gint pl; gchar *tmpname; FILE *f; @@ -687,7 +689,7 @@ static void trw_layer_marshall( VikTrwLayer *vtl, guint8 **data, gint *len ) vik_layer_marshall_params(VIK_LAYER(vtl), &pd, &pl); fclose(f); f = NULL; - g_file_get_contents(tmpname, (void *)&dd, (void *)&dl, NULL); + g_file_get_contents(tmpname, &dd, &dl, NULL); *len = sizeof(pl) + pl + dl; *data = g_malloc(*len); memcpy(*data, &pl, sizeof(pl)); @@ -701,10 +703,10 @@ static void trw_layer_marshall( VikTrwLayer *vtl, guint8 **data, gint *len ) } } -static VikTrwLayer *trw_layer_unmarshall( gpointer data, gint len, VikViewport *vvp ) +static VikTrwLayer *trw_layer_unmarshall( guint8 *data, gint len, VikViewport *vvp ) { VikTrwLayer *rv = VIK_TRW_LAYER(vik_layer_create ( VIK_LAYER_TRW, vvp, NULL, FALSE )); - guint pl; + gint pl; gchar *tmpname; FILE *f; @@ -966,6 +968,9 @@ static void trw_layer_draw_track ( const gchar *name, VikTrack *track, struct Dr drawstops = dp->vtl->drawstops; } + if ( dp->vtl->drawmode == DRAWMODE_ALL_BLACK ) + dp->track_gc_iter = VIK_TRW_LAYER_TRACK_GC_BLACK; + if ( track == dp->vtl->current_track ) main_gc = dp->vtl->current_track_gc; else @@ -988,9 +993,6 @@ static void trw_layer_draw_track ( const gchar *name, VikTrack *track, struct Dr oldx = x; oldy = y; - if ( dp->vtl->drawmode == DRAWMODE_ALL_BLACK ) - dp->track_gc_iter = VIK_TRW_LAYER_TRACK_GC_MAX + 1; - while ((list = g_list_next(list))) { tp = VIK_TRACKPOINT(list->data); @@ -1549,7 +1551,7 @@ static void trw_layer_export ( gpointer layer_and_vlp[2], guint file_type ) GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT, NULL); - gtk_file_chooser_set_filename (GTK_FILE_CHOOSER(file_selector), vik_layer_get_name(VIK_LAYER(layer_and_vlp[0]))); + gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER(file_selector), vik_layer_get_name(VIK_LAYER(layer_and_vlp[0]))); while ( gtk_dialog_run ( GTK_DIALOG(file_selector) ) == GTK_RESPONSE_ACCEPT ) { @@ -1593,7 +1595,7 @@ static void trw_layer_export_gpx ( gpointer layer_and_vlp[2] ) static void trw_layer_goto_wp ( gpointer layer_and_vlp[2] ) { GHashTable *wps = vik_trw_layer_get_waypoints ( VIK_TRW_LAYER(layer_and_vlp[0]) ); - GtkWidget *dia = gtk_dialog_new_with_buttons (_("Create"), + GtkWidget *dia = gtk_dialog_new_with_buttons (_("Find"), VIK_GTK_WINDOW_FROM_LAYER(layer_and_vlp[0]), GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, GTK_STOCK_CANCEL, @@ -2838,7 +2840,7 @@ static void trw_layer_tpwin_response ( VikTrwLayer *vtl, gint response ) else if ( response == VIK_TRW_LAYER_TPWIN_SPLIT && vtl->current_tpl->next && vtl->current_tpl->prev ) { gchar *name; - if ( ( name = a_dialog_new_track ( GTK_WINDOW(vtl->tpwin), vtl->tracks ) ) ) + if ( ( name = a_dialog_new_track ( GTK_WINDOW(vtl->tpwin), vtl->tracks, NULL ) ) ) { VikTrack *tr = vik_track_new (); GList *newglist = g_list_alloc (); @@ -3404,8 +3406,8 @@ static gboolean tool_new_track_click ( VikTrwLayer *vtl, GdkEventButton *event, if ( ! vtl->current_track ) { - gchar *name; - if ( ( name = a_dialog_new_track ( VIK_GTK_WINDOW_FROM_LAYER(vtl), vtl->tracks ) ) ) + gchar *name = get_new_unique_sublayer_name(vtl, VIK_TRW_LAYER_SUBLAYER_TRACK, _("Track")); + if ( ( name = a_dialog_new_track ( VIK_GTK_WINDOW_FROM_LAYER(vtl), vtl->tracks, name ) ) ) { vtl->current_track = vik_track_new(); vtl->current_track->visible = TRUE; @@ -3665,7 +3667,7 @@ static gboolean tool_magic_scissors_click ( VikTrwLayer *vtl, GdkEventButton *ev tr = g_hash_table_lookup ( vtl->tracks, vtl->magic_scissors_added_track_name ); if ( tr ) - vik_track_set_comment_no_copy ( tr, g_strdup_printf("from: %f,%f to: %f%f", start.lat, start.lon, end.lat, end.lon ) ); + vik_track_set_comment_no_copy ( tr, g_strdup_printf("from: %f,%f to: %f,%f", start.lat, start.lon, end.lat, end.lon ) ); vtl->magic_scissors_current_track = tr;