summaryrefslogtreecommitdiffstats
path: root/kioslave/trash/DESIGN
diff options
context:
space:
mode:
Diffstat (limited to 'kioslave/trash/DESIGN')
-rw-r--r--kioslave/trash/DESIGN53
1 files changed, 53 insertions, 0 deletions
diff --git a/kioslave/trash/DESIGN b/kioslave/trash/DESIGN
new file mode 100644
index 000000000..63179da08
--- /dev/null
+++ b/kioslave/trash/DESIGN
@@ -0,0 +1,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).