예제 #1
0
    def __init__(self, main_win, db):
        AbstractWidget.__init__(self, main_win=main_win, db=db)

        lbl_width = 120

        # outline ui
        self.main_layout = QtWidgets.QVBoxLayout()
        self.frame.setLayout(self.main_layout)

        # - active setup
        hbox = QtWidgets.QHBoxLayout()
        self.main_layout.addLayout(hbox)
        hbox.addStretch()
        self.active_label = QtWidgets.QLabel()
        hbox.addWidget(self.active_label)
        hbox.addStretch()

        # - left and right sub-frames
        hbox = QtWidgets.QHBoxLayout()
        self.main_layout.addLayout(hbox)
        # -- left
        self.left_frame = QtWidgets.QFrame()
        self.left_layout = QtWidgets.QVBoxLayout()
        self.left_frame.setLayout(self.left_layout)
        hbox.addWidget(self.left_frame, stretch=1)
        # -- stretch
        hbox.addStretch()
        # -- right
        self.right_frame = QtWidgets.QFrame()
        self.right_layout = QtWidgets.QVBoxLayout()
        self.right_frame.setLayout(self.right_layout)
        hbox.addWidget(self.right_frame, stretch=1)

        # LEFT

        # - atlases
        hbox = QtWidgets.QHBoxLayout()
        self.left_layout.addLayout(hbox)
        hbox.addStretch()
        self.label = QtWidgets.QLabel("Atlases")
        hbox.addWidget(self.label)
        hbox.addStretch()

        # - use woa09
        hbox = QtWidgets.QHBoxLayout()
        self.left_layout.addLayout(hbox)
        # -- label
        vbox = QtWidgets.QVBoxLayout()
        hbox.addLayout(vbox)
        vbox.addStretch()
        label = QtWidgets.QLabel("Use WOA09:")
        label.setFixedWidth(lbl_width)
        vbox.addWidget(label)
        vbox.addStretch()
        # -- label
        vbox = QtWidgets.QVBoxLayout()
        hbox.addLayout(vbox)
        vbox.addStretch()
        self.use_woa09 = QtWidgets.QComboBox()
        self.use_woa09.addItems(["True", "False"])
        vbox.addWidget(self.use_woa09)
        vbox.addStretch()

        # - use woa13
        hbox = QtWidgets.QHBoxLayout()
        self.left_layout.addLayout(hbox)
        # -- label
        vbox = QtWidgets.QVBoxLayout()
        hbox.addLayout(vbox)
        vbox.addStretch()
        label = QtWidgets.QLabel("Use WOA13:")
        label.setFixedWidth(lbl_width)
        vbox.addWidget(label)
        vbox.addStretch()
        # -- value
        vbox = QtWidgets.QVBoxLayout()
        hbox.addLayout(vbox)
        vbox.addStretch()
        self.use_woa13 = QtWidgets.QComboBox()
        self.use_woa13.addItems(["True", "False"])
        vbox.addWidget(self.use_woa13)
        vbox.addStretch()

        # - use rtofs
        hbox = QtWidgets.QHBoxLayout()
        self.left_layout.addLayout(hbox)
        # -- label
        vbox = QtWidgets.QVBoxLayout()
        hbox.addLayout(vbox)
        vbox.addStretch()
        label = QtWidgets.QLabel("Use RTOFS:")
        label.setFixedWidth(lbl_width)
        vbox.addWidget(label)
        vbox.addStretch()
        # -- value
        vbox = QtWidgets.QVBoxLayout()
        hbox.addLayout(vbox)
        vbox.addStretch()
        self.use_rtofs = QtWidgets.QComboBox()
        self.use_rtofs.addItems(["True", "False"])
        vbox.addWidget(self.use_rtofs)
        vbox.addStretch()

        # - use gomofs
        hbox = QtWidgets.QHBoxLayout()
        self.left_layout.addLayout(hbox)
        # -- label
        vbox = QtWidgets.QVBoxLayout()
        hbox.addLayout(vbox)
        vbox.addStretch()
        label = QtWidgets.QLabel("Use GoMOFS:")
        label.setFixedWidth(lbl_width)
        vbox.addWidget(label)
        vbox.addStretch()
        # -- value
        vbox = QtWidgets.QVBoxLayout()
        hbox.addLayout(vbox)
        vbox.addStretch()
        self.use_gomofs = QtWidgets.QComboBox()
        self.use_gomofs.addItems(["True", "False"])
        vbox.addWidget(self.use_gomofs)
        vbox.addStretch()

        # - ssp_extension_source
        hbox = QtWidgets.QHBoxLayout()
        self.left_layout.addLayout(hbox)
        # -- label
        vbox = QtWidgets.QVBoxLayout()
        hbox.addLayout(vbox)
        vbox.addStretch()
        label = QtWidgets.QLabel("Extend with:")
        label.setFixedWidth(lbl_width)
        vbox.addWidget(label)
        vbox.addStretch()
        # -- value
        vbox = QtWidgets.QVBoxLayout()
        hbox.addLayout(vbox)
        vbox.addStretch()
        self.extension_source = QtWidgets.QComboBox()
        self.extension_source.addItems([k for k in Dicts.atlases.keys()])
        vbox.addWidget(self.extension_source)
        vbox.addStretch()

        # - ssp_salinity_source
        hbox = QtWidgets.QHBoxLayout()
        self.left_layout.addLayout(hbox)
        # -- label
        vbox = QtWidgets.QVBoxLayout()
        hbox.addLayout(vbox)
        vbox.addStretch()
        label = QtWidgets.QLabel("Salinity from:")
        label.setFixedWidth(lbl_width)
        vbox.addWidget(label)
        vbox.addStretch()
        # -- value
        vbox = QtWidgets.QVBoxLayout()
        hbox.addLayout(vbox)
        vbox.addStretch()
        self.salinity_source = QtWidgets.QComboBox()
        self.salinity_source.addItems([k for k in Dicts.atlases.keys()])
        vbox.addWidget(self.salinity_source)
        vbox.addStretch()

        # - ssp_temp_sal_source
        hbox = QtWidgets.QHBoxLayout()
        self.left_layout.addLayout(hbox)
        # -- label
        vbox = QtWidgets.QVBoxLayout()
        hbox.addLayout(vbox)
        vbox.addStretch()
        label = QtWidgets.QLabel("Temp/sal from:")
        label.setFixedWidth(lbl_width)
        vbox.addWidget(label)
        vbox.addStretch()
        # -- value
        vbox = QtWidgets.QVBoxLayout()
        hbox.addLayout(vbox)
        vbox.addStretch()
        self.temp_sal_source = QtWidgets.QComboBox()
        self.temp_sal_source.addItems([k for k in Dicts.atlases.keys()])
        vbox.addWidget(self.temp_sal_source)
        vbox.addStretch()

        self.left_layout.addStretch()

        # RIGHT FRAME

        # - listeners
        hbox = QtWidgets.QHBoxLayout()
        self.right_layout.addLayout(hbox)
        hbox.addStretch()
        self.label = QtWidgets.QLabel("Listeners(*)")
        hbox.addWidget(self.label)
        hbox.addStretch()

        # - use sis4
        hbox = QtWidgets.QHBoxLayout()
        self.right_layout.addLayout(hbox)
        # -- label
        vbox = QtWidgets.QVBoxLayout()
        hbox.addLayout(vbox)
        vbox.addStretch()
        label = QtWidgets.QLabel("Listen SIS4:")
        label.setFixedWidth(lbl_width)
        vbox.addWidget(label)
        vbox.addStretch()
        # -- value
        vbox = QtWidgets.QVBoxLayout()
        hbox.addLayout(vbox)
        vbox.addStretch()
        self.use_sis4 = QtWidgets.QComboBox()
        self.use_sis4.addItems(["True", "False"])
        vbox.addWidget(self.use_sis4)
        vbox.addStretch()

        # - use sis5
        hbox = QtWidgets.QHBoxLayout()
        self.right_layout.addLayout(hbox)
        # -- label
        vbox = QtWidgets.QVBoxLayout()
        hbox.addLayout(vbox)
        vbox.addStretch()
        label = QtWidgets.QLabel("Listen SIS5:")
        label.setFixedWidth(lbl_width)
        vbox.addWidget(label)
        vbox.addStretch()
        # -- value
        vbox = QtWidgets.QVBoxLayout()
        hbox.addLayout(vbox)
        vbox.addStretch()
        self.use_sis5 = QtWidgets.QComboBox()
        self.use_sis5.addItems(["True", "False"])
        vbox.addWidget(self.use_sis5)
        vbox.addStretch()

        # - use sippican
        hbox = QtWidgets.QHBoxLayout()
        self.right_layout.addLayout(hbox)
        # -- label
        vbox = QtWidgets.QVBoxLayout()
        hbox.addLayout(vbox)
        vbox.addStretch()
        label = QtWidgets.QLabel("Listen Sippican:")
        label.setFixedWidth(lbl_width)
        vbox.addWidget(label)
        vbox.addStretch()
        # -- value
        vbox = QtWidgets.QVBoxLayout()
        hbox.addLayout(vbox)
        vbox.addStretch()
        self.use_sippican = QtWidgets.QComboBox()
        self.use_sippican.addItems(["True", "False"])
        vbox.addWidget(self.use_sippican)
        vbox.addStretch()

        # - use mvp
        hbox = QtWidgets.QHBoxLayout()
        self.right_layout.addLayout(hbox)
        # -- label
        vbox = QtWidgets.QVBoxLayout()
        hbox.addLayout(vbox)
        vbox.addStretch()
        label = QtWidgets.QLabel("Listen MVP:")
        label.setFixedWidth(lbl_width)
        vbox.addWidget(label)
        vbox.addStretch()
        # -- value
        vbox = QtWidgets.QVBoxLayout()
        hbox.addLayout(vbox)
        vbox.addStretch()
        self.use_mvp = QtWidgets.QComboBox()
        self.use_mvp.addItems(["True", "False"])
        vbox.addWidget(self.use_mvp)
        vbox.addStretch()

        # - rx max waiting time
        hbox = QtWidgets.QHBoxLayout()
        self.right_layout.addLayout(hbox)
        # -- label
        vbox = QtWidgets.QVBoxLayout()
        hbox.addLayout(vbox)
        vbox.addStretch()
        label = QtWidgets.QLabel("RX timeout:")
        label.setFixedWidth(lbl_width)
        vbox.addWidget(label)
        vbox.addStretch()
        # -- value
        vbox = QtWidgets.QVBoxLayout()
        hbox.addLayout(vbox)
        vbox.addStretch()
        self.rx_max_wait_time = QtWidgets.QLineEdit()
        validator = QtGui.QIntValidator(0, 99999)
        self.rx_max_wait_time.setValidator(validator)
        vbox.addWidget(self.rx_max_wait_time)
        vbox.addStretch()

        self.right_layout.addSpacing(12)

        # - processing
        hbox = QtWidgets.QHBoxLayout()
        self.right_layout.addLayout(hbox)
        hbox.addStretch()
        label = QtWidgets.QLabel("Other settings")
        hbox.addWidget(label)
        hbox.addStretch()

        # - profile direction
        hbox = QtWidgets.QHBoxLayout()
        self.right_layout.addLayout(hbox)
        # -- label
        vbox = QtWidgets.QVBoxLayout()
        hbox.addLayout(vbox)
        vbox.addStretch()
        label = QtWidgets.QLabel("Profile direction:")
        label.setFixedWidth(lbl_width)
        vbox.addWidget(label)
        vbox.addStretch()
        # -- label
        vbox = QtWidgets.QVBoxLayout()
        hbox.addLayout(vbox)
        vbox.addStretch()
        self.profile_direction = QtWidgets.QComboBox()
        self.profile_direction.addItems(
            [k for k in Dicts.ssp_directions.keys()])
        vbox.addWidget(self.profile_direction)
        vbox.addStretch()

        self.right_layout.addStretch()

        # - active setup
        hbox = QtWidgets.QHBoxLayout()
        self.main_layout.addLayout(hbox)
        hbox.addStretch()
        label = QtWidgets.QLabel(
            "<i>* Restart the application to apply any change to the listeners.</i>"
        )
        label.setFixedHeight(22)
        label.setStyleSheet("QLabel { color : #FF6347; }")
        hbox.addWidget(label)
        hbox.addStretch()

        self.main_layout.addStretch()

        self.setup_changed()  # to trigger the first data population

        # -- connect functions:
        # noinspection PyUnresolvedReferences
        self.use_woa09.currentIndexChanged.connect(self.apply_use_woa09)
        # noinspection PyUnresolvedReferences
        self.use_woa13.currentIndexChanged.connect(self.apply_use_woa13)
        # noinspection PyUnresolvedReferences
        self.use_rtofs.currentIndexChanged.connect(self.apply_use_rtofs)
        # noinspection PyUnresolvedReferences
        self.use_gomofs.currentIndexChanged.connect(self.apply_use_gomofs)
        # noinspection PyUnresolvedReferences
        self.extension_source.currentIndexChanged.connect(
            self.apply_extension_source)
        # noinspection PyUnresolvedReferences
        self.salinity_source.currentIndexChanged.connect(
            self.apply_salinity_source)
        # noinspection PyUnresolvedReferences
        self.temp_sal_source.currentIndexChanged.connect(
            self.apply_temp_sal_source)
        # noinspection PyUnresolvedReferences
        self.use_sis4.currentIndexChanged.connect(self.apply_use_sis)
        # noinspection PyUnresolvedReferences
        self.use_sis5.currentIndexChanged.connect(self.apply_use_sis)
        # noinspection PyUnresolvedReferences
        self.use_sippican.currentIndexChanged.connect(self.apply_use_sippican)
        # noinspection PyUnresolvedReferences
        self.use_mvp.currentIndexChanged.connect(self.apply_use_mvp)
        # noinspection PyUnresolvedReferences
        self.rx_max_wait_time.textChanged.connect(self.apply_rx_max_wait_time)
        # noinspection PyUnresolvedReferences
        self.profile_direction.currentIndexChanged.connect(
            self.apply_profile_direction)
