r23733 - gnucash/trunk/src/backend/xml - Prevent gnc-commodity from marking the book dirty at file-load.

John Ralls jralls at code.gnucash.org
Mon Jan 20 17:53:09 EST 2014


Author: jralls
Date: 2014-01-20 17:53:08 -0500 (Mon, 20 Jan 2014)
New Revision: 23733
Trac: http://svn.gnucash.org/trac/changeset/23733

Modified:
   gnucash/trunk/src/backend/xml/gnc-backend-xml.c
   gnucash/trunk/src/backend/xml/gnc-commodity-xml-v2.c
Log:
Prevent gnc-commodity from marking the book dirty at file-load.

Modified: gnucash/trunk/src/backend/xml/gnc-backend-xml.c
===================================================================
--- gnucash/trunk/src/backend/xml/gnc-backend-xml.c	2014-01-20 22:52:56 UTC (rev 23732)
+++ gnucash/trunk/src/backend/xml/gnc-backend-xml.c	2014-01-20 22:53:08 UTC (rev 23733)
@@ -1078,7 +1078,8 @@
 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));

Modified: gnucash/trunk/src/backend/xml/gnc-commodity-xml-v2.c
===================================================================
--- gnucash/trunk/src/backend/xml/gnc-commodity-xml-v2.c	2014-01-20 22:52:56 UTC (rev 23732)
+++ gnucash/trunk/src/backend/xml/gnc-commodity-xml-v2.c	2014-01-20 22:53:08 UTC (rev 23733)
@@ -273,6 +273,8 @@
     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 @@
     {
         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))
     {



More information about the gnucash-changes mailing list