Warning, /frameworks/kio/src/kioworkers/trash/DESIGN is written in an unsupported language. File is not indexed.
0001 DESIGN 0002 ====== 0003 kio_trash implements the XDG trash standard (https://specifications.freedesktop.org/trash-spec/trashspec-1.0.html) 0004 0005 The concurrency that comes from having multiple KIO workers running at the same time 0006 on top of the same set of files, is solved by the KInterProcessLock class, which 0007 synchronizes access to shared resources (like the file storing the size of the 0008 trash directory). 0009 0010 BUGS 0011 ==== 0012 * Undo of "restore" isn't available. Need to get origPath by metadata I guess. 0013 0014 TODO 0015 ==== 0016 * Clean up konq_popupmenu.cc for Type=Link URL=trash:/ :( 0017 * Also, provide metainfo for trash contents for that desktop link. 0018 => maybe we need a new MIME type? 0019 Like application/x-trash-desktop, inheriting application/x-desktop. 0020 And a "trash.trashdesktop" filename or so (ouch, migration issues...) 0021 0022 * Detect removable media to avoid .Trash-foo on it. How? 0023 0024 * Trashcan properties (properties for trash:/? hmm. Easier with separate dialog) 0025 - Maximum size for trash can (#18109 suggests a %, but a MB size is easier). 0026 This means to delete the oldest files from the trash automatically. #79553 0027 0028 * Err, should we support renaming? :) Difficult to disable... 0029 In fact it's already not disabled in readonly directories (e.g. "/") -> todo 0030 (for F2 and kpropertiesdialog) 0031 0032 Bugs closed by kio_trash 0033 ======================== 0034 #79826 (3.3 only) 0035 #62848 (configurable trash location) 0036 #78116 (.directory) 0037 #18109 (general one) 0038 #17744 (restore) 0039 #76380 #56821 (trashing on same partition) 0040 0041 New features implemented 0042 ======================= 0043 #79553 (Deleting oldest files when size is bigger than a certain configurable amount) 0044 0045 Choice of URL scheme 0046 ==================== 0047 We use trash:/trashid-fileid[/relativepath] 0048 This gave problems with CopyJob::startRenameJob which exposed trashid-fileid 0049 to the user as a filename when dropping a file out of the trash. 0050 But this was fixed with the fileNameUsedForCopying=Name setting. 0051 0052 A previous experiment was trash:/filename[/relativepath]?t=trashid&id=fileid 0053 but this gives problems with going Up (it first removes the query), 0054 with KDirLister (it wouldn't know when to remove the query, to find the URL 0055 of the parent directory).