コード例 #1
0
    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()
コード例 #2
0
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()
        }}
コード例 #3
0
ファイル: fade_edit.py プロジェクト: winstc/linux-show-player
    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()
コード例 #4
0
ファイル: fade_edit.py プロジェクト: winstc/linux-show-player
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)
コード例 #5
0
    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()
コード例 #6
0
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
コード例 #7
0
    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()
コード例 #8
0
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
コード例 #9
0
    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()
コード例 #10
0
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', ''))