r18590 - gnucash/trunk/src - Create qof_book_begin_edit()/qof_book_commit_edit() routines. These need to be added around lines which set kvp
Phil Longstaff
plongstaff at code.gnucash.org
Sat Jan 30 17:59:37 EST 2010
Author: plongstaff
Date: 2010-01-30 17:59:37 -0500 (Sat, 30 Jan 2010)
New Revision: 18590
Trac: http://svn.gnucash.org/trac/changeset/18590
Modified:
gnucash/trunk/src/app-utils/gnc-ui-util.c
gnucash/trunk/src/backend/sql/gnc-book-sql.c
gnucash/trunk/src/libqof/qof/qofbook.c
gnucash/trunk/src/libqof/qof/qofbook.h
Log:
Create qof_book_begin_edit()/qof_book_commit_edit() routines. These need to be added around lines which set kvp
values for the book, and the dirty flag does *not* need to be set.
Modified: gnucash/trunk/src/app-utils/gnc-ui-util.c
===================================================================
--- gnucash/trunk/src/app-utils/gnc-ui-util.c 2010-01-30 22:57:55 UTC (rev 18589)
+++ gnucash/trunk/src/app-utils/gnc-ui-util.c 2010-01-30 22:59:37 UTC (rev 18590)
@@ -203,8 +203,12 @@
void
gnc_set_current_book_tax_name (const gchar *tax_name)
{
- kvp_frame_set_string (qof_book_get_slots (gnc_get_current_book()),
+ QofBook* current_book = gnc_get_current_book();
+
+ qof_book_begin_edit(current_book);
+ kvp_frame_set_string (qof_book_get_slots (current_book),
"book/tax_US/name", tax_name);
+ qof_book_commit_edit(current_book);
}
const gchar *
Modified: gnucash/trunk/src/backend/sql/gnc-book-sql.c
===================================================================
--- gnucash/trunk/src/backend/sql/gnc-book-sql.c 2010-01-30 22:57:55 UTC (rev 18589)
+++ gnucash/trunk/src/backend/sql/gnc-book-sql.c 2010-01-30 22:59:37 UTC (rev 18590)
@@ -149,8 +149,10 @@
pBook = gnc_book_new();
}
+ qof_book_begin_edit( pBook );
gnc_sql_load_object( be, row, GNC_ID_BOOK, pBook, col_table );
gnc_sql_slots_load( be, QOF_INSTANCE(pBook) );
+ qof_book_commit_edit( pBook );
qof_instance_mark_clean( QOF_INSTANCE(pBook) );
}
Modified: gnucash/trunk/src/libqof/qof/qofbook.c
===================================================================
--- gnucash/trunk/src/libqof/qof/qofbook.c 2010-01-30 22:57:55 UTC (rev 18589)
+++ gnucash/trunk/src/libqof/qof/qofbook.c 2010-01-30 22:59:37 UTC (rev 18590)
@@ -461,6 +461,36 @@
return FALSE;
}
+void
+qof_book_begin_edit (QofBook *book)
+{
+ qof_begin_edit(&book->inst);
+}
+
+static void commit_err (QofInstance *inst, QofBackendError errcode)
+{
+ PERR ("Failed to commit: %d", errcode);
+// gnc_engine_signal_commit_error( errcode );
+}
+
+#if 0
+static void lot_free(QofInstance* inst)
+{
+ GNCLot* lot = GNC_LOT(inst);
+
+ gnc_lot_free(lot);
+}
+#endif
+
+static void noop (QofInstance *inst) {}
+
+void
+qof_book_commit_edit(QofBook *book)
+{
+ if (!qof_commit_edit (QOF_INSTANCE(book))) return;
+ qof_commit_edit_part2 (&book->inst, commit_err, noop, noop/*lot_free*/);
+}
+
/* QofObject function implementation and registration */
gboolean qof_book_register (void)
{
Modified: gnucash/trunk/src/libqof/qof/qofbook.h
===================================================================
--- gnucash/trunk/src/libqof/qof/qofbook.h 2010-01-30 22:57:55 UTC (rev 18589)
+++ gnucash/trunk/src/libqof/qof/qofbook.h 2010-01-30 22:59:37 UTC (rev 18590)
@@ -278,6 +278,9 @@
*/
gint64 qof_book_get_counter (const QofBook *book, const char *counter_name);
+void qof_book_begin_edit(QofBook *book);
+void qof_book_commit_edit(QofBook *book);
+
/** deprecated */
#define qof_book_get_guid(X) qof_entity_get_guid (QOF_INSTANCE(X))
More information about the gnucash-changes
mailing list