OK thanks for all the opinions. As usual with collaborative projects, it's a bit messy, we don't all have the very same optics, which I think is probably a good thing!

I would agree with John that undo/redo is very challenging if it's applicable to all actions with "infinite" undo/redo. I've thought about it a bit, and there's nothing that seems easy to me that would give a fully functional undo/redo. Even if you saved the state of the database for every action (granularity to be defined!) restoring it, and going back exactly where you were would not be a simple matter...

In any case, thanks for chiming in.
Jean


On 7/26/2020 8:52 PM, John Ralls wrote:
There's already a cancel button for the first part.

There's no undelete, but it wouldn't be to hard to implement: Just make a 
second set of QofContainers to hold deleted objects until the end of the 
session and provide a dialog to list them and allow them to be returned to the 
primary container.

The normal undo-redo stacks common in other programs would be a bit more 
complex but the technique is well known, it's just really tedious to implement. 
Where the problem gets quite a bit more interesting (read: complex and 
difficult with decisions about depth and granularity) is when the undo stack 
reaches back into already committed transactions. Do you save a copies of each 
object for every keystroke or treat an edited transaction like a deleted one? 
How do you handle an import of many transactions, some new and some 
matched-and-updated? That's just the beginning, GnuCash is complicated. It 
could easily turn into several years work for a skilled software engineer; 
definitely not a job for a hacker.

Regards,
John Ralls


On Jul 26, 2020, at 7:59 PM, Bruce Irving via gnucash-devel 
<gnucash-devel@gnucash.org> wrote:

While I'm not a professional, there is a point about undo that I would like to 
see - sooner than later:  I start to edit a transaction but, before I commit it 
(press enter or move to another transaction). I realize that I didn't want to 
do that and would like to cancel my edit, restoring the transaction to what it 
was.

And, I have accidentally deleted a transaction on more than one occasion.  It 
would be great if I could restore that transaction rather than completely 
re-enter it, hoping I remembered what was in it - I don't!
Bruce
Preach the Gospel wherever you go.
If necessary, use words.

Hi Jean,

Am 26.07.20 um 19:57 schrieb jean laroche:
I'm curious about something:
If you're a GC dev, contributing code to the project, what's the
feature(s) you'd like to see added to GC?
I'm only contributing a bit, but I'll offer my 3 top wishes:
- Undo/(redo)
- Multi-transaction (bulk) editing
- Multi-account (bulk) editing
All three are violations of strict accounting rules. We often talk about
"In the times of ink and paper", not graphite (pencils). Some
governments require the immutabiity of once written records.

So I see at least a better auditing system as a requirement before your
suggestions. The current logging would need a review. It should cover
all changes, not only simple transactions. ISTR business actions and
structural changes are not recorded.

I'm curious specifically about devs because they typically have a
different perspective on the project than users have.
Jean
About the future I almost agree with Johns suggestions.

Regards
Frank

_______________________________________________
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel
_______________________________________________
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel

_______________________________________________
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel

Reply via email to