#include "vikmapslayer.h"
#include "settings.h"
#include "util.h"
+#include "ui_util.h"
#include "dir.h"
#include "misc/kdtree.h"
// expect the difference between track points to be small hence use metres or yards
switch (dist_units) {
case VIK_UNITS_DISTANCE_MILES:
+ case VIK_UNITS_DISTANCE_NAUTICAL_MILES:
dist_units_str = g_strdup ( _("yards") );
break;
default:
case 'X': values[i] = g_strdup_printf ( _("%sNo. of Sats %d"), separator, trkpt->nsats ); break;
+ case 'F': {
+ if ( trk ) {
+ // Distance to the end 'Finish' (along the track)
+ gdouble distd = vik_track_get_length_to_trackpoint (trk, trkpt);
+ gdouble diste = vik_track_get_length_including_gaps ( trk );
+ gdouble dist = diste - distd;
+ gchar *dist_units_str = NULL;
+ vik_units_distance_t dist_units = a_vik_get_units_distance ();
+ switch (dist_units) {
+ case VIK_UNITS_DISTANCE_MILES:
+ dist_units_str = g_strdup ( _("miles") );
+ dist = VIK_METERS_TO_MILES(dist);
+ break;
+ case VIK_UNITS_DISTANCE_NAUTICAL_MILES:
+ dist_units_str = g_strdup ( _("NM") );
+ dist = VIK_METERS_TO_NAUTICAL_MILES(dist);
+ break;
+ default:
+ // VIK_UNITS_DISTANCE_KILOMETRES:
+ dist_units_str = g_strdup ( _("km") );
+ dist = dist / 1000.0;
+ break;
+ }
+ values[i] = g_strdup_printf ( _("%sTo End %.2f%s"), separator, dist, dist_units_str );
+ g_free ( dist_units_str );
+ }
+ break;
+ }
+
case 'D': {
if ( trk ) {
// Distance from start (along the track)
gdouble distd = vik_track_get_length_to_trackpoint (trk, trkpt);
gchar *dist_units_str = NULL;
vik_units_distance_t dist_units = a_vik_get_units_distance ();
- // expect the difference between track points to be small hence use metres or yards
switch (dist_units) {
case VIK_UNITS_DISTANCE_MILES:
dist_units_str = g_strdup ( _("miles") );
distd = VIK_METERS_TO_MILES(distd);
break;
+ case VIK_UNITS_DISTANCE_NAUTICAL_MILES:
+ dist_units_str = g_strdup ( _("NM") );
+ distd = VIK_METERS_TO_NAUTICAL_MILES(distd);
+ break;
default:
// VIK_UNITS_DISTANCE_KILOMETRES:
dist_units_str = g_strdup ( _("km") );
void vu_set_auto_features_on_first_run ( void )
{
gboolean auto_features = FALSE;
+ gboolean set_defaults = FALSE;
+
if ( a_vik_very_first_run () ) {
GtkWidget *win = gtk_window_new ( GTK_WINDOW_TOPLEVEL );
if ( a_dialog_yes_or_no ( GTK_WINDOW(win),
_("This appears to be Viking's very first run.\n\nDo you wish to enable automatic internet features?\n\nIndividual settings can be controlled in the Preferences."), NULL ) )
auto_features = TRUE;
+
+ // Default to more standard cache layout for new users (well new installs at least)
+ maps_layer_set_cache_default ( VIK_MAPS_CACHE_LAYOUT_OSM );
+ set_defaults = TRUE;
}
if ( auto_features ) {
// Set Maps to autodownload
// Ensure the default is true
maps_layer_set_autodownload_default ( TRUE );
+ set_defaults = TRUE;
// Simplistic repeat of preference settings
// Only the name & type are important for setting a preference via this 'external' way
// Ensure settings are saved for next time
a_preferences_save_to_file ();
}
+
+ // Ensure defaults are saved if changed
+ if ( set_defaults )
+ a_layer_defaults_save ();
}
/**