Skip to content

Commit ad00020

Browse files
committed
QgsSettings.enumValue cast to enum
1 parent 01681ab commit ad00020

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

python/core/additions/qgssettings.py

+7-3
Original file line numberDiff line numberDiff line change
@@ -41,15 +41,19 @@ def _qgssettings_enum_value(self, key, enumDefaultValue, section=QgsSettings.NoS
4141
meta_enum = metaEnumFromValue(enumDefaultValue)
4242
if meta_enum is None or not meta_enum.isValid():
4343
# this should not happen
44-
raise ValueError("could not get the meta enum for given enum default value (type: {})".format(type(enumDefaultValue)))
44+
raise ValueError("could not get the meta enum for given enum default value (type: {})"
45+
.format(enumDefaultValue.__class__))
4546

4647
str_val = self.value(key, meta_enum.valueToKey(enumDefaultValue), str, section)
47-
# need a new meta enum as QgsSettings.value is making a copy and leads to seg fault (proaby a PyQt issue)
48+
# need a new meta enum as QgsSettings.value is making a copy and leads to seg fault (probably a PyQt issue)
4849
meta_enum_2 = metaEnumFromValue(enumDefaultValue)
4950
(enu_val, ok) = meta_enum_2.keyToValue(str_val)
5051

5152
if not ok:
5253
enu_val = enumDefaultValue
54+
else:
55+
# cast to the enum class
56+
enu_val = enumDefaultValue.__class__(enu_val)
5357

5458
return enu_val
5559

@@ -107,7 +111,7 @@ def _qgssettings_flag_value(self, key, flagDefaultValue, section=QgsSettings.NoS
107111
raise ValueError("could not get the meta enum for given enum default value (type: {})".format(type(flagDefaultValue)))
108112

109113
str_val = self.value(key, meta_enum.valueToKey(flagDefaultValue), str, section)
110-
# need a new meta enum as QgsSettings.value is making a copy and leads to seg fault (proaby a PyQt issue)
114+
# need a new meta enum as QgsSettings.value is making a copy and leads to seg fault (probably a PyQt issue)
111115
meta_enum_2 = metaEnumFromValue(flagDefaultValue)
112116
(flag_val, ok) = meta_enum_2.keysToValue(str_val)
113117

0 commit comments

Comments
 (0)