--- trunk/src/main.c 2009/10/12 20:27:55 133 +++ trunk/src/main.c 2009/10/26 10:40:06 142 @@ -209,7 +209,20 @@ CACHELIST_NUM_COLS } ; -void cachelist_view_onRowActivated(GtkTreeView *treeview, +void cachelist_goto_cache(appdata_t *appdata, cache_t *cache) { +#if !defined(USE_BREAD_CRUMB_TRAIL) && !defined(BCT) + cache_dialog(appdata, cache); +#else + gtk_container_remove(GTK_CONTAINER(appdata->vbox), appdata->cur_view); + appdata->cur_view = cache_view(appdata, cache); + gtk_box_pack_start_defaults(GTK_BOX(appdata->vbox), appdata->cur_view); + gtk_widget_show_all(appdata->vbox); + + crumb_add(appdata, cache->name, CRUMB_CACHE, cache); +#endif +} + +static void cachelist_view_onRowActivated(GtkTreeView *treeview, GtkTreePath *path, GtkTreeViewColumn *col, gpointer userdata) { @@ -226,16 +239,7 @@ if(gtk_tree_model_get_iter(model, &iter, path)) { cache_t *cache; gtk_tree_model_get(model, &iter, CACHELIST_COL_DATA, &cache, -1); -#if !defined(USE_BREAD_CRUMB_TRAIL) && !defined(BCT) - cache_dialog(appdata, cache); -#else - gtk_container_remove(GTK_CONTAINER(appdata->vbox), appdata->cur_view); - appdata->cur_view = cache_view(appdata, cache); - gtk_box_pack_start_defaults(GTK_BOX(appdata->vbox), appdata->cur_view); - gtk_widget_show_all(appdata->vbox); - - crumb_add(appdata, cache->name, CRUMB_CACHE, cache); -#endif + cachelist_goto_cache(appdata, cache); } } @@ -724,6 +728,26 @@ gconf_save_closed_name(appdata, gpx->filename, gpx->name); } +void gpxlist_goto_cachelist(appdata_t *appdata, gpx_t *gpx) { +#if !defined(USE_BREAD_CRUMB_TRAIL) && !defined(BCT) +#ifdef USE_STACKABLE_WINDOW + if(!appdata->cur_gpx) +#endif + cachelist_dialog(appdata, gpx); +#ifdef USE_STACKABLE_WINDOW + else + printf("selected gpx, but cachelist window already present\n"); +#endif +#else + gtk_container_remove(GTK_CONTAINER(appdata->vbox), appdata->cur_view); + appdata->cur_view = cachelist_create(appdata, gpx, NULL); + gtk_box_pack_start_defaults(GTK_BOX(appdata->vbox), appdata->cur_view); + gtk_widget_show_all(appdata->vbox); + + crumb_add(appdata, gpx->name, CRUMB_CACHELIST, gpx); +#endif +} + static void gpxlist_view_onRowActivated(GtkTreeView *treeview, GtkTreePath *path, GtkTreeViewColumn *col, @@ -841,23 +865,8 @@ gpx_busy_dialog_destroy(dialog); } -#if !defined(USE_BREAD_CRUMB_TRAIL) && !defined(BCT) -#ifdef USE_STACKABLE_WINDOW - if(!appdata->cur_gpx) -#endif - cachelist_dialog(appdata, gpx); -#ifdef USE_STACKABLE_WINDOW - else - printf("selected gpx, but cachelist window already present\n"); -#endif -#else - gtk_container_remove(GTK_CONTAINER(appdata->vbox), appdata->cur_view); - appdata->cur_view = cachelist_create(appdata, gpx, NULL); - gtk_box_pack_start_defaults(GTK_BOX(appdata->vbox), appdata->cur_view); - gtk_widget_show_all(appdata->vbox); - - crumb_add(appdata, gpx->name, CRUMB_CACHELIST, gpx); -#endif + + gpxlist_goto_cachelist(appdata, gpx); } } }