92 |
project->map_state->zoom = g_ascii_strtod(str, NULL); |
project->map_state->zoom = g_ascii_strtod(str, NULL); |
93 |
xmlFree(str); |
xmlFree(str); |
94 |
} |
} |
95 |
|
if((str = (char*)xmlGetProp(node, BAD_CAST "detail"))) { |
96 |
|
project->map_state->detail = g_ascii_strtod(str, NULL); |
97 |
|
xmlFree(str); |
98 |
|
} |
99 |
if((str = (char*)xmlGetProp(node, BAD_CAST "scroll-offset-x"))) { |
if((str = (char*)xmlGetProp(node, BAD_CAST "scroll-offset-x"))) { |
100 |
project->map_state->scroll_offset.x = strtoul(str, NULL, 10); |
project->map_state->scroll_offset.x = strtoul(str, NULL, 10); |
101 |
xmlFree(str); |
xmlFree(str); |
209 |
|
|
210 |
if(project->map_state) { |
if(project->map_state) { |
211 |
node = xmlNewChild(root_node, NULL, BAD_CAST "map", BAD_CAST NULL); |
node = xmlNewChild(root_node, NULL, BAD_CAST "map", BAD_CAST NULL); |
212 |
g_ascii_formatd(str, sizeof(str), LL_FORMAT, project->map_state->zoom); |
g_ascii_formatd(str, sizeof(str), "%.04f", project->map_state->zoom); |
213 |
xmlNewProp(node, BAD_CAST "zoom", BAD_CAST str); |
xmlNewProp(node, BAD_CAST "zoom", BAD_CAST str); |
214 |
|
g_ascii_formatd(str, sizeof(str), "%.04f", project->map_state->detail); |
215 |
|
xmlNewProp(node, BAD_CAST "detail", BAD_CAST str); |
216 |
snprintf(str, sizeof(str), "%d", project->map_state->scroll_offset.x); |
snprintf(str, sizeof(str), "%d", project->map_state->scroll_offset.x); |
217 |
xmlNewProp(node, BAD_CAST "scroll-offset-x", BAD_CAST str); |
xmlNewProp(node, BAD_CAST "scroll-offset-x", BAD_CAST str); |
218 |
snprintf(str, sizeof(str), "%d", project->map_state->scroll_offset.y); |
snprintf(str, sizeof(str), "%d", project->map_state->scroll_offset.y); |
476 |
printf("creating project with default values\n"); |
printf("creating project with default values\n"); |
477 |
|
|
478 |
/* -------------- first choose a name for the project --------------- */ |
/* -------------- first choose a name for the project --------------- */ |
479 |
GtkWidget *dialog = gtk_dialog_new_with_buttons(_("Project name"), |
GtkWidget *dialog = |
480 |
GTK_WINDOW(context->dialog), GTK_DIALOG_MODAL, |
misc_dialog_new(MISC_DIALOG_NOSIZE, _("Project name"), |
481 |
GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT, |
GTK_WINDOW(context->dialog), |
482 |
GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, |
GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT, |
483 |
NULL); |
GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, |
484 |
|
NULL); |
485 |
|
|
486 |
GtkWidget *hbox = gtk_hbox_new(FALSE, 8); |
GtkWidget *hbox = gtk_hbox_new(FALSE, 8); |
487 |
gtk_box_pack_start_defaults(GTK_BOX(hbox), gtk_label_new(_("Name:"))); |
gtk_box_pack_start_defaults(GTK_BOX(hbox), gtk_label_new(_("Name:"))); |
517 |
/* no data downloaded yet */ |
/* no data downloaded yet */ |
518 |
project->data_dirty = TRUE; |
project->data_dirty = TRUE; |
519 |
|
|
520 |
|
/* adjust default server stored in settings if required */ |
521 |
|
if(strstr(context->settings->server, "0.5") != NULL) { |
522 |
|
strstr(context->settings->server, "0.5")[2] = '6'; |
523 |
|
printf("adjusting server path in settings to 0.6\n"); |
524 |
|
} |
525 |
|
|
526 |
/* use global server/access settings */ |
/* use global server/access settings */ |
527 |
project->server = g_strdup(context->settings->server); |
project->server = g_strdup(context->settings->server); |
528 |
|
|
529 |
/* build project osm file name */ |
/* build project osm file name */ |
530 |
project->osm = g_strdup_printf("%s%s.osm", project->path, project->name); |
project->osm = g_strdup_printf("%s%s.osm", project->path, project->name); |
531 |
|
|
714 |
context->project = project_scan(appdata); |
context->project = project_scan(appdata); |
715 |
|
|
716 |
/* create project selection dialog */ |
/* create project selection dialog */ |
717 |
context->dialog = gtk_dialog_new_with_buttons(_("Project selection"), |
context->dialog = |
718 |
GTK_WINDOW(appdata->window), GTK_DIALOG_MODAL, |
misc_dialog_new(MISC_DIALOG_MEDIUM,_("Project selection"), |
719 |
|
GTK_WINDOW(appdata->window), |
720 |
GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT, |
GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT, |
721 |
GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, |
GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, |
722 |
NULL); |
NULL); |
723 |
|
|
|
#ifdef USE_HILDON |
|
|
gtk_window_set_default_size(GTK_WINDOW(context->dialog), 500, 300); |
|
|
#else |
|
|
gtk_window_set_default_size(GTK_WINDOW(context->dialog), 400, 200); |
|
|
#endif |
|
|
|
|
724 |
gtk_box_pack_start_defaults(GTK_BOX(GTK_DIALOG(context->dialog)->vbox), |
gtk_box_pack_start_defaults(GTK_BOX(GTK_DIALOG(context->dialog)->vbox), |
725 |
project_list_widget(context)); |
project_list_widget(context)); |
726 |
|
|
884 |
|
|
885 |
char *str = g_strdup_printf(_("Project - %s"), project->name); |
char *str = g_strdup_printf(_("Project - %s"), project->name); |
886 |
context->area_edit.parent = |
context->area_edit.parent = |
887 |
context->dialog = gtk_dialog_new_with_buttons(str, |
context->dialog = misc_dialog_new(MISC_DIALOG_WIDE, str, |
888 |
GTK_WINDOW(parent), GTK_DIALOG_MODAL, |
GTK_WINDOW(parent), |
889 |
GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT, |
GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT, |
890 |
GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, |
GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, |
891 |
NULL); |
NULL); |
892 |
g_free(str); |
g_free(str); |
893 |
|
|
|
#ifdef USE_HILDON |
|
|
/* making the dialog a little wider makes it less "crowded" */ |
|
|
gtk_window_set_default_size(GTK_WINDOW(context->dialog), 640, 100); |
|
|
#else |
|
|
gtk_window_set_default_size(GTK_WINDOW(context->dialog), 400, 100); |
|
|
#endif |
|
|
|
|
894 |
GtkWidget *download, *label; |
GtkWidget *download, *label; |
895 |
GtkWidget *table = gtk_table_new(4, 6, FALSE); // x, y |
GtkWidget *table = gtk_table_new(4, 6, FALSE); // x, y |
896 |
|
|
1100 |
banner_busy_tick(); |
banner_busy_tick(); |
1101 |
if(!project_open(appdata, proj_name)) { |
if(!project_open(appdata, proj_name)) { |
1102 |
printf("error opening requested project\n"); |
printf("error opening requested project\n"); |
1103 |
snprintf(banner_txt, _PROJECT_LOAD_BUF_SIZ, _("Error opening %s"), proj_name); |
|
1104 |
|
if(appdata->project) { |
1105 |
|
project_free(appdata->project); |
1106 |
|
appdata->project = NULL; |
1107 |
|
} |
1108 |
|
|
1109 |
|
if(appdata->osm) { |
1110 |
|
osm_free(&appdata->icon, appdata->osm); |
1111 |
|
appdata->osm = NULL; |
1112 |
|
} |
1113 |
|
|
1114 |
|
snprintf(banner_txt, _PROJECT_LOAD_BUF_SIZ, |
1115 |
|
_("Error opening %s"), proj_name); |
1116 |
banner_busy_stop(appdata); |
banner_busy_stop(appdata); |
1117 |
banner_show_info(appdata, banner_txt); |
banner_show_info(appdata, banner_txt); |
1118 |
|
|
1119 |
g_free(proj_name); |
g_free(proj_name); |
1120 |
return FALSE; |
return FALSE; |
1121 |
} |
} |
1124 |
banner_busy_tick(); |
banner_busy_tick(); |
1125 |
if(!osm_sanity_check(GTK_WIDGET(appdata->window), appdata->osm)) { |
if(!osm_sanity_check(GTK_WIDGET(appdata->window), appdata->osm)) { |
1126 |
printf("project/osm sanity checks failed, unloading project\n"); |
printf("project/osm sanity checks failed, unloading project\n"); |
1127 |
project_free(appdata->project); |
|
1128 |
snprintf(banner_txt, _PROJECT_LOAD_BUF_SIZ, _("Error opening %s"), proj_name); |
if(appdata->project) { |
1129 |
|
project_free(appdata->project); |
1130 |
|
appdata->project = NULL; |
1131 |
|
} |
1132 |
|
|
1133 |
|
if(appdata->osm) { |
1134 |
|
osm_free(&appdata->icon, appdata->osm); |
1135 |
|
appdata->osm = NULL; |
1136 |
|
} |
1137 |
|
|
1138 |
|
snprintf(banner_txt, _PROJECT_LOAD_BUF_SIZ, |
1139 |
|
_("Error opening %s"), proj_name); |
1140 |
banner_busy_stop(appdata); |
banner_busy_stop(appdata); |
1141 |
banner_show_info(appdata, banner_txt); |
banner_show_info(appdata, banner_txt); |
1142 |
|
|
1143 |
g_free(proj_name); |
g_free(proj_name); |
1144 |
return FALSE; |
return FALSE; |
1145 |
} |
} |