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)
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)
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)
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)
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)