--- maemo-mapper-1.0.1-aw-0.1/maemo-mapper.c 2006-06-14 22:16:28.000000000 +0200 +++ maemo-mapper-1.0.1-aw-0.2/maemo-mapper.c 2006-06-15 01:17:47.000000000 +0200 @@ -135,16 +135,20 @@ #define GCONF_KEY_RCVR_MAC GCONF_KEY_PREFIX"/receiver_mac" #define GCONF_KEY_RCVR_CHAN GCONF_KEY_PREFIX"/receiver_channel" #define GCONF_KEY_MAP_URI_FORMAT GCONF_KEY_PREFIX"/map_uri_format" +#define GCONF_KEY_MAP_URI_FORMAT_1 GCONF_KEY_PREFIX"/map_uri_format_1" +#define GCONF_KEY_MAP_URI_FORMAT_2 GCONF_KEY_PREFIX"/map_uri_format_2" #define GCONF_KEY_MAP_ZOOM_STEPS GCONF_KEY_PREFIX"/map_zoom_steps" #define GCONF_KEY_MAP_DIR_NAME GCONF_KEY_PREFIX"/map_cache_dir" +#define GCONF_KEY_MAP_DIR_NAME_1 GCONF_KEY_PREFIX"/map_cache_dir_1" +#define GCONF_KEY_MAP_DIR_NAME_2 GCONF_KEY_PREFIX"/map_cache_dir_2" +#define GCONF_KEY_MAP_SETTING GCONF_KEY_PREFIX"/map_setting" #define GCONF_KEY_AUTO_DOWNLOAD GCONF_KEY_PREFIX"/auto_download" #define GCONF_KEY_CENTER_SENSITIVITY GCONF_KEY_PREFIX"/center_sensitivity" #define GCONF_KEY_ANNOUNCE_NOTICE GCONF_KEY_PREFIX"/announce_notice" #define GCONF_KEY_DRAW_LINE_WIDTH GCONF_KEY_PREFIX"/draw_line_width" #define GCONF_KEY_ENABLE_VOICE GCONF_KEY_PREFIX"/enable_voice" #define GCONF_KEY_VOICE_SYNTH_PATH GCONF_KEY_PREFIX"/voice_synth_path" -#define GCONF_KEY_ALWAYS_KEEP_ON \ - GCONF_KEY_PREFIX"/always_keep_on" +#define GCONF_KEY_ALWAYS_KEEP_ON GCONF_KEY_PREFIX"/always_keep_on" #define GCONF_KEY_AUTOCENTER_MODE GCONF_KEY_PREFIX"/autocenter_mode" #define GCONF_KEY_LEAD_AMOUNT GCONF_KEY_PREFIX"/lead_amount" #define GCONF_KEY_LAT GCONF_KEY_PREFIX"/last_latitude" @@ -550,7 +554,12 @@ static struct sockaddr_rc _rcvr_addr = { 0 }; static gchar *_rcvr_mac = NULL; static gchar *_map_dir_name = NULL; +static gchar *_map_dir_name_1 = NULL; +static gchar *_map_dir_name_2 = NULL; static gchar *_map_uri_format = NULL; +static gchar *_map_uri_format_1 = NULL; +static gchar *_map_uri_format_2 = NULL; +static guint _map_setting = 1; static gchar *_route_dir_uri = NULL; static gchar *_track_file_uri = NULL; static CenterMode _center_mode = CENTER_LEAD; @@ -1397,6 +1406,12 @@ if(_map_uri_format) gconf_client_set_string(gconf_client, GCONF_KEY_MAP_URI_FORMAT, _map_uri_format, NULL); + if(_map_uri_format_1) + gconf_client_set_string(gconf_client, + GCONF_KEY_MAP_URI_FORMAT_1, _map_uri_format_1, NULL); + if(_map_uri_format_2) + gconf_client_set_string(gconf_client, + GCONF_KEY_MAP_URI_FORMAT_2, _map_uri_format_2, NULL); /* Save Map Download Zoom Steps. */ gconf_client_set_int(gconf_client, @@ -1406,6 +1421,12 @@ if(_map_dir_name) gconf_client_set_string(gconf_client, GCONF_KEY_MAP_DIR_NAME, _map_dir_name, NULL); + if(_map_dir_name_1) + gconf_client_set_string(gconf_client, + GCONF_KEY_MAP_DIR_NAME_1, _map_dir_name_1, NULL); + if(_map_dir_name_2) + gconf_client_set_string(gconf_client, + GCONF_KEY_MAP_DIR_NAME_2, _map_dir_name_2, NULL); /* Save Auto-Download. */ gconf_client_set_bool(gconf_client, @@ -1500,6 +1521,7 @@ GCONF_KEY_ROUTE_LOCATIONS, GCONF_VALUE_STRING, _loc_list, NULL); g_object_unref(gconf_client); + gtk_infoprint_with_icon_name(_window, "Config saved.", "qgn_note_infoprint"); vprintf("%s(): return\n", __PRETTY_FUNCTION__); } @@ -1563,8 +1585,10 @@ GtkWidget *label; GtkWidget *txt_rcvr_mac; GtkWidget *num_rcvr_chan; - GtkWidget *txt_map_uri_format; - GtkWidget *txt_map_dir_name; + GtkWidget *txt_map_uri_format_1; + GtkWidget *txt_map_uri_format_2; + GtkWidget *txt_map_dir_name_1; + GtkWidget *txt_map_dir_name_2; GtkWidget *num_zoom_steps; GtkWidget *num_center_ratio; GtkWidget *num_lead_ratio; @@ -1587,73 +1611,93 @@ gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), notebook = gtk_notebook_new(), TRUE, TRUE, 0); - /* Receiver page. */ + /* Maps page. */ gtk_notebook_append_page(GTK_NOTEBOOK(notebook), table = gtk_table_new(2, 3, FALSE), - label = gtk_label_new("GPS")); + label = gtk_label_new("Maps")); - /* Receiver MAC Address. */ + /* Map download URI 1. */ gtk_table_attach(GTK_TABLE(table), - label = gtk_label_new("MAC"), - 0, 1, 0, 1, GTK_FILL, 0, 2, 4); + label = gtk_label_new("URI"), + 1, 2, 0, 1, GTK_FILL, 0, 2, 4); gtk_misc_set_alignment(GTK_MISC(label), 1.f, 0.5f); gtk_table_attach(GTK_TABLE(table), - txt_rcvr_mac = gtk_entry_new_with_max_length(17), - 1, 2, 0, 1, GTK_EXPAND | GTK_FILL, 0, 2, 4); + txt_map_uri_format_1 = gtk_entry_new(), + 2, 3, 0, 1, GTK_EXPAND | GTK_FILL, 0, 2, 4); + gtk_entry_set_width_chars(GTK_ENTRY(txt_map_uri_format_1), 30); - /* Receiver Channel. */ + /* Map Directory 1. */ gtk_table_attach(GTK_TABLE(table), - label = gtk_label_new("Channel"), - 0, 1, 1, 2, GTK_FILL, 0, 2, 4); + label = gtk_label_new("Cache"), + 1, 2, 1, 2, GTK_FILL, 0, 2, 4); gtk_misc_set_alignment(GTK_MISC(label), 1.f, 0.5f); gtk_table_attach(GTK_TABLE(table), - num_rcvr_chan = hildon_number_editor_new(0, 255), - 1, 2, 1, 2, GTK_EXPAND | GTK_FILL, 0, 2, 4); + txt_map_dir_name_1 = gtk_entry_new(), + 2, 3, 1, 2, GTK_EXPAND | GTK_FILL, 0, 2, 4); + gtk_entry_set_width_chars(GTK_ENTRY(txt_map_dir_name_1), 30); - /* Note!. */ + /* Map download URI 2. */ gtk_table_attach(GTK_TABLE(table), - label = gtk_label_new( - "Note: \"Channel\" refers to the device side!"), - 0, 2, 2, 3, GTK_FILL, 0, 2, 4); - gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_CENTER); - gtk_misc_set_alignment(GTK_MISC(label), 0.5f, 0.5f); + label = gtk_label_new("URI"), + 1, 2, 2, 3, GTK_FILL, 0, 2, 4); + gtk_misc_set_alignment(GTK_MISC(label), 1.f, 0.5f); + gtk_table_attach(GTK_TABLE(table), + txt_map_uri_format_2 = gtk_entry_new(), + 2, 3, 2, 3, GTK_EXPAND | GTK_FILL, 0, 2, 4); + gtk_entry_set_width_chars(GTK_ENTRY(txt_map_uri_format_2), 30); + /* Map Directory 2. */ + gtk_table_attach(GTK_TABLE(table), + label = gtk_label_new("Cache"), + 1, 2, 3, 4, GTK_FILL, 0, 2, 4); + gtk_misc_set_alignment(GTK_MISC(label), 1.f, 0.5f); + gtk_table_attach(GTK_TABLE(table), + txt_map_dir_name_2 = gtk_entry_new(), + 2, 3, 3, 4, GTK_EXPAND | GTK_FILL, 0, 2, 4); + gtk_entry_set_width_chars(GTK_ENTRY(txt_map_dir_name_2), 30); + + /* Radio-Button 1/2*/ + GtkWidget *radio1, *radio2, *entry; + radio1 = gtk_radio_button_new_with_label(NULL, "1"); + radio2 = gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(radio1), "2"); + gtk_table_attach(GTK_TABLE(table), radio1, 0, 1, 0, 2, GTK_FILL, 0, 2, 4); + gtk_table_attach(GTK_TABLE(table), radio2, 0, 1, 2, 4, GTK_EXPAND | GTK_FILL, 0, 2, 4); + if (_map_setting == 1) + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(radio1), TRUE); + else + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(radio2), TRUE); - /* Maps page. */ + + /* Receiver page. */ gtk_notebook_append_page(GTK_NOTEBOOK(notebook), table = gtk_table_new(2, 3, FALSE), - label = gtk_label_new("Maps")); + label = gtk_label_new("GPS")); - /* Map download URI. */ + /* Receiver MAC Address. */ gtk_table_attach(GTK_TABLE(table), - label = gtk_label_new("URI Prefix"), + label = gtk_label_new("MAC"), 0, 1, 0, 1, GTK_FILL, 0, 2, 4); gtk_misc_set_alignment(GTK_MISC(label), 1.f, 0.5f); gtk_table_attach(GTK_TABLE(table), - txt_map_uri_format = gtk_entry_new(), + txt_rcvr_mac = gtk_entry_new_with_max_length(17), 1, 2, 0, 1, GTK_EXPAND | GTK_FILL, 0, 2, 4); - gtk_entry_set_width_chars(GTK_ENTRY(txt_map_uri_format), 30); - /* Zoom Steps. */ + /* Receiver Channel. */ gtk_table_attach(GTK_TABLE(table), - label = gtk_label_new("Zoom Steps"), + label = gtk_label_new("Channel"), 0, 1, 1, 2, GTK_FILL, 0, 2, 4); gtk_misc_set_alignment(GTK_MISC(label), 1.f, 0.5f); gtk_table_attach(GTK_TABLE(table), - num_zoom_steps = hildon_controlbar_new(), + num_rcvr_chan = hildon_number_editor_new(0, 255), 1, 2, 1, 2, GTK_EXPAND | GTK_FILL, 0, 2, 4); - hildon_controlbar_set_range(HILDON_CONTROLBAR(num_zoom_steps), 1, 4); - force_min_visible_bars(HILDON_CONTROLBAR(num_zoom_steps), 1); - /* Map Directory. */ - gtk_table_attach(GTK_TABLE(table), - label = gtk_label_new("Cache Dir."), - 0, 1, 2, 3, GTK_FILL, 0, 2, 4); - gtk_misc_set_alignment(GTK_MISC(label), 1.f, 0.5f); + /* Note!. */ gtk_table_attach(GTK_TABLE(table), - txt_map_dir_name = gtk_entry_new(), - 1, 2, 2, 3, GTK_EXPAND | GTK_FILL, 0, 2, 4); - gtk_entry_set_width_chars(GTK_ENTRY(txt_map_dir_name), 30); + label = gtk_label_new( + "Note: \"Channel\" refers to the device side!"), + 0, 2, 2, 3, GTK_FILL, 0, 2, 4); + gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_CENTER); + gtk_misc_set_alignment(GTK_MISC(label), 0.5f, 0.5f); /* Auto-Center page. */ @@ -1739,6 +1783,17 @@ "Keep Display On Only in Fullscreen Mode"), 0, 2, 1, 2, GTK_EXPAND | GTK_FILL, 0, 2, 4); + /* Zoom Steps. */ + gtk_table_attach(GTK_TABLE(table), + label = gtk_label_new("Zoom Steps"), + 0, 1, 2, 3, GTK_FILL, 0, 2, 4); + gtk_misc_set_alignment(GTK_MISC(label), 1.f, 0.5f); + gtk_table_attach(GTK_TABLE(table), + num_zoom_steps = hildon_controlbar_new(), + 1, 2, 2, 3, GTK_EXPAND | GTK_FILL, 0, 2, 4); + hildon_controlbar_set_range(HILDON_CONTROLBAR(num_zoom_steps), 1, 4); + force_min_visible_bars(HILDON_CONTROLBAR(num_zoom_steps), 1); + /* Initialize fields. */ if(_rcvr_mac) gtk_entry_set_text(GTK_ENTRY(txt_rcvr_mac), _rcvr_mac); @@ -1752,11 +1807,14 @@ } hildon_number_editor_set_value(HILDON_NUMBER_EDITOR(num_rcvr_chan), _rcvr_addr.rc_channel); - if(_map_uri_format) - gtk_entry_set_text(GTK_ENTRY(txt_map_uri_format), _map_uri_format); - hildon_controlbar_set_value(HILDON_CONTROLBAR(num_zoom_steps), _zoom_steps); - if(_map_dir_name) - gtk_entry_set_text(GTK_ENTRY(txt_map_dir_name), _map_dir_name); + if(_map_uri_format_1) + gtk_entry_set_text(GTK_ENTRY(txt_map_uri_format_1), _map_uri_format_1); + if(_map_uri_format_2) + gtk_entry_set_text(GTK_ENTRY(txt_map_uri_format_2), _map_uri_format_2); + if(_map_dir_name_1) + gtk_entry_set_text(GTK_ENTRY(txt_map_dir_name_1), _map_dir_name_1); + if(_map_dir_name_2) + gtk_entry_set_text(GTK_ENTRY(txt_map_dir_name_2), _map_dir_name_2); hildon_controlbar_set_value(HILDON_CONTROLBAR(num_center_ratio), _center_ratio); hildon_controlbar_set_value(HILDON_CONTROLBAR(num_lead_ratio), @@ -1766,6 +1824,7 @@ gtk_entry_set_text(GTK_ENTRY(txt_voice_synth_path), _voice_synth_path); hildon_controlbar_set_value(HILDON_CONTROLBAR(num_draw_line_width), _draw_line_width); + hildon_controlbar_set_value(HILDON_CONTROLBAR(num_zoom_steps), _zoom_steps); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(chk_always_keep_on), !_always_keep_on); @@ -1773,13 +1832,6 @@ while(GTK_RESPONSE_ACCEPT == gtk_dialog_run(GTK_DIALOG(dialog))) { - if(!config_set_map_dir_name(gnome_vfs_expand_initial_tilde( - gtk_entry_get_text(GTK_ENTRY(txt_map_dir_name))))) - { - popup_error("Could not create Map Cache directory."); - continue; - } - /* Set _rcvr_mac if necessary. */ if(!*gtk_entry_get_text(GTK_ENTRY(txt_rcvr_mac))) { @@ -1818,13 +1870,75 @@ rcvr_changed = TRUE; } + if(_map_uri_format_1) + g_free(_map_uri_format_1); + if(strlen(gtk_entry_get_text(GTK_ENTRY(txt_map_uri_format_1)))) + _map_uri_format_1 = g_strdup(gtk_entry_get_text(GTK_ENTRY(txt_map_uri_format_1))); + else + _map_uri_format_1 = NULL; + + printf("_map_uri_format_1=%s\n", _map_uri_format_1); + + if(_map_uri_format_2) + g_free(_map_uri_format_2); + if(strlen(gtk_entry_get_text(GTK_ENTRY(txt_map_uri_format_2)))) + _map_uri_format_2 = g_strdup(gtk_entry_get_text(GTK_ENTRY(txt_map_uri_format_2))); + else + _map_uri_format_2 = NULL; + + printf("_map_uri_format_2=%s\n", _map_uri_format_2); + + if(_map_dir_name_1) + g_free(_map_dir_name_1); + if(strlen(gtk_entry_get_text(GTK_ENTRY(txt_map_dir_name_1)))) + _map_dir_name_1 = g_strdup(gtk_entry_get_text(GTK_ENTRY(txt_map_dir_name_1))); + else + _map_dir_name_1 = NULL; + + printf("_map_dir_name_1=%s\n", _map_dir_name_1); + + if(_map_dir_name_2) + g_free(_map_dir_name_2); + if(strlen(gtk_entry_get_text(GTK_ENTRY(txt_map_dir_name_2)))) + _map_dir_name_2 = g_strdup(gtk_entry_get_text(GTK_ENTRY(txt_map_dir_name_2))); + else + _map_dir_name_2 = NULL; + + printf("_map_dir_name_2=%s\n", _map_dir_name_2); + if(_map_uri_format) g_free(_map_uri_format); - if(strlen(gtk_entry_get_text(GTK_ENTRY(txt_map_uri_format)))) - _map_uri_format = g_strdup(gtk_entry_get_text( - GTK_ENTRY(txt_map_uri_format))); - else + + if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(radio1))) { + 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; + } + if(!config_set_map_dir_name(gnome_vfs_expand_initial_tilde(_map_dir_name))) + { + popup_error("Could not create Map Cache directory."); + continue; + } + _zoom_steps = hildon_controlbar_get_value( HILDON_CONTROLBAR(num_zoom_steps)); @@ -1900,20 +2014,42 @@ if(_rcvr_addr.rc_channel < 1) _rcvr_addr.rc_channel = 1; - /* Get Map Download URI Format. Default is NULL. */ - _map_uri_format = gconf_client_get_string(gconf_client, - GCONF_KEY_MAP_URI_FORMAT, NULL); - /* Get Map Download Zoom Steps. Default is 2. */ _zoom_steps = gconf_client_get_int(gconf_client, GCONF_KEY_MAP_ZOOM_STEPS, NULL); if(!_zoom_steps) _zoom_steps = 2; - /* Get Map Cache Directory. Default is "~/apps/maemo-mapper". */ - { - gchar *tmp = gconf_client_get_string(gconf_client, - GCONF_KEY_MAP_DIR_NAME, NULL); + /* Get Map setting 1/2 */ + _map_setting = gconf_client_get_int(gconf_client, + GCONF_KEY_MAP_SETTING, NULL); + if (!_map_setting) + _map_setting = 1; + + /* Get Map Download URI Formats. Default is NULL. */ + _map_uri_format_1 = gconf_client_get_string(gconf_client, + GCONF_KEY_MAP_URI_FORMAT_1, NULL); + _map_uri_format_2 = gconf_client_get_string(gconf_client, + GCONF_KEY_MAP_URI_FORMAT_2, NULL); + + /* Get Map Cache Directories. */ + _map_dir_name_1 = gconf_client_get_string(gconf_client, + GCONF_KEY_MAP_DIR_NAME_1, NULL); + _map_dir_name_2 = gconf_client_get_string(gconf_client, + GCONF_KEY_MAP_DIR_NAME_2, NULL); + + /* Select URI format and Map Cache Directory, default is "~/apps/maemo-mapper". */ + { + gchar *tmp; + + if (_map_setting == 1) { + tmp = g_strdup(_map_dir_name_1); + _map_uri_format=g_strdup(_map_uri_format_1); + } + else { + tmp = g_strdup(_map_dir_name_2); + _map_uri_format=g_strdup(_map_uri_format_2); + } if(!tmp) tmp = g_strdup("~/apps/maemo-mapper"); if(!config_set_map_dir_name(gnome_vfs_expand_initial_tilde(tmp))) @@ -2507,6 +2643,7 @@ else /* This is a street-map URI. */ sprintf(buffer, _map_uri_format, tilex, tiley, zoom - 1); + printf("URI=%s\n", buffer); }