Hi Dave,
Please find the patch adding support for the preferences/options dialog.
Initial patch was shared by Khushboo with me, but - I made some design changes.
With this patch:
* Each preferences can be saved/retrieved per module basis.
* An object is created which represent that module in the preferences by default.
* Module needs to override the register_preferences(...) method to register certain preference.
* You can access other modules preference using static methods of the preferences.
* A collection module (PGChildModule) will register show_node_<NODE_TYPE>, and also refers the 'show_system_objects' in it, which can be accessed using self.pref_show_system_objects, or can use class property 'show_system_obejcts', also there is one more property 'show_node', which uses the 'pref_show_node' object of that module.