summaryrefslogtreecommitdiffstats
path: root/kioslave/trash/DESIGN
blob: 63179da08d8ceea65d051ad8e01f44656cbf1eb6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
DESIGN
======
kio_trash implements the XDG trash standard currently at http://www.ramendik.ru/docs/trashspec.html

In case race conditions between the various instances of kio_trash
are a problem, trashimpl could be moved to a kded module, and
kio_trash would use DCOP to talk to it. It's a bit hard to come up
with use cases where the race conditions would matter though.

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 mimetype?
 Like application/x-trash-desktop, inheriting application/x-desktop. 
 And a "trash.trashdesktop" filename or so (ouch, migration issues...)

* Detect removeable 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)

* Deleting oldest files when size is bigger than a certain configurable amount (#79553)

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)

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).