Commit Graph

247 Commits

Author SHA1 Message Date
Julian Ospald 6a9d408925
GTK: remove debug prints 2015-12-22 17:50:31 +01:00
Julian Ospald 2ba9620fdc
LIB: update documentation 2015-12-22 14:17:46 +01:00
Julian Ospald dd07a31d35
CABAL: enable threading and -N 2015-12-22 14:16:17 +01:00
Julian Ospald 2486d83260
LIB/GTK: use AnchoredFile in IO.File
What's the point of having it anyway if we don't?
2015-12-22 14:15:48 +01:00
Julian Ospald 06151a3a08
LIB: minor improvement to copyDir 2015-12-21 18:54:37 +01:00
Julian Ospald da32ccf619
LIB: improve documentation 2015-12-21 18:39:30 +01:00
Julian Ospald 773cb100b4
LIB: make recreateSymlink more robust 2015-12-21 18:36:45 +01:00
Julian Ospald 433cb164a6
LIB: improve symlink handling 2015-12-21 18:32:53 +01:00
Julian Ospald 988350967a
LIB: wrap canonicalizePath so it doesn't follow the last symlink component
canonicalizePath tries to remove as many symlink components as possible,
but this is not what we want for a lot of operations like copying
files. So instead we preserve the last path component if it's a symlink
and canonicalize it's parent filepath.
2015-12-21 17:15:31 +01:00
Julian Ospald 89157bc0d9
LIB: fix IOError in copyFile
The destination file does not exist yet so we cannot canonicalize
it's full path, only part of it.
2015-12-21 05:50:19 +01:00
Julian Ospald 0867c8b2e3
LIB/GTK: add '.' and '..' files, remove fsState and improve safety
We use canonicalizePaths where we need well-formed paths and cannot
rely on the input being sane.
2015-12-21 05:41:12 +01:00
Julian Ospald fe6145d5be
LIB/GTK: change DirTree again
we now have:
* AnchoredFile -- for representing a file with context
* File         -- for representing a file only

Both representations mean "file" in the broader sense, including
directories.
2015-12-21 00:41:02 +01:00
Julian Ospald 5bfea0db10
GUI: clean up copyFinal
Don't show CopyModeChooserDialog for file copy operations.
2015-12-20 05:32:11 +01:00
Julian Ospald 98216a97c3
CABAL: cleanup 2015-12-20 01:01:45 +01:00
Julian Ospald 9a344b63e8
DOCS: add README.md and HACKING.md 2015-12-20 00:57:34 +01:00
Julian Ospald a1af66cac3
CABAL: add missing data files 2015-12-20 00:49:14 +01:00
Julian Ospald 38fda9e768
Update .gitignore 2015-12-20 00:31:25 +01:00
Julian Ospald 3ba647d172
LIB/GTK: rewrite to use more atomic operations/data structures
This is a little bit less fancy, but avoids lazy IO. It depends a
little bit more on FilePath, but that also allows for a more general
interface.
2015-12-20 00:30:52 +01:00
Julian Ospald aa5d29c41d
LIB: speed up copyDir
Instead of using zipLazy (which does more IO than we need)
we just construct the newDest zipper from the information we
already have. This should be sufficient.
2015-12-18 17:33:39 +01:00
Julian Ospald ff40102fbe
GUI: allow deletion of non-empty directories 2015-12-18 17:15:53 +01:00
Julian Ospald 9fbe43e7d5
LIB: don't allow same source and dest in copyDir 2015-12-18 17:00:44 +01:00
Julian Ospald 58665d7b29
LIB/GTK: enhance FileOperation type so we can have partial functions
This also add a copy mode dialog to the copy operations.
2015-12-18 16:55:46 +01:00
Julian Ospald a4849cf044
LIB: improve haddock comments 2015-12-18 15:50:33 +01:00
Julian Ospald 51fffabe22
LIB: restructure copyDir 2015-12-18 15:42:24 +01:00
Julian Ospald 0f1c8dafe8
LIB: use whenM/unlessM 2015-12-18 15:37:14 +01:00
Julian Ospald ffe8037160
LIB: add copy modes
TODO: integrate these more nicely with runFileOp
2015-12-18 15:28:56 +01:00
Julian Ospald 34c6223c25
LIB: fix throwDirDoesExist exception type 2015-12-18 15:28:04 +01:00
Julian Ospald e67d68ab15
LIB: improve performance of copyDir 2015-12-18 14:21:57 +01:00
Julian Ospald 074ee45961
GTK: allow to start gui with specific directory 2015-12-18 14:11:26 +01:00
Julian Ospald 7c84dce09f
LIB: improve formatting style 2015-12-18 04:24:47 +01:00
Julian Ospald 94095ec28b
GUI: minor cleanup 2015-12-18 04:22:21 +01:00
Julian Ospald d4a5460128
LIB: implement copyDir and minor refactor
We also had to lock the FileOperation type to DTInfoZipper so
we can examine symlinks and other stuff, without re-reading
all the information.
2015-12-18 04:22:13 +01:00
Julian Ospald 0781cbf9d5
LIB: remove obsolete code in Zipper 2015-12-18 04:15:55 +01:00
Julian Ospald f2a8f21bf3
LIB: update TODO comments 2015-12-17 23:11:18 +01:00
Julian Ospald 87ad7d02f0
LIB/GTK: refactor File API and add copyFile 2015-12-17 23:08:02 +01:00
Julian Ospald d5c6eef49e
GTK: Refactor onRow
We name it withRow now and move the specific functions out of it.
2015-12-17 19:41:45 +01:00
Julian Ospald 8d9a6d7fb0
GTK: rename setBindings to setCallbacks 2015-12-17 17:48:35 +01:00
Julian Ospald 826ec65a68
LIB/GTK: use System.FilePath instead of System.FilePath.Posix 2015-12-17 17:46:55 +01:00
Julian Ospald 585a9fcc38
GTK: refactor 'onRow' and split out 'getSelectedRow' 2015-12-17 17:46:24 +01:00
Julian Ospald 82a4269cf7
GTK: remove redundant imports 2015-12-17 17:10:43 +01:00
Julian Ospald 78b6d5e52b
GTK: fix some callbacks to listen on the treeView instead of rootWin 2015-12-17 17:10:03 +01:00
Julian Ospald 41f47eea1e
GTK: Refresh treeview after deletion 2015-12-17 17:02:25 +01:00
Julian Ospald 4227921402
GTK: refactor updateTreeView
Move it to 'constructTreeView' and use 'refreshTreeView' instead
for updating the TreeView.
2015-12-17 17:02:25 +01:00
Julian Ospald 725744514b
GTK: add delete file/dir 2015-12-17 17:02:20 +01:00
Julian Ospald 25f620ad75
LIB: add delete file/dir 2015-12-17 16:25:37 +01:00
Julian Ospald 0f1301622b
GTK: add statusBar
No text yet. Probably needs to be reflected in mygui or myview state.
2015-12-17 14:47:30 +01:00
Julian Ospald d13cdac9e0
Initial commit 2015-12-17 04:42:22 +01:00