While I have made several additional changes to the core that I will submit at a later date, this is a fairly minimal set of changes required for a plugin I am working on (KPEntryTemplates). It modifies two classes PwEntryForm, adding an event for when it is loaded and when it is saving out, exposing the ability to manipulate fields on the form, and finally exposes its TabControl so plugins can add tab pages to the form.
Secondly it modifies EntryTemplates adding an event right before the creation of a new entry based on a template allowing the user to edit the entry before its shown to the user. This will allow plugins that want to extend the template system to do whatever additional functionality on the creation of a child.
The patch is attached.
The reason for this minimal patchset is to get it included in the next release without hassle. I do not know when this will be, but I figured it it was soon the smaller the better.
In return once a new release happens (assuming the patch is accepted) I can release my new plugin: KPEntryTemplates. You can see some screenshots at:
The plugin basically allows the user to create simple GUI's around the fields for easy entry. The great part about the plugin is none of the data is stored outside the entry and _minimal_ extra data is stored. In a child of a template the only extra data stored is a single additional String that is the GUID of the parent that is the template for it. In the template it stores several extra strings for the GUI but again they are just stored as strings in the entry.
It allows wrapping not just additional string fields, but also wrapping the standard fields in the gui. It nicely adds itself just as another tab on the PwEntryForm. Using it is fairly simple if you look at the first window that is what you see if an entry is neither a child of a template or a template. Init As A template just marks it as a template, and shows the gui builder (screen shot #2 and #4 and #6). Then for child entries you can attach them manually to a template by clicking set template parent (or if you use the built in new template functionality this is automatically done) so then you just see the gui as decided by the template (screenshot #3 and #5). Screenshot #6 shows the options of the GUI Builder.
If you have any comments/suggestions on the plugin let me know I tried to figure out the various GUI types people would want, I debated on checkbox but couldn't come up with a template that would use it so didn't add it. Otherwise it is fairly good to go as soon as a keepass release has this patch integrated.