forked from openlp/openlp
Fix bug #1095268 - issue with QPyNullVariant.
This commit is contained in:
parent
39be72c151
commit
fee8ae78bb
@ -141,10 +141,21 @@ class Settings(QtCore.QSettings):
|
|||||||
if defaultValue is None and not super(Settings, self).contains(key):
|
if defaultValue is None and not super(Settings, self).contains(key):
|
||||||
return None
|
return None
|
||||||
setting = super(Settings, self).value(key, defaultValue)
|
setting = super(Settings, self).value(key, defaultValue)
|
||||||
# An empty list saved to the settings results in a None type being
|
# On OS X (and probably on other platforms too) empty value from QSettings
|
||||||
# returned.
|
# is represented as type PyQt4.QtCore.QPyNullVariant. This type has to be
|
||||||
|
# converted to proper 'None' Python type.
|
||||||
|
if isinstance(setting, QtCore.QPyNullVariant) and setting.isNull():
|
||||||
|
setting = None
|
||||||
|
# Handle 'None' type (empty value) properly.
|
||||||
if setting is None:
|
if setting is None:
|
||||||
return []
|
# An empty string saved to the settings results in a None type being
|
||||||
|
# returned. Convert it to empty unicode string.
|
||||||
|
if isinstance(defaultValue, unicode):
|
||||||
|
return u''
|
||||||
|
# An empty list saved to the settings results in a None type being
|
||||||
|
# returned.
|
||||||
|
else:
|
||||||
|
return []
|
||||||
# Convert the setting to the correct type.
|
# Convert the setting to the correct type.
|
||||||
if isinstance(defaultValue, bool):
|
if isinstance(defaultValue, bool):
|
||||||
if isinstance(setting, bool):
|
if isinstance(setting, bool):
|
||||||
|
Loading…
Reference in New Issue
Block a user