diff --git a/cura/Settings/SidebarCustomMenuItemsModel.py b/cura/Settings/SidebarCustomMenuItemsModel.py index 71abb0d2ed..8c82d288bf 100644 --- a/cura/Settings/SidebarCustomMenuItemsModel.py +++ b/cura/Settings/SidebarCustomMenuItemsModel.py @@ -5,12 +5,14 @@ class SidebarCustomMenuItemsModel(ListModel): NameRole = Qt.UserRole + 1 ActionsRole = Qt.UserRole + 2 MenuItemRole = Qt.UserRole + 3 + MenuItemIconNameRole = Qt.UserRole + 5 def __init__(self, parent=None): super().__init__(parent) self.addRoleName(self.NameRole, "name") self.addRoleName(self.ActionsRole, "actions") self.addRoleName(self.MenuItemRole, "menu_item") + self.addRoleName(self.MenuItemIconNameRole, "iconName") self._updateExtensionList() def _updateExtensionList(self)-> None: @@ -19,14 +21,15 @@ class SidebarCustomMenuItemsModel(ListModel): self.appendItem({ "name": menu_item["name"], + "iconName": menu_item["iconName"], "actions": menu_item["actions"], "menu_item": menu_item["menu_item"] }) - @pyqtSlot(str, "QVariantList") - def callMenuItemMethod(self, menu_item_name: str, menu_item_actions: list)-> None: + @pyqtSlot(str, "QVariantList", "QVariantMap") + def callMenuItemMethod(self, menu_item_name: str, menu_item_actions: list, kwargs)-> None: for item in self._items: if menu_item_name == item["name"]: for method in menu_item_actions: - getattr(item["menu_item"], method)() + getattr(item["menu_item"], method)(kwargs) break \ No newline at end of file diff --git a/resources/qml/Settings/SettingView.qml b/resources/qml/Settings/SettingView.qml index 30160cb5fb..88876123fe 100644 --- a/resources/qml/Settings/SettingView.qml +++ b/resources/qml/Settings/SettingView.qml @@ -568,9 +568,10 @@ Item MenuItem { text: model.name + iconName: model.iconName onTriggered: { - customMenuItems.model.callMenuItemMethod(name, model.actions) + customMenuItems.model.callMenuItemMethod(name, model.actions, {"key": contextMenu.key}) } } onObjectAdded: contextMenu.insertItem(index, object)