       else
         @files.queue.push file
         @processQueue()
+
+  # Can be called by the user to remove a file
+  removeFile: (file) ->
+    throw new Error "Can't remove file currently processing" if file.processing
+    @files = without @files, file
+
+    @emit "removedfile", file
 
   createThumbnail: (file) ->
 

    "dragleave"
    "selectedfiles"
    "addedfile"
    "thumbnail"
    "error"
    "processingfile"

      file.previewTemplate.find(".filename span").text file.name
      file.previewTemplate.find(".details").append o """<div class="size">#{@filesize file.size}</div>"""


    # Called whenever a file is removed.
    removedfile: (file) ->
      file.previewTemplate.remove()

    # Called when a thumbnail has been generated
    # Receives `file` and `dataUrl`
