--- maemo-mapper-1.1-aw-3/src/maemo-mapper.c 2006-07-29 21:14:27.000000000 +0200 +++ maemo-mapper-1.1-aw-4/src/maemo-mapper.c 2006-07-30 09:45:27.000000000 +0200 @@ -2661,6 +2661,9 @@ rcvr_changed = TRUE; } + if(_map_uri_format) + g_free(_map_uri_format); + if(_map_uri_format_1) g_free(_map_uri_format_1); if(strlen(gtk_entry_get_text(GTK_ENTRY(txt_map_uri_format_1)))) @@ -2677,6 +2680,8 @@ else _map_uri_format_2 = NULL; + if(_map_dir_name) + g_free(_map_dir_name); if(_map_dir_name_1) g_free(_map_dir_name_1); if(strlen(gtk_entry_get_text(GTK_ENTRY(txt_map_dir_name_1)))) @@ -5122,32 +5127,41 @@ case HILDON_HARDKEY_ESC: { - switch(_show_tracks) - { - case 0: - /* Nothing shown, nothing saved; just set both. */ - _show_tracks = TRACKS_MASK | ROUTES_MASK; - break; - case TRACKS_MASK << 16: - case ROUTES_MASK << 16: - case (ROUTES_MASK | TRACKS_MASK) << 16: - /* Something was saved and nothing changed since. - * Restore saved. */ - _show_tracks = _show_tracks >> 16; - break; - default: - /* There is no history, or they changed something since - * the last historical change. Save and clear. */ - _show_tracks = _show_tracks << 16; - } + if (_map_uri_format) + g_free(_map_uri_format); + if (_map_dir_name) + g_free(_map_dir_name); + + if (_map_setting == 2) { + printf("setting 1\n"); + _map_setting = 1; + if(strlen(_map_uri_format_1)) + _map_uri_format = g_strdup(_map_uri_format_1); + else + _map_uri_format = NULL; + if(strlen(_map_dir_name_1)) + _map_dir_name = g_strdup(_map_dir_name_1); + else + _map_dir_name = NULL; + } + else + { + printf("setting 2\n"); + _map_setting = 2; + if(strlen(_map_uri_format_2)) + _map_uri_format = g_strdup(_map_uri_format_2); + else + _map_uri_format = NULL; + if(strlen(_map_dir_name_2)) + _map_dir_name = g_strdup(_map_dir_name_2); + else + _map_dir_name = NULL; + } - gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM( - _menu_show_routes_item), - _show_tracks & ROUTES_MASK); - - gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM( - _menu_show_tracks_item), - _show_tracks & TRACKS_MASK); + if (!config_set_map_dir_name(gnome_vfs_expand_initial_tilde(_map_dir_name))) + popup_error(_window, "Could not create Map Cache directory."); + map_force_redraw(); + config_save(); } return TRUE;