class MenuStringParameter(qt_parameters.StringParameter):
def _build_menu(self, content: Collection, menu: QtWidgets.QMenu | None = None) -> QtWidgets.QMenu:
if menu is None:
menu = QtWidgets.QMenu(self)
if isinstance(content, Sequence):
content = {i: i for i in content}
for label, data in content.items():
if isinstance(data, Mapping):
sub_menu = menu.addMenu(label)
self._build_menu(data, sub_menu)
# ---------------------------------------------------------------
# Proposed change:
elif isinstance(data, QtWidgets.QAction):
menu.addAction(data)
# ---------------------------------------------------------------
else:
action = QtGui.QAction(label, self)
action.setData(data)
action.triggered.connect(partial(self._action_triggered, action))
menu.addAction(action)
return menu