#include "utils.h"
#include "mapper-types.h"
#include "latlon.h"
-#include "map.h"
-#include "route.h"
#include "db.h"
#include "poi.h"
#include "gps.h"
#include "ui-common.h"
#include "settings.h"
-#include "gpx.h"
#include "filter.h"
+#include "dialogs.h"
+#include "map-repo-manager.h"
+#include "tilerepo.h"
#define PROXY_PORT (8080)
-gint mapper_gconf_get_bound_int(const gchar *path, gint def, gint min, gint max);
gint mapper_gconf_get_int(const gchar *path, gint def);
+gint mapper_gconf_get_bound_int(const gchar *path, gint def, gint min, gint max);
gfloat mapper_gconf_get_float(const gchar *path, gfloat def);
+gboolean mapper_gconf_get_boolean(const gchar *path, gboolean def);
void
config_update_proxy(void)
}
}
-static void
-path_save(Path *path, const gchar *config_dir, const gchar *file)
-{
-GnomeVFSHandle *handle;
-gchar *tfile;
-tfile=gnome_vfs_uri_make_full_from_relative(config_dir, file);
-if (GNOME_VFS_OK == gnome_vfs_create(&handle, tfile, GNOME_VFS_OPEN_WRITE, FALSE, 0600)) {
- write_gpx(path, handle);
- gnome_vfs_close(handle);
-}
-g_free(tfile);
-}
-
gboolean
config_save_repo(void)
{
g_assert(gconf_client);
/* Save the repositories. */
for (curr = _repo_list; curr != NULL; curr = curr->next) {
+ gchar *repostr;
+
/* Build from each part of a repo, delimited by newline characters:
* 1. url
* 2. cache_dir
* 3. dl_zoom_steps
* 4. view_zoom_steps
*/
- RepoData *rd = curr->data;
- gchar buffer[BUFFER_SIZE];
- g_snprintf(buffer, sizeof(buffer),
- "%s\t%s\t%s\t%d\t%d\t%d\t%d",
- rd->name,
- rd->url,
- rd->cache_dir,
- rd->dl_zoom_steps,
- rd->view_zoom_steps,
- rd->double_size, rd->nextable);
- temp_list = g_slist_append(temp_list, g_strdup(buffer));
- if (rd == _curr_repo)
- gconf_client_set_int(gconf_client, GCONF_KEY_CURRREPO, curr_repo_index, NULL);
- curr_repo_index++;
+ TileRepo *rd=curr->data;
+
+ repostr=tile_repo_get_string(rd);
+ if (repostr) {
+ temp_list=g_slist_append(temp_list, repostr);
+ if (rd==_curr_repo)
+ gconf_client_set_int(gconf_client, GCONF_KEY_CURRREPO, curr_repo_index, NULL);
+ curr_repo_index++;
+ }
}
gconf_client_set_list(gconf_client, GCONF_KEY_REPOSITORIES, GCONF_VALUE_STRING, temp_list, NULL);
return TRUE;
}
-RepoData *
-config_parse_repo(gchar * str)
-{
- /* Parse each part of a repo, delimited by newline characters:
- * 1. name
- * 2. url
- * 3. cache_dir
- * 4. dl_zoom_steps
- * 5. view_zoom_steps
- */
-gchar *token, *error_check;
-
-RepoData *rd = g_new0(RepoData, 1);
-
-/* Parse name. */
-token = strsep(&str, "\n\t");
-if (token)
- rd->name = g_strdup(token);
-
-/* Parse URL format. */
-token = strsep(&str, "\n\t");
-if (token)
- rd->url = g_strdup(token);
-
-/* Parse cache dir. */
-token = strsep(&str, "\n\t");
-if (token)
- rd->cache_dir = gnome_vfs_expand_initial_tilde(token);
-
-/* Parse download zoom steps. */
-token = strsep(&str, "\n\t");
-if (!token || !*token || !(rd->dl_zoom_steps = atoi(token)))
- rd->dl_zoom_steps = 2;
-
-/* Parse view zoom steps. */
-token = strsep(&str, "\n\t");
-if (!token || !*token || !(rd->view_zoom_steps = atoi(token)))
- rd->view_zoom_steps = 1;
-
-/* Parse double-size. */
-token = strsep(&str, "\n\t");
-if (token)
- rd->double_size = atoi(token); /* Default is zero (FALSE) */
-
-/* Parse next-able. */
-token = strsep(&str, "\n\t");
-if (!token || !*token
- || (rd->nextable = strtol(token, &error_check, 10), token == str))
- rd->nextable = TRUE;
-
-set_repo_type(rd);
-return rd;
-}
-
-static void
+static TileRepo *
config_default_repo(void)
{
+TileRepo *repo;
+
g_assert(gconf_client);
/* We have no repositories - create a default one. */
-RepoData *repo = g_new(RepoData, 1);
+repo=tile_repo_new();
/* Get Map Cache Dir. Default is REPO_DEFAULT_CACHE_DIR. */
-repo->cache_dir = gconf_client_get_string(gconf_client, GCONF_KEY_MAP_DIR_NAME, NULL);
+repo->cache_dir=gconf_client_get_string(gconf_client, GCONF_KEY_MAP_DIR_NAME, NULL);
if (!repo->cache_dir)
- repo->cache_dir = gnome_vfs_expand_initial_tilde(REPO_DEFAULT_CACHE_DIR);
+ repo->cache_dir=gnome_vfs_expand_initial_tilde(REPO_DEFAULT_CACHE_DIR);
/* Get Map Download URL Format. Default is "". */
-repo->url = gconf_client_get_string(gconf_client, GCONF_KEY_MAP_URI_FORMAT, NULL);
+repo->url=gconf_client_get_string(gconf_client, GCONF_KEY_MAP_URI_FORMAT, NULL);
if (!repo->url)
- repo->url = g_strdup(REPO_DEFAULT_MAP_URI);
+ repo->url=g_strdup(REPO_DEFAULT_MAP_URI);
/* Get Map Download Zoom Steps. Default is 1. */
-repo->dl_zoom_steps = gconf_client_get_int(gconf_client, GCONF_KEY_MAP_ZOOM_STEPS, NULL);
+repo->dl_zoom_steps=gconf_client_get_int(gconf_client, GCONF_KEY_MAP_ZOOM_STEPS, NULL);
if (!repo->dl_zoom_steps)
- repo->dl_zoom_steps = REPO_DEFAULT_DL_ZOOM_STEPS;
+ repo->dl_zoom_steps=REPO_DEFAULT_DL_ZOOM_STEPS;
-repo->name = g_strdup(REPO_DEFAULT_NAME);
-repo->view_zoom_steps = REPO_DEFAULT_VIEW_ZOOM_STEPS;
-repo->double_size = FALSE;
-repo->nextable = TRUE;
-set_repo_type(repo);
+repo->name=g_strdup(REPO_DEFAULT_NAME);
+repo->view_zoom_steps=REPO_DEFAULT_VIEW_ZOOM_STEPS;
+repo->double_size=FALSE;
+repo->nextable=TRUE;
+tile_repo_set_type(repo);
-_repo_list = g_list_append(_repo_list, repo);
-repo_set_curr(repo);
+_repo_list=g_list_append(_repo_list, repo);
+return repo;
}
gboolean
config_load_repo(void)
{
GSList *list, *curr;
-GConfValue *value;
guint curr_repo_index;
g_assert(gconf_client);
-curr_repo_index = gconf_client_get_int(gconf_client, GCONF_KEY_CURRREPO, NULL);
-list = gconf_client_get_list(gconf_client, GCONF_KEY_REPOSITORIES, GCONF_VALUE_STRING, NULL);
+
+curr_repo_index=gconf_client_get_int(gconf_client, GCONF_KEY_CURRREPO, NULL);
+list=gconf_client_get_list(gconf_client, GCONF_KEY_REPOSITORIES, GCONF_VALUE_STRING, NULL);
for (curr = list; curr != NULL; curr = curr->next) {
- RepoData *rd = config_parse_repo(curr->data);
- _repo_list = g_list_append(_repo_list, rd);
- if (!curr_repo_index--)
- repo_set_curr(rd);
+ TileRepo *rd=tile_repo_new_from_string(curr->data);
+
+ if (rd) {
+ _repo_list=g_list_append(_repo_list, rd);
+ if (!curr_repo_index--)
+ _curr_repo=rd;
+ }
g_free(curr->data);
}
g_slist_free(list);
-if (_repo_list == NULL)
- config_default_repo();
+if (_repo_list==NULL)
+ _curr_repo=config_default_repo();
return TRUE;
}
gboolean
-config_save_home(void)
+config_load_position(Position *pos, const gchar *key)
{
g_assert(gconf_client);
-/* Save home lat/lon. */
-gconf_client_set_float(gconf_client, GCONF_KEY_HOME_LAT, _home.lat, NULL);
-gconf_client_set_float(gconf_client, GCONF_KEY_HOME_LON, _home.lon, NULL);
+pos->valid=gconf_client_get_pair(gconf_client, key, GCONF_VALUE_FLOAT, GCONF_VALUE_FLOAT, &pos->lat, &pos->lon, NULL);
+if (!pos->valid) {
+ pos->lat=NAN;
+ pos->lon=NAN;
+} else if (pos->lat==NAN || pos->lon==NAN)
+ pos->valid=FALSE;
+return pos->valid;
+}
-gconf_client_suggest_sync(gconf_client, NULL);
-return TRUE;
+gboolean
+config_save_position(Position *pos, const gchar *key)
+{
+g_assert(gconf_client);
+
+return gconf_client_set_pair(gconf_client, key, GCONF_VALUE_FLOAT, GCONF_VALUE_FLOAT, &pos->lat, &pos->lon, NULL);
}
gboolean
/* Save Announce Advance Notice Ratio. */
gconf_client_set_int(gconf_client, GCONF_KEY_ANNOUNCE_NOTICE, _announce_notice_ratio, NULL);
+/* Set announcement flags */
+gconf_client_set_bool(gconf_client, GCONF_KEY_ANNOUNCE_WAYPOINTS, _announce_waypoints, NULL);
+gconf_client_set_bool(gconf_client, GCONF_KEY_ANNOUNCE_OVERSPEED, _announce_overspeed, NULL);
+gconf_client_set_bool(gconf_client, GCONF_KEY_ANNOUNCE_DESTINATION, _announce_destination, NULL);
+
/* Save Enable Voice flag. */
gconf_client_set_bool(gconf_client, GCONF_KEY_ENABLE_VOICE, _enable_voice, NULL);
gconf_client_set_float(gconf_client, GCONF_KEY_LON, _gps->data.lon, NULL);
/* Save last center latitude/longitude. */
-unit2latlon(_center.unitx, _center.unity, center_lat, center_lon);
gconf_client_set_float(gconf_client, GCONF_KEY_CENTER_LAT, center_lat, NULL);
gconf_client_set_float(gconf_client, GCONF_KEY_CENTER_LON, center_lon, NULL);
/* Save Route Download Radius. */
gconf_client_set_int(gconf_client, GCONF_KEY_ROUTE_DL_RADIUS, _route_dl_radius, NULL);
+gconf_client_set_int(gconf_client, GCONF_KEY_TRACK_DL_RADIUS, _track_dl_radius, NULL);
/* Save Colors. */
for (i = 0; i < COLORABLE_ENUM_COUNT; i++) {
gconf_client_set_int(gconf_client, GCONF_KEY_POI_ZOOM, _poi_zoom, NULL);
gconf_client_suggest_sync(gconf_client, NULL);
-#if 0
-gconf_client_clear_cache(gconf_client);
-#endif
g_free(config_dir);
return TRUE;
}
-static void
-path_load(Path *path, const gchar *config_dir, const gchar *file)
+/**
+ *
+ */
+gboolean
+config_load_string_list(const gchar *gconf_key, GSList **list, GtkListStore **model)
{
-gchar *pfile;
-gchar *bytes;
-gint size;
-
-pfile = gnome_vfs_uri_make_full_from_relative(config_dir, file);
-if (GNOME_VFS_OK == gnome_vfs_read_entire_file(pfile, &size, &bytes))
- parse_gpx(path, bytes, size, 0); /* 0 to replace track. */
-g_free(pfile);
+GSList *curr;
+
+*list=gconf_client_get_list(gconf_client, gconf_key, GCONF_VALUE_STRING, NULL);
+*model=gtk_list_store_new(1, G_TYPE_STRING);
+for (curr = *list; curr != NULL; curr = curr->next) {
+ GtkTreeIter iter;
+ gtk_list_store_insert_with_values(*model, &iter, INT_MAX, 0, curr->data, -1);
+}
+return TRUE;
}
/**
* Initialize all configuration from GCONF. This should not be called more
* than once during execution.
*/
-void config_init(void)
+void
+config_init(void)
{
GConfValue *value;
gchar *config_dir;
gchar *str;
gint i;
+GtkMapCenterMode _center_mode = CENTER_LEAD;
+UnitType _units = UNITS_KM;
+guint _degformat = DDPDDDDD;
+InfoFontSize _info_font_size = INFO_FONT_MEDIUM;
gconf_client=gconf_client_get_default();
if (!gconf_client) {
/* Preload configuration */
gconf_client_add_dir (gconf_client, GCONF_KEY_PREFIX, GCONF_CLIENT_PRELOAD_ONELEVEL, NULL);
-CenterMode _center_mode = CENTER_LEAD;
-UnitType _units = UNITS_KM;
-guint _degformat = DDPDDDDD;
-InfoFontSize _info_font_size = INFO_FONT_MEDIUM;
-
/* Initialize config_dir. */
config_dir = gnome_vfs_expand_initial_tilde(CONFIG_DIR_NAME);
g_mkdir_with_parents(config_dir, 0700);
/* Get Receiver MAC from GConf. Default is scanned via hci_inquiry. */
_gps->io.address=gconf_client_get_string(gconf_client, GCONF_KEY_GPS_MAC, NULL);
-_gps->io.port=mapper_gconf_get_int(GCONF_KEY_GPS_PORT, 2497);
+_gps->io.port=mapper_gconf_get_int(GCONF_KEY_GPS_PORT, 2947);
_gps->io.type=(GpsIOSourceType)mapper_gconf_get_bound_int(GCONF_KEY_GPS_TYPE, GPS_IO_SIMULATION, GPS_IO_TYPE_MIN+1, GPS_IO_TYPE_MAX-1);
/* Get Auto-Download. Default is FALSE. */
_draw_width=mapper_gconf_get_int(GCONF_KEY_DRAW_WIDTH, 4);
/* Invalidate destination */
-_dest.valid=FALSE;
+_dest->valid=FALSE;
/* Get Announce Advance Notice - Default is 30. */
_announce_notice_ratio=mapper_gconf_get_int(GCONF_KEY_ANNOUNCE_NOTICE, 8);
-/* Get Enable Voice flag. Default is TRUE. */
-value = gconf_client_get(gconf_client, GCONF_KEY_ENABLE_VOICE, NULL);
-if (value) {
- _enable_voice = gconf_value_get_bool(value);
- gconf_value_free(value);
-} else {
- _enable_voice = TRUE;
-}
+_announce_waypoints=mapper_gconf_get_boolean(GCONF_KEY_ANNOUNCE_WAYPOINTS, TRUE);
+_announce_overspeed=mapper_gconf_get_boolean(GCONF_KEY_ANNOUNCE_OVERSPEED, FALSE);
+_announce_destination=mapper_gconf_get_boolean(GCONF_KEY_ANNOUNCE_DESTINATION, FALSE);
+/* Get Enable Voice flag. Default is TRUE. */
+_enable_voice=mapper_gconf_get_boolean(GCONF_KEY_ENABLE_VOICE, TRUE);
_voice_pitch=mapper_gconf_get_bound_int(GCONF_KEY_VOICE_PITCH, 50, 10, 99);
_voice_speed=mapper_gconf_get_bound_int(GCONF_KEY_VOICE_SPEED, 120, 80, 370);
/* Get Always Keep On flag. Default is FALSE. */
-_always_keep_on = gconf_client_get_bool(gconf_client,GCONF_KEY_ALWAYS_KEEP_ON, NULL);
+_always_keep_on=mapper_gconf_get_boolean(GCONF_KEY_ALWAYS_KEEP_ON, FALSE);
filter.enabled = gconf_client_get_bool(gconf_client, GCONF_KEY_GPS_FILTER, NULL);
filter.hdop = gconf_client_get_float(gconf_client, GCONF_KEY_GPS_FILTER_HDOP, NULL);
/* Get Deg format. Default is DDPDDDDD. */
{
- gchar *degformat_key_str = gconf_client_get_string(gconf_client,
- GCONF_KEY_DEG_FORMAT,
- NULL);
+ gchar *degformat_key_str = gconf_client_get_string(gconf_client, GCONF_KEY_DEG_FORMAT, NULL);
guint i = 0;
if (degformat_key_str)
for (i = DEG_FORMAT_ENUM_COUNT - 1; i > 0; i--)
_degformat = i;
}
-/* Get Speed Limit On flag. Default is FALSE. */
-_speed_on = gconf_client_get_bool(gconf_client, GCONF_KEY_SPEED_LIMIT_ON, NULL);
-
-/* Get Speed Limit */
-_speed_limit = gconf_client_get_int(gconf_client, GCONF_KEY_SPEED_LIMIT, NULL);
-BOUND(_speed_limit, 1, 200);
-
/* Get Info Font Size. Default is INFO_FONT_MEDIUM. */
{
gchar *info_font_size_str = gconf_client_get_string(gconf_client, GCONF_KEY_INFO_FONT_SIZE, NULL);
_info_font_size = i;
}
+/* Get Speed Limit On flag. Default is FALSE. */
+_speed_on = gconf_client_get_bool(gconf_client, GCONF_KEY_SPEED_LIMIT_ON, NULL);
+
+/* Get Speed Limit */
+_speed_limit = gconf_client_get_int(gconf_client, GCONF_KEY_SPEED_LIMIT, NULL);
+BOUND(_speed_limit, 1, 200);
+
/* Get Auto-Download. Default is FALSE. */
-_auto_download = gconf_client_get_bool(gconf_client, GCONF_KEY_AUTO_DOWNLOAD, NULL);
+_auto_download=mapper_gconf_get_boolean(GCONF_KEY_AUTO_DOWNLOAD, FALSE);
/* Get saved location */
-_gps->data.lat = gconf_client_get_float(gconf_client, GCONF_KEY_LAT, NULL);
-_gps->data.lon = gconf_client_get_float(gconf_client, GCONF_KEY_LON, NULL);
-if (_gps->data.lat==0.0) _gps->data.lat=60.20;
-if (_gps->data.lon==0.0) _gps->data.lon=22.20;
-
-/* Home */
-_home.valid=TRUE;
-value = gconf_client_get(gconf_client, GCONF_KEY_HOME_LAT, NULL);
-if (value) {
- _home.lat = gconf_value_get_float(value);
- gconf_value_free(value);
-} else {
- _home.valid=FALSE;
-}
+_gps->data.lat=mapper_gconf_get_float(GCONF_KEY_LAT, 60.20);
+_gps->data.lon=mapper_gconf_get_float(GCONF_KEY_LON, 22.20);
-value = gconf_client_get(gconf_client, GCONF_KEY_HOME_LON, NULL);
-if (value) {
- _home.lon = gconf_value_get_float(value);
- gconf_value_free(value);
-} else {
- _home.valid=FALSE;
-}
-
-/* Turku is default */
-if (_home.valid==FALSE) {
- _home.lat=64.20;
- _home.lon=22.20;
- _home.valid=TRUE;
-}
+/* Special positions Home and Dest */
+config_load_position(_home, GCONF_KEY_POSITION_HOME);
+config_load_position(_dest, GCONF_KEY_POSITION_DEST);
/* Get last center point. */
{
} else {
center_lon = _gps->data.lon;
}
-
- latlon2unit(center_lat, center_lon, _center.unitx, _center.unity);
}
config_load_repo();
/* Get last Zoom Level. Default is 12. */
value = gconf_client_get(gconf_client, GCONF_KEY_ZOOM, NULL);
if (value) {
- _zoom = gconf_value_get_int(value) / _curr_repo->view_zoom_steps * _curr_repo->view_zoom_steps;
+ _zoom=gconf_value_get_int(value) / _curr_repo->view_zoom_steps * _curr_repo->view_zoom_steps;
gconf_value_free(value);
} else {
- _zoom = 12 / _curr_repo->view_zoom_steps * _curr_repo->view_zoom_steps;
+ _zoom=12 / _curr_repo->view_zoom_steps * _curr_repo->view_zoom_steps;
}
-BOUND(_zoom, 0, MAX_ZOOM - 1);
-_world_size_tiles = unit2tile(WORLD_SIZE_UNITS);
+BOUND(_zoom, 0, 20);
/* Get Route Directory. Default is NULL. */
_route_dir_uri = gconf_client_get_string(gconf_client, GCONF_KEY_ROUTEDIR, NULL);
_center_mode=mapper_gconf_get_int(GCONF_KEY_AUTOCENTER_MODE, CENTER_LEAD);
/* Get Show Scale flag. Default is TRUE. */
-value = gconf_client_get(gconf_client, GCONF_KEY_SHOWSCALE, NULL);
-if (value) {
- _show_scale = gconf_value_get_bool(value);
- gconf_value_free(value);
-} else {
- _show_scale = TRUE;
-}
+_show_scale=mapper_gconf_get_boolean(GCONF_KEY_SHOWSCALE, TRUE);
/* Get Show Tracks flag. Default is TRUE. */
-value = gconf_client_get(gconf_client, GCONF_KEY_SHOWTRACKS, NULL);
-if (value) {
- _show_tracks |= (gconf_value_get_bool(value) ? TRACKS_MASK : 0);
- gconf_value_free(value);
-} else {
- _show_tracks |= TRACKS_MASK;
-}
+_show_tracks |= mapper_gconf_get_boolean(GCONF_KEY_SHOWTRACKS, TRUE) ? TRACKS_MASK : 0;
/* Get Show Routes flag. Default is TRUE. */
-value = gconf_client_get(gconf_client, GCONF_KEY_SHOWROUTES, NULL);
-if (value) {
- _show_tracks |= (gconf_value_get_bool(value) ? ROUTES_MASK : 0);
- gconf_value_free(value);
-} else {
- _show_tracks |= ROUTES_MASK;
-}
+_show_tracks |= mapper_gconf_get_boolean(GCONF_KEY_SHOWROUTES, TRUE) ? ROUTES_MASK : 0;
/* Get Show Velocity Vector flag. Default is TRUE. */
-value = gconf_client_get(gconf_client, GCONF_KEY_SHOWVELVEC, NULL);
-if (value) {
- _show_velvec = gconf_value_get_bool(value);
- gconf_value_free(value);
-} else {
- _show_velvec = TRUE;
-}
+_show_velvec=mapper_gconf_get_boolean(GCONF_KEY_SHOWVELVEC, TRUE);
-/* Get Show Velocity Vector flag. Default is TRUE. */
-value = gconf_client_get(gconf_client, GCONF_KEY_SHOWPOIS, NULL);
-if (value) {
- _show_poi = gconf_value_get_bool(value);
- gconf_value_free(value);
-} else {
- _show_poi = TRUE;
-}
+_show_poi=mapper_gconf_get_boolean(GCONF_KEY_SHOWPOIS, TRUE);
/* Get Enable GPS flag. Default is FALSE. */
-value = gconf_client_get(gconf_client, GCONF_KEY_ENABLE_GPS, NULL);
-if (value) {
- _enable_gps = gconf_value_get_bool(value);
- gconf_value_free(value);
-} else {
- _enable_gps = FALSE;
-}
+_enable_gps=mapper_gconf_get_boolean(GCONF_KEY_ENABLE_GPS, FALSE);
/* Initialize _conn_state based on _enable_gps-> */
_gps->io.conn = (_enable_gps ? RCVR_DOWN : RCVR_OFF);
-/* Load the route locations. */
-{
- GSList *curr;
- _loc_list = gconf_client_get_list(gconf_client, GCONF_KEY_ROUTE_LOCATIONS, GCONF_VALUE_STRING, NULL);
- _loc_model = gtk_list_store_new(1, G_TYPE_STRING);
- for (curr = _loc_list; curr != NULL; curr = curr->next) {
- GtkTreeIter iter;
- gtk_list_store_insert_with_values(_loc_model, &iter, INT_MAX, 0, curr->data, -1);
- }
-}
-
-/* Get Mapper Database. Default is in REPO_DEFAULT_CACHE_BASE */
-_mapper_db = gconf_client_get_string(gconf_client, GCONF_KEY_MAPPER_DB, NULL);
-if (_mapper_db == NULL) {
- gchar *db_base = gnome_vfs_expand_initial_tilde(REPO_DEFAULT_CACHE_BASE);
- _mapper_db = gnome_vfs_uri_make_full_from_relative(db_base, "mapper.db");
- g_free(db_base);
-}
+config_load_string_list(GCONF_KEY_ROUTE_LOCATIONS, &_loc_list, &_loc_model);
+/* Show POIs below zoom */
_poi_zoom = mapper_gconf_get_int(GCONF_KEY_POI_ZOOM, 6);
/* Get GPS Info flag. Default is FALSE. */
-value = gconf_client_get(gconf_client, GCONF_KEY_GPS_INFO, NULL);
-if (value) {
- _gps_info = gconf_value_get_bool(value);
- gconf_value_free(value);
-} else {
- _gps_info = FALSE;
-}
+_gps_info=mapper_gconf_get_boolean(GCONF_KEY_GPS_INFO, FALSE);
/* Get Route Download URL. Default is:
* "http://www.gnuite.com/cgi-bin/gpx.cgi?saddr=%s&daddr=%s" */
/* Get Route Download Radius. Default is 4. */
_route_dl_radius = mapper_gconf_get_int(GCONF_KEY_ROUTE_DL_RADIUS, 4);
+_track_dl_radius = mapper_gconf_get_int(GCONF_KEY_TRACK_DL_RADIUS, 4);
/* Get Colors. */
for (i = 0; i < COLORABLE_ENUM_COUNT; i++) {
_color[i] = COLORABLE_DEFAULT[i];
}
+/* Get Mapper Database. Default is in REPO_DEFAULT_CACHE_BASE */
+_mapper_db = gconf_client_get_string(gconf_client, GCONF_KEY_MAPPER_DB, NULL);
+if (_mapper_db == NULL) {
+ gchar *db_base = gnome_vfs_expand_initial_tilde(REPO_DEFAULT_CACHE_BASE);
+ _mapper_db = gnome_vfs_uri_make_full_from_relative(db_base, "mapper.db");
+ g_free(db_base);
+}
+
/* Get current proxy settings. */
config_update_proxy();
return v;
}
+/**
+ *
+ */
+gboolean
+mapper_gconf_get_boolean(const gchar *path, gboolean def)
+{
+GConfValue *value;
+gboolean r;
+
+g_assert(gconf_client);
+value = gconf_client_get(gconf_client, path, NULL);
+if (value) {
+ r=gconf_value_get_bool(value);
+ gconf_value_free(value);
+} else {
+ r=def;
+}
+return r;
+}
+
/**
*
*/