@@ -41,15 +41,19 @@ def _qgssettings_enum_value(self, key, enumDefaultValue, section=QgsSettings.NoS
41
41
meta_enum = metaEnumFromValue (enumDefaultValue )
42
42
if meta_enum is None or not meta_enum .isValid ():
43
43
# 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__ ))
45
46
46
47
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)
48
49
meta_enum_2 = metaEnumFromValue (enumDefaultValue )
49
50
(enu_val , ok ) = meta_enum_2 .keyToValue (str_val )
50
51
51
52
if not ok :
52
53
enu_val = enumDefaultValue
54
+ else :
55
+ # cast to the enum class
56
+ enu_val = enumDefaultValue .__class__ (enu_val )
53
57
54
58
return enu_val
55
59
@@ -107,7 +111,7 @@ def _qgssettings_flag_value(self, key, flagDefaultValue, section=QgsSettings.NoS
107
111
raise ValueError ("could not get the meta enum for given enum default value (type: {})" .format (type (flagDefaultValue )))
108
112
109
113
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)
111
115
meta_enum_2 = metaEnumFromValue (flagDefaultValue )
112
116
(flag_val , ok ) = meta_enum_2 .keysToValue (str_val )
113
117
0 commit comments