Esempio n. 1
0
    def add_top_bar(self, s):
        tr = self.tr
        with append_widget(s, QHBoxLayout):
            with append_widget(s, QVBoxLayout):

                with append_widget(s, QGroupBox):
                    s.widget.setTitle(tr("FFmpeg Options"))
                    set_layout(s, QFormLayout)

                    # Master audio
                    with add_row(s, tr("Master Audio"), QHBoxLayout):
                        with append_widget(s,
                                           BoundLineEdit) as self.master_audio:
                            pass
                        with append_widget(
                                s, QPushButton) as self.master_audio_browse:
                            pass

                    with add_row(
                            s, tr("Video Template"),
                            BoundLineEdit) as self.ffmpeg_cli__video_template:
                        pass
                    with add_row(
                            s, tr("Audio Template"),
                            BoundLineEdit) as self.ffmpeg_cli__audio_template:
                        pass
Esempio n. 2
0
    def add_general_tab(self, s: LayoutStack) -> QWidget:
        tr = self.tr
        with self.add_tab_stretch(s, tr("&General"),
                                  layout=QVBoxLayout) as tab:

            # Global group
            with append_widget(s, QGroupBox) as self.optionGlobal:
                set_layout(s, QFormLayout)

                with add_row(s, "", BoundSpinBox) as self.fps:
                    self.fps.setMinimum(1)
                    self.fps.setMaximum(999)
                    self.fps.setSingleStep(10)

                with add_row(s, "", BoundSpinBox,
                             maximum=200) as self.trigger_ms:
                    self.trigger_ms.setMinimum(5)
                    self.trigger_ms.setSingleStep(5)

                with add_row(s, "", BoundSpinBox,
                             maximum=200) as self.render_ms:
                    self.render_ms.setMinimum(5)
                    self.render_ms.setSingleStep(5)

                with add_row(s, "", BoundDoubleSpinBox) as self.amplification:
                    self.amplification.setSingleStep(0.1)

                with add_row(s, "", BoundDoubleSpinBox) as self.begin_time:
                    self.begin_time.setMaximum(9999.0)

            with append_widget(s,
                               QGroupBox,
                               title=tr("Performance (Preview Only)"),
                               layout=QFormLayout):
                with add_row(s, tr("Render Subsampling"),
                             BoundSpinBox) as self.render_subsampling:
                    self.render_subsampling.setMinimum(1)

                with add_row(s, tr("Render FPS Divisor"),
                             BoundSpinBox) as self.render_subfps:
                    self.render_subfps.setMinimum(1)

                with add_row(s, tr("Resolution Divisor"),
                             BoundDoubleSpinBox) as self.render__res_divisor:
                    self.render__res_divisor.setMinimum(1.0)
                    self.render__res_divisor.setSingleStep(0.5)

        return tab
Esempio n. 3
0
    def add_channels_list(self, s):
        tr = self.tr
        with append_widget(s, QGroupBox) as group:
            s.widget.setTitle(tr("Oscilloscope Channels"))
            set_layout(s, QVBoxLayout)

            # Button toolbar
            with append_widget(s, QHBoxLayout) as self.channelBar:
                append_stretch(s)

                with append_widget(s, ShortcutButton) as self.channelAdd:
                    pass
                with append_widget(s, ShortcutButton) as self.channelDelete:
                    pass
                with append_widget(s, ShortcutButton) as self.channelUp:
                    pass
                with append_widget(s, ShortcutButton) as self.channelDown:
                    pass

            # Spreadsheet grid
            with append_widget(s, ChannelTableView) as self.channel_view:
                pass

        return group
Esempio n. 4
0
    def setupUi(self, MainWindow: QMainWindow):
        # Multiplying by DPI scale is necessary on both Windows and Linux,
        # since MainWindow.resize() operates in physical pixels.
        scale = MainWindow.logicalDpiX() / 96.0

        width = 1280
        height = 0
        MainWindow.resize(width * scale, height * scale)

        s = LayoutStack(MainWindow)

        # Window contents
        with central_widget(s, QWidget) as self.centralWidget:
            horizontalLayout = set_layout(s, QHBoxLayout)

            # Left-hand config tabs
            with append_widget(s, TabWidget) as self.left_tabs:
                self.add_general_tab(s)
                self.add_appear_tab(s)
                self.add_trigger_tab(s)

            # Right-hand channel list
            with append_widget(s, QVBoxLayout) as self.audioColumn:

                # Top bar (master audio, trigger)
                self.add_top_bar(s)

                # Channel list (group box)
                self.channelsGroup = self.add_channels_list(s)

            # Right-hand channel list expands to fill space.
            horizontalLayout.setStretch(1, 1)

        self.add_actions(s, MainWindow)

        # Creates references to labels
        set_attr_objectName(self, s)

        # Initializes labels by reference
        self.retranslateUi(MainWindow)