--- 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);
 }
 
 

