Diff of /trunk/src/project.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 156 by harbaum, Wed Apr 1 12:47:35 2009 UTC revision 167 by harbaum, Mon Apr 27 11:29:55 2009 UTC
# Line 92  static gboolean project_read(appdata_t * Line 92  static gboolean project_read(appdata_t *
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);
# Line 205  gboolean project_save(GtkWidget *parent, Line 209  gboolean project_save(GtkWidget *parent,
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);
# Line 470  project_t *project_new(select_context_t Line 476  project_t *project_new(select_context_t
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:")));
# Line 510  project_t *project_new(select_context_t Line 517  project_t *project_new(select_context_t
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    
# Line 701  char *project_select(appdata_t *appdata) Line 714  char *project_select(appdata_t *appdata)
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    
# Line 876  gboolean project_edit(GtkWidget *parent, Line 884  gboolean project_edit(GtkWidget *parent,
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    
# Line 1099  gboolean project_load(appdata_t *appdata Line 1100  gboolean project_load(appdata_t *appdata
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    }    }
# Line 1110  gboolean project_load(appdata_t *appdata Line 1124  gboolean project_load(appdata_t *appdata
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    }    }

Legend:
Removed from v.156  
changed lines
  Added in v.167