예제 #1
0
 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)
예제 #2
0
 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)
예제 #3
0
 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)
예제 #4
0
 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)
예제 #5
0
 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)
예제 #6
0
 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)
예제 #7
0
 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)
예제 #8
0
    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