Skip to content

Commit 9f8bcd5

Browse files
committed
Fix another crash for PyGObject < 3.50.0
1 parent 21dbc95 commit 9f8bcd5

File tree

2 files changed

+16
-3
lines changed

2 files changed

+16
-3
lines changed

batcher/pygimplib/pypdb.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -450,8 +450,14 @@ def __call__(self, *args, **kwargs):
450450
# GIMP internally transforms GEGL enum values to `Gimp.Choice` values:
451451
# https://gitlab.gnome.org/GNOME/gimp/-/merge_requests/2008
452452
if should_transform_enum_to_choice:
453-
processed_value = (
454-
type(self._properties[arg_name].default_value)(arg_value).value_nick)
453+
# For PyGObject >= 3.50.0, `default_value` returns an int rather than
454+
# an enum value. `get_default_value()` is not available in < 3.50.0.
455+
if hasattr(self._properties[arg_name], 'get_default_value'):
456+
enum_default_value = self._properties[arg_name].get_default_value()
457+
else:
458+
enum_default_value = self._properties[arg_name].default_value
459+
460+
processed_value = type(enum_default_value)(arg_value).value_nick
455461
else:
456462
processed_value = arg_value
457463

batcher/pygimplib/setting/settings.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1380,7 +1380,14 @@ def _process_enum_type(self, enum_type):
13801380
procedure_param = enum_type[1]
13811381

13821382
if procedure_param is not None:
1383-
processed_enum_type = type(procedure_param.default_value)
1383+
# For PyGObject >= 3.50.0, `default_value` returns an int rather than
1384+
# an enum value. `get_default_value()` is not available in < 3.50.0.
1385+
if hasattr(procedure_param, 'get_default_value'):
1386+
enum_default_value = procedure_param.get_default_value()
1387+
else:
1388+
enum_default_value = procedure_param.default_value
1389+
1390+
processed_enum_type = type(enum_default_value)
13841391
else:
13851392
raise TypeError(
13861393
f'procedure "{enum_type[0]}" or its property "{enum_type[1]}"'

0 commit comments

Comments
 (0)