Example #1
0
 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
Example #2
0
    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())