[Gnucash-changes] Spruce up the delete window dialog to make it
more HIG compliant.
Chris Shoemaker
c.shoemaker at cox.net
Wed Jul 20 16:57:34 EDT 2005
On Wed, Jul 20, 2005 at 04:09:38PM -0400, Derek Atkins wrote:
> 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 disagree. Moving the cursor through the register (which creates a
blank split on each Transaction I move through) should not call
xaccTransBeginEdit (and presumably xaccTransRollback) for each
Transaction. xaccTransBeginEdit should only be called once the user
starts to change data.
>
> 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.
If the Rollback doesn't dirty anything, then you may be right, but I
don't think this is the best solution. However, it may be better than
what's there.
-chris
>
> > -chris
> >
> > > David
>
> -derek
>
> --
> 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