def _initRCMenu(self): ################################################################################################################ # START EDITING HERE ################################################################################################################ ## ADD CUSTOM ACTIONS FOR CUSTOM SANITY CHECKS HERE ## Define the custom actions now that the config will query each check to show or hide based on the ## type of check done nodes = sanity.loadNodeData() suffixButtons = { "AddGeoSuffix": {"suffix": CONST.GEOMETRY_SUFFIX["master"], "iconName": "iconmonstr-plus-1-240"}, "AddGrpSuffix": {"suffix": CONST.GROUP_SUFFIX["master"], "iconName": "iconmonstr-plus-1-240"}, "AddCrvSuffix": {"suffix": CONST.NURBSCRV_SUFFIX["master"], "iconName": "iconmonstr-plus-1-240"}, "AddRigCtrlSuffix": {"suffix": CONST.RIG_CTRL_SUFFIX["master"], "iconName": "iconmonstr-plus-1-240"}, "AddJointSuffix": {"suffix": CONST.JOINT_SUFFIX["master"], "iconName": "iconmonstr-plus-1-240"}, } ## Fetch a list of valid node suffixes for adding to the UI nodeSuffixes = [] for nType, data in nodes["nodes"].items(): for eachN, nSuffixes in data.items(): for eachSfx in nSuffixes: nodeSuffixes.extend([eachSfx]) for eachSFX in list(set(nodeSuffixes)): suffixButtons[eachSFX] = {"suffix": eachSFX, "iconName": "iconmonstr-plus-1-240"} ## Now add all the available suffixes for renaming self.actions = [] for suffixName, sfxdata in suffixButtons.items(): self.action = QAction('Add "_{}" suffix'.format(sfxdata["suffix"]), self) self.action.setObjectName(suffixName) self.action.setIcon(QIcon("{}/{}.png".format(CONST.ICONPATH, sfxdata["iconName"]))) self.action.triggered.connect(partial(self.addSuffix, suffix=sfxdata["suffix"])) self.actions.extend([self.action]) ## Renamer self.renameAction = QAction("Rename", self) self.renameAction.setObjectName("rename") self.renameAction.setIcon(QIcon("{}/iconmonstr-tumblr-4-240.png".format(CONST.ICONPATH))) self.renameAction.triggered.connect(partial(self.renamePopUpUI)) self.actions.extend([self.renameAction]) ## Fix ShapeName self.fixShapeNameAction = QAction("Fix Shape Name", self) self.fixShapeNameAction.setObjectName("renameShape") self.fixShapeNameAction.setIcon(QIcon("{}/iconmonstr-tumblr-4-240.png".format(CONST.ICONPATH))) self.fixShapeNameAction.triggered.connect(partial(self.fixShapeName)) self.actions.extend([self.fixShapeNameAction]) ## Delete Construction History self.deleteCHAction = QAction("Delete ConsHist", self) self.deleteCHAction.setObjectName("constructionHistory") self.deleteCHAction.setIcon(QIcon("{}/iconmonstr-trash-can-5-240.png".format(CONST.ICONPATH))) self.deleteCHAction.triggered.connect(partial(self.processItems, case="deleteCH")) self.actions.extend([self.deleteCHAction]) ## Remove Last Char from name self.remLstCharAction = QAction("Remove Last Char", self) self.remLstCharAction.setObjectName("removeLastCharacter") self.remLstCharAction.setIcon(QIcon("{}/iconmonstr-trash-can-5-240.png".format(CONST.ICONPATH))) self.remLstCharAction.triggered.connect(partial(self.removeLastCharFromName)) self.actions.extend([self.remLstCharAction]) ## Remove shapes from list self.removeShapesAction = QAction("Remove Shapes from List", self) self.removeShapesAction.setObjectName("removeShapes") self.removeShapesAction.setIcon(QIcon("{}/iconmonstr-eye-3-icon-256.png".format(CONST.ICONPATH))) self.removeShapesAction.triggered.connect( partial(self.removeFromList, [CONST.GEOMETRY_SUFFIX["master"]] + CONST.GEOMETRY_SUFFIX["secondary"]) ) self.actions.extend([self.removeShapesAction]) ################################################################################################################ # STOP EDITING HERE ################################################################################################################ ReportWindow._initRCMenu(self) ## Add the custom menu items to this report view actionsToDisplay = self.config["rightClickCheckSubMenus"][self.label] for eachAction in self.actions: if eachAction.objectName() in actionsToDisplay: self.rightClickMenu.addAction(eachAction)
def __init__(self, parent=None, label=""): self.config = loadConfig() self.data = [] self.label = label ReportWindow.__init__(self, parent, label)