Example #1
0
 def update_commands(self, commands):
     if not commands:
         return
     self.inner_widget = QtWidgets.QWidget()
     sp = QtWidgets.QSizePolicy()
     sp.setHorizontalPolicy(QtWidgets.QSizePolicy.Policy.Maximum)
     self.inner_widget.setSizePolicy(sp)
     layout = QtWidgets.QVBoxLayout()
     layout.setSpacing(5)
     for index, item in enumerate(commands, 1):
         if item.item == "command":
             new_item = Command(self.scroll_area,
                                item.command,
                                index,
                                name=item.name)
             layout.addWidget(new_item)
         elif item.item == "loop":
             new_item = Loop(self.scroll_area,
                             item.condition,
                             item.commands,
                             index,
                             name=item.name)
             layout.addWidget(new_item)
     layout.addStretch()
     self.inner_widget.setLayout(layout)
     self.scroll_area.setWidget(self.inner_widget)
     self.scroll_area.setHorizontalScrollBarPolicy(
         QtCore.Qt.ScrollBarAlwaysOff)
     self.inner_widget.setFixedWidth(self.scroll_area.width() - 3)
Example #2
0
    def init_crop(self):
        crop_box = QtWidgets.QGroupBox()
        crop_box.setStyleSheet("QGroupBox{padding-top:17px; margin-top:-18px}")
        crop_layout = QtWidgets.QVBoxLayout()
        self.widgets.crop.top, crop_top_layout = self.build_hoz_int_field(
            "Top  ")
        self.widgets.crop.left, crop_hz_layout = self.build_hoz_int_field(
            "Left  ", right_stretch=False)
        self.widgets.crop.right, crop_hz_layout = self.build_hoz_int_field(
            "    Right  ", left_stretch=False, layout=crop_hz_layout)
        self.widgets.crop.bottom, crop_bottom_layout = self.build_hoz_int_field(
            "Bottom  ", right_stretch=True)

        self.widgets.crop.top.textChanged.connect(lambda: self.page_update())
        self.widgets.crop.left.textChanged.connect(lambda: self.page_update())
        self.widgets.crop.right.textChanged.connect(lambda: self.page_update())
        self.widgets.crop.bottom.textChanged.connect(
            lambda: self.page_update())

        label = QtWidgets.QLabel("Crop",
                                 alignment=(Qt.AlignBottom | Qt.AlignRight))
        label.setStyleSheet("QLabel{color:#777}")
        label.setMaximumHeight(40)
        crop_bottom_layout.addWidget(label)

        crop_layout.addLayout(crop_top_layout)
        crop_layout.addLayout(crop_hz_layout)
        crop_layout.addLayout(crop_bottom_layout)

        crop_box.setLayout(crop_layout)

        return crop_box
Example #3
0
 def init_scale_and_crop(self):
     layout = QtWidgets.QVBoxLayout()
     layout.addWidget(self.init_scale())
     layout.addWidget(self.init_crop())
     layout.addWidget(self.init_start_time())
     layout.addStretch()
     self.grid.addLayout(layout, 0, 6, 5, 4)
Example #4
0
    def init_video_area(self):
        layout = QtWidgets.QVBoxLayout()
        layout.addLayout(self.init_button_menu())
        layout.addLayout(self.init_video_track_select())

        layout.addWidget(self.init_rotate())
        layout.addStretch()
        self.grid.addLayout(layout, 0, 0, 5, 6)
Example #5
0
    def __init__(self, parent, condition, commands, number, name=""):
        super(Loop, self).__init__(parent)
        layout = QtWidgets.QVBoxLayout()
        layout.addWidget(QtWidgets.QLabel(f"Loop: {name}"))
        self.condition = condition
        self.number = number
        self.setStyleSheet("QGroupBox{padding-top:15px; margin-top:-18px}")

        for index, item in enumerate(commands, 1):
            new_item = Command(parent, item.command, index, item.name)
            layout.addWidget(new_item)
        self.setLayout(layout)
Example #6
0
    def init_scale(self):
        scale_area = QtWidgets.QGroupBox()
        scale_area.setStyleSheet(
            "QGroupBox{padding-top:15px; margin-top:-18px}")
        scale_layout = QtWidgets.QVBoxLayout()

        self.widgets.scale.width, new_scale_layout = self.build_hoz_int_field(
            "Width  ", right_stretch=False)
        self.widgets.scale.height, new_scale_layout, lb, rb = self.build_hoz_int_field(
            "  Height  ",
            left_stretch=False,
            layout=new_scale_layout,
            return_buttons=True)
        self.widgets.scale.height.setDisabled(True)
        lb.setDisabled(True)
        rb.setDisabled(True)
        QtWidgets.QPushButton()

        # TODO scale 0 error

        self.widgets.scale.width.textChanged.connect(
            lambda: self.scale_update())
        self.widgets.scale.height.textChanged.connect(
            lambda: self.scale_update())

        bottom_row = QtWidgets.QHBoxLayout()
        self.widgets.scale.keep_aspect = QtWidgets.QCheckBox(
            "Keep aspect ratio")
        self.widgets.scale.keep_aspect.setMaximumHeight(40)
        self.widgets.scale.keep_aspect.setChecked(True)
        self.widgets.scale.keep_aspect.toggled.connect(
            lambda: self.toggle_disable((self.widgets.scale.height, lb, rb)))
        self.widgets.scale.keep_aspect.toggled.connect(
            lambda: self.scale_update())

        label = QtWidgets.QLabel('Scale',
                                 alignment=(Qt.AlignBottom | Qt.AlignRight))
        label.setStyleSheet("QLabel{color:#777}")
        label.setMaximumHeight(40)
        bottom_row.addWidget(self.widgets.scale.keep_aspect,
                             alignment=Qt.AlignCenter)

        scale_layout.addLayout(new_scale_layout)
        bottom_row.addWidget(label)
        scale_layout.addLayout(bottom_row)

        scale_area.setLayout(scale_layout)

        return scale_area
