예제 #1
0
 def validate(action, index, value_if_allowed, prior_value, text,
              validation_type, trigger_type, widget_name):
     if value_if_allowed == "-" or value_if_allowed == "":
         return True
     elif text in "0123456789.," or text == value_if_allowed:
         try:
             t = type(Locale.number_from_string(value_if_allowed))
             if t is float or t is int:
                 return True
         except ValueError:
             return False
     return False
예제 #2
0
    def prefs_changed(self, cmdr: str, is_beta: bool):
        distances = list()
        for settings_ui_element in self.settings_ui_elements:
            system_text = settings_ui_element.system_entry.get()
            x_text = settings_ui_element.x_entry.get()
            y_text = settings_ui_element.y_entry.get()
            z_text = settings_ui_element.z_entry.get()
            if system_text and x_text and y_text and z_text:
                try:
                    distances.append({
                        "system":
                        system_text.strip(),
                        "x":
                        Locale.number_from_string(x_text.strip()),
                        "y":
                        Locale.number_from_string(y_text.strip()),
                        "z":
                        Locale.number_from_string(z_text.strip())
                    })

                except Exception as e:  # error while parsing the numbers
                    logger.exception(
                        f"DistanceCalc: Error while parsing the coordinates for {system_text.strip()}"
                    )
                    continue
        self.distances = distances
        config.set("DistanceCalc", json.dumps(self.distances))

        settings = self.travelled_total_option.get() | (
            self.travelled_session_option.get() << 1) | (
                self.travelled_session_selected.get() << 2)
        config.set("DistanceCalc_options", settings)

        self.update_main_ui()
        self.update_distances()
        self.prefs_frame = None