def load_view_menu(self): i = 1 for id_view in sorted( config["views"].keys(), key=lambda k: config["views"][k]["position"] ): view = config["views"][id_view] if view.get("separator", False): self.action_search.addSeparator() action = QAction(view["title"], self) action.setCheckable(True) if i < 10: action.setShortcut(f"ALT+{i}") action.id_view = id_view action.triggered.connect(functools.partial(self.set_view, id_view)) self.action_search.addAction(action) i += 1
def contextMenuEvent(self, event): obj_set = list(set([itm.object_type for itm in self.selected_objects])) menu = QMenu(self) if len(obj_set) == 1: if len(self.selected_objects) == 1: if self.selected_objects[0]["item_role"] == "placeholder": solvers = self.playout_config.get("solvers", []) if solvers: solver_menu = menu.addMenu("Solve using...") for solver in solvers: action_solve = QAction(solver.capitalize(), self) action_solve.setStatusTip( "Solve this placeholder using {}".format( solver)) action_solve.triggered.connect( functools.partial(self.on_solve, solver)) solver_menu.addAction(action_solve) if obj_set[0] == "item" and self.selected_objects[0][ "id_asset"]: action_trim = QAction("Trim", self) action_trim.setStatusTip("Trim selected item") action_trim.triggered.connect(self.on_trim) menu.addAction(action_trim) if obj_set[0] == "item" and ( self.selected_objects[0]["id_asset"] or self.selected_objects[0]["item_role"] == "live"): mode_menu = menu.addMenu("Run mode") action_mode_auto = QAction("&Auto", self) action_mode_auto.setStatusTip("Set run mode to auto") action_mode_auto.setCheckable(True) action_mode_auto.setChecked( self.selected_objects[0]["run_mode"] == RunMode.RUN_AUTO) action_mode_auto.triggered.connect( functools.partial(self.on_set_mode, RunMode.RUN_AUTO)) mode_menu.addAction(action_mode_auto) action_mode_manual = QAction("&Manual", self) action_mode_manual.setStatusTip("Set run mode to manual") action_mode_manual.setCheckable(True) action_mode_manual.setChecked( self.selected_objects[0]["run_mode"] == RunMode.RUN_MANUAL) action_mode_manual.triggered.connect( functools.partial(self.on_set_mode, RunMode.RUN_MANUAL)) mode_menu.addAction(action_mode_manual) action_mode_skip = QAction("&Skip", self) action_mode_skip.setStatusTip("Set run mode to skip") action_mode_skip.setCheckable(True) action_mode_skip.setChecked( self.selected_objects[0]["run_mode"] == RunMode.RUN_SKIP) action_mode_skip.triggered.connect( functools.partial(self.on_set_mode, RunMode.RUN_SKIP)) mode_menu.addAction(action_mode_skip) if self.selected_objects[0]["id_asset"]: mode_menu.addSeparator() action_mode_loop = QAction("&Loop", self) action_mode_loop.setStatusTip("Loop item") action_mode_loop.setCheckable(True) action_mode_loop.setChecked( bool(self.selected_objects[0]["loop"])) action_mode_loop.triggered.connect(self.on_set_loop) mode_menu.addAction(action_mode_loop) elif obj_set[0] == "event" and len(self.selected_objects) == 1: mode_menu = menu.addMenu("Run mode") action_mode_auto = QAction("&Auto", self) action_mode_auto.setStatusTip("Set run mode to auto") action_mode_auto.setCheckable(True) action_mode_auto.setChecked( self.selected_objects[0]["run_mode"] == RunMode.RUN_AUTO) action_mode_auto.triggered.connect( functools.partial(self.on_set_mode, RunMode.RUN_AUTO)) mode_menu.addAction(action_mode_auto) action_mode_manual = QAction("&Manual", self) action_mode_manual.setStatusTip("Set run mode to manual") action_mode_manual.setCheckable(True) action_mode_manual.setChecked( self.selected_objects[0]["run_mode"] == RunMode.RUN_MANUAL) action_mode_manual.triggered.connect( functools.partial(self.on_set_mode, RunMode.RUN_MANUAL)) mode_menu.addAction(action_mode_manual) action_mode_soft = QAction("&Soft", self) action_mode_soft.setStatusTip("Set run mode to soft") action_mode_soft.setCheckable(True) action_mode_soft.setChecked( self.selected_objects[0]["run_mode"] == RunMode.RUN_SOFT) action_mode_soft.triggered.connect( functools.partial(self.on_set_mode, RunMode.RUN_SOFT)) mode_menu.addAction(action_mode_soft) action_mode_hard = QAction("&Hard", self) action_mode_hard.setStatusTip("Set run mode to hard") action_mode_hard.setCheckable(True) action_mode_hard.setChecked( self.selected_objects[0]["run_mode"] == RunMode.RUN_HARD) action_mode_hard.triggered.connect( functools.partial(self.on_set_mode, RunMode.RUN_HARD)) mode_menu.addAction(action_mode_hard) if "item" in obj_set: if len(self.selected_objects ) == 1 and self.selected_objects[0]["item_role"] in [ "placeholder", "lead_in", "lead_out", "live" ]: pass else: action_send_to = QAction("&Send to...", self) action_send_to.setStatusTip( "Create action for selected asset(s)") action_send_to.triggered.connect(self.on_send_to) menu.addAction(action_send_to) if "event" in obj_set: pass if len(obj_set) > 0: menu.addSeparator() action_delete = QAction("&Delete", self) action_delete.setStatusTip("Delete selected object") action_delete.triggered.connect(self.on_delete) menu.addAction(action_delete) if len(self.selected_objects) == 1: if "event" in obj_set: action_edit = QAction("Edit", self) action_edit.triggered.connect(self.on_edit_event) menu.addAction(action_edit) elif self.selected_objects[0]["item_role"] in [ "placeholder", "live" ]: action_edit = QAction("Edit", self) action_edit.triggered.connect(self.on_edit_item) menu.addAction(action_edit) menu.exec_(event.globalPos())