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
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