Operation history - SilverEzhik/fmtest GitHub Wiki

Most operations should be capable of being undone. Operation history and the logic of how the undo process actually works should take place in the File Manager layer.

Except for delete, all operations within a file system have inverses.

Operation Inverse
Move(source -> destination) Move(destination -> source)
Copy(source -> destination) Trash(destination)
Trash(source) Move(trashedFile -> source)
Mkdir(name) Trash(name)

Allow undoing/redoing selections without actions