Thanks a lot for the tip! On 03/09/2012 11:49 AM, Alexandre Badez wrote:
Hi,By the way instead of: if self.defaultValue.has_key(setting) is False You should write this: if setting not in self.defaultValue: It's more "pythonic" and work with list, tuple, set and every things that implement the __contains__ method ( http://docs.python.org/reference/datamodel.html?highlight=__contains__#object.__contains__ ) On Fri, Mar 9, 2012 at 11:42, Denis Rouzaud<[email protected]> wrote:Hi all, I just wanted to share an idea I had today. In my plugins, I always had the problem of never knowing the default values I had set for the settings (the info being spread all over the code files), and it was always a pain to change a default value (I had to search in all my files for all the calls for the setting in question). So, I created a class with a fake inheritance of QSettings: class MyPluginSettings(): def __init__(self): self.settings = QSettings("MyPlugin","MyPlugin") self.defaultValue = { "mySettingValue1" : 0, "SomeTextSetting" : "hello", "Value4" : 13 } def value(self,setting): if self.defaultValue.has_key(setting) is False: raise NameError('MyPlugin has no setting %s' % setting) return self.settings.value(setting,self.defaultValue.get(setting)) def setValue(self,setting,value): if self.defaultValue.has_key(setting) is False: raise NameError('MyPlugin has no setting %s' % setting) self.settings.setValue(setting,value) You set self.settings = MyPluginSettings() in your plugin, and when you do self.settings.value("mySettingValue1"), you don't need to specify the default value. The class will raise an exception if you call for an undefined setting. This will avoid typos in settings calls and therefore multiple definitions of the same setting. Don't know if it's useful for you, but I was quite happy with this solution.... Greetings, Denis _______________________________________________ Qgis-developer mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/qgis-developer
_______________________________________________ Qgis-developer mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/qgis-developer