예제 #2
0
    def __init__(self, main_win, db):
        AbstractWidget.__init__(self, main_win=main_win, db=db)

        lbl_width = 120

        # outline ui
        self.main_layout = QtWidgets.QVBoxLayout()
        self.frame.setLayout(self.main_layout)

        # - active setup
        hbox = QtWidgets.QHBoxLayout()
        self.main_layout.addLayout(hbox)
        hbox.addStretch()
        self.active_label = QtWidgets.QLabel()
        hbox.addWidget(self.active_label)
        hbox.addStretch()

        # - list of setups
        hbox = QtWidgets.QHBoxLayout()
        self.main_layout.addLayout(hbox)
        # -- label
        vbox = QtWidgets.QVBoxLayout()
        hbox.addLayout(vbox)
        vbox.addStretch()
        label = QtWidgets.QLabel("Client list:")
        label.setFixedWidth(lbl_width)
        vbox.addWidget(label)
        vbox.addStretch()
        # -- list
        self.client_list = QtWidgets.QTableWidget()
        self.client_list.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows)
        self.client_list.setSelectionMode(QtWidgets.QAbstractItemView.SingleSelection)
        hbox.addWidget(self.client_list)
        # -- button box
        vbox = QtWidgets.QVBoxLayout()
        hbox.addLayout(vbox)
        # noinspection PyUnresolvedReferences
        self.btn_box = QtWidgets.QDialogButtonBox(QtCore.Qt.Vertical)
        vbox.addWidget(self.btn_box)
        vbox.addStretch()
        # --- new setup
        self.btn_new_client = QtWidgets.QPushButton("New client")
        self.btn_box.addButton(self.btn_new_client, QtWidgets.QDialogButtonBox.ActionRole)
        # --- delete setup
        self.btn_delete_client = QtWidgets.QPushButton("Delete client")
        self.btn_box.addButton(self.btn_delete_client, QtWidgets.QDialogButtonBox.ActionRole)
        # --- refresh
        self.btn_refresh_list = QtWidgets.QPushButton("Refresh")
        self.btn_box.addButton(self.btn_refresh_list, QtWidgets.QDialogButtonBox.ActionRole)

        # - left and right sub-frames
        hbox = QtWidgets.QHBoxLayout()
        self.main_layout.addLayout(hbox)
        # -- left
        self.left_frame = QtWidgets.QFrame()
        self.left_layout = QtWidgets.QVBoxLayout()
        self.left_frame.setLayout(self.left_layout)
        hbox.addWidget(self.left_frame, stretch=1)
        # -- stretch
        hbox.addStretch()
        # -- right
        self.right_frame = QtWidgets.QFrame()
        self.right_layout = QtWidgets.QVBoxLayout()
        self.right_frame.setLayout(self.right_layout)
        hbox.addWidget(self.right_frame, stretch=1)

        # LEFT

        # - Editor settings
        hbox = QtWidgets.QHBoxLayout()
        self.left_layout.addLayout(hbox)
        hbox.addStretch()
        self.label = QtWidgets.QLabel("SIS protocol:")
        hbox.addWidget(self.label)
        hbox.addStretch()

        # - sis_auto_apply_manual_casts
        hbox = QtWidgets.QHBoxLayout()
        self.left_layout.addLayout(hbox)
        # -- label
        label = QtWidgets.QLabel("SIS auto apply profile:")
        label.setFixedWidth(lbl_width)
        hbox.addWidget(label)
        # -- value
        self.sis_auto_apply_manual_casts = QtWidgets.QComboBox()
        self.sis_auto_apply_manual_casts.addItems(["True", "False"])
        hbox.addWidget(self.sis_auto_apply_manual_casts)

        self.left_layout.addStretch()

        # RIGHT

        # - server
        hbox = QtWidgets.QHBoxLayout()
        self.right_layout.addLayout(hbox)
        hbox.addStretch()
        self.label = QtWidgets.QLabel("Server settings:")
        hbox.addWidget(self.label)
        hbox.addStretch()

        # - server_source
        hbox = QtWidgets.QHBoxLayout()
        self.right_layout.addLayout(hbox)
        # -- label
        vbox = QtWidgets.QVBoxLayout()
        hbox.addLayout(vbox)
        vbox.addStretch()
        label = QtWidgets.QLabel("Source:")
        label.setFixedWidth(lbl_width)
        vbox.addWidget(label)
        vbox.addStretch()
        # -- value
        vbox = QtWidgets.QVBoxLayout()
        hbox.addLayout(vbox)
        vbox.addStretch()
        self.server_source = QtWidgets.QComboBox()
        self.server_source.addItems([k for k in Dicts.server_sources.keys()])
        vbox.addWidget(self.server_source)
        vbox.addStretch()

        # - server_apply_surface_sound_speed
        hbox = QtWidgets.QHBoxLayout()
        self.right_layout.addLayout(hbox)
        # -- label
        vbox = QtWidgets.QVBoxLayout()
        hbox.addLayout(vbox)
        vbox.addStretch()
        label = QtWidgets.QLabel("Surface sound speed:")
        label.setFixedWidth(lbl_width)
        vbox.addWidget(label)
        vbox.addStretch()
        # -- value
        vbox = QtWidgets.QVBoxLayout()
        hbox.addLayout(vbox)
        vbox.addStretch()
        self.server_apply_surface_sound_speed = QtWidgets.QComboBox()
        self.server_apply_surface_sound_speed.addItems(["True", "False"])
        vbox.addWidget(self.server_apply_surface_sound_speed)
        vbox.addStretch()

        self.right_layout.addStretch()

        self.main_layout.addStretch()

        self.setup_changed()

        # noinspection PyUnresolvedReferences
        self.btn_new_client.clicked.connect(self.new_client)
        # noinspection PyUnresolvedReferences
        self.btn_delete_client.clicked.connect(self.delete_client)
        # noinspection PyUnresolvedReferences
        self.btn_refresh_list.clicked.connect(self.setup_changed)
        # noinspection PyUnresolvedReferences
        self.sis_auto_apply_manual_casts.currentIndexChanged.connect(self.apply_sis_auto_apply_manual_casts)
        # noinspection PyUnresolvedReferences
        self.server_source.currentIndexChanged.connect(self.apply_server_source)
        # noinspection PyUnresolvedReferences
        self.server_apply_surface_sound_speed.currentIndexChanged.connect(self.apply_server_apply_surface_sound_speed)
