openlp/openlp/plugins/media/forms/mediaclipselectordialog.py

205 lines
13 KiB
Python

# -*- coding: utf-8 -*-
# vim: autoindent shiftwidth=4 expandtab textwidth=120 tabstop=4 softtabstop=4
###############################################################################
# OpenLP - Open Source Lyrics Projection #
# --------------------------------------------------------------------------- #
# Copyright (c) 2008-2018 OpenLP Developers #
# --------------------------------------------------------------------------- #
# This program is free software; you can redistribute it and/or modify it #
# under the terms of the GNU General Public License as published by the Free #
# Software Foundation; version 2 of the License. #
# #
# This program is distributed in the hope that it will be useful, but WITHOUT #
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or #
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for #
# more details. #
# #
# You should have received a copy of the GNU General Public License along #
# with this program; if not, write to the Free Software Foundation, Inc., 59 #
# Temple Place, Suite 330, Boston, MA 02111-1307 USA #
###############################################################################
from PyQt5 import QtCore, QtWidgets
from openlp.core.common.i18n import translate
from openlp.core.ui.icons import UiIcons
class Ui_MediaClipSelector(object):
def setupUi(self, media_clip_selector):
media_clip_selector.setObjectName('media_clip_selector')
media_clip_selector.resize(554, 654)
self.combobox_size_policy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding,
QtWidgets.QSizePolicy.Fixed)
media_clip_selector.setSizePolicy(
QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.MinimumExpanding))
self.main_layout = QtWidgets.QVBoxLayout(media_clip_selector)
self.main_layout.setContentsMargins(8, 8, 8, 8)
self.main_layout.setObjectName('main_layout')
# Source groupbox
self.source_groupbox = QtWidgets.QGroupBox(media_clip_selector)
self.source_groupbox.setObjectName('source_groupbox')
self.source_layout = QtWidgets.QHBoxLayout()
self.source_layout.setContentsMargins(8, 8, 8, 8)
self.source_layout.setObjectName('source_layout')
self.source_groupbox.setLayout(self.source_layout)
# Media path label
self.media_path_label = QtWidgets.QLabel(self.source_groupbox)
self.media_path_label.setObjectName('media_path_label')
self.source_layout.addWidget(self.media_path_label)
# Media path combobox
self.media_path_combobox = QtWidgets.QComboBox(self.source_groupbox)
# Make the combobox expand
self.media_path_combobox.setSizePolicy(self.combobox_size_policy)
self.media_path_combobox.setEditable(True)
self.media_path_combobox.setObjectName('media_path_combobox')
self.source_layout.addWidget(self.media_path_combobox)
# Load disc button
self.load_disc_button = QtWidgets.QPushButton(media_clip_selector)
self.load_disc_button.setEnabled(True)
self.load_disc_button.setObjectName('load_disc_button')
self.source_layout.addWidget(self.load_disc_button)
self.main_layout.addWidget(self.source_groupbox)
# Track details group box
self.track_groupbox = QtWidgets.QGroupBox(media_clip_selector)
self.track_groupbox.setObjectName('track_groupbox')
self.track_layout = QtWidgets.QFormLayout()
self.track_layout.setContentsMargins(8, 8, 8, 8)
self.track_layout.setObjectName('track_layout')
self.label_alignment = self.track_layout.labelAlignment()
self.track_groupbox.setLayout(self.track_layout)
# Title track
self.title_label = QtWidgets.QLabel(self.track_groupbox)
self.title_label.setObjectName('title_label')
self.titles_combo_box = QtWidgets.QComboBox(self.track_groupbox)
self.titles_combo_box.setSizePolicy(self.combobox_size_policy)
self.titles_combo_box.setEditText('')
self.titles_combo_box.setObjectName('titles_combo_box')
self.track_layout.addRow(self.title_label, self.titles_combo_box)
# Audio track
self.audio_track_label = QtWidgets.QLabel(self.track_groupbox)
self.audio_track_label.setObjectName('audio_track_label')
self.audio_tracks_combobox = QtWidgets.QComboBox(self.track_groupbox)
self.audio_tracks_combobox.setSizePolicy(self.combobox_size_policy)
self.audio_tracks_combobox.setObjectName('audio_tracks_combobox')
self.track_layout.addRow(self.audio_track_label, self.audio_tracks_combobox)
self.main_layout.addWidget(self.track_groupbox)
# Subtitle track
self.subtitle_track_label = QtWidgets.QLabel(self.track_groupbox)
self.subtitle_track_label.setObjectName('subtitle_track_label')
self.subtitle_tracks_combobox = QtWidgets.QComboBox(self.track_groupbox)
self.subtitle_tracks_combobox.setSizePolicy(self.combobox_size_policy)
self.subtitle_tracks_combobox.setObjectName('subtitle_tracks_combobox')
self.track_layout.addRow(self.subtitle_track_label, self.subtitle_tracks_combobox)
# Preview frame
self.preview_frame = QtWidgets.QFrame(media_clip_selector)
self.preview_frame.setMinimumSize(QtCore.QSize(320, 240))
self.preview_frame.setSizePolicy(QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding,
QtWidgets.QSizePolicy.MinimumExpanding))
self.preview_frame.setStyleSheet('background-color:black;')
self.preview_frame.setFrameShape(QtWidgets.QFrame.NoFrame)
self.preview_frame.setObjectName('preview_frame')
self.main_layout.addWidget(self.preview_frame)
# player controls
self.controls_layout = QtWidgets.QHBoxLayout()
self.controls_layout.setObjectName('controls_layout')
self.play_button = QtWidgets.QToolButton(media_clip_selector)
self.play_button.setIcon(UiIcons().play)
self.play_button.setObjectName('play_button')
self.controls_layout.addWidget(self.play_button)
self.position_slider = QtWidgets.QSlider(media_clip_selector)
self.position_slider.setTracking(False)
self.position_slider.setOrientation(QtCore.Qt.Horizontal)
self.position_slider.setObjectName('position_slider')
self.controls_layout.addWidget(self.position_slider)
self.position_timeedit = QtWidgets.QTimeEdit(media_clip_selector)
self.position_timeedit.setReadOnly(True)
self.position_timeedit.setObjectName('position_timeedit')
self.controls_layout.addWidget(self.position_timeedit)
self.main_layout.addLayout(self.controls_layout)
# Range
self.range_groupbox = QtWidgets.QGroupBox(media_clip_selector)
self.range_groupbox.setObjectName('range_groupbox')
self.range_layout = QtWidgets.QGridLayout()
self.range_layout.setContentsMargins(8, 8, 8, 8)
self.range_layout.setObjectName('range_layout')
self.range_groupbox.setLayout(self.range_layout)
# Start position
self.start_position_label = QtWidgets.QLabel(self.range_groupbox)
self.start_position_label.setObjectName('start_position_label')
self.range_layout.addWidget(self.start_position_label, 0, 0, self.label_alignment)
self.start_position_edit = QtWidgets.QTimeEdit(self.range_groupbox)
self.start_position_edit.setObjectName('start_position_edit')
self.range_layout.addWidget(self.start_position_edit, 0, 1)
self.set_start_button = QtWidgets.QPushButton(self.range_groupbox)
self.set_start_button.setObjectName('set_start_button')
self.range_layout.addWidget(self.set_start_button, 0, 2)
self.jump_start_button = QtWidgets.QPushButton(self.range_groupbox)
self.jump_start_button.setObjectName('jump_start_button')
self.range_layout.addWidget(self.jump_start_button, 0, 3)
# End position
self.end_position_label = QtWidgets.QLabel(self.range_groupbox)
self.end_position_label.setObjectName('end_position_label')
self.range_layout.addWidget(self.end_position_label, 1, 0, self.label_alignment)
self.end_timeedit = QtWidgets.QTimeEdit(self.range_groupbox)
self.end_timeedit.setObjectName('end_timeedit')
self.range_layout.addWidget(self.end_timeedit, 1, 1)
self.set_end_button = QtWidgets.QPushButton(self.range_groupbox)
self.set_end_button.setObjectName('set_end_button')
self.range_layout.addWidget(self.set_end_button, 1, 2)
self.jump_end_button = QtWidgets.QPushButton(self.range_groupbox)
self.jump_end_button.setObjectName('jump_end_button')
self.range_layout.addWidget(self.jump_end_button, 1, 3)
self.main_layout.addWidget(self.range_groupbox)
# Save and close buttons
self.button_box = QtWidgets.QDialogButtonBox(media_clip_selector)
self.button_box.addButton(QtWidgets.QDialogButtonBox.Save)
self.button_box.addButton(QtWidgets.QDialogButtonBox.Close)
self.close_button = self.button_box.button(QtWidgets.QDialogButtonBox.Close)
self.save_button = self.button_box.button(QtWidgets.QDialogButtonBox.Save)
self.main_layout.addWidget(self.button_box)
self.retranslateUi(media_clip_selector)
self.button_box.accepted.connect(media_clip_selector.accept)
self.button_box.rejected.connect(media_clip_selector.reject)
QtCore.QMetaObject.connectSlotsByName(media_clip_selector)
media_clip_selector.setTabOrder(self.media_path_combobox, self.load_disc_button)
media_clip_selector.setTabOrder(self.load_disc_button, self.titles_combo_box)
media_clip_selector.setTabOrder(self.titles_combo_box, self.audio_tracks_combobox)
media_clip_selector.setTabOrder(self.audio_tracks_combobox, self.subtitle_tracks_combobox)
media_clip_selector.setTabOrder(self.subtitle_tracks_combobox, self.play_button)
media_clip_selector.setTabOrder(self.play_button, self.position_slider)
media_clip_selector.setTabOrder(self.position_slider, self.position_timeedit)
media_clip_selector.setTabOrder(self.position_timeedit, self.start_position_edit)
media_clip_selector.setTabOrder(self.start_position_edit, self.set_start_button)
media_clip_selector.setTabOrder(self.set_start_button, self.jump_start_button)
media_clip_selector.setTabOrder(self.jump_start_button, self.end_timeedit)
media_clip_selector.setTabOrder(self.end_timeedit, self.set_end_button)
media_clip_selector.setTabOrder(self.set_end_button, self.jump_end_button)
media_clip_selector.setTabOrder(self.jump_end_button, self.save_button)
media_clip_selector.setTabOrder(self.save_button, self.close_button)
def retranslateUi(self, media_clip_selector):
media_clip_selector.setWindowTitle(translate('MediaPlugin.MediaClipSelector', 'Select Media Clip'))
self.source_groupbox.setTitle(translate('MediaPlugin.MediaClipSelector', 'Source'))
self.media_path_label.setText(translate('MediaPlugin.MediaClipSelector', 'Media path:'))
self.media_path_combobox.lineEdit().setPlaceholderText(translate('MediaPlugin.MediaClipSelector',
'Select drive from list'))
self.load_disc_button.setText(translate('MediaPlugin.MediaClipSelector', 'Load disc'))
self.track_groupbox.setTitle(translate('MediaPlugin.MediaClipSelector', 'Track Details'))
self.title_label.setText(translate('MediaPlugin.MediaClipSelector', 'Title:'))
self.audio_track_label.setText(translate('MediaPlugin.MediaClipSelector', 'Audio track:'))
self.subtitle_track_label.setText(translate('MediaPlugin.MediaClipSelector', 'Subtitle track:'))
self.position_timeedit.setDisplayFormat(translate('MediaPlugin.MediaClipSelector', 'HH:mm:ss.z'))
self.range_groupbox.setTitle(translate('MediaPlugin.MediaClipSelector', 'Clip Range'))
self.start_position_label.setText(translate('MediaPlugin.MediaClipSelector', 'Start point:'))
self.start_position_edit.setDisplayFormat(translate('MediaPlugin.MediaClipSelector', 'HH:mm:ss.z'))
self.set_start_button.setText(translate('MediaPlugin.MediaClipSelector', 'Set start point'))
self.jump_start_button.setText(translate('MediaPlugin.MediaClipSelector', 'Jump to start point'))
self.end_position_label.setText(translate('MediaPlugin.MediaClipSelector', 'End point:'))
self.end_timeedit.setDisplayFormat(translate('MediaPlugin.MediaClipSelector', 'HH:mm:ss.z'))
self.set_end_button.setText(translate('MediaPlugin.MediaClipSelector', 'Set end point'))
self.jump_end_button.setText(translate('MediaPlugin.MediaClipSelector', 'Jump to end point'))