code: def updateVocalAuto(self, component, files):
          
          auto_model = self.model().autoParams()
          row = auto_model.fileParameter(component)
          if len(files) > 1:
              clean_component = self.model().data(self.model().indexByComponent(component), AbstractDragView.DragRole)
              p = {'parameter' : 'filename',
                   'names' : files,
                   'selection' : [clean_component]
              }
              if row is None:
                  auto_model.insertItem(auto_model.index(0,0), p)
              else:
                  auto_model.setData(auto_model.index(row,0),p)
          elif row is not None:
              # remove the autoparameter
              auto_model.removeRow(row)
          # if row is none and len(files) == 1 then we don't need to do anything
          self.countChanged.emit()
docs: Updates the auto-parameter with selected *component* to have
          *files*. Adds auto-parameter if not already present. The auto-parameter is expected to have only one selected
          component (the one given). If length of files < 1, removes the
          auto-parameter from the model.
  
          :param component: Component that the auto-parameter is modifying
          :type component: :class:`AbstractStimulusComponent<sparkle.stim.abstract_component.AbstractStimulusComponent>`
          :param files: list of file names to act as the auto-parameter list
          :type files: list<str>