clear teh dirty flag

git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@9473 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
Linas Vepstas 2003-10-12 01:29:01 +00:00
parent 99b95a507d
commit d5a46f510c
2 changed files with 30 additions and 26 deletions

View File

@ -20,10 +20,10 @@
\********************************************************************/ \********************************************************************/
/* /*
* gnc-be-utils.h -- QOF Backend Utilities * gnc-be-utils.h -- QOF Backend Utilities
* common code used by objects to define begin_edit() and * common code used by objects to define begin_edit() and
* commit_edit() functions. * commit_edit() functions.
* *
* Written by: Derek Atkins <derek@ihtfp.com> * Written by: Derek Atkins <derek@ihtfp.com>
* *
*/ */
@ -37,12 +37,12 @@
/* begin_edit helper /* begin_edit helper
* *
* assumes: * assumes:
* obj->editlevel (int) * obj->editlevel (int)
* obj->book (QofBook*) * obj->book (QofBook*)
* *
* @args: * @args:
* obj: the object to begin editing * obj: the object to begin editing
* type: the object type * type: the object type
* *
* The caller should use this macro first and then perform any other operations. * The caller should use this macro first and then perform any other operations.
*/ */
@ -76,19 +76,20 @@
* Then call PART2. You cannot do anything after PART2. * Then call PART2. You cannot do anything after PART2.
* *
* assumes: * assumes:
* obj->editlevel (int) * obj->editlevel (int)
* obj->book (QofBook*) * obj->book (QofBook*)
* obj->do_free (gboolean) * obj->do_free (gboolean)
* obj->dirty (gboolean)
*/ */
/* /*
* part1 -- deal with the editlevel * part1 -- deal with the editlevel
* *
* assumes: * assumes:
* obj->editlevel (int) * obj->editlevel (int)
* *
* @args: * @args:
* obj: the object being committed * obj: the object being committed
*/ */
#define GNC_COMMIT_EDIT_PART1(obj) { \ #define GNC_COMMIT_EDIT_PART1(obj) { \
@ -108,20 +109,20 @@
* part2 -- deal with the backend * part2 -- deal with the backend
* *
* assumes: * assumes:
* obj->book (QofBook*) * obj->book (QofBook*)
* obj->do_free (gboolean) * obj->do_free (gboolean)
* *
* @args: * @args:
* obj: the object being committed * obj: the object being committed
* type: the type of the object * type: the type of the object
* on_error: a function called if there is a backend error. * on_error: a function called if there is a backend error.
* void (*on_error)(obj, QofBackendError) * void (*on_error)(obj, QofBackendError)
* on_done: a function called after the commit is complete but before * on_done: a function called after the commit is complete but before
* the object is freed. This is where you clear the "dirty" * the object is freed. This is where you clear the "dirty"
* flag, and perform any other operations after the commit. * flag, and perform any other operations after the commit.
* void (*on_done)(obj) * void (*on_done)(obj)
* on_free: a function called if obj->do_free is TRUE. * on_free: a function called if obj->do_free is TRUE.
* void (*on_free)(obj) * void (*on_free)(obj)
*/ */
#define GNC_COMMIT_EDIT_PART2(obj,type,on_error,on_done,on_free) { \ #define GNC_COMMIT_EDIT_PART2(obj,type,on_error,on_done,on_free) { \
QofBackend * be; \ QofBackend * be; \
@ -146,9 +147,10 @@
qof_backend_set_error (be, errcode); \ qof_backend_set_error (be, errcode); \
} \ } \
} \ } \
(on_done)(obj);\ if (on_done) { (on_done)(obj); } \
obj->dirty = FALSE; \
\ \
if ((obj)->do_free) (on_free)(obj); \ if ((obj)->do_free) { (on_free)(obj); } \
} }

View File

@ -1,5 +1,6 @@
/********************************************************************\ /********************************************************************\
* qofobject.h -- the Core Object Registration/Lookup Interface * * qofobject.h -- the Core Object Registration/Lookup Interface *
* *
* This program is free software; you can redistribute it and/or * * This program is free software; you can redistribute it and/or *
* modify it under the terms of the GNU General Public License as * * modify it under the terms of the GNU General Public License as *
* published by the Free Software Foundation; either version 2 of * * published by the Free Software Foundation; either version 2 of *
@ -71,6 +72,7 @@ struct _QofObject
void (*foreach)(QofBook *, QofEntityForeachCB, gpointer); void (*foreach)(QofBook *, QofEntityForeachCB, gpointer);
/* Given a particular object, return a printable string */ /* Given a particular object, return a printable string */
/* Argument should really be QofInstance not gpointer.. */
const char * (*printable)(gpointer obj); const char * (*printable)(gpointer obj);
}; };