DESIGN
======
kio_trash implements the XDG trash standard (https://specifications.freedesktop.org/trash-spec/trashspec-1.0.html)

The concurrency that comes from having multiple KIO workers running at the same time
on top of the same set of files, is solved by the KInterProcessLock class, which
synchronizes access to shared resources (like the file storing the size of the
trash directory).

BUGS
====
* Undo of "restore" isn't available. Need to get origPath by metadata I guess.

TODO
====
* Clean up konq_popupmenu.cc for Type=Link URL=trash:/   :(
* Also, provide metainfo for trash contents for that desktop link.
=> maybe we need a new MIME type?
 Like application/x-trash-desktop, inheriting application/x-desktop. 
 And a "trash.trashdesktop" filename or so (ouch, migration issues...)

* Detect removable media to avoid .Trash-foo on it. How?

* Trashcan properties (properties for trash:/? hmm. Easier with separate dialog)
     -  Maximum size for trash can (#18109 suggests a %, but a MB size is easier).
     This means to delete the oldest files from the trash automatically. #79553

* Err, should we support renaming? :) Difficult to disable...
  In fact it's already not disabled in readonly directories (e.g. "/") -> todo
   (for F2 and kpropertiesdialog)

Bugs closed by kio_trash
========================
#79826 (3.3 only)
#62848 (configurable trash location)
#78116 (.directory)
#18109 (general one)
#17744 (restore)
#76380 #56821 (trashing on same partition)

New features implemented
=======================
#79553 (Deleting oldest files when size is bigger than a certain configurable amount)

Choice of URL scheme
====================
We use trash:/trashid-fileid[/relativepath]    
This gave problems with CopyJob::startRenameJob which exposed trashid-fileid
to the user as a filename when dropping a file out of the trash.
But this was fixed with the fileNameUsedForCopying=Name setting.

A previous experiment was trash:/filename[/relativepath]?t=trashid&id=fileid
but this gives problems with going Up (it first removes the query),
with KDirLister (it wouldn't know when to remove the query, to find the URL
of the parent directory).
