provide per-transaction cancel of autofill, with ESC, initial backspace, or anything else that works
It should be possible to cancel autofill for a particular transaction on the fly. Autofill works very well for some kinds of transactions and very badly for others, like department store purchases that have a different category for each purchase.
The change I'm urging is that if a description ends in a space, then no quickfill occurs for that transaction. The test is not performed until the user tabs or mouses over to the next field, so no dynamic monitoring of keystrokes is needed. Since ending a description in a space has no other use, or at least none that I can think of, this is a natural and unobtrusive convention, with the additional property that it is unlikely to be invoked accidentally.
As it happens, this behavior is already in Gnucash -- except that it works only once. If you follow the description by a space, it won't be quickfilled the first time you do that. But next time, the description with its space will be quickfilled. You can, of course, add two spaces. And again, that will work, but just once.
A much better way to achieve this, which I've suggested in a separate feature request, is to have a trailing space cancel quickfill for any transaction. The test would be made at the moment when you move to another field, either by tabbing or with the mouse. That's convenient, unobtrusive, simple, and not in conflict with anything else (unless you really think that descriptions ending in a space are useful by themselves).
David L Carlson commented
cstim's suggestion of entering the category first seems like a pretty good work-around for many cases. Another trick that I sometimes use is to start by typing 'z' before pasting or typing the text that I really want, then ctrl-home, delete.
Terry Orzechowski commented
I spend most of my time deleting autofill information. I need a way to cancel it temporarily or on a per Register basis. For example, when I enter sales I enter what people bought and it never happens that 2 times in a row people buy the same thing. When I buy things from the grocery store I enter each purchase line item by line item. I never buy exactly the same thing for the same price. I am running a Restaraunt.
I would love something like this in place. I think backspace is a better choice than escape; escape often serves to close or exit a window. David Carlson's suggestion of a drop down list would be nice.
I also wonder whether there is a way to prevent certain types of transactions from being added to the Quickfill list. I import a lot of transactions from my bank, and would rather use my own capitalization than the all caps entry from my bank. Unfortunately, these imported entries are added, and take precedence, since the Quickfill gives priority to the newer transaction.
Once autofill is turned off for a transaction, it should remain off so that it isn't turned on again by accident. If you really want it, you can just start the transaction over.
Being able to cancel unwanted splitting is particularly vital.
I'd like the option with an undo as suggested by T Trussell
David L Carlson commented
Suppose that when the auto-fill would be triggered it displayed a drop down list of choices, one of which was to cancel, and others would be whatever the various other auto-fill choices fit the situation. Continuing to type would refresh that list. When the list is displayed the up and down arrows would navigate that list.
Tommy Trussell commented
I just added this to the UNDO request -- what if you use the UNDO feature to revert the autofill in the same way that OpenOffice will revert an autocorrect or autoformat.
Scenario: Type the description, press Tab, and when you see the autofilled transaction, you can invoke undo (via ctrl-z or menu) and the autofill is removed but not the description you just typed. If you invoke undo a second time, the transaction could be reverted.
Admincstim (Core Developer, GnuCash) commented
The proposed feature would be a useful enhancement, indeed.
Currently, you can work around this issue by first entering the destination account and entering the description in a second step. The auto-completion of the destination account will not trigger anymore if there is already something in that field. Nevertheless I agree there is still room for improvement.
Colin Scott commented
There are two separate aspects to the autofill problem - the annoyance with entering text, and the annoyance with reproducing all the splits from an earlier transaction. Sometimes you want the auto-text, but not the auto-splits! So we need two separate solutions. Note that getting rid of the auto-splits should ideally remove *all* splits, unlike the current "delete transaction splits" approach, which leaves one split complete with a split amount. At the very least the split amount should be zeroed ...
The cancellation mechanism should be something that is easy to use but does not conflict with any existing semantics. Backspace at the beginning of the description, or backspacing over the description and adding one more backspace, meets that requirement. ESC does also, with the additional possibility of a second ESC turning autofill back on.