1341 |
|
|
1342 |
/* close current project */ |
/* close current project */ |
1343 |
banner_busy_tick(); |
banner_busy_tick(); |
1344 |
|
|
1345 |
if(appdata->project) |
if(appdata->project) |
1346 |
project_close(appdata); |
project_close(appdata); |
1347 |
|
|
1348 |
/* open project itself */ |
/* open project itself */ |
1349 |
banner_busy_tick(); |
banner_busy_tick(); |
1350 |
|
|
1351 |
if(!project_open(appdata, proj_name)) { |
if(!project_open(appdata, proj_name)) { |
1352 |
printf("error opening requested project\n"); |
printf("error opening requested project\n"); |
1353 |
|
|
1370 |
return FALSE; |
return FALSE; |
1371 |
} |
} |
1372 |
|
|
1373 |
|
if(!appdata->window) { |
1374 |
|
g_free(proj_name); |
1375 |
|
return FALSE; |
1376 |
|
} |
1377 |
|
|
1378 |
/* check if OSM data is valid */ |
/* check if OSM data is valid */ |
1379 |
banner_busy_tick(); |
banner_busy_tick(); |
1380 |
if(!osm_sanity_check(GTK_WIDGET(appdata->window), appdata->osm)) { |
if(!osm_sanity_check(GTK_WIDGET(appdata->window), appdata->osm)) { |
1401 |
|
|
1402 |
/* load diff possibly preset */ |
/* load diff possibly preset */ |
1403 |
banner_busy_tick(); |
banner_busy_tick(); |
1404 |
|
if(!appdata->window) goto fail; |
1405 |
|
|
1406 |
diff_restore(appdata, appdata->project, appdata->osm); |
diff_restore(appdata, appdata->project, appdata->osm); |
1407 |
|
|
1408 |
/* prepare colors etc, draw data and adjust scroll/zoom settings */ |
/* prepare colors etc, draw data and adjust scroll/zoom settings */ |
1409 |
banner_busy_tick(); |
banner_busy_tick(); |
1410 |
|
if(!appdata->window) goto fail; |
1411 |
|
|
1412 |
map_init(appdata); |
map_init(appdata); |
1413 |
|
|
1414 |
/* restore a track */ |
/* restore a track */ |
1415 |
banner_busy_tick(); |
banner_busy_tick(); |
1416 |
|
if(!appdata->window) goto fail; |
1417 |
|
|
1418 |
appdata->track.track = track_restore(appdata, appdata->project); |
appdata->track.track = track_restore(appdata, appdata->project); |
1419 |
if(appdata->track.track) |
if(appdata->track.track) |
1420 |
map_track_draw(appdata->map, appdata->track.track); |
map_track_draw(appdata->map, appdata->track.track); |
1421 |
|
|
1422 |
/* finally load a background if present */ |
/* finally load a background if present */ |
1423 |
banner_busy_tick(); |
banner_busy_tick(); |
1424 |
|
if(!appdata->window) goto fail; |
1425 |
wms_load(appdata); |
wms_load(appdata); |
1426 |
|
|
1427 |
/* save the name of the project for the perferences */ |
/* save the name of the project for the perferences */ |
1441 |
g_free(proj_name); |
g_free(proj_name); |
1442 |
|
|
1443 |
return TRUE; |
return TRUE; |
1444 |
|
|
1445 |
|
fail: |
1446 |
|
printf("project loading interrupted by user\n"); |
1447 |
|
|
1448 |
|
if(appdata->project) { |
1449 |
|
project_free(appdata->project); |
1450 |
|
appdata->project = NULL; |
1451 |
|
} |
1452 |
|
|
1453 |
|
if(appdata->osm) { |
1454 |
|
osm_free(&appdata->icon, appdata->osm); |
1455 |
|
appdata->osm = NULL; |
1456 |
|
} |
1457 |
|
|
1458 |
|
g_free(proj_name); |
1459 |
|
|
1460 |
|
return FALSE; |
1461 |
} |
} |
1462 |
|
|
1463 |
/* ------------------- project setup wizard ----------------- */ |
/* ------------------- project setup wizard ----------------- */ |