Example #7
0
    def __init__(self, parent=None):
        super(Logs, self).__init__(parent)

        layout = QtWidgets.QVBoxLayout()
        log_text_box = QPlainTextEditLogger(self)
        log_text_box.setFormatter(
            logging.Formatter(
                '<b>%(levelname)s</b> - %(asctime)s - %(message)s'))
        log_text_box.setLevel(logging.DEBUG)
        logger.setLevel(logging.DEBUG)
        logger.addHandler(log_text_box)

        log_text_box.setLevel(logging.DEBUG)
        layout.addWidget(log_text_box.widget)
        self.setLayout(layout)
Example #8
0
 def update_audio(self, subtitles):
     self.inner_widget = QtWidgets.QWidget()
     sp = QtWidgets.QSizePolicy()
     sp.setHorizontalPolicy(QtWidgets.QSizePolicy.Policy.Maximum)
     self.inner_widget.setSizePolicy(sp)
     layout = QtWidgets.QVBoxLayout()
     layout.setSpacing(5)
     for index, track in enumerate(subtitles, 1):
         new_item = Subtitle(self.scroll_area, track, index)
         layout.addWidget(new_item)
     layout.addStretch()
     self.inner_widget.setLayout(layout)
     self.scroll_area.setWidget(self.inner_widget)
     self.scroll_area.setHorizontalScrollBarPolicy(
         QtCore.Qt.ScrollBarAlwaysOff)
     self.inner_widget.setFixedWidth(self.scroll_area.width() - 3)
Example #9
0
 def init_move_buttons(self):
     layout = QtWidgets.QVBoxLayout()
     layout.setSpacing(0)
     layout.setMargin(0)
     # self.widgets.up_button = QtWidgets.QPushButton("^")
     self.widgets.up_button.setDisabled(self.first)
     self.widgets.up_button.setFixedWidth(20)
     self.widgets.up_button.clicked.connect(
         lambda: self.parent.move_up(self))
     # self.widgets.down_button = QtWidgets.QPushButton("v")
     self.widgets.down_button.setDisabled(self.last)
     self.widgets.down_button.setFixedWidth(20)
     self.widgets.down_button.clicked.connect(
         lambda: self.parent.move_down(self))
     layout.addWidget(self.widgets.up_button)
     layout.addWidget(self.widgets.down_button)
     return layout
Example #10
0
    def init_preview_buttons(self):
        layout = QtWidgets.QVBoxLayout()
        refresh = QtWidgets.QPushButton("R")
        refresh.setFixedWidth(20)
        preview = QtWidgets.QPushButton("P")
        preview.setFixedWidth(20)
        one = QtWidgets.QPushButton("1")
        one.setFixedWidth(20)
        two = QtWidgets.QPushButton("2")
        two.setFixedWidth(20)

        refresh.clicked.connect(lambda: self.page_update())

        layout.addWidget(refresh)
        layout.addWidget(preview)
        layout.addWidget(one)
        layout.addWidget(two)
        layout.addStretch()
        return layout
Example #11
0
    def new_source(self, codecs):
        self.inner_widget = QtWidgets.QWidget()
        self.tracks = []
        layout = QtWidgets.QVBoxLayout()
        layout.setSpacing(5)

        for i, x in enumerate(self.main.streams.audio, 1):
            track_info = ""
            tags = x.get("tags")
            if tags:
                track_info += tags.get('title', '')
                if 'language' in tags:
                    track_info += f' {tags.language}'
            track_info += f' - {x.codec_name}'
            if 'profile' in x:
                track_info += f' ({x.profile})'
            track_info += f' - {x.channels} channels'

            new_item = Audio(
                self,
                track_info,
                original=True,
                first=True if i == 1 else False,
                index=x.index,
                codec=x.codec_name,
                codecs=codecs,
                channels=x.channels,
                available_audio_encoders=self.available_audio_encoders)
            layout.addWidget(new_item)
            self.tracks.append(new_item)

        if self.tracks:
            self.tracks[-1].set_last()

        layout.addStretch()
        # layout.

        self.inner_layout = layout
        self.inner_widget.setLayout(layout)
        self.init_inner()