From 891ac0e2b6f8588f6d9a259f27e45203ffa3d11e Mon Sep 17 00:00:00 2001 From: Dave Peticolas Date: Wed, 3 Oct 2001 22:11:06 +0000 Subject: [PATCH] Fix bug loading example accounts into gui. git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@5462 57a11ea4-9604-0410-9ed3-97b8803252fd --- src/engine/Account.c | 2 -- src/gnome/druid-hierarchy.c | 13 ++++++++++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/engine/Account.c b/src/engine/Account.c index 3e184c5d55..b0ffe2d1a1 100644 --- a/src/engine/Account.c +++ b/src/engine/Account.c @@ -1187,8 +1187,6 @@ AccountGroup * xaccAccountGetChildren (Account *acc) { if (!acc) return NULL; - if (acc->children == NULL) - xaccAccountInsertSubAccount (acc, NULL); return (acc->children); } diff --git a/src/gnome/druid-hierarchy.c b/src/gnome/druid-hierarchy.c index e336d00702..ad7c71cc9b 100644 --- a/src/gnome/druid-hierarchy.c +++ b/src/gnome/druid-hierarchy.c @@ -572,6 +572,7 @@ clone_account (const Account* from, gnc_commodity *com) struct add_group_data_struct { AccountGroup *to; + Account *parent; gnc_commodity *com; }; @@ -586,7 +587,15 @@ add_groups_for_each (Account *toadd, gpointer data) if (!foundact) { foundact = clone_account (toadd, dadata->com); - xaccGroupInsertAccount (dadata->to, foundact); + + if (dadata->to) + xaccGroupInsertAccount (dadata->to, foundact); + else if (dadata->parent) + xaccAccountInsertSubAccount (dadata->parent, foundact); + else + { + g_warning ("add_groups_for_each: no valid parent"); + } } { @@ -597,6 +606,7 @@ add_groups_for_each (Account *toadd, gpointer data) struct add_group_data_struct downdata; downdata.to = xaccAccountGetChildren(foundact); + downdata.parent = foundact; downdata.com = dadata->com; xaccGroupForEachAccount (addgrp, add_groups_for_each, @@ -613,6 +623,7 @@ add_groups_to_with_random_guids (AccountGroup *into, AccountGroup *from, { struct add_group_data_struct data; data.to = into; + data.parent = NULL; data.com = com; xaccGroupForEachAccount (from, add_groups_for_each, &data, FALSE);