summaryrefslogtreecommitdiff
path: root/Userland/Services/FileOperation
AgeCommit message (Collapse)Author
2021-08-08FileOperation: Don't follow symlinksAndreas Kling
Deleting a symlink via "FileOperation Delete" should not recursively delete whatever the symlink is pointing to. Same basic idea applies to the Copy and Move operations.
2021-07-22FileOperation: Use LexicalPath::join() for all path joiningSam Atkins
2021-07-22FileOperation: Implement 'Delete' operationSam Atkins
2021-07-22FileOperation: Combine 'sources' and 'destination' CL argumentsSam Atkins
The upcoming 'Delete' operation has no destination, so this was the best solution we could come up with for now. Perhaps ArgsParser could support sub-commands, so we would define 'Copy', 'Move' and 'Delete' each as sub-commands with their own argument definitions. That would make things like git's variety of commands possible.
2021-07-22FileManager+FileOperation: Implement (and use) 'Move' commandSam Atkins
`FileOperation Move ...` is now used for cut-and-paste in the FileManager.
2021-07-22FileOperation: Extract execute_work_items() from perform_copy()Sam Atkins
This is in preparation for a perform_move() function.
2021-07-22FileOperation: Accept multiple source argumentsSam Atkins
You can now list multiple files or directories and they will all be copied to the destination. :^) Note that this means you can pass the same file or directory multiple times. It runs fine, just means that it does unnecessary work. But figuring out if a file is already queued is probably more hassle than it's worth, if it's even possible at all due to symlinks.
2021-07-22FileManager+FileOperation: Switch to east constSam Atkins
(And some adjustments based on MaxWipfli's feedback)
2021-06-30AK+Everywhere: Add and use static APIs for LexicalPathMax Wipfli
The LexicalPath instance methods dirname(), basename(), title() and extension() will be changed to return StringView const& in a further commit. Due to this, users creating temporary LexicalPath objects just to call one of those getters will recieve a StringView const& pointing to a possible freed buffer. To avoid this, static methods for those APIs have been added, which will return a String by value to avoid those problems. All cases where temporary LexicalPath objects have been used as described above haven been changed to use the static APIs.
2021-06-17Everywhere: Add component declarationsGunnar Beutner
This adds component declarations so that users can select to not build certain parts of the OS.
2021-05-16AK+Userland: Remove nullability feature for the ByteBuffer typeGunnar Beutner
Nobody seems to use this particular feature, in fact there were some bugs which were uncovered by removing operator bool.
2021-05-12LibCore+Everywhere: Move OpenMode out of IODeviceAli Mohammad Pur
...and make it an enum class so people don't omit "OpenMode".
2021-04-22Everything: Move to SPDX license identifiers in all files.Brian Gianforcaro
SPDX License Identifiers are a more compact / standardized way of representing file license information. See: https://spdx.dev/resources/use/#identifiers This was done with the `ambr` search and replace tool. ambr --no-parent-ignore --key-from-file --rep-from-file key.txt rep.txt *
2021-04-20FileManager+FileOperation: Report Errors when doing an file operationTobias Christiansen
Report back errors from the FileOperation to the FileManager and display them in the MessageBox
2021-04-13FileManager+FileOperation: Show byte progress of current fileAndreas Kling
What I meant for the GUI progress bars to show: - Bytes copied of the current file - Files copied of the total set What it actually showed: - Bytes copied of the total bytes - Files copied of the total set This patch fixes it by showing byte progress of the current file instead of byte progress of total bytes.
2021-04-13FileOperation: Add a new helper program for out-of-process file opsAndreas Kling
This is a helper program for FileManager that performs a file operation in a separate process and reports progress on standard out. This initial implementation only supports the "Copy" operation and does not do any detailed error handling.