From 7fcba7a485770fd83335d97e0282f841472dc0ab Mon Sep 17 00:00:00 2001 From: Talley Lambert Date: Sun, 20 Aug 2023 09:52:14 -0400 Subject: [PATCH] fix: remove dupes/aliases in QEnumCombo (#190) * fix: remove dupes/aliases in QEnumCombo * test: add test --- src/superqt/combobox/_enum_combobox.py | 4 +++- tests/test_enum_comb_box.py | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/superqt/combobox/_enum_combobox.py b/src/superqt/combobox/_enum_combobox.py index 211f0c6..fb12793 100644 --- a/src/superqt/combobox/_enum_combobox.py +++ b/src/superqt/combobox/_enum_combobox.py @@ -49,7 +49,9 @@ class QEnumComboBox(QComboBox): self._allow_none = allow_none and enum is not None if allow_none: super().addItem(NONE_STRING) - super().addItems(list(map(_get_name, self._enum_class.__members__.values()))) + names = map(_get_name, self._enum_class.__members__.values()) + _names = dict.fromkeys(names) # remove duplicates/aliases, keep order + super().addItems(list(_names)) def enumClass(self) -> Optional[EnumMeta]: """Return current Enum class.""" diff --git a/tests/test_enum_comb_box.py b/tests/test_enum_comb_box.py index 2ee24df..82c23f9 100644 --- a/tests/test_enum_comb_box.py +++ b/tests/test_enum_comb_box.py @@ -11,6 +11,8 @@ class Enum1(Enum): b = 2 c = 3 + ALIAS = a + class Enum2(Enum): d = 1