docs: def apply_new_global_variable_type(self, path, new_data_type_as_string):
          """Change global variable value according handed string
  
          Updates the global variable data type only if different.
  
          :param path: The path identifying the edited global variable tree view row, can be str, int or tuple.
          :param str new_data_type_as_string: New global variable data type as string
          """
          if self.list_store[path][self.DATA_TYPE_AS_STRING_STORAGE_ID] == new_data_type_as_string:
              return
          gv_name = self.list_store[path][self.NAME_STORAGE_ID]
          if not self.global_variable_is_editable(gv_name, 'Type change'):
              return
          old_value = self.model.global_variable_manager.get_representation(gv_name)
  
          # check if valid data type string
          try:
              new_data_type = type_helpers.convert_string_to_type(new_data_type_as_string)
          except (AttributeError, ValueError) as e:
              logger.error("Could not change data type to '{0}': {1}".format(new_data_type_as_string, e))
              return
          assert isinstance(new_data_type, type)
  
          # convert old value
          if issubclass(new_data_type, type(None)):
              new_value = old_value
          else:  # new_data_type in [str, float, int, list, dict, tuple, bool]:
              try:
                  new_value = new_data_type(old_value)
              except (ValueError, TypeError) as e:
                  new_value = new_data_type()
                  logger.warning("Old value '{}' of global variable '{}' could not be parsed to new type '{}' and is "
                              "therefore resetted: {}".format(old_value, gv_name, new_data_type.__name__, e))
  
          # set value in global variable manager
          try:
              self.model.global_variable_manager.set_variable(gv_name, new_value, data_type=new_data_type)
          except (ValueError, RuntimeError, TypeError) as e:
              logger.error("Could not set new value unexpected failure '{0}' to value '{1}' -> Exception: {2}"
                           "".format(gv_name, new_value, e))