Beispiel #1
0
 def init_single_pass(self):
     layout = QtWidgets.QHBoxLayout()
     layout.addWidget(QtWidgets.QLabel('Single Pass (CRF)'))
     self.widgets.single_pass = QtWidgets.QCheckBox()
     self.widgets.single_pass.setChecked(False)
     self.widgets.single_pass.toggled.connect(lambda: self.main.page_update())
     layout.addWidget(self.widgets.single_pass)
     return layout
Beispiel #2
0
 def init_force_420(self):
     layout = QtWidgets.QHBoxLayout()
     layout.addWidget(QtWidgets.QLabel('Force 4:2:0 chroma subsampling'))
     self.widgets.force_420 = QtWidgets.QCheckBox()
     self.widgets.force_420.setChecked(True)
     self.widgets.force_420.toggled.connect(lambda: self.main.page_update())
     layout.addWidget(self.widgets.force_420)
     return layout
Beispiel #3
0
 def init_row_mt(self):
     layout = QtWidgets.QHBoxLayout()
     layout.addWidget(QtWidgets.QLabel('Row multithreading'))
     self.widgets.row_mt = QtWidgets.QCheckBox()
     self.widgets.row_mt.setChecked(False)
     self.widgets.row_mt.toggled.connect(lambda: self.main.page_update())
     layout.addWidget(self.widgets.row_mt)
     return layout
Beispiel #4
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
Beispiel #5
0
    def init_rotate(self):
        group_box = QtWidgets.QGroupBox()
        rotation_dir = Path(base_path, 'data', 'rotations')
        group_box.setStyleSheet(
            "QGroupBox{padding-top:15px; margin-top:-15px; padding-bottom:-5px}"
        )
        group = QtWidgets.QButtonGroup()

        v_size = QtCore.QSize(40, 60)
        h_size = QtCore.QSize(60, 40)

        rot_none = QtWidgets.QRadioButton("No Rotation")
        rot_none.setIcon(QtGui.QIcon(str(Path(rotation_dir, 'FastFlix.png'))))
        rot_none.setIconSize(h_size)
        rot_none.name = None

        rot_1 = QtWidgets.QRadioButton("90°")
        rot_1.setIcon(QtGui.QIcon(str(Path(rotation_dir, 'FastFlix C90.png'))))
        rot_1.setIconSize(v_size)
        rot_1.name = 1

        rot_2 = QtWidgets.QRadioButton("270°")
        rot_2.setIcon(QtGui.QIcon(str(Path(rotation_dir,
                                           'FastFlix CC90.png'))))
        rot_2.setIconSize(v_size)
        rot_2.name = 2

        rot_4 = QtWidgets.QRadioButton("180°")
        rot_4.setIcon(QtGui.QIcon(str(Path(rotation_dir, 'FastFlix 180.png'))))
        rot_4.setIconSize(h_size)
        rot_4.name = 4

        self.widgets.v_flip = QtWidgets.QCheckBox("Vertical Flip")
        self.widgets.v_flip.setIcon(
            QtGui.QIcon(str(Path(rotation_dir, 'FastFlix VF.png'))))
        self.widgets.v_flip.setIconSize(h_size)
        self.widgets.v_flip.toggled.connect(lambda: self.page_update())

        self.widgets.h_flip = QtWidgets.QCheckBox("Horizontal Flip")
        self.widgets.h_flip.setIcon(
            QtGui.QIcon(str(Path(rotation_dir, 'FastFlix HF.png'))))
        self.widgets.h_flip.setIconSize(h_size)
        self.widgets.h_flip.toggled.connect(lambda: self.page_update())

        group.addButton(rot_1)
        group.addButton(rot_2)
        group.addButton(rot_4)
        group.addButton(rot_none)
        layout = QtWidgets.QGridLayout()
        layout.addWidget(rot_none, 1, 0)
        layout.addWidget(rot_1, 0, 0)
        layout.addWidget(rot_2, 0, 2)
        layout.addWidget(rot_4, 0, 1)
        layout.addWidget(self.widgets.v_flip, 1, 2)
        layout.addWidget(self.widgets.h_flip, 1, 1)
        label = QtWidgets.QLabel("Rotation",
                                 alignment=(Qt.AlignBottom | Qt.AlignRight))
        label.setStyleSheet("QLabel{color:#777}")
        layout.addWidget(label, 1, 3)
        group_box.setLayout(layout)
        rot_none.setChecked(True)
        self.widgets.rotate = group
        self.widgets.rotate.buttonClicked.connect(lambda: self.page_update())
        return group_box
Beispiel #6
0
    def __init__(self,
                 parent,
                 audio,
                 index,
                 codec,
                 available_audio_encoders,
                 outdex=None,
                 enabled=True,
                 original=False,
                 first=False,
                 last=False,
                 codecs=(),
                 channels=2):
        super(Audio, self).__init__(parent)
        self.parent = parent
        self.audio = audio
        self.setFixedHeight(60)
        self.original = original
        self.outdex = index if self.original else outdex
        self.first = first
        self.last = last
        self.index = index
        self.codec = codec
        self.codecs = codecs
        self.channels = channels
        self.loading = True
        self.available_audio_encoders = available_audio_encoders

        self.widgets = Box(
            track_number=QtWidgets.QLabel(
                f'{index}:{self.outdex}' if enabled else '❌'),
            audio_info=QtWidgets.QLineEdit(audio),
            up_button=QtWidgets.QPushButton("^"),
            down_button=QtWidgets.QPushButton("v"),
            enable_check=QtWidgets.QCheckBox("Enabled"),
            dup_button=QtWidgets.QPushButton("➕"),
            delete_button=QtWidgets.QPushButton("⛔"),
            convert_to=None,
            convert_bitrate=None,
        )

        self.widgets.enable_check.setChecked(enabled)
        #self.widgets.enable_check.toggled.connect(lambda: self.parent.reorder())

        self.widgets.dup_button.clicked.connect(lambda: self.dup_me())
        self.widgets.dup_button.setFixedWidth(20)
        self.widgets.delete_button.clicked.connect(lambda: self.del_me())
        self.widgets.delete_button.setFixedWidth(20)

        self.widgets.track_number.setFixedWidth(20)

        grid = QtWidgets.QGridLayout()
        grid.addLayout(self.init_move_buttons(), 0, 0)
        grid.addWidget(self.widgets.track_number, 0, 1)
        grid.addWidget(self.widgets.audio_info, 0, 2)
        grid.addLayout(self.init_conversion(), 0, 3)

        if not original:
            grid.addWidget(self.widgets.delete_button, 0, 4)
        else:
            grid.addWidget(self.widgets.dup_button, 0, 5)
            grid.addWidget(self.widgets.enable_check, 0, 4)
        self.setLayout(grid)
        self.loading = False