def __init__(self, **kwargs): super().__init__(**kwargs) self.setLayout(QVBoxLayout()) self.layout().setAlignment(Qt.AlignTop) self.group = QGroupBox(self) self.group.setLayout(QGridLayout()) self.layout().addWidget(self.group) # Fade Duration self.fadeDurationSpin = QDoubleSpinBox(self.group) self.fadeDurationSpin.setRange(0, 3600) self.group.layout().addWidget(self.fadeDurationSpin, 0, 0) self.fadeDurationLabel = QLabel(self.group) self.fadeDurationLabel.setAlignment(Qt.AlignCenter) self.group.layout().addWidget(self.fadeDurationLabel, 0, 1) # Fade Type self.fadeTypeCombo = FadeComboBox(self.group) self.group.layout().addWidget(self.fadeTypeCombo, 1, 0) self.fadeTypeLabel = QLabel(self.group) self.fadeTypeLabel.setAlignment(Qt.AlignCenter) self.group.layout().addWidget(self.fadeTypeLabel, 1, 1) self.retranslateUi()
class MediaCueAppSettings(SettingsPage): Name = QT_TRANSLATE_NOOP('SettingsPageName', 'MediaCue Settings') def __init__(self, **kwargs): super().__init__(**kwargs) self.setLayout(QVBoxLayout()) self.layout().setAlignment(Qt.AlignTop) self.group = QGroupBox(self) self.group.setLayout(QGridLayout()) self.layout().addWidget(self.group) # Fade Duration self.fadeDurationSpin = QDoubleSpinBox(self.group) self.fadeDurationSpin.setRange(0, 3600) self.group.layout().addWidget(self.fadeDurationSpin, 0, 0) self.fadeDurationLabel = QLabel(self.group) self.fadeDurationLabel.setAlignment(Qt.AlignCenter) self.group.layout().addWidget(self.fadeDurationLabel, 0, 1) # Fade Type self.fadeTypeCombo = FadeComboBox(self.group) self.group.layout().addWidget(self.fadeTypeCombo, 1, 0) self.fadeTypeLabel = QLabel(self.group) self.fadeTypeLabel.setAlignment(Qt.AlignCenter) self.group.layout().addWidget(self.fadeTypeLabel, 1, 1) self.retranslateUi() def retranslateUi(self): self.group.setTitle( translate('MediaCueSettings', 'Interrupt settings')) self.fadeDurationLabel.setText( translate('MediaCueSettings', 'Interrupt fade duration')) self.fadeTypeLabel.setText( translate('MediaCueSettings', 'Interrupt fade type')) def load_settings(self, settings): self.fadeDurationSpin.setValue( float(settings['MediaCue'].get('interruptfade', 0))) self.fadeTypeCombo.setCurrentType( settings['MediaCue'].get('interruptfadetype', '')) def get_settings(self): return {'MediaCue': { 'interruptfade': str(self.fadeDurationSpin.value()), 'interruptfadetype': self.fadeTypeCombo.currentType() }}
def __init__(self, *args, mode=FadeComboBox.Mode.FadeOut, **kwargs): super().__init__(*args, **kwargs) self.setLayout(QGridLayout()) self.fadeDurationSpin = QDoubleSpinBox(self) self.fadeDurationSpin.setRange(0, 3600) self.layout().addWidget(self.fadeDurationSpin, 0, 0) self.fadeDurationLabel = QLabel(self) self.fadeDurationLabel.setAlignment(Qt.AlignCenter) self.layout().addWidget(self.fadeDurationLabel, 0, 1) self.fadeTypeCombo = FadeComboBox(self, mode=mode) self.layout().addWidget(self.fadeTypeCombo, 1, 0) self.fadeTypeLabel = QLabel(self) self.fadeTypeLabel.setAlignment(Qt.AlignCenter) self.layout().addWidget(self.fadeTypeLabel, 1, 1) self.retranslateUi()
class FadeEdit(QWidget): def __init__(self, *args, mode=FadeComboBox.Mode.FadeOut, **kwargs): super().__init__(*args, **kwargs) self.setLayout(QGridLayout()) self.fadeDurationSpin = QDoubleSpinBox(self) self.fadeDurationSpin.setRange(0, 3600) self.layout().addWidget(self.fadeDurationSpin, 0, 0) self.fadeDurationLabel = QLabel(self) self.fadeDurationLabel.setAlignment(Qt.AlignCenter) self.layout().addWidget(self.fadeDurationLabel, 0, 1) self.fadeTypeCombo = FadeComboBox(self, mode=mode) self.layout().addWidget(self.fadeTypeCombo, 1, 0) self.fadeTypeLabel = QLabel(self) self.fadeTypeLabel.setAlignment(Qt.AlignCenter) self.layout().addWidget(self.fadeTypeLabel, 1, 1) self.retranslateUi() def retranslateUi(self): self.fadeDurationLabel.setText(translate('FadeEdit', 'Duration (sec)')) self.fadeTypeLabel.setText(translate('FadeEdit', 'Curve')) def duration(self): return self.fadeDurationSpin.value() def setDuration(self, value): self.fadeDurationSpin.setValue(value) def fadeType(self): return self.fadeTypeCombo.currentType() def setFadeType(self, fade_type): self.fadeTypeCombo.setCurrentType(fade_type)
def __init__(self, **kwargs): super().__init__(**kwargs) self.setLayout(QVBoxLayout()) self.layout().setAlignment(Qt.AlignTop) self.__v_edit_flag = False self.cue_id = -1 cues = Application().cue_model.filter(MediaCue) self.cueDialog = CueSelectDialog(cues=cues, parent=self) self.cueGroup = QGroupBox(self) self.cueGroup.setLayout(QVBoxLayout()) self.layout().addWidget(self.cueGroup) self.cueButton = QPushButton(self.cueGroup) self.cueButton.clicked.connect(self.select_cue) self.cueGroup.layout().addWidget(self.cueButton) self.cueLabel = QLabel(self.cueGroup) self.cueLabel.setAlignment(QtCore.Qt.AlignCenter) self.cueGroup.layout().addWidget(self.cueLabel) self.volumeGroup = QGroupBox(self) self.volumeGroup.setLayout(QHBoxLayout()) self.layout().addWidget(self.volumeGroup) self.volumeEdit = QDoubleSpinBox(self.volumeGroup) self.volumeEdit.setDecimals(6) self.volumeEdit.setMaximum(100) self.volumeGroup.layout().addWidget(self.volumeEdit) self.percentLabel = QLabel('%', self.volumeGroup) self.volumeGroup.layout().addWidget(self.percentLabel) self.volumeDbEdit = QDoubleSpinBox(self.volumeGroup) self.volumeDbEdit.setRange(MIN_VOLUME_DB, MAX_VOLUME_DB) self.volumeDbEdit.setValue(MIN_VOLUME_DB) self.volumeGroup.layout().addWidget(self.volumeDbEdit) self.dbLabel = QLabel('dB', self.volumeGroup) self.volumeGroup.layout().addWidget(self.dbLabel) self.volumeEdit.valueChanged.connect(self.__volume_change) self.volumeDbEdit.valueChanged.connect(self.__db_volume_change) # Fade self.fadeGroup = QGroupBox(self) self.fadeGroup.setLayout(QGridLayout()) self.layout().addWidget(self.fadeGroup) self.fadeSpin = QDoubleSpinBox(self.fadeGroup) self.fadeSpin.setMaximum(3600) self.fadeGroup.layout().addWidget(self.fadeSpin, 0, 0) self.fadeLabel = QLabel(self.fadeGroup) self.fadeLabel.setAlignment(QtCore.Qt.AlignCenter) self.fadeGroup.layout().addWidget(self.fadeLabel, 0, 1) self.fadeCurveCombo = FadeComboBox(parent=self.fadeGroup) self.fadeGroup.layout().addWidget(self.fadeCurveCombo, 1, 0) self.fadeCurveLabel = QLabel(self.fadeGroup) self.fadeCurveLabel.setAlignment(QtCore.Qt.AlignCenter) self.fadeGroup.layout().addWidget(self.fadeCurveLabel, 1, 1) self.retranslateUi()
class VolumeSettings(SettingsPage): Name = QT_TRANSLATE_NOOP('SettingsPageName', 'Volume Settings') def __init__(self, **kwargs): super().__init__(**kwargs) self.setLayout(QVBoxLayout()) self.layout().setAlignment(Qt.AlignTop) self.__v_edit_flag = False self.cue_id = -1 cues = Application().cue_model.filter(MediaCue) self.cueDialog = CueSelectDialog(cues=cues, parent=self) self.cueGroup = QGroupBox(self) self.cueGroup.setLayout(QVBoxLayout()) self.layout().addWidget(self.cueGroup) self.cueButton = QPushButton(self.cueGroup) self.cueButton.clicked.connect(self.select_cue) self.cueGroup.layout().addWidget(self.cueButton) self.cueLabel = QLabel(self.cueGroup) self.cueLabel.setAlignment(QtCore.Qt.AlignCenter) self.cueGroup.layout().addWidget(self.cueLabel) self.volumeGroup = QGroupBox(self) self.volumeGroup.setLayout(QHBoxLayout()) self.layout().addWidget(self.volumeGroup) self.volumeEdit = QDoubleSpinBox(self.volumeGroup) self.volumeEdit.setDecimals(6) self.volumeEdit.setMaximum(100) self.volumeGroup.layout().addWidget(self.volumeEdit) self.percentLabel = QLabel('%', self.volumeGroup) self.volumeGroup.layout().addWidget(self.percentLabel) self.volumeDbEdit = QDoubleSpinBox(self.volumeGroup) self.volumeDbEdit.setRange(MIN_VOLUME_DB, MAX_VOLUME_DB) self.volumeDbEdit.setValue(MIN_VOLUME_DB) self.volumeGroup.layout().addWidget(self.volumeDbEdit) self.dbLabel = QLabel('dB', self.volumeGroup) self.volumeGroup.layout().addWidget(self.dbLabel) self.volumeEdit.valueChanged.connect(self.__volume_change) self.volumeDbEdit.valueChanged.connect(self.__db_volume_change) # Fade self.fadeGroup = QGroupBox(self) self.fadeGroup.setLayout(QGridLayout()) self.layout().addWidget(self.fadeGroup) self.fadeSpin = QDoubleSpinBox(self.fadeGroup) self.fadeSpin.setMaximum(3600) self.fadeGroup.layout().addWidget(self.fadeSpin, 0, 0) self.fadeLabel = QLabel(self.fadeGroup) self.fadeLabel.setAlignment(QtCore.Qt.AlignCenter) self.fadeGroup.layout().addWidget(self.fadeLabel, 0, 1) self.fadeCurveCombo = FadeComboBox(parent=self.fadeGroup) self.fadeGroup.layout().addWidget(self.fadeCurveCombo, 1, 0) self.fadeCurveLabel = QLabel(self.fadeGroup) self.fadeCurveLabel.setAlignment(QtCore.Qt.AlignCenter) self.fadeGroup.layout().addWidget(self.fadeCurveLabel, 1, 1) self.retranslateUi() def retranslateUi(self): self.cueGroup.setTitle(translate('VolumeControl', 'Cue')) self.cueButton.setText(translate('VolumeControl', 'Click to select')) self.cueLabel.setText(translate('VolumeControl', 'Not selected')) self.volumeGroup.setTitle(translate('VolumeControl', 'Volume to reach')) self.fadeGroup.setTitle(translate('VolumeControl', 'Fade')) self.fadeLabel.setText(translate('VolumeControl', 'Time (sec)')) self.fadeCurveLabel.setText(translate('VolumeControl', 'Curve')) def select_cue(self): if self.cueDialog.exec_() == self.cueDialog.Accepted: cue = self.cueDialog.selected_cue() if cue is not None: self.cue_id = cue.id self.cueLabel.setText(cue.name) def enable_check(self, enabled): self.cueGroup.setCheckable(enabled) self.cueGroup.setChecked(False) self.volumeGroup.setCheckable(enabled) self.volumeGroup.setChecked(False) self.fadeGroup.setCheckable(enabled) self.volumeGroup.setChecked(False) def get_settings(self): conf = {} checkable = self.cueGroup.isCheckable() if not (checkable and not self.cueGroup.isChecked()): conf['target_id'] = self.cue_id if not (checkable and not self.volumeGroup.isCheckable()): conf['volume'] = self.volumeEdit.value() / 100 if not (checkable and not self.fadeGroup.isCheckable()): conf['duration'] = self.fadeSpin.value() * 1000 conf['fade_type'] = self.fadeCurveCombo.currentType() return conf def load_settings(self, settings): cue = Application().cue_model.get(settings.get('target_id', '')) if cue is not None: self.cue_id = settings['target_id'] self.cueLabel.setText(cue.name) self.volumeEdit.setValue(settings.get('volume', 0) * 100) self.fadeSpin.setValue(settings.get('duration', 0) / 1000) self.fadeCurveCombo.setCurrentType(settings.get('fade_type', '')) def __volume_change(self, value): if not self.__v_edit_flag: try: self.__v_edit_flag = True self.volumeDbEdit.setValue(linear_to_db(value / 100)) finally: self.__v_edit_flag = False def __db_volume_change(self, value): if not self.__v_edit_flag: try: self.__v_edit_flag = True self.volumeEdit.setValue(db_to_linear(value) * 100) finally: self.__v_edit_flag = False
def __init__(self, cue_class, **kwargs): super().__init__(cue_class, **kwargs) self.setLayout(QVBoxLayout()) self.tabWidget = QTabWidget(self) self.layout().addWidget(self.tabWidget) # TAB 1 (Behaviours) self.tab_1 = QWidget(self.tabWidget) self.tab_1.setLayout(QVBoxLayout()) self.tabWidget.addTab(self.tab_1, '1') # Start-Action self.startActionGroup = QGroupBox(self.tab_1) self.startActionGroup.setLayout(QHBoxLayout()) self.tab_1.layout().addWidget(self.startActionGroup) self.startActionCombo = QComboBox(self.startActionGroup) for action in [CueAction.Start, CueAction.FadeInStart]: if action in cue_class.CueActions: self.startActionCombo.addItem( translate('CueAction', action.name), action.value) self.startActionCombo.setEnabled(self.startActionCombo.count() > 1) self.startActionGroup.layout().addWidget(self.startActionCombo) self.startActionLabel = QLabel(self.startActionGroup) self.startActionLabel.setAlignment(Qt.AlignCenter) self.startActionGroup.layout().addWidget(self.startActionLabel) # Stop-Action self.stopActionGroup = QGroupBox(self.tab_1) self.stopActionGroup.setLayout(QHBoxLayout()) self.tab_1.layout().addWidget(self.stopActionGroup) self.stopActionCombo = QComboBox(self.stopActionGroup) for action in [ CueAction.Stop, CueAction.Pause, CueAction.FadeOutStop, CueAction.FadeOutPause ]: if action in cue_class.CueActions: self.stopActionCombo.addItem( translate('CueAction', action.name), action.value) self.stopActionCombo.setEnabled(self.stopActionCombo.count() > 1) self.stopActionGroup.layout().addWidget(self.stopActionCombo) self.stopActionLabel = QLabel(self.stopActionGroup) self.stopActionLabel.setAlignment(Qt.AlignCenter) self.stopActionGroup.layout().addWidget(self.stopActionLabel) self.tab_1.layout().addSpacing(150) self.tab_1.setEnabled(self.stopActionCombo.isEnabled() and self.startActionCombo.isEnabled()) # TAB 2 (Pre/Post Wait) self.tab_2 = QWidget(self.tabWidget) self.tab_2.setLayout(QVBoxLayout()) self.tabWidget.addTab(self.tab_2, '2') # Pre wait self.preWaitGroup = QGroupBox(self.tab_2) self.preWaitGroup.setLayout(QHBoxLayout()) self.tab_2.layout().addWidget(self.preWaitGroup) self.preWaitSpin = QDoubleSpinBox(self.preWaitGroup) self.preWaitSpin.setMaximum(3600 * 24) self.preWaitGroup.layout().addWidget(self.preWaitSpin) self.preWaitLabel = QLabel(self.preWaitGroup) self.preWaitLabel.setAlignment(Qt.AlignCenter) self.preWaitGroup.layout().addWidget(self.preWaitLabel) # Post wait self.postWaitGroup = QGroupBox(self.tab_2) self.postWaitGroup.setLayout(QHBoxLayout()) self.tab_2.layout().addWidget(self.postWaitGroup) self.postWaitSpin = QDoubleSpinBox(self.postWaitGroup) self.postWaitSpin.setMaximum(3600 * 24) self.postWaitGroup.layout().addWidget(self.postWaitSpin) self.postWaitLabel = QLabel(self.postWaitGroup) self.postWaitLabel.setAlignment(Qt.AlignCenter) self.postWaitGroup.layout().addWidget(self.postWaitLabel) # Next action self.nextActionGroup = QGroupBox(self.tab_2) self.nextActionGroup.setLayout(QHBoxLayout()) self.tab_2.layout().addWidget(self.nextActionGroup) self.nextActionCombo = QComboBox(self.nextActionGroup) for action in CueNextAction: self.nextActionCombo.addItem( translate('CueNextAction', action.name), action.value) self.nextActionGroup.layout().addWidget(self.nextActionCombo) # TAB 3 (Fade In/Out) self.tab_3 = QWidget(self.tabWidget) self.tab_3.setLayout(QVBoxLayout()) self.tabWidget.addTab(self.tab_3, '3') # FadeInType self.fadeInGroup = QGroupBox(self.tab_3) self.fadeInGroup.setEnabled( CueAction.FadeInStart in cue_class.CueActions) self.fadeInGroup.setLayout(QGridLayout()) self.tab_3.layout().addWidget(self.fadeInGroup) self.fadeInDurationSpin = QDoubleSpinBox(self.fadeInGroup) self.fadeInDurationSpin.setMaximum(3600) self.fadeInGroup.layout().addWidget(self.fadeInDurationSpin, 0, 0) self.fadeInLabel = QLabel(self.fadeInGroup) self.fadeInLabel.setAlignment(Qt.AlignCenter) self.fadeInGroup.layout().addWidget(self.fadeInLabel, 0, 1) self.fadeInTypeCombo = FadeComboBox(mode=FadeComboBox.Mode.FadeIn, parent=self.fadeInGroup) self.fadeInGroup.layout().addWidget(self.fadeInTypeCombo, 1, 0) self.fadeInTypeLabel = QLabel(self.fadeInGroup) self.fadeInTypeLabel.setAlignment(Qt.AlignCenter) self.fadeInGroup.layout().addWidget(self.fadeInTypeLabel, 1, 1) # FadeOutType self.fadeOutGroup = QGroupBox(self.tab_3) self.fadeOutGroup.setEnabled( CueAction.FadeOutPause in cue_class.CueActions or CueAction.FadeOutStop in cue_class.CueActions) self.fadeOutGroup.setLayout(QGridLayout()) self.tab_3.layout().addWidget(self.fadeOutGroup) self.fadeOutDurationSpin = QDoubleSpinBox(self.fadeOutGroup) self.fadeOutDurationSpin.setMaximum(3600) self.fadeOutGroup.layout().addWidget(self.fadeOutDurationSpin, 0, 0) self.fadeOutLabel = QLabel(self.fadeOutGroup) self.fadeOutLabel.setAlignment(Qt.AlignCenter) self.fadeOutGroup.layout().addWidget(self.fadeOutLabel, 0, 1) self.fadeOutTypeCombo = FadeComboBox(mode=FadeComboBox.Mode.FadeOut, parent=self.fadeOutGroup) self.fadeOutGroup.layout().addWidget(self.fadeOutTypeCombo, 1, 0) self.fadeOutTypeLabel = QLabel(self.fadeOutGroup) self.fadeOutTypeLabel.setAlignment(Qt.AlignCenter) self.fadeOutGroup.layout().addWidget(self.fadeOutTypeLabel, 1, 1) self.retranslateUi()
class CueGeneralSettings(CueSettingsPage): Name = QT_TRANSLATE_NOOP('SettingsPageName', 'Cue') def __init__(self, cue_class, **kwargs): super().__init__(cue_class, **kwargs) self.setLayout(QVBoxLayout()) self.tabWidget = QTabWidget(self) self.layout().addWidget(self.tabWidget) # TAB 1 (Behaviours) self.tab_1 = QWidget(self.tabWidget) self.tab_1.setLayout(QVBoxLayout()) self.tabWidget.addTab(self.tab_1, '1') # Start-Action self.startActionGroup = QGroupBox(self.tab_1) self.startActionGroup.setLayout(QHBoxLayout()) self.tab_1.layout().addWidget(self.startActionGroup) self.startActionCombo = QComboBox(self.startActionGroup) for action in [CueAction.Start, CueAction.FadeInStart]: if action in cue_class.CueActions: self.startActionCombo.addItem( translate('CueAction', action.name), action.value) self.startActionCombo.setEnabled(self.startActionCombo.count() > 1) self.startActionGroup.layout().addWidget(self.startActionCombo) self.startActionLabel = QLabel(self.startActionGroup) self.startActionLabel.setAlignment(Qt.AlignCenter) self.startActionGroup.layout().addWidget(self.startActionLabel) # Stop-Action self.stopActionGroup = QGroupBox(self.tab_1) self.stopActionGroup.setLayout(QHBoxLayout()) self.tab_1.layout().addWidget(self.stopActionGroup) self.stopActionCombo = QComboBox(self.stopActionGroup) for action in [ CueAction.Stop, CueAction.Pause, CueAction.FadeOutStop, CueAction.FadeOutPause ]: if action in cue_class.CueActions: self.stopActionCombo.addItem( translate('CueAction', action.name), action.value) self.stopActionCombo.setEnabled(self.stopActionCombo.count() > 1) self.stopActionGroup.layout().addWidget(self.stopActionCombo) self.stopActionLabel = QLabel(self.stopActionGroup) self.stopActionLabel.setAlignment(Qt.AlignCenter) self.stopActionGroup.layout().addWidget(self.stopActionLabel) self.tab_1.layout().addSpacing(150) self.tab_1.setEnabled(self.stopActionCombo.isEnabled() and self.startActionCombo.isEnabled()) # TAB 2 (Pre/Post Wait) self.tab_2 = QWidget(self.tabWidget) self.tab_2.setLayout(QVBoxLayout()) self.tabWidget.addTab(self.tab_2, '2') # Pre wait self.preWaitGroup = QGroupBox(self.tab_2) self.preWaitGroup.setLayout(QHBoxLayout()) self.tab_2.layout().addWidget(self.preWaitGroup) self.preWaitSpin = QDoubleSpinBox(self.preWaitGroup) self.preWaitSpin.setMaximum(3600 * 24) self.preWaitGroup.layout().addWidget(self.preWaitSpin) self.preWaitLabel = QLabel(self.preWaitGroup) self.preWaitLabel.setAlignment(Qt.AlignCenter) self.preWaitGroup.layout().addWidget(self.preWaitLabel) # Post wait self.postWaitGroup = QGroupBox(self.tab_2) self.postWaitGroup.setLayout(QHBoxLayout()) self.tab_2.layout().addWidget(self.postWaitGroup) self.postWaitSpin = QDoubleSpinBox(self.postWaitGroup) self.postWaitSpin.setMaximum(3600 * 24) self.postWaitGroup.layout().addWidget(self.postWaitSpin) self.postWaitLabel = QLabel(self.postWaitGroup) self.postWaitLabel.setAlignment(Qt.AlignCenter) self.postWaitGroup.layout().addWidget(self.postWaitLabel) # Next action self.nextActionGroup = QGroupBox(self.tab_2) self.nextActionGroup.setLayout(QHBoxLayout()) self.tab_2.layout().addWidget(self.nextActionGroup) self.nextActionCombo = QComboBox(self.nextActionGroup) for action in CueNextAction: self.nextActionCombo.addItem( translate('CueNextAction', action.name), action.value) self.nextActionGroup.layout().addWidget(self.nextActionCombo) # TAB 3 (Fade In/Out) self.tab_3 = QWidget(self.tabWidget) self.tab_3.setLayout(QVBoxLayout()) self.tabWidget.addTab(self.tab_3, '3') # FadeInType self.fadeInGroup = QGroupBox(self.tab_3) self.fadeInGroup.setEnabled( CueAction.FadeInStart in cue_class.CueActions) self.fadeInGroup.setLayout(QGridLayout()) self.tab_3.layout().addWidget(self.fadeInGroup) self.fadeInDurationSpin = QDoubleSpinBox(self.fadeInGroup) self.fadeInDurationSpin.setMaximum(3600) self.fadeInGroup.layout().addWidget(self.fadeInDurationSpin, 0, 0) self.fadeInLabel = QLabel(self.fadeInGroup) self.fadeInLabel.setAlignment(Qt.AlignCenter) self.fadeInGroup.layout().addWidget(self.fadeInLabel, 0, 1) self.fadeInTypeCombo = FadeComboBox(mode=FadeComboBox.Mode.FadeIn, parent=self.fadeInGroup) self.fadeInGroup.layout().addWidget(self.fadeInTypeCombo, 1, 0) self.fadeInTypeLabel = QLabel(self.fadeInGroup) self.fadeInTypeLabel.setAlignment(Qt.AlignCenter) self.fadeInGroup.layout().addWidget(self.fadeInTypeLabel, 1, 1) # FadeOutType self.fadeOutGroup = QGroupBox(self.tab_3) self.fadeOutGroup.setEnabled( CueAction.FadeOutPause in cue_class.CueActions or CueAction.FadeOutStop in cue_class.CueActions) self.fadeOutGroup.setLayout(QGridLayout()) self.tab_3.layout().addWidget(self.fadeOutGroup) self.fadeOutDurationSpin = QDoubleSpinBox(self.fadeOutGroup) self.fadeOutDurationSpin.setMaximum(3600) self.fadeOutGroup.layout().addWidget(self.fadeOutDurationSpin, 0, 0) self.fadeOutLabel = QLabel(self.fadeOutGroup) self.fadeOutLabel.setAlignment(Qt.AlignCenter) self.fadeOutGroup.layout().addWidget(self.fadeOutLabel, 0, 1) self.fadeOutTypeCombo = FadeComboBox(mode=FadeComboBox.Mode.FadeOut, parent=self.fadeOutGroup) self.fadeOutGroup.layout().addWidget(self.fadeOutTypeCombo, 1, 0) self.fadeOutTypeLabel = QLabel(self.fadeOutGroup) self.fadeOutTypeLabel.setAlignment(Qt.AlignCenter) self.fadeOutGroup.layout().addWidget(self.fadeOutTypeLabel, 1, 1) self.retranslateUi() def retranslateUi(self): # Tabs self.tabWidget.setTabText(0, translate('CueSettings', 'Behaviours')) self.tabWidget.setTabText(1, translate('CueSettings', 'Pre/Post Wait')) self.tabWidget.setTabText(2, translate('CueSettings', 'Fade In/Out')) # Start-Action self.startActionGroup.setTitle(translate('CueSettings', 'Start action')) self.startActionLabel.setText( translate('CueSettings', 'Default action to start the cue')) # Stop-Action self.stopActionGroup.setTitle(translate('CueSettings', 'Stop action')) self.stopActionLabel.setText( translate('CueSettings', 'Default action to stop the cue')) # PreWait self.preWaitGroup.setTitle(translate('CueSettings', 'Pre wait')) self.preWaitLabel.setText( translate('CueSettings', 'Wait before cue execution')) # PostWait self.postWaitGroup.setTitle(translate('CueSettings', 'Post wait')) self.postWaitLabel.setText( translate('CueSettings', 'Wait after cue execution')) # NextAction self.nextActionGroup.setTitle(translate('CueSettings', 'Next action')) # FadeIn self.fadeInGroup.setTitle(translate('FadeSettings', 'Fade In')) self.fadeInLabel.setText(translate('FadeSettings', 'Duration (sec)')) self.fadeInTypeLabel.setText(translate('FadeSettings', 'Curve')) # FadeOut self.fadeOutGroup.setTitle(translate('FadeSettings', 'Fade Out')) self.fadeOutLabel.setText(translate('FadeSettings', 'Duration (sec)')) self.fadeOutTypeLabel.setText(translate('FadeSettings', 'Curve')) def load_settings(self, settings): self.startActionCombo.setCurrentText( translate('CueAction', settings.get('default_start_action', ''))) self.stopActionCombo.setCurrentText( translate('CueAction', settings.get('default_stop_action', ''))) self.preWaitSpin.setValue(settings.get('pre_wait', 0)) self.postWaitSpin.setValue(settings.get('post_wait', 0)) self.nextActionCombo.setCurrentText( translate('CueNextAction', settings.get('next_action', ''))) self.fadeInTypeCombo.setCurrentType(settings.get('fadein_type', '')) self.fadeInDurationSpin.setValue(settings.get('fadein_duration', 0)) self.fadeOutTypeCombo.setCurrentType(settings.get('fadeout_type', '')) self.fadeOutDurationSpin.setValue(settings.get('fadeout_duration', 0)) def enable_check(self, enable): self.startActionGroup.setCheckable(enable) self.startActionGroup.setChecked(False) self.stopActionGroup.setCheckable(enable) self.stopActionGroup.setChecked(False) self.preWaitGroup.setCheckable(enable) self.preWaitGroup.setChecked(False) self.postWaitGroup.setCheckable(enable) self.postWaitGroup.setChecked(False) self.nextActionGroup.setCheckable(enable) self.nextActionGroup.setChecked(False) self.fadeInGroup.setCheckable(enable) self.fadeInGroup.setChecked(False) self.fadeOutGroup.setCheckable(enable) self.fadeOutGroup.setChecked(False) def get_settings(self): conf = {} checkable = self.preWaitGroup.isCheckable() if not (checkable and not self.startActionGroup.isChecked()): if self.startActionCombo.isEnabled(): conf[ 'default_start_action'] = self.startActionCombo.currentData( ) if not (checkable and not self.stopActionGroup.isChecked()): if self.stopActionCombo.isEnabled(): conf['default_stop_action'] = self.stopActionCombo.currentData( ) if not (checkable and not self.preWaitGroup.isChecked()): conf['pre_wait'] = self.preWaitSpin.value() if not (checkable and not self.postWaitGroup.isChecked()): conf['post_wait'] = self.postWaitSpin.value() if not (checkable and not self.nextActionGroup.isChecked()): conf['next_action'] = self.nextActionCombo.currentData() if not (checkable and not self.fadeInGroup.isChecked()): conf['fadein_type'] = self.fadeInTypeCombo.currentType() conf['fadein_duration'] = self.fadeInDurationSpin.value() if not (checkable and not self.fadeInGroup.isChecked()): conf['fadeout_type'] = self.fadeInTypeCombo.currentType() conf['fadeout_duration'] = self.fadeOutDurationSpin.value() return conf
def __init__(self, **kwargs): super().__init__(**kwargs) self.setLayout(QVBoxLayout()) #self.layout().setAlignment(Qt.AlignTop) self.behaviorsGroup = QGroupBox(self) self.behaviorsGroup.setLayout(QVBoxLayout()) self.layout().addWidget(self.behaviorsGroup) self.showPlaying = QCheckBox(self.behaviorsGroup) self.behaviorsGroup.layout().addWidget(self.showPlaying) self.showDbMeters = QCheckBox(self.behaviorsGroup) self.behaviorsGroup.layout().addWidget(self.showDbMeters) self.showAccurate = QCheckBox(self.behaviorsGroup) self.behaviorsGroup.layout().addWidget(self.showAccurate) self.showSeek = QCheckBox(self.behaviorsGroup) self.behaviorsGroup.layout().addWidget(self.showSeek) self.autoNext = QCheckBox(self.behaviorsGroup) self.behaviorsGroup.layout().addWidget(self.autoNext) self.endListLayout = QHBoxLayout() self.behaviorsGroup.layout().addLayout(self.endListLayout) self.endListLabel = QLabel(self.behaviorsGroup) self.endListLayout.addWidget(self.endListLabel) self.endListBehavior = QComboBox(self.behaviorsGroup) self.endListBehavior.addItem(translate('ListLayout', 'Stop'), 'Stop') self.endListBehavior.addItem(translate('ListLayout', 'Restart'), 'Restart') self.endListLayout.addWidget(self.endListBehavior) self.endListLayout.setStretch(0, 2) self.endListLayout.setStretch(1, 5) self.goKeyLayout = QHBoxLayout() self.behaviorsGroup.layout().addLayout(self.goKeyLayout) self.goKeyLabel = QLabel(self.behaviorsGroup) self.goKeyLayout.addWidget(self.goKeyLabel) self.goKeyEdit = QKeySequenceEdit(self.behaviorsGroup) self.goKeyLayout.addWidget(self.goKeyEdit) self.goKeyLayout.setStretch(0, 2) self.goKeyLayout.setStretch(1, 5) self.useFadeGroup = QGroupBox(self) self.useFadeGroup.setLayout(QGridLayout()) self.layout().addWidget(self.useFadeGroup) # per-cue self.stopCueFade = QCheckBox(self.useFadeGroup) self.useFadeGroup.layout().addWidget(self.stopCueFade, 0, 0) self.pauseCueFade = QCheckBox(self.useFadeGroup) self.useFadeGroup.layout().addWidget(self.pauseCueFade, 1, 0) self.restartCueFade = QCheckBox(self.useFadeGroup) self.useFadeGroup.layout().addWidget(self.restartCueFade, 2, 0) self.interruptCueFade = QCheckBox(self.useFadeGroup) self.useFadeGroup.layout().addWidget(self.interruptCueFade, 3, 0) # all self.stopAllFade = QCheckBox(self.useFadeGroup) self.useFadeGroup.layout().addWidget(self.stopAllFade, 0, 1) self.pauseAllFade = QCheckBox(self.useFadeGroup) self.useFadeGroup.layout().addWidget(self.pauseAllFade, 1, 1) self.restartAllFade = QCheckBox(self.useFadeGroup) self.useFadeGroup.layout().addWidget(self.restartAllFade, 2, 1) self.interruptAllFade = QCheckBox(self.useFadeGroup) self.useFadeGroup.layout().addWidget(self.interruptAllFade, 3, 1) # Fade settings self.fadeGroup = QGroupBox(self) self.fadeGroup.setLayout(QGridLayout()) self.layout().addWidget(self.fadeGroup) self.fadeDurationSpin = QDoubleSpinBox(self.fadeGroup) self.fadeDurationSpin.setRange(0, 3600) self.fadeGroup.layout().addWidget(self.fadeDurationSpin, 0, 0) self.fadeDurationLabel = QLabel(self.fadeGroup) self.fadeDurationLabel.setAlignment(Qt.AlignCenter) self.fadeGroup.layout().addWidget(self.fadeDurationLabel, 0, 1) self.fadeTypeCombo = FadeComboBox(self.fadeGroup) self.fadeGroup.layout().addWidget(self.fadeTypeCombo, 1, 0) self.fadeTypeLabel = QLabel(self.fadeGroup) self.fadeTypeLabel.setAlignment(Qt.AlignCenter) self.fadeGroup.layout().addWidget(self.fadeTypeLabel, 1, 1) self.retranslateUi()
class ListLayoutSettings(SettingsPage): Name = 'List Layout' def __init__(self, **kwargs): super().__init__(**kwargs) self.setLayout(QVBoxLayout()) #self.layout().setAlignment(Qt.AlignTop) self.behaviorsGroup = QGroupBox(self) self.behaviorsGroup.setLayout(QVBoxLayout()) self.layout().addWidget(self.behaviorsGroup) self.showPlaying = QCheckBox(self.behaviorsGroup) self.behaviorsGroup.layout().addWidget(self.showPlaying) self.showDbMeters = QCheckBox(self.behaviorsGroup) self.behaviorsGroup.layout().addWidget(self.showDbMeters) self.showAccurate = QCheckBox(self.behaviorsGroup) self.behaviorsGroup.layout().addWidget(self.showAccurate) self.showSeek = QCheckBox(self.behaviorsGroup) self.behaviorsGroup.layout().addWidget(self.showSeek) self.autoNext = QCheckBox(self.behaviorsGroup) self.behaviorsGroup.layout().addWidget(self.autoNext) self.endListLayout = QHBoxLayout() self.behaviorsGroup.layout().addLayout(self.endListLayout) self.endListLabel = QLabel(self.behaviorsGroup) self.endListLayout.addWidget(self.endListLabel) self.endListBehavior = QComboBox(self.behaviorsGroup) self.endListBehavior.addItem(translate('ListLayout', 'Stop'), 'Stop') self.endListBehavior.addItem(translate('ListLayout', 'Restart'), 'Restart') self.endListLayout.addWidget(self.endListBehavior) self.endListLayout.setStretch(0, 2) self.endListLayout.setStretch(1, 5) self.goKeyLayout = QHBoxLayout() self.behaviorsGroup.layout().addLayout(self.goKeyLayout) self.goKeyLabel = QLabel(self.behaviorsGroup) self.goKeyLayout.addWidget(self.goKeyLabel) self.goKeyEdit = QKeySequenceEdit(self.behaviorsGroup) self.goKeyLayout.addWidget(self.goKeyEdit) self.goKeyLayout.setStretch(0, 2) self.goKeyLayout.setStretch(1, 5) self.useFadeGroup = QGroupBox(self) self.useFadeGroup.setLayout(QGridLayout()) self.layout().addWidget(self.useFadeGroup) # per-cue self.stopCueFade = QCheckBox(self.useFadeGroup) self.useFadeGroup.layout().addWidget(self.stopCueFade, 0, 0) self.pauseCueFade = QCheckBox(self.useFadeGroup) self.useFadeGroup.layout().addWidget(self.pauseCueFade, 1, 0) self.restartCueFade = QCheckBox(self.useFadeGroup) self.useFadeGroup.layout().addWidget(self.restartCueFade, 2, 0) self.interruptCueFade = QCheckBox(self.useFadeGroup) self.useFadeGroup.layout().addWidget(self.interruptCueFade, 3, 0) # all self.stopAllFade = QCheckBox(self.useFadeGroup) self.useFadeGroup.layout().addWidget(self.stopAllFade, 0, 1) self.pauseAllFade = QCheckBox(self.useFadeGroup) self.useFadeGroup.layout().addWidget(self.pauseAllFade, 1, 1) self.restartAllFade = QCheckBox(self.useFadeGroup) self.useFadeGroup.layout().addWidget(self.restartAllFade, 2, 1) self.interruptAllFade = QCheckBox(self.useFadeGroup) self.useFadeGroup.layout().addWidget(self.interruptAllFade, 3, 1) # Fade settings self.fadeGroup = QGroupBox(self) self.fadeGroup.setLayout(QGridLayout()) self.layout().addWidget(self.fadeGroup) self.fadeDurationSpin = QDoubleSpinBox(self.fadeGroup) self.fadeDurationSpin.setRange(0, 3600) self.fadeGroup.layout().addWidget(self.fadeDurationSpin, 0, 0) self.fadeDurationLabel = QLabel(self.fadeGroup) self.fadeDurationLabel.setAlignment(Qt.AlignCenter) self.fadeGroup.layout().addWidget(self.fadeDurationLabel, 0, 1) self.fadeTypeCombo = FadeComboBox(self.fadeGroup) self.fadeGroup.layout().addWidget(self.fadeTypeCombo, 1, 0) self.fadeTypeLabel = QLabel(self.fadeGroup) self.fadeTypeLabel.setAlignment(Qt.AlignCenter) self.fadeGroup.layout().addWidget(self.fadeTypeLabel, 1, 1) self.retranslateUi() def retranslateUi(self): self.behaviorsGroup.setTitle( translate('ListLayout', 'Default behaviors')) self.showPlaying.setText(translate('ListLayout', 'Show playing cues')) self.showDbMeters.setText(translate('ListLayout', 'Show dB-meters')) self.showAccurate.setText(translate('ListLayout', 'Show accurate time')) self.showSeek.setText(translate('ListLayout', 'Show seek-bars')) self.autoNext.setText(translate('ListLayout', 'Auto-select next cue')) self.endListLabel.setText(translate('ListLayout', 'At list end:')) self.goKeyLabel.setText(translate('ListLayout', 'Go key:')) self.useFadeGroup.setTitle(translate('ListLayout', 'Use fade')) self.stopCueFade.setText(translate('ListLayout', 'Stop Cue')) self.pauseCueFade.setText(translate('ListLayout', 'Pause Cue')) self.restartCueFade.setText(translate('ListLayout', 'Restart Cue')) self.interruptCueFade.setText(translate('ListLayout', 'Interrupt Cue')) self.stopAllFade.setText(translate('ListLayout', 'Stop All')) self.pauseAllFade.setText(translate('ListLayout', 'Pause All')) self.restartAllFade.setText(translate('ListLayout', 'Restart All')) self.interruptAllFade.setText(translate('ListLayout', 'Interrupt All')) self.fadeGroup.setTitle( translate('ListLayout', 'Fade (buttons) settings')) self.fadeDurationLabel.setText(translate('ListLayout', 'Fade duration')) self.fadeTypeLabel.setText(translate('ListLayout', 'Fade type')) def get_settings(self): settings = { 'showplaying': str(self.showPlaying.isChecked()), 'showdbmeters': str(self.showDbMeters.isChecked()), 'showseek': str(self.showSeek.isChecked()), 'showaccurate': str(self.showAccurate.isChecked()), 'autocontinue': str(self.autoNext.isChecked()), 'endlist': str(self.endListBehavior.currentData()), 'gokey': self.goKeyEdit.keySequence().toString(QKeySequence.NativeText), 'stopcuefade': str(self.stopCueFade.isChecked()), 'pausecuefade': str(self.pauseCueFade.isChecked()), 'restartcuefade': str(self.restartCueFade.isChecked()), 'interruptcuefade': str(self.interruptCueFade.isChecked()), 'stopallfade': str(self.stopAllFade.isChecked()), 'pauseallfade': str(self.pauseAllFade.isChecked()), 'restartallfade': str(self.restartAllFade.isChecked()), 'interruptallfade': str(self.interruptAllFade.isChecked()), 'cuefadeduration': str(self.fadeDurationSpin.value()), 'cuefadetype': self.fadeTypeCombo.currentType() } return {'ListLayout': settings} def load_settings(self, settings): settings = settings.get('ListLayout', {}) self.showPlaying.setChecked(settings.get('showplaying') == 'True') self.showDbMeters.setChecked(settings.get('showdbmeters') == 'True') self.showAccurate.setChecked(settings.get('showaccurate') == 'True') self.showSeek.setChecked(settings.get('showseek') == 'True') self.autoNext.setChecked(settings.get('autocontinue') == 'True') self.endListBehavior.setCurrentText( translate('ListLayout', settings.get('endlist', ''))) self.goKeyEdit.setKeySequence( QKeySequence(settings.get('gokey', 'Space'), QKeySequence.NativeText)) self.stopCueFade.setChecked(settings.get('stopcuefade') == 'True') self.pauseCueFade.setChecked(settings.get('pausecuefade') == 'True') self.restartCueFade.setChecked( settings.get('restartcuefade') == 'True') self.interruptCueFade.setChecked( settings.get('interruptcuefade') == 'True') self.stopAllFade.setChecked(settings.get('stopallfade') == 'True') self.pauseAllFade.setChecked(settings.get('pauseallfade') == 'True') self.restartAllFade.setChecked( settings.get('restartallfade') == 'True') self.interruptAllFade.setChecked( settings.get('interruptallfade') == 'True') self.fadeDurationSpin.setValue( float(settings.get('cuefadeduration', 0))) self.fadeTypeCombo.setCurrentType(settings.get('cuefadetype', ''))