From 8be7d15e1df0171dc2551085629b2588790aea10 Mon Sep 17 00:00:00 2001 From: John Ralls Date: Mon, 20 Jan 2014 22:53:08 +0000 Subject: [PATCH] Prevent gnc-commodity from marking the book dirty at file-load. git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@23733 57a11ea4-9604-0410-9ed3-97b8803252fd --- src/backend/xml/gnc-backend-xml.c | 3 ++- src/backend/xml/gnc-commodity-xml-v2.c | 7 +++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/backend/xml/gnc-backend-xml.c b/src/backend/xml/gnc-backend-xml.c index 43fa1ff206..0d5a01182b 100644 --- a/src/backend/xml/gnc-backend-xml.c +++ b/src/backend/xml/gnc-backend-xml.c @@ -1078,7 +1078,8 @@ static void xml_commit_edit (QofBackend *be, QofInstance *inst) { if (qof_instance_get_dirty(inst) && qof_get_alt_dirty_mode() && - !(qof_instance_get_infant(inst) && qof_instance_get_destroying(inst))) + !(qof_instance_get_infant(inst) || + qof_instance_get_destroying(inst))) { qof_collection_mark_dirty(qof_instance_get_collection(inst)); qof_book_mark_session_dirty(qof_instance_get_book(inst)); diff --git a/src/backend/xml/gnc-commodity-xml-v2.c b/src/backend/xml/gnc-commodity-xml-v2.c index eddb392488..40eee6f42c 100644 --- a/src/backend/xml/gnc-commodity-xml-v2.c +++ b/src/backend/xml/gnc-commodity-xml-v2.c @@ -273,6 +273,8 @@ gnc_commodity_end_handler(gpointer data_for_children, g_return_val_if_fail(tree, FALSE); com = gnc_commodity_new(book, NULL, NULL, NULL, NULL, 0); + gnc_commodity_begin_edit (com); + old_com = gnc_commodity_find_currency(book, tree); if (old_com) gnc_commodity_copy(com, old_com); @@ -281,6 +283,11 @@ gnc_commodity_end_handler(gpointer data_for_children, { set_commodity_value(achild, com); } + /* We're loading from the file. It can't be dirty, even though the + * commodity set functions have marked it so. + */ + qof_instance_mark_clean (QOF_INSTANCE (com)); + gnc_commodity_commit_edit (com); if (!valid_commodity(com)) {