[Gnucash-changes] Spruce up the delete window dialog to make it more HIG compliant.

Derek Atkins warlord at MIT.EDU
Wed Jul 20 16:09:38 EDT 2005

Quoting Chris Shoemaker <c.shoemaker at cox.net>:

> On Wed, Jul 20, 2005 at 03:49:03PM -0400, David Hampton wrote:
> > On Wed, 2005-07-20 at 15:03 -0400, Chris Shoemaker wrote:
> > 
> > > Incidentally, is this behavior specific to g2?  I've never noticed it
> > > in 1.x, but I imagine the register code hasn't changed much.
> > 
> > It was added in HEAD and pulled into g2.  Derek thinks the blank split
> > code should be rewritten.  I'm for reverting the change to the
> > transaction scrubbing code that created the problem.
>   Nice to know I'm not imagining things.  The blank split code *is*
> particularly bad, but I think the effort to fix/rewrite it in the
> current register is probably 50% of the effort to rewrite the whole
> register.
>   I looked pretty deeply into the register code a couple months ago
> and I don't remember seeing any relatioship between transaction
> scrubbing code and the transaction dirtying.  Could you point me
> toward what you mean?

xaccTransCommitEdit() calls xaccScrubTrans() which calls a bunch of other
functions that add the extra splits and dirty the books.

The problem is that the register creates the blank transaction and blank split
and then calls xaccTransBeginEdit() and xaccTransCommitEdit() immediately,
before the user has created any data in the split.  This causes the additional
split(s) to get created and commited, too, thereby dirtying the book.

What NEEDS to happen is that the register should call xaccTransBeginEdit() when
it creates the blank split/trans but _NOT_ call xaccTransCommitEdit() until
after the user actually enters data into the thing.

I do NOT believe this is 50% of a register rewrite.  Far from it; I think it's
maybe a day or two of work for someone who doesn't know the register to move
that CommitEdit() and make sure the Begin's and Commit's are properly balanced
in all cases.

I am fairly confident that this will solve the problem.

> -chris 
> >  David


       Derek Atkins, SB '93 MIT EE, SM '95 MIT Media Laboratory
       Member, MIT Student Information Processing Board  (SIPB)
       URL: http://web.mit.edu/warlord/    PP-ASEL-IA     N1NWH
       warlord at MIT.EDU                        PGP key available

More information about the gnucash-devel mailing list