X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fgui%2Fpsppire-output-view.c;h=07dbd646161dbf5dc56ee1bdd0aee541bc880040;hb=37c21ba9301956091823dea7d84ff0400330bd4b;hp=5cc20b2609582387f8d77f03095126f00c7ec478;hpb=1a82a2f3edaf2e5a8becec9c4b2fd46b6bee9808;p=pspp diff --git a/src/ui/gui/psppire-output-view.c b/src/ui/gui/psppire-output-view.c index 5cc20b2609..07dbd64616 100644 --- a/src/ui/gui/psppire-output-view.c +++ b/src/ui/gui/psppire-output-view.c @@ -452,7 +452,7 @@ psppire_output_view_put__ (struct psppire_output_view *view, sizeof *view->items); struct output_view_item *view_item = &view->items[view->n_items]; if (!init_output_view_item (view_item, view, item, - gtk_tree_path_get_depth (parent_path))) + parent_path ? gtk_tree_path_get_depth (parent_path) : 0)) return; view->n_items++; @@ -877,6 +877,19 @@ psppire_output_view_destroy (struct psppire_output_view *view) /* Export. */ +static void +psppire_output_view_export__ (struct output_driver *driver, + const struct output_item *item) +{ + if (item->type == OUTPUT_ITEM_GROUP && !driver->class->handles_groups) + { + for (size_t i = 0; i < item->group.n_children; i++) + psppire_output_view_export__ (driver, item->group.children[i]); + } + else + driver->class->submit (driver, item); +} + void psppire_output_view_export (struct psppire_output_view *view, struct string_map *options) @@ -890,7 +903,7 @@ psppire_output_view_export (struct psppire_output_view *view, for (i = 0; i < view->n_items; i++) if (view->items[i].nesting_depth == 0) - driver->class->submit (driver, view->items[i].item); + psppire_output_view_export__ (driver, view->items[i].item); output_driver_destroy (driver); } }