def server_address_changed(self): """Validate and store a changed 'server address' value""" proposed_new_address: str = self.ui.serverAddress.text() valid = RmNetUtils.valid_server_address(proposed_new_address) if valid: self._preferences.set_server_address(proposed_new_address) SharedUtils.background_validity_color(self.ui.serverAddress, valid)
def dither_max_radius_changed(self): proposed_new_number: str = self.ui.ditherMaxRadius.text() new_number = Validators.valid_float_in_range(proposed_new_number, 0, 12*60*60) valid = new_number is not None if valid: self._preferences.set_dither_max_radius(new_number) SharedUtils.background_validity_color(self.ui.ditherMaxRadius, valid)
def source_az_changed(self): """Validate and store light source azimuth""" proposed_new_number: str = self.ui.sourceAz.text() new_number: Optional[float] = Validators.valid_float_in_range(proposed_new_number, -360, +360) valid = new_number is not None if valid: self._preferences.set_source_az(new_number) SharedUtils.background_validity_color(self.ui.sourceAz, valid)
def adu_tolerance_changed(self): """Validate and store a changed 'ADU tolerance' value""" proposed_new_number: str = self.ui.aduTolerance.text() new_number = Validators.valid_float_in_range(proposed_new_number, 0, 100) valid = new_number is not None if valid: self._preferences.set_adu_tolerance(new_number / 100.0) SharedUtils.background_validity_color(self.ui.aduTolerance, valid)
def port_number_changed(self): """Validate and store a changed 'server port number' value""" proposed_new_number: str = self.ui.portNumber.text() new_number = Validators.valid_int_in_range(proposed_new_number, 1, 65536) valid = new_number is not None if valid: self._preferences.set_port_number(new_number) SharedUtils.background_validity_color(self.ui.portNumber, valid)
def target_adus_changed(self): """Validate and store a changed 'target ADUs' value""" proposed_new_number: str = self.ui.targetADUs.text() new_number = Validators.valid_float_in_range(proposed_new_number, 1, 500000) valid = new_number is not None if valid: self._preferences.set_target_adus(new_number) SharedUtils.background_validity_color(self.ui.targetADUs, valid)
def number_of_flats_changed(self): """Validate and store a changed 'number of flat frames' value""" proposed_new_number: str = self.ui.numFlats.text() new_number = Validators.valid_int_in_range(proposed_new_number, 0, 256) valid = new_number is not None if valid: self._preferences.set_default_frame_count(new_number) SharedUtils.background_validity_color(self.ui.numFlats, valid)
def validate_filter_name_field(self, fs: FilterSpec, can_be_blank=False) -> bool: # print(f"validate_filter_name_field({fs},{can_be_blank})") # First we validate the format of the name, and whether it can be blank name_field_name: str = f"filterName_{fs.get_slot_number()}" this_field: QLineEdit = self.ui.findChild(QLineEdit, name_field_name) assert this_field is not None proposed_name = this_field.text().strip() if len(proposed_name) == 0: name_valid = can_be_blank else: name_valid = FilterSpec.valid_filter_name(proposed_name) # If the name is otherwise valid, we check that it would be unique in the list if name_valid and len(proposed_name) > 0: other_fs: FilterSpec for other_fs in self._preferences.get_filter_spec_list(): if other_fs.get_slot_number() != fs.get_slot_number(): # Only compare to other filters if other_fs.get_name().strip() == proposed_name: # Collision with existing name other than the one we're setting name_valid = False SharedUtils.background_validity_color(this_field, name_valid) # print(f"validate_filter_name_field({fs},{can_be_blank}) returns {name_valid}") return name_valid