예제 #3
0
    def __init__(self, main_win, db):
        AbstractWidget.__init__(self, main_win=main_win, db=db)

        lbl_width = 120

        # outline ui
        self.main_layout = QtWidgets.QVBoxLayout()
        self.frame.setLayout(self.main_layout)

        # - active setup
        hbox = QtWidgets.QHBoxLayout()
        self.main_layout.addLayout(hbox)
        hbox.addStretch()
        self.active_label = QtWidgets.QLabel()
        hbox.addWidget(self.active_label)
        hbox.addStretch()

        # - left and right sub-frames
        hbox = QtWidgets.QHBoxLayout()
        self.main_layout.addLayout(hbox)
        # -- left
        self.left_frame = QtWidgets.QFrame()
        self.left_layout = QtWidgets.QVBoxLayout()
        self.left_frame.setLayout(self.left_layout)
        hbox.addWidget(self.left_frame, stretch=1)
        # -- stretch
        hbox.addStretch()
        # -- right
        self.right_frame = QtWidgets.QFrame()
        self.right_layout = QtWidgets.QVBoxLayout()
        self.right_frame.setLayout(self.right_layout)
        hbox.addWidget(self.right_frame, stretch=1)

        # LEFT

        # SIS
        hbox = QtWidgets.QHBoxLayout()
        self.left_layout.addLayout(hbox)
        hbox.addStretch()
        self.label = QtWidgets.QLabel("SIS(*):")
        hbox.addWidget(self.label)
        hbox.addStretch()

        # - sis_listen_port
        hbox = QtWidgets.QHBoxLayout()
        self.left_layout.addLayout(hbox)
        # -- label
        label = QtWidgets.QLabel("Listen port:")
        label.setFixedWidth(lbl_width)
        hbox.addWidget(label)
        # -- value
        self.sis_listen_port = QtWidgets.QLineEdit()
        validator = QtGui.QIntValidator(0, 65535)
        self.sis_listen_port.setValidator(validator)
        hbox.addWidget(self.sis_listen_port)

        # - sis_listen_timeout
        hbox = QtWidgets.QHBoxLayout()
        self.left_layout.addLayout(hbox)
        # -- label
        label = QtWidgets.QLabel("Listen timeout:")
        label.setFixedWidth(lbl_width)
        hbox.addWidget(label)
        # -- value
        self.sis_listen_timeout = QtWidgets.QLineEdit()
        validator = QtGui.QIntValidator(0, 9999)
        self.sis_listen_timeout.setValidator(validator)
        hbox.addWidget(self.sis_listen_timeout)

        self.left_layout.addSpacing(12)

        # SIPPICAN
        hbox = QtWidgets.QHBoxLayout()
        self.left_layout.addLayout(hbox)
        hbox.addStretch()
        self.label = QtWidgets.QLabel("Sippican(*):")
        hbox.addWidget(self.label)
        hbox.addStretch()

        # - sippican_listen_port
        hbox = QtWidgets.QHBoxLayout()
        self.left_layout.addLayout(hbox)
        # -- label
        label = QtWidgets.QLabel("Listen port:")
        label.setFixedWidth(lbl_width)
        hbox.addWidget(label)
        # -- value
        self.sippican_listen_port = QtWidgets.QLineEdit()
        validator = QtGui.QIntValidator(0, 99999)
        self.sippican_listen_port.setValidator(validator)
        hbox.addWidget(self.sippican_listen_port)

        # - sippican_listen_timeout
        hbox = QtWidgets.QHBoxLayout()
        self.left_layout.addLayout(hbox)
        # -- label
        label = QtWidgets.QLabel("Listen timeout:")
        label.setFixedWidth(lbl_width)
        hbox.addWidget(label)
        # -- value
        self.sippican_listen_timeout = QtWidgets.QLineEdit()
        validator = QtGui.QIntValidator(0, 99999)
        self.sippican_listen_timeout.setValidator(validator)
        hbox.addWidget(self.sippican_listen_timeout)

        self.left_layout.addStretch()

        # RIGHT

        # - Editor settings
        hbox = QtWidgets.QHBoxLayout()
        self.right_layout.addLayout(hbox)
        hbox.addStretch()
        self.label = QtWidgets.QLabel("MVP(*):")
        hbox.addWidget(self.label)
        hbox.addStretch()

        # - mvp_ip_address
        hbox = QtWidgets.QHBoxLayout()
        self.right_layout.addLayout(hbox)
        # -- label
        vbox = QtWidgets.QVBoxLayout()
        hbox.addLayout(vbox)
        vbox.addStretch()
        label = QtWidgets.QLabel("Listen IP:")
        label.setFixedWidth(lbl_width)
        vbox.addWidget(label)
        vbox.addStretch()
        # -- value
        vbox = QtWidgets.QVBoxLayout()
        hbox.addLayout(vbox)
        vbox.addStretch()
        self.mvp_ip_address = QtWidgets.QLineEdit()
        octet = "(?:[0-1]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])"
        reg_ex = QtCore.QRegExp(r"^%s\.%s\.%s\.%s$" %
                                (octet, octet, octet, octet))
        validator = QtGui.QRegExpValidator(reg_ex)
        self.mvp_ip_address.setValidator(validator)
        vbox.addWidget(self.mvp_ip_address)
        vbox.addStretch()

        # - mvp_listen_port
        hbox = QtWidgets.QHBoxLayout()
        self.right_layout.addLayout(hbox)
        # -- label
        vbox = QtWidgets.QVBoxLayout()
        hbox.addLayout(vbox)
        vbox.addStretch()
        label = QtWidgets.QLabel("Listen port:")
        label.setFixedWidth(lbl_width)
        vbox.addWidget(label)
        vbox.addStretch()
        # -- value
        vbox = QtWidgets.QVBoxLayout()
        hbox.addLayout(vbox)
        vbox.addStretch()
        self.mvp_listen_port = QtWidgets.QLineEdit()
        validator = QtGui.QIntValidator(0, 65535)
        self.mvp_listen_port.setValidator(validator)
        vbox.addWidget(self.mvp_listen_port)
        vbox.addStretch()

        # - mvp_listen_timeout
        hbox = QtWidgets.QHBoxLayout()
        self.right_layout.addLayout(hbox)
        # -- label
        vbox = QtWidgets.QVBoxLayout()
        hbox.addLayout(vbox)
        vbox.addStretch()
        label = QtWidgets.QLabel("Listen timeout:")
        label.setFixedWidth(lbl_width)
        vbox.addWidget(label)
        vbox.addStretch()
        # -- value
        vbox = QtWidgets.QVBoxLayout()
        hbox.addLayout(vbox)
        vbox.addStretch()
        self.mvp_listen_timeout = QtWidgets.QLineEdit()
        validator = QtGui.QIntValidator(0, 65535)
        self.mvp_listen_timeout.setValidator(validator)
        vbox.addWidget(self.mvp_listen_timeout)
        vbox.addStretch()

        # - mvp_transmission_protocol
        hbox = QtWidgets.QHBoxLayout()
        self.right_layout.addLayout(hbox)
        # -- label
        vbox = QtWidgets.QVBoxLayout()
        hbox.addLayout(vbox)
        vbox.addStretch()
        label = QtWidgets.QLabel("Protocol:")
        label.setFixedWidth(lbl_width)
        vbox.addWidget(label)
        vbox.addStretch()
        # -- value
        vbox = QtWidgets.QVBoxLayout()
        hbox.addLayout(vbox)
        vbox.addStretch()
        self.mvp_transmission_protocol = QtWidgets.QComboBox()
        self.mvp_transmission_protocol.addItems(
            [k for k in Dicts.mvp_protocols.keys()])
        vbox.addWidget(self.mvp_transmission_protocol)
        vbox.addStretch()

        # - mvp_format
        hbox = QtWidgets.QHBoxLayout()
        self.right_layout.addLayout(hbox)
        # -- label
        vbox = QtWidgets.QVBoxLayout()
        hbox.addLayout(vbox)
        vbox.addStretch()
        label = QtWidgets.QLabel("Format:")
        label.setFixedWidth(lbl_width)
        vbox.addWidget(label)
        vbox.addStretch()
        # -- value
        vbox = QtWidgets.QVBoxLayout()
        hbox.addLayout(vbox)
        vbox.addStretch()
        self.mvp_format = QtWidgets.QComboBox()
        self.mvp_format.addItems([k for k in Dicts.mvp_formats.keys()])
        vbox.addWidget(self.mvp_format)
        vbox.addStretch()

        # - mvp_winch_port
        hbox = QtWidgets.QHBoxLayout()
        self.right_layout.addLayout(hbox)
        # -- label
        vbox = QtWidgets.QVBoxLayout()
        hbox.addLayout(vbox)
        vbox.addStretch()
        label = QtWidgets.QLabel("Winch port:")
        label.setFixedWidth(lbl_width)
        vbox.addWidget(label)
        vbox.addStretch()
        # -- value
        vbox = QtWidgets.QVBoxLayout()
        hbox.addLayout(vbox)
        vbox.addStretch()
        self.mvp_winch_port = QtWidgets.QLineEdit()
        validator = QtGui.QIntValidator(0, 65535)
        self.mvp_winch_port.setValidator(validator)
        vbox.addWidget(self.mvp_winch_port)
        vbox.addStretch()

        # - mvp_fish_port
        hbox = QtWidgets.QHBoxLayout()
        self.right_layout.addLayout(hbox)
        # -- label
        vbox = QtWidgets.QVBoxLayout()
        hbox.addLayout(vbox)
        vbox.addStretch()
        label = QtWidgets.QLabel("Fish port:")
        label.setFixedWidth(lbl_width)
        vbox.addWidget(label)
        vbox.addStretch()
        # -- value
        vbox = QtWidgets.QVBoxLayout()
        hbox.addLayout(vbox)
        vbox.addStretch()
        self.mvp_fish_port = QtWidgets.QLineEdit()
        validator = QtGui.QIntValidator(0, 65535)
        self.mvp_fish_port.setValidator(validator)
        vbox.addWidget(self.mvp_fish_port)
        vbox.addStretch()

        # - mvp_nav_port
        hbox = QtWidgets.QHBoxLayout()
        self.right_layout.addLayout(hbox)
        # -- label
        vbox = QtWidgets.QVBoxLayout()
        hbox.addLayout(vbox)
        vbox.addStretch()
        label = QtWidgets.QLabel("Nav port:")
        label.setFixedWidth(lbl_width)
        vbox.addWidget(label)
        vbox.addStretch()
        # -- value
        vbox = QtWidgets.QVBoxLayout()
        hbox.addLayout(vbox)
        vbox.addStretch()
        self.mvp_nav_port = QtWidgets.QLineEdit()
        validator = QtGui.QIntValidator(0, 65535)
        self.mvp_nav_port.setValidator(validator)
        vbox.addWidget(self.mvp_nav_port)
        vbox.addStretch()

        # - mvp_system_port
        hbox = QtWidgets.QHBoxLayout()
        self.right_layout.addLayout(hbox)
        # -- label
        vbox = QtWidgets.QVBoxLayout()
        hbox.addLayout(vbox)
        vbox.addStretch()
        label = QtWidgets.QLabel("System port:")
        label.setFixedWidth(lbl_width)
        vbox.addWidget(label)
        vbox.addStretch()
        # -- value
        vbox = QtWidgets.QVBoxLayout()
        hbox.addLayout(vbox)
        vbox.addStretch()
        self.mvp_system_port = QtWidgets.QLineEdit()
        validator = QtGui.QIntValidator(0, 65535)
        self.mvp_system_port.setValidator(validator)
        vbox.addWidget(self.mvp_system_port)
        vbox.addStretch()

        # - mvp_sw_version
        hbox = QtWidgets.QHBoxLayout()
        self.right_layout.addLayout(hbox)
        # -- label
        vbox = QtWidgets.QVBoxLayout()
        hbox.addLayout(vbox)
        vbox.addStretch()
        label = QtWidgets.QLabel("SW version:")
        label.setFixedWidth(lbl_width)
        vbox.addWidget(label)
        vbox.addStretch()
        # -- value
        vbox = QtWidgets.QVBoxLayout()
        hbox.addLayout(vbox)
        vbox.addStretch()
        self.mvp_sw_version = QtWidgets.QLineEdit()
        vbox.addWidget(self.mvp_sw_version)
        vbox.addStretch()

        # - mvp_instrument_id
        hbox = QtWidgets.QHBoxLayout()
        self.right_layout.addLayout(hbox)
        # -- label
        vbox = QtWidgets.QVBoxLayout()
        hbox.addLayout(vbox)
        vbox.addStretch()
        label = QtWidgets.QLabel("Instrument ID:")
        label.setFixedWidth(lbl_width)
        vbox.addWidget(label)
        vbox.addStretch()
        # -- value
        vbox = QtWidgets.QVBoxLayout()
        hbox.addLayout(vbox)
        vbox.addStretch()
        self.mvp_instrument_id = QtWidgets.QLineEdit()
        vbox.addWidget(self.mvp_instrument_id)
        vbox.addStretch()

        # - mvp_instrument
        hbox = QtWidgets.QHBoxLayout()
        self.right_layout.addLayout(hbox)
        # -- label
        vbox = QtWidgets.QVBoxLayout()
        hbox.addLayout(vbox)
        vbox.addStretch()
        label = QtWidgets.QLabel("Instrument type:")
        label.setFixedWidth(lbl_width)
        vbox.addWidget(label)
        vbox.addStretch()
        # -- label
        vbox = QtWidgets.QVBoxLayout()
        hbox.addLayout(vbox)
        vbox.addStretch()
        self.mvp_instrument = QtWidgets.QComboBox()
        self.mvp_instrument.addItems([k for k in Dicts.mvp_instruments.keys()])
        vbox.addWidget(self.mvp_instrument)
        vbox.addStretch()

        self.right_layout.addStretch()

        # - active setup
        hbox = QtWidgets.QHBoxLayout()
        self.main_layout.addLayout(hbox)
        hbox.addStretch()
        label = QtWidgets.QLabel(
            "<i>* Restart the application to apply any change to the listeners.</i>"
        )
        label.setFixedHeight(22)
        label.setStyleSheet("QLabel { color : #FF6347; }")
        hbox.addWidget(label)
        hbox.addStretch()

        self.main_layout.addStretch()

        self.setup_changed()  # to trigger the first data population

        # -- functions
        # --- left
        # noinspection PyUnresolvedReferences
        self.sis_listen_port.textChanged.connect(self.apply_sis_listen_port)
        # noinspection PyUnresolvedReferences
        self.sis_listen_timeout.textChanged.connect(
            self.apply_sis_listen_timeout)
        # noinspection PyUnresolvedReferences
        self.sippican_listen_port.textChanged.connect(
            self.apply_sippican_listen_port)
        # noinspection PyUnresolvedReferences
        self.sippican_listen_timeout.textChanged.connect(
            self.apply_sippican_listen_timeout)
        # --- right
        # noinspection PyUnresolvedReferences
        self.mvp_ip_address.textChanged.connect(self.apply_mvp_ip_address)
        # noinspection PyUnresolvedReferences
        self.mvp_listen_port.textChanged.connect(self.apply_mvp_listen_port)
        # noinspection PyUnresolvedReferences
        self.mvp_listen_timeout.textChanged.connect(
            self.apply_mvp_listen_timeout)
        # noinspection PyUnresolvedReferences
        self.mvp_transmission_protocol.currentIndexChanged.connect(
            self.apply_mvp_transmission_protocol)
        # noinspection PyUnresolvedReferences
        self.mvp_format.currentIndexChanged.connect(self.apply_mvp_format)
        # noinspection PyUnresolvedReferences
        self.mvp_winch_port.textChanged.connect(self.apply_mvp_winch_port)
        # noinspection PyUnresolvedReferences
        self.mvp_fish_port.textChanged.connect(self.apply_mvp_fish_port)
        # noinspection PyUnresolvedReferences
        self.mvp_nav_port.textChanged.connect(self.apply_mvp_nav_port)
        # noinspection PyUnresolvedReferences
        self.mvp_system_port.textChanged.connect(self.apply_mvp_system_port)
        # noinspection PyUnresolvedReferences
        self.mvp_sw_version.textChanged.connect(self.apply_mvp_sw_version)
        # noinspection PyUnresolvedReferences
        self.mvp_instrument_id.textChanged.connect(
            self.apply_mvp_instrument_id)
        # noinspection PyUnresolvedReferences
        self.mvp_instrument.currentIndexChanged.connect(
            self.apply_mvp_instrument)
