138 |
gtk_widget_show_all (GTK_WIDGET(dialog)); |
gtk_widget_show_all (GTK_WIDGET(dialog)); |
139 |
if (gtk_dialog_run (GTK_DIALOG(dialog)) == GTK_FM_OK) { |
if (gtk_dialog_run (GTK_DIALOG(dialog)) == GTK_FM_OK) { |
140 |
char *filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog)); |
char *filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog)); |
141 |
|
|
142 |
|
if(filename) { |
143 |
|
gpx_dialog_t *dialog = gpx_busy_dialog_new(GTK_WIDGET(appdata->window)); |
144 |
|
|
145 |
gpx_dialog_t *dialog = gpx_busy_dialog_new(GTK_WIDGET(appdata->window)); |
if(!whole_dir) |
146 |
|
gpx = gpx_parse(dialog, filename); |
147 |
if(!whole_dir) |
else { |
148 |
gpx = gpx_parse(dialog, filename); |
/* cur trailing '/' if present */ |
149 |
else { |
if(strlastchr(filename) == '/') |
150 |
/* cur trailing '/' if present */ |
filename[strlen(filename)] = 0; |
151 |
if(strlastchr(filename) == '/') |
|
152 |
filename[strlen(filename)] = 0; |
gpx = gpx_parse_dir(dialog, filename); |
|
|
|
|
gpx = gpx_parse_dir(dialog, filename); |
|
|
} |
|
|
|
|
|
gpx_busy_dialog_destroy(dialog); |
|
|
|
|
|
/* save path if gpx was successfully loaded */ |
|
|
if(gpx) { |
|
|
char *r = strrchr(filename, '/'); |
|
|
|
|
|
/* there is a delimiter, use everything left of it as path */ |
|
|
if(r && !whole_dir) { |
|
|
*r = 0; |
|
|
if(appdata->path) free(appdata->path); |
|
|
appdata->path = strdup(filename); |
|
|
/* restore path ... just in case ... */ |
|
|
*r = '/'; |
|
153 |
} |
} |
154 |
|
|
155 |
|
gpx_busy_dialog_destroy(dialog); |
156 |
|
|
157 |
|
/* save path if gpx was successfully loaded */ |
158 |
|
if(gpx) { |
159 |
|
char *r = strrchr(filename, '/'); |
160 |
|
|
161 |
|
/* there is a delimiter, use everything left of it as path */ |
162 |
|
if(r && !whole_dir) { |
163 |
|
*r = 0; |
164 |
|
if(appdata->path) free(appdata->path); |
165 |
|
appdata->path = strdup(filename); |
166 |
|
/* restore path ... just in case ... */ |
167 |
|
*r = '/'; |
168 |
|
} |
169 |
|
|
170 |
|
if(whole_dir) |
171 |
|
appdata->path = strdup(filename); |
172 |
|
} else |
173 |
|
errorf(_("Load error")); |
174 |
|
|
175 |
if(whole_dir) |
g_free (filename); |
176 |
appdata->path = strdup(filename); |
} else { |
177 |
|
#ifndef USE_MAEMO |
178 |
|
errorf(_("Error accessing the file.")); |
179 |
|
#else |
180 |
|
errorf(_("Error accessing the file. This may happen if the file " |
181 |
|
"resides on a remote file system. Please copy the file onto " |
182 |
|
"the device (e.g. onto the memory card) and try again.")); |
183 |
|
#endif |
184 |
} |
} |
|
|
|
|
g_free (filename); |
|
185 |
} |
} |
186 |
|
|
187 |
gtk_widget_destroy (dialog); |
gtk_widget_destroy (dialog); |
980 |
GtkTreeIter iter; |
GtkTreeIter iter; |
981 |
gtk_list_store_append(appdata->gpxstore, &iter); |
gtk_list_store_append(appdata->gpxstore, &iter); |
982 |
gpxlist_set(appdata->gpxstore, &iter, gpx); |
gpxlist_set(appdata->gpxstore, &iter, gpx); |
983 |
|
|
984 |
if(gpx == sel_gpx) { |
if(gpx == sel_gpx) { |
985 |
sel_iter = iter; |
sel_iter = iter; |
986 |
sel_iter_valid = TRUE; |
sel_iter_valid = TRUE; |
1759 |
hildon_app_menu_append(menu, GTK_BUTTON(button)); |
hildon_app_menu_append(menu, GTK_BUTTON(button)); |
1760 |
|
|
1761 |
#ifdef ENABLE_OSM_GPS_MAP |
#ifdef ENABLE_OSM_GPS_MAP |
|
if((mode == MENU_GPXLIST) || (mode == MENU_CACHELIST)) { |
|
1762 |
button = gtk_button_new_with_label(_("Map")); |
button = gtk_button_new_with_label(_("Map")); |
1763 |
g_signal_connect_after(button, "clicked", |
g_signal_connect_after(button, "clicked", |
1764 |
G_CALLBACK(cb_menu_map), appdata); |
G_CALLBACK(cb_menu_map), appdata); |
1765 |
hildon_app_menu_append(menu, GTK_BUTTON(button)); |
hildon_app_menu_append(menu, GTK_BUTTON(button)); |
|
} |
|
1766 |
#endif |
#endif |
1767 |
|
|
1768 |
#ifdef HILDON_HELP |
#ifdef HILDON_HELP |
1877 |
|
|
1878 |
gtk_menu_append(GTK_MENU_SHELL(menu), gtk_separator_menu_item_new()); |
gtk_menu_append(GTK_MENU_SHELL(menu), gtk_separator_menu_item_new()); |
1879 |
|
|
|
item = gtk_menu_item_new_with_label(_("Tools")); |
|
|
gtk_menu_append(GTK_MENU_SHELL(menu), item); |
|
|
submenu = gtk_menu_new(); |
|
|
gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), submenu); |
|
|
|
|
1880 |
#ifdef ENABLE_OSM_GPS_MAP |
#ifdef ENABLE_OSM_GPS_MAP |
1881 |
item = gtk_menu_item_new_with_label( _("Map") ); |
item = gtk_menu_item_new_with_label( _("Map") ); |
1882 |
gtk_menu_append(GTK_MENU_SHELL(submenu), item); |
gtk_menu_append(GTK_MENU_SHELL(menu), item); |
1883 |
g_signal_connect(item, "activate", |
g_signal_connect(item, "activate", |
1884 |
GTK_SIGNAL_FUNC(cb_menu_map), appdata); |
GTK_SIGNAL_FUNC(cb_menu_map), appdata); |
1885 |
#endif |
#endif |
1886 |
|
|
1887 |
|
item = gtk_menu_item_new_with_label(_("Tools")); |
1888 |
|
gtk_menu_append(GTK_MENU_SHELL(menu), item); |
1889 |
|
submenu = gtk_menu_new(); |
1890 |
|
gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), submenu); |
1891 |
|
|
1892 |
item = gtk_menu_item_new_with_label( _("Geomath") ); |
item = gtk_menu_item_new_with_label( _("Geomath") ); |
1893 |
gtk_menu_append(GTK_MENU_SHELL(submenu), item); |
gtk_menu_append(GTK_MENU_SHELL(submenu), item); |
1894 |
g_signal_connect(item, "activate", |
g_signal_connect(item, "activate", |