docs: def apply_new_global_variable_value(self, path, new_value_as_string):
          """Change global variable value according handed string
  
          Updates the global variable value only if new value string is different to old representation.
  
          :param path: The path identifying the edited global variable tree view row, can be str, int or tuple.
          :param str new_value_as_string: New global variable value as string
          """
          if self.list_store[path][self.DATA_TYPE_AS_STRING_STORAGE_ID] == new_value_as_string:
              return
          gv_name = self.list_store[path][self.NAME_STORAGE_ID]
          if not self.global_variable_is_editable(gv_name, 'Change of value'):
              return
          data_type = self.model.global_variable_manager.get_data_type(gv_name)
          old_value = self.model.global_variable_manager.get_representation(gv_name)
  
          # preserve type especially if type=NoneType
          if issubclass(data_type, (type(old_value), type(None))):
              old_type = data_type
              if issubclass(data_type, type(None)):
                  old_type = type(old_value)
                  logger.debug("Trying to parse '{}' to type '{}' of old global variable value '{}'".format(
                      new_value_as_string, old_type.__name__, old_value))
              try:
                  new_value = type_helpers.convert_string_value_to_type_value(new_value_as_string, old_type)
              except (AttributeError, ValueError) as e:
                  if issubclass(data_type, type(None)):
                      new_value = new_value_as_string
                      logger.warning("New value '{}' stored as string, previous value '{}' of global variable '{}' was "
                                     "of type '{}'".format(new_value, old_value, gv_name, type(old_value).__name__))
                  else:
                      logger.warning("Restoring old value of global variable '{}': {}".format(gv_name, e))
                      return
          else:
              logger.error("Global variable '{}' with inconsistent value data type '{}' and data type '{}'".format(
                  gv_name, [type(old_value).__name__, type(None).__name__], data_type.__name__))
              return
  
          try:
              self.model.global_variable_manager.set_variable(gv_name, new_value, data_type=data_type)
          except (RuntimeError, AttributeError, TypeError) as e:
              logger.error("Error while setting global variable '{0}' to value '{1}' -> Exception: {2}".format(
                  gv_name, new_value, e))