예제 #4
0
    def __init__(self, main_win, db):
        AbstractWidget.__init__(self, main_win=main_win, db=db)

        lbl_width = 120

        # outline ui
        self.main_layout = QtWidgets.QVBoxLayout()
        self.frame.setLayout(self.main_layout)

        # - active setup
        hbox = QtWidgets.QHBoxLayout()
        self.main_layout.addLayout(hbox)
        hbox.addStretch()
        self.active_label = QtWidgets.QLabel()
        hbox.addWidget(self.active_label)
        hbox.addStretch()

        # - left and right sub-frames
        hbox = QtWidgets.QHBoxLayout()
        self.main_layout.addLayout(hbox)
        # -- left
        self.left_frame = QtWidgets.QFrame()
        self.left_layout = QtWidgets.QVBoxLayout()
        self.left_frame.setLayout(self.left_layout)
        hbox.addWidget(self.left_frame, stretch=1)
        # -- right
        self.right_frame = QtWidgets.QFrame()
        self.right_layout = QtWidgets.QVBoxLayout()
        self.right_frame.setLayout(self.right_layout)
        hbox.addWidget(self.right_frame, stretch=1)

        # LEFT

        # - Project
        hbox = QtWidgets.QHBoxLayout()
        self.left_layout.addLayout(hbox)
        hbox.addStretch()
        self.label = QtWidgets.QLabel("User-defined")
        hbox.addWidget(self.label)
        hbox.addStretch()

        # - current project
        hbox = QtWidgets.QHBoxLayout()
        self.left_layout.addLayout(hbox)
        # -- label
        label = QtWidgets.QLabel("Current project:")
        label.setFixedWidth(lbl_width)
        hbox.addWidget(label)
        # -- value
        self.current_project = QtWidgets.QLineEdit()
        rex = QtCore.QRegExp('[a-zA-Z0-9_.-]+')
        validator = QtGui.QRegExpValidator(rex)
        self.current_project.setValidator(validator)
        self.current_project.setReadOnly(True)
        self.current_project.setStyleSheet("QLineEdit { color: #666666 }")
        self.current_project.setToolTip(
            "Go to the 'Database' tab, "
            "then 'Rename Project' button if you want to change the current project"
        )
        hbox.addWidget(self.current_project)

        # - path to projects
        hbox = QtWidgets.QHBoxLayout()
        self.left_layout.addLayout(hbox)
        # -- label
        label = QtWidgets.QLabel("Path to projects:")
        label.setFixedWidth(lbl_width)
        hbox.addWidget(label)
        # -- value
        self.projects_folder = QtWidgets.QLineEdit()
        self.projects_folder.setReadOnly(True)
        hbox.addWidget(self.projects_folder)
        # -- button
        btn = QtWidgets.QPushButton("...")
        btn.setMaximumWidth(24)
        # noinspection PyUnresolvedReferences
        btn.clicked.connect(self.on_projects_folder)
        hbox.addWidget(btn)

        # - path to outputs
        hbox = QtWidgets.QHBoxLayout()
        self.left_layout.addLayout(hbox)
        # -- label
        label = QtWidgets.QLabel("Path to outputs:")
        label.setFixedWidth(lbl_width)
        hbox.addWidget(label)
        # -- value
        self.outputs_folder = QtWidgets.QLineEdit()
        self.outputs_folder.setReadOnly(True)
        hbox.addWidget(self.outputs_folder)
        # -- button
        btn = QtWidgets.QPushButton("...")
        btn.setMaximumWidth(24)
        # noinspection PyUnresolvedReferences
        btn.clicked.connect(self.on_outputs_folder)
        hbox.addWidget(btn)

        # - path to woa09
        hbox = QtWidgets.QHBoxLayout()
        self.left_layout.addLayout(hbox)
        # -- label
        label = QtWidgets.QLabel("Path to WOA09:")
        label.setFixedWidth(lbl_width)
        hbox.addWidget(label)
        # -- value
        self.woa09_folder = QtWidgets.QLineEdit()
        self.woa09_folder.setReadOnly(True)
        hbox.addWidget(self.woa09_folder)
        # -- button
        btn = QtWidgets.QPushButton("...")
        btn.setMaximumWidth(24)
        # noinspection PyUnresolvedReferences
        btn.clicked.connect(self.on_woa09_folder)
        hbox.addWidget(btn)

        # - path to woa13
        hbox = QtWidgets.QHBoxLayout()
        self.left_layout.addLayout(hbox)
        # -- label
        label = QtWidgets.QLabel("Path to WOA13:")
        label.setFixedWidth(lbl_width)
        hbox.addWidget(label)
        # -- value
        self.woa13_folder = QtWidgets.QLineEdit()
        self.woa13_folder.setReadOnly(True)
        hbox.addWidget(self.woa13_folder)
        # -- button
        btn = QtWidgets.QPushButton("...")
        btn.setMaximumWidth(24)
        # noinspection PyUnresolvedReferences
        btn.clicked.connect(self.on_woa13_folder)
        hbox.addWidget(btn)

        # - use woa09
        hbox = QtWidgets.QHBoxLayout()
        self.left_layout.addLayout(hbox)
        # -- label
        vbox = QtWidgets.QVBoxLayout()
        hbox.addLayout(vbox)
        vbox.addStretch()
        label = QtWidgets.QLabel("NOAA tools:")
        label.setFixedWidth(lbl_width)
        vbox.addWidget(label)
        vbox.addStretch()
        # -- label
        vbox = QtWidgets.QVBoxLayout()
        hbox.addLayout(vbox)
        vbox.addStretch()
        self.noaa_tools = QtWidgets.QComboBox()
        self.noaa_tools.addItems(["True", "False"])
        vbox.addWidget(self.noaa_tools)
        vbox.addStretch()

        self.left_layout.addStretch()

        # RIGHT

        # - Default metadata
        hbox = QtWidgets.QHBoxLayout()
        self.right_layout.addLayout(hbox)
        hbox.addStretch()
        self.label = QtWidgets.QLabel("Default metadata")
        hbox.addWidget(self.label)
        hbox.addStretch()

        # - default institution
        hbox = QtWidgets.QHBoxLayout()
        self.right_layout.addLayout(hbox)
        # -- label
        label = QtWidgets.QLabel("Default institution:")
        label.setFixedWidth(lbl_width)
        hbox.addWidget(label)
        # -- value
        self.default_institution = QtWidgets.QComboBox()
        self.default_institution.setEditable(True)
        self.default_institution.addItems(institution_list)
        rex = QtCore.QRegExp(r'[a-zA-Z0-9_.-\s]+')
        validator = QtGui.QRegExpValidator(rex)
        self.default_institution.setValidator(validator)
        hbox.addWidget(self.default_institution)

        # - default survey
        hbox = QtWidgets.QHBoxLayout()
        self.right_layout.addLayout(hbox)
        # -- label
        label = QtWidgets.QLabel("Default survey(*):")
        label.setFixedWidth(lbl_width)
        hbox.addWidget(label)
        # -- value
        self.default_survey = QtWidgets.QLineEdit()
        rex = QtCore.QRegExp(r'[a-zA-Z0-9_.-\s]+')
        validator = QtGui.QRegExpValidator(rex)
        self.default_survey.setValidator(validator)
        hbox.addWidget(self.default_survey)

        # - default vessel
        hbox = QtWidgets.QHBoxLayout()
        self.right_layout.addLayout(hbox)
        # -- label
        label = QtWidgets.QLabel("Default vessel:")
        label.setFixedWidth(lbl_width)
        hbox.addWidget(label)
        # -- value
        self.default_vessel = QtWidgets.QComboBox()
        self.default_vessel.setEditable(True)
        self.default_vessel.addItems(vessel_list)
        rex = QtCore.QRegExp(r'[a-zA-Z0-9_.-\s]+')
        validator = QtGui.QRegExpValidator(rex)
        self.default_vessel.setValidator(validator)
        hbox.addWidget(self.default_vessel)

        # - auto_apply_default_metadata
        hbox = QtWidgets.QHBoxLayout()
        self.right_layout.addLayout(hbox)
        # -- label
        label = QtWidgets.QLabel("Auto apply default:")
        label.setFixedWidth(lbl_width)
        hbox.addWidget(label)
        # -- label
        self.auto_apply_default_metadata = QtWidgets.QComboBox()
        self.auto_apply_default_metadata.addItems(["True", "False"])
        hbox.addWidget(self.auto_apply_default_metadata)

        hbox = QtWidgets.QHBoxLayout()
        self.right_layout.addLayout(hbox)
        label = QtWidgets.QLabel("")
        label.setFixedHeight(22)
        hbox.addWidget(label)

        hbox = QtWidgets.QHBoxLayout()
        self.right_layout.addLayout(hbox)
        label = QtWidgets.QLabel(
            "<i>* If yellow, press 'return' to apply changes.</i>")
        label.setFixedHeight(22)
        label.setStyleSheet("QLabel { color : #aaaaaa; }")
        hbox.addWidget(label)

        self.right_layout.addStretch()

        self.main_layout.addStretch()

        self.setup_changed()  # to trigger the first data population

        # methods
        # noinspection PyUnresolvedReferences
        self.default_institution.editTextChanged.connect(
            self.apply_default_institution)
        # noinspection PyUnresolvedReferences
        self.default_survey.textChanged.connect(self.modified_default_survey)
        # noinspection PyUnresolvedReferences
        self.default_survey.returnPressed.connect(self.apply_default_survey)
        # noinspection PyUnresolvedReferences
        self.default_vessel.editTextChanged.connect(self.apply_default_vessel)
        # noinspection PyUnresolvedReferences
        self.default_vessel.currentIndexChanged.connect(
            self.apply_default_noaa_vessel)
        # noinspection PyUnresolvedReferences
        self.projects_folder.textChanged.connect(self.apply_custom_folders)
        # noinspection PyUnresolvedReferences
        self.outputs_folder.textChanged.connect(self.apply_custom_folders)
        # noinspection PyUnresolvedReferences
        self.woa09_folder.textChanged.connect(self.apply_custom_folders)
        # noinspection PyUnresolvedReferences
        self.woa13_folder.textChanged.connect(self.apply_custom_folders)
        # noinspection PyUnresolvedReferences
        self.noaa_tools.currentIndexChanged.connect(self.apply_noaa_tools)
        # noinspection PyUnresolvedReferences
        self.auto_apply_default_metadata.currentIndexChanged.connect(
            self.apply_auto_apply_default_metadata)
예제 #5
0
    def __init__(self, main_win, db):
        AbstractWidget.__init__(self, main_win=main_win, db=db)

        lbl_width = 60

        # outline ui
        self.main_layout = QtWidgets.QVBoxLayout()
        self.frame.setLayout(self.main_layout)

        # - active setup
        hbox = QtWidgets.QHBoxLayout()
        self.main_layout.addLayout(hbox)
        hbox.addStretch()
        self.active_label = QtWidgets.QLabel()
        hbox.addWidget(self.active_label)
        hbox.addStretch()

        # - list of setups
        hbox = QtWidgets.QHBoxLayout()
        self.main_layout.addLayout(hbox)

        # -- label
        vbox = QtWidgets.QVBoxLayout()
        hbox.addLayout(vbox)
        vbox.addStretch()
        label = QtWidgets.QLabel("Setups:")
        label.setFixedWidth(lbl_width)
        vbox.addWidget(label)
        vbox.addStretch()

        # -- list
        self.setup_list = QtWidgets.QTableWidget()
        self.setup_list.setSelectionBehavior(
            QtWidgets.QAbstractItemView.SelectRows)
        self.setup_list.setSelectionMode(
            QtWidgets.QAbstractItemView.SingleSelection)
        self.setup_list.setSortingEnabled(True)
        hbox.addWidget(self.setup_list)

        # -- button box
        vbox = QtWidgets.QVBoxLayout()
        hbox.addLayout(vbox)
        self.btn_box = QtWidgets.QDialogButtonBox(QtCore.Qt.Vertical)
        vbox.addWidget(self.btn_box)
        vbox.addStretch()
        # --- new setup
        self.btn_new_setup = QtWidgets.QPushButton("New")
        # noinspection PyUnresolvedReferences
        self.btn_new_setup.clicked.connect(self.new_setup)
        self.btn_new_setup.setToolTip("Create a new setup profile")
        self.btn_box.addButton(self.btn_new_setup,
                               QtWidgets.QDialogButtonBox.ActionRole)
        # --- import setup
        self.btn_import_setup = QtWidgets.QPushButton("Import")
        # noinspection PyUnresolvedReferences
        self.btn_import_setup.clicked.connect(self.import_setup)
        self.btn_import_setup.setToolTip("Import existing setup profiles")
        self.btn_box.addButton(self.btn_import_setup,
                               QtWidgets.QDialogButtonBox.ActionRole)
        # --- clone setup
        self.btn_clone_setup = QtWidgets.QPushButton("Clone")
        # noinspection PyUnresolvedReferences
        self.btn_clone_setup.clicked.connect(self.clone_setup)
        self.btn_clone_setup.setToolTip("Clone the selected setup profile")
        self.btn_box.addButton(self.btn_clone_setup,
                               QtWidgets.QDialogButtonBox.ActionRole)
        # --- rename setup
        self.btn_rename_setup = QtWidgets.QPushButton("Rename")
        # noinspection PyUnresolvedReferences
        self.btn_rename_setup.clicked.connect(self.rename_setup)
        self.btn_rename_setup.setToolTip("Rename the selected setup profile")
        self.btn_box.addButton(self.btn_rename_setup,
                               QtWidgets.QDialogButtonBox.ActionRole)
        # --- delete setup
        self.btn_delete_setup = QtWidgets.QPushButton("Delete")
        # noinspection PyUnresolvedReferences
        self.btn_delete_setup.clicked.connect(self.delete_setup)
        self.btn_delete_setup.setToolTip("Delete the selected setup profile")
        self.btn_box.addButton(self.btn_delete_setup,
                               QtWidgets.QDialogButtonBox.ActionRole)
        # --- activate setup
        self.btn_activate_setup = QtWidgets.QPushButton("Activate")
        # noinspection PyUnresolvedReferences
        self.btn_activate_setup.clicked.connect(self.activate_setup)
        self.btn_activate_setup.setToolTip(
            "Activate the selected setup profile")
        self.btn_box.addButton(self.btn_activate_setup,
                               QtWidgets.QDialogButtonBox.ActionRole)
        # --- refresh
        self.btn_refresh_list = QtWidgets.QPushButton("Refresh")
        # noinspection PyUnresolvedReferences
        self.btn_refresh_list.clicked.connect(self.on_setup_changed)
        self.btn_refresh_list.setToolTip(
            "Refresh the profiles from the setup database")
        self.btn_box.addButton(self.btn_refresh_list,
                               QtWidgets.QDialogButtonBox.ActionRole)
        # --- open folder
        self.btn_open_folder = QtWidgets.QPushButton("Folder")
        # noinspection PyUnresolvedReferences
        self.btn_open_folder.clicked.connect(self.on_open_folder)
        self.btn_open_folder.setToolTip(
            "Open the folder with the setup database")
        self.btn_box.addButton(self.btn_open_folder,
                               QtWidgets.QDialogButtonBox.ActionRole)

        self.main_layout.addSpacing(18)