def init_modes(self): layout = QtWidgets.QGridLayout() crf_group_box = QtWidgets.QGroupBox() crf_group_box.setStyleSheet("QGroupBox{padding-top:5px; margin-top:-18px}") crf_box_layout = QtWidgets.QHBoxLayout() bitrate_group_box = QtWidgets.QGroupBox() bitrate_group_box.setStyleSheet("QGroupBox{padding-top:5px; margin-top:-18px}") bitrate_box_layout = QtWidgets.QHBoxLayout() # rotation_dir = Path(base_path, 'data', 'rotations') # group_box.setStyleSheet("QGroupBox{padding-top:15px; margin-top:-15px; padding-bottom:-5px}") self.widgets.mode = QtWidgets.QButtonGroup() self.widgets.mode.buttonClicked.connect(self.set_mode) bitrate_radio = QtWidgets.QRadioButton("Bitrate") bitrate_radio.setFixedWidth(80) self.widgets.mode.addButton(bitrate_radio) self.widgets.bitrate = QtWidgets.QComboBox() self.widgets.bitrate.setFixedWidth(250) self.widgets.bitrate.addItems(recommended_bitrates) self.widgets.bitrate.currentIndexChanged.connect(lambda: self.main.build_commands()) self.widgets.bitrate.setCurrentIndex(6) self.widgets.custom_bitrate = QtWidgets.QLineEdit("3000") self.widgets.custom_bitrate.setFixedWidth(100) bitrate_box_layout.addWidget(bitrate_radio) bitrate_box_layout.addWidget(self.widgets.bitrate) bitrate_box_layout.addStretch() bitrate_box_layout.addWidget(QtWidgets.QLabel("Custom:")) bitrate_box_layout.addWidget(self.widgets.custom_bitrate) crf_radio = QtWidgets.QRadioButton("CRF") crf_radio.setChecked(True) crf_radio.setFixedWidth(80) self.widgets.mode.addButton(crf_radio) self.widgets.crf = QtWidgets.QComboBox() self.widgets.crf.setFixedWidth(250) self.widgets.crf.addItems(recommended_crfs) self.widgets.crf.setCurrentIndex(4) self.widgets.crf.currentIndexChanged.connect(lambda: self.main.build_commands()) self.widgets.custom_crf = QtWidgets.QLineEdit("30") self.widgets.custom_crf.setFixedWidth(100) crf_box_layout.addWidget(crf_radio) crf_box_layout.addWidget(self.widgets.crf) crf_box_layout.addStretch() crf_box_layout.addWidget(QtWidgets.QLabel("Custom:")) crf_box_layout.addWidget(self.widgets.custom_crf) bitrate_group_box.setLayout(bitrate_box_layout) crf_group_box.setLayout(crf_box_layout) layout.addWidget(crf_group_box, 0, 0) layout.addWidget(bitrate_group_box, 1, 0) return layout
def __init__(self, parent, audio, number, enabled=True): super(Subtitle, self).__init__(parent) self.audio = audio self.widget = QtWidgets.QLineEdit() self.widget.setText(audio) self.widget.setDisabled(not enabled) self.setFixedHeight(60) grid = QtWidgets.QGridLayout() grid.addWidget(QtWidgets.QLabel(f"Track {number}"), 0, 0, 1, 2) grid.addWidget(self.widget, 1, 0, 1, 2) self.setLayout(grid)
def init_input_file(self): layout = QtWidgets.QHBoxLayout() self.widgets.input_file = QtWidgets.QLineEdit("") self.widgets.input_file.setReadOnly(True) open_input_file = QtWidgets.QPushButton("...") open_input_file.setFixedWidth(50) open_input_file.setMaximumHeight(22) open_input_file.setDefault(True) layout.addWidget(QtWidgets.QLabel("Source File:")) layout.addWidget(self.widgets.input_file) layout.addWidget(open_input_file) layout.setSpacing(10) open_input_file.clicked.connect(lambda: self.open_file()) return layout
def __init__(self, parent, command, number, name="", enabled=True): super(Command, self).__init__(parent) self.command = command self.widget = QtWidgets.QLineEdit() self.widget.setReadOnly(True) self.widget.setText(command) self.widget.setDisabled(not enabled) self.setFixedHeight(60) grid = QtWidgets.QGridLayout() grid.addWidget( QtWidgets.QLabel(f"Command {number}" if not name else name), 0, 0, 1, 2) grid.addWidget(self.widget, 1, 0, 1, 2) self.setLayout(grid)
def build_hoz_int_field(self, name, button_size=22, left_stretch=True, right_stretch=True, layout=None, return_buttons=False, time_field=False): widget = QtWidgets.QLineEdit( self.number_to_time(0) if time_field else "0") widget.setFixedHeight(button_size) if not layout: layout = QtWidgets.QHBoxLayout() layout.setSpacing(0) if left_stretch: layout.addStretch() layout.addWidget(QtWidgets.QLabel(name)) minus_button = QtWidgets.QPushButton("-") minus_button.setAutoRepeat(True) minus_button.setFixedSize(button_size, button_size) minus_button.clicked.connect( lambda: self.modify_int(widget, 'minus', time_field)) plus_button = QtWidgets.QPushButton("+") plus_button.setAutoRepeat(True) plus_button.setFixedSize(button_size, button_size) plus_button.clicked.connect( lambda: self.modify_int(widget, 'add', time_field)) if not time_field: widget.setFixedWidth(40) layout.addWidget(minus_button) layout.addWidget(widget) layout.addWidget(plus_button) if right_stretch: layout.addStretch() if return_buttons: return widget, layout, minus_button, plus_button return widget, layout
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