22 |
#include <gdk/gdkkeysyms.h> |
#include <gdk/gdkkeysyms.h> |
23 |
|
|
24 |
#include "appdata.h" |
#include "appdata.h" |
25 |
|
#include "banner.h" |
26 |
|
|
27 |
/* disable/enable main screen control dependant on presence of open project */ |
/* disable/enable main screen control dependant on presence of open project */ |
28 |
static void main_ui_enable(appdata_t *appdata) { |
static void main_ui_enable(appdata_t *appdata) { |
107 |
|
|
108 |
const gchar *authors[] = { |
const gchar *authors[] = { |
109 |
"Till Harbaum <till@harbaum.org>", |
"Till Harbaum <till@harbaum.org>", |
110 |
"Andrew Chadwick", |
"Andrew Chadwick <andrewc-osm2go@piffle.org>", |
111 |
NULL }; |
NULL }; |
112 |
|
|
113 |
gtk_about_dialog_set_authors(about, authors); |
gtk_about_dialog_set_authors(about, authors); |
204 |
appdata_t *appdata = (appdata_t*)data; |
appdata_t *appdata = (appdata_t*)data; |
205 |
|
|
206 |
/* redraw the entire map by destroying all map items and redrawing them */ |
/* redraw the entire map by destroying all map items and redrawing them */ |
207 |
|
banner_busy_start(appdata, 1, "Redrawing..."); |
208 |
track_save(appdata->project, appdata->track.track); |
track_save(appdata->project, appdata->track.track); |
209 |
diff_save(appdata->project, appdata->osm); |
diff_save(appdata->project, appdata->osm); |
210 |
map_clear(appdata, MAP_LAYER_ALL); |
map_clear(appdata, MAP_LAYER_ALL); |
219 |
map_track_draw(appdata->map, appdata->track.track); |
map_track_draw(appdata->map, appdata->track.track); |
220 |
|
|
221 |
wms_load(appdata); |
wms_load(appdata); |
222 |
|
banner_busy_stop(appdata); //"Redrawing..." |
223 |
} |
} |
224 |
#endif |
#endif |
225 |
|
|
234 |
cb_menu_map_no_icons(GtkWidget *widget, gpointer data) { |
cb_menu_map_no_icons(GtkWidget *widget, gpointer data) { |
235 |
appdata_t *appdata = (appdata_t*)data; |
appdata_t *appdata = (appdata_t*)data; |
236 |
|
|
237 |
|
banner_busy_start(appdata, 1, "Redrawing..."); |
238 |
map_clear(appdata, MAP_LAYER_OBJECTS_ONLY); |
map_clear(appdata, MAP_LAYER_OBJECTS_ONLY); |
239 |
appdata->settings->no_icons = |
appdata->settings->no_icons = |
240 |
gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget)); |
gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget)); |
241 |
map_paint(appdata); |
map_paint(appdata); |
242 |
|
banner_busy_stop(appdata); //"Redrawing..." |
243 |
} |
} |
244 |
|
|
245 |
static void |
static void |
246 |
cb_menu_map_no_antialias(GtkWidget *widget, gpointer data) { |
cb_menu_map_no_antialias(GtkWidget *widget, gpointer data) { |
247 |
appdata_t *appdata = (appdata_t*)data; |
appdata_t *appdata = (appdata_t*)data; |
248 |
|
|
249 |
|
banner_busy_start(appdata, 1, "Redrawing..."); |
250 |
map_clear(appdata, MAP_LAYER_OBJECTS_ONLY); |
map_clear(appdata, MAP_LAYER_OBJECTS_ONLY); |
251 |
appdata->settings->no_antialias = |
appdata->settings->no_antialias = |
252 |
gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget)); |
gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget)); |
253 |
map_paint(appdata); |
map_paint(appdata); |
254 |
|
banner_busy_stop(appdata); //"Redrawing..." |
255 |
} |
} |
256 |
|
|
257 |
static void |
static void |
259 |
appdata_t *appdata = (appdata_t*)data; |
appdata_t *appdata = (appdata_t*)data; |
260 |
|
|
261 |
diff_save(appdata->project, appdata->osm); |
diff_save(appdata->project, appdata->osm); |
262 |
statusbar_set(appdata, _("Saved all changes made " |
banner_show_info(appdata, _("Saved local changes")); |
|
"to this project so far"), FALSE); |
|
263 |
} |
} |
264 |
|
|
265 |
static void |
static void |
267 |
appdata_t *appdata = (appdata_t*)data; |
appdata_t *appdata = (appdata_t*)data; |
268 |
|
|
269 |
if(!yes_no_f(GTK_WIDGET(appdata->window), NULL, 0, 0, |
if(!yes_no_f(GTK_WIDGET(appdata->window), NULL, 0, 0, |
270 |
_("Undo all changes?"), |
_("Discard local changes?"), |
271 |
_("Do you really want to undo all your changes " |
_("Throw away all the changes you've not uploaded yet? This can't be undone."))) |
|
"not uploaded so far? This cannot be undone!"))) |
|
272 |
return; |
return; |
273 |
|
|
274 |
|
banner_busy_start(appdata, 1, _("Redrawing...")); |
275 |
map_clear(appdata, MAP_LAYER_OBJECTS_ONLY); |
map_clear(appdata, MAP_LAYER_OBJECTS_ONLY); |
276 |
osm_free(&appdata->icon, appdata->osm); |
osm_free(&appdata->icon, appdata->osm); |
277 |
diff_remove(appdata->project); |
diff_remove(appdata->project); |
278 |
appdata->osm = osm_parse(appdata->project->osm); |
appdata->osm = osm_parse(appdata->project->osm); |
279 |
map_paint(appdata); |
map_paint(appdata); |
280 |
|
banner_busy_stop(appdata); //"Redrawing..." |
281 |
|
|
282 |
statusbar_set(appdata, _("All changes made " |
banner_show_info(appdata, _("Discarded local changes")); |
|
"so far have been reset"), FALSE); |
|
283 |
} |
} |
284 |
|
|
285 |
static void |
static void |
450 |
gtk_menu_append(GTK_MENU_SHELL(submenu), gtk_separator_menu_item_new()); |
gtk_menu_append(GTK_MENU_SHELL(submenu), gtk_separator_menu_item_new()); |
451 |
|
|
452 |
appdata->menu_item_osm_diff = item = |
appdata->menu_item_osm_diff = item = |
453 |
gtk_menu_item_new_with_label( _("Save diff file") ); |
gtk_menu_item_new_with_label( _("Save local changes") ); |
454 |
gtk_menu_append(GTK_MENU_SHELL(submenu), item); |
gtk_menu_append(GTK_MENU_SHELL(submenu), item); |
455 |
g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_save_changes), |
g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_save_changes), |
456 |
appdata); |
appdata); |
457 |
|
|
458 |
appdata->menu_item_osm_undo_changes = item = |
appdata->menu_item_osm_undo_changes = item = |
459 |
gtk_menu_item_new_with_label( _("Undo all changes...") ); |
gtk_menu_item_new_with_label( _("Discard local changes...") ); |
460 |
gtk_menu_append(GTK_MENU_SHELL(submenu), item); |
gtk_menu_append(GTK_MENU_SHELL(submenu), item); |
461 |
g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_undo_changes), |
g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_undo_changes), |
462 |
appdata); |
appdata); |