mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
Merge Simon Arlott's 'commit-root-on-load' into maint.
This commit is contained in:
commit
d099d39afd
@ -699,6 +699,7 @@ qof_session_load_from_xml_file_v2_full (
|
|||||||
QofBookFileType type)
|
QofBookFileType type)
|
||||||
{
|
{
|
||||||
Account* root;
|
Account* root;
|
||||||
|
Account* template_root;
|
||||||
sixtp_gdv2* gd;
|
sixtp_gdv2* gd;
|
||||||
sixtp* top_parser;
|
sixtp* top_parser;
|
||||||
sixtp* main_parser;
|
sixtp* main_parser;
|
||||||
@ -851,12 +852,18 @@ qof_session_load_from_xml_file_v2_full (
|
|||||||
/* commit all groups, this completes the BeginEdit started when the
|
/* commit all groups, this completes the BeginEdit started when the
|
||||||
* account_end_handler finished reading the account.
|
* account_end_handler finished reading the account.
|
||||||
*/
|
*/
|
||||||
|
template_root = gnc_book_get_template_root (book);
|
||||||
gnc_account_foreach_descendant (root,
|
gnc_account_foreach_descendant (root,
|
||||||
(AccountCb) xaccAccountCommitEdit,
|
(AccountCb) xaccAccountCommitEdit,
|
||||||
NULL);
|
NULL);
|
||||||
gnc_account_foreach_descendant (gnc_book_get_template_root (book),
|
gnc_account_foreach_descendant (template_root,
|
||||||
(AccountCb) xaccAccountCommitEdit,
|
(AccountCb) xaccAccountCommitEdit,
|
||||||
NULL);
|
NULL);
|
||||||
|
/* if these exist in the XML file then they will be uncommitted */
|
||||||
|
if (qof_instance_get_editlevel(root) != 0)
|
||||||
|
xaccAccountCommitEdit(root);
|
||||||
|
if (qof_instance_get_editlevel(template_root) != 0)
|
||||||
|
xaccAccountCommitEdit(template_root);
|
||||||
|
|
||||||
/* start logging again */
|
/* start logging again */
|
||||||
xaccLogEnable ();
|
xaccLogEnable ();
|
||||||
|
@ -108,6 +108,9 @@ test_load_file (const char* filename)
|
|||||||
do_test (gnc_account_get_book (root) == book,
|
do_test (gnc_account_get_book (root) == book,
|
||||||
"book and root account don't match");
|
"book and root account don't match");
|
||||||
|
|
||||||
|
do_test (qof_instance_get_editlevel(root) == 0,
|
||||||
|
"root account editlevel is not 0");
|
||||||
|
|
||||||
do_test_args (qof_session_get_error (session) == ERR_BACKEND_NO_ERR,
|
do_test_args (qof_session_get_error (session) == ERR_BACKEND_NO_ERR,
|
||||||
"session load xml2", __FILE__, __LINE__,
|
"session load xml2", __FILE__, __LINE__,
|
||||||
"qof error=%d for file [%s]",
|
"qof error=%d for file [%s]",
|
||||||
|
Loading…
Reference in New Issue
Block a user