Hello RobM,
Thank you for your investigations.
To make the code smaller, one compromise would be that the skin only manages the "use default" function?
In that case, an idea would be to define a template common to all skins, that users could fill in manually, with a text editor?
I experimented with common templates several years ago, with some success back then. The problem is that although skins can use common templates, the final 'look' depends on the skins styling code. The styling code can't be common with 100% success.
I have reduced the code some more, and if I new more than I do I might be able to get it even simpler.
If you want to have a play try the attached customised Missive skin.
Open a test project and select the skin, then add the 'AboutTest.htt' file.
Open the page and fill in some sections, close the template and make the album.
Delete the template and then add it again, it will be blank.
Fill in some fields again - add a comment and a title. Click the 'Save settings as defaults' button and close the template. Make album and view the result. Delete the template and then add it again.
Open the template and it should have the template's 'default' values - but not yet the title or comment. Close the template, make album and view the album again. The title and comment should be shown (in jAlbum if not shown do a view refresh).
You can change the page settings and they will remain as set, adding the template to another project would still load the default values. I will add a 'Delete defaults' button, but for now you need to change/delete field entries and save as default or manually delete the files.
What I have done:
I get the config directory location and then make some file references to:
templateDefaults, missiveTemplates and about.properties.
I then check if the about.properties file exists and then set values for the gui components.
If no file the components are empty, if the file exists it reads the saved settings.
If the user presses the 'Save settings as defaults' button I write out the settings, title and comment to the 'about.properties' file (configDir/templateDefaults/missiveTemplates/about.properties)
Other templates would be written to the skin's 'templates' directory.
I'd be interested in knowing if you prefer the external tool or this approach - no guarantee though that any skin developer would implement this idea.