}
if (ts - prev_ts > thr*60) {
/* flush accumulated trackpoints into new list */
- newlists = g_list_prepend(newlists, g_list_reverse(newtps));
+ newlists = g_list_append(newlists, g_list_reverse(newtps));
newtps = NULL;
}
iter = g_list_next(iter);
}
if (newtps) {
- newlists = g_list_prepend(newlists, g_list_reverse(newtps));
+ newlists = g_list_append(newlists, g_list_reverse(newtps));
}
/* put lists of trackpoints into tracks */
iter = newlists;
i = 1;
- while (iter) {
- gchar *new_tr_name;
- VikTrack *tr;
+ // Only bother updating if the split results in new tracks
+ if (g_list_length (newlists) > 1) {
+ while (iter) {
+ gchar *new_tr_name;
+ VikTrack *tr;
- tr = vik_track_new();
- tr->visible = track->visible;
- tr->trackpoints = (GList *)(iter->data);
+ tr = vik_track_new();
+ tr->visible = track->visible;
+ tr->trackpoints = (GList *)(iter->data);
- new_tr_name = g_strdup_printf("%s #%d", (gchar *) pass_along[3], i++);
- vik_trw_layer_add_track(VIK_TRW_LAYER(pass_along[0]), new_tr_name, tr);
- /* g_print("adding track %s, times %d - %d\n", new_tr_name, VIK_TRACKPOINT(tr->trackpoints->data)->timestamp,
+ new_tr_name = g_strdup_printf("%s #%d", (gchar *) pass_along[3], i++);
+ vik_trw_layer_add_track(VIK_TRW_LAYER(pass_along[0]), new_tr_name, tr);
+ /* g_print("adding track %s, times %d - %d\n", new_tr_name, VIK_TRACKPOINT(tr->trackpoints->data)->timestamp,
VIK_TRACKPOINT(g_list_last(tr->trackpoints)->data)->timestamp);*/
- iter = g_list_next(iter);
+ iter = g_list_next(iter);
+ }
+ vik_trw_layer_delete_track(VIK_TRW_LAYER(pass_along[0]), (gchar *)pass_along[3]);
+ vik_layer_emit_update(VIK_LAYER(pass_along[0]));
}
g_list_free(newlists);
- vik_trw_layer_delete_track(VIK_TRW_LAYER(pass_along[0]), (gchar *)pass_along[3]);
- vik_layer_emit_update(VIK_LAYER(pass_along[0]));
}
/**
gtk_widget_show ( item );
}
+ if ( subtype == VIK_TRW_LAYER_SUBLAYER_WAYPOINTS )
+ {
+ item = gtk_menu_item_new_with_mnemonic ( _("_View All Waypoints") );
+ g_signal_connect_swapped ( G_OBJECT(item), "activate", G_CALLBACK(trw_layer_auto_waypoints_view), pass_along );
+ gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
+ gtk_widget_show ( item );
+
+ item = gtk_menu_item_new_with_mnemonic ( _("Goto _Waypoint...") );
+ g_signal_connect_swapped ( G_OBJECT(item), "activate", G_CALLBACK(trw_layer_goto_wp), pass_along );
+ gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
+ gtk_widget_show ( item );
+ }
+
if ( subtype == VIK_TRW_LAYER_SUBLAYER_TRACK )
{
GtkWidget *goto_submenu;