Commit Graph

89 Commits

Author SHA1 Message Date
5b6a342a9e
LIB/TESTS: fix moveFileOverwrite and add tests
We must not allow to move a file to a directory, deleting that
directory and effectively changing the filetype.
2016-05-08 23:20:00 +02:00
8646a6338c
LIB/GTK: simplify error handling, add 'reactOnError' 2016-05-08 23:06:40 +02:00
db16dcbb5d
GTK: fix renameF callback 2016-05-08 20:14:39 +02:00
3af8b36940
GTK: adjust to new LIB API and refactor file error handling
This restructures large parts of the GUI-wise error handling code
and makes it more fine-grained, so the user can react appropriately
to exceptions.
2016-05-08 20:14:30 +02:00
9c6cf51825
LIB: refactor FileOperation and related Errors
* move FileOperation/Copy/Move types to its own UtilTypes module
* remove runFileOp, since it's hard to really do the correct
  thing here for all possible exceptions... instead, let the
  GUI logic handle this
* introduce copyDirRecursiveOverwrite, copyFileOverwrite and
  easyCopyOverwrite
* use our own throwSameFile on functions to distinguish between
  "same file" and "file already exists"
* don't follow destination in copyFile* either
* improve throwSameFile, by examining device and file ids
* add isWritable
* improve documentation
* adjust and fix tests
2016-05-08 18:48:17 +02:00
d58fd6e6f0
LIB: add copyFileOverwrite 2016-05-08 12:48:03 +02:00
8b0e59faa7
LIB: improve documentation 2016-05-03 11:55:34 +02:00
6ec455b515
LIB: make deleteDirRecursive more robust
We now try 'deleteDir' first and only start recursive removal
if that fails.
2016-05-03 11:54:25 +02:00
c84512e3b3
TESTS: add deleteFileSpec 2016-05-02 23:10:22 +02:00
9a11e35be0
TESTS: add getDirsFilesSpec 2016-05-02 22:52:10 +02:00
7e8d465d81
LIB: improve documentation 2016-05-02 22:19:19 +02:00
526db2cbb7
GTK: fix opening symlinks that point to directories 2016-05-02 22:13:33 +02:00
5670b160d8
TESTS: add getFileTypeSpec 2016-05-02 22:13:19 +02:00
ac41b053e3
LIB: fix legacy comment 2016-05-02 20:51:59 +02:00
37516306d3
LIB: improve documentation formatting 2016-05-02 20:49:08 +02:00
71cee4019b
LIB: fix grammar 2016-05-02 20:38:59 +02:00
782abe2584
LIB: improve documentation 2016-05-02 20:36:22 +02:00
b3b239d4c9
LIB: rm redundant imports 2016-05-02 19:14:52 +02:00
c5afe976cf
GTK: adjust to new APIs, CopyMode functionality is broken for now! 2016-05-02 19:14:41 +02:00
47cd43dba6
LIB: refactor large parts of the API
This makes the FileOperations module more low-level, since we now
handle everything via 'Path Abs' and only leave 'File a' for
e.g. GUI purposes.

Also fixes various bugs in the Errors module.

This depends on custom changes in posix-paths.
2016-05-02 19:06:53 +02:00
251a20e881
GTK: minor fixes 2016-04-24 20:01:22 +02:00
c29693fbd0
GTK: allow to open terminal at current directory
TODO: terminal needs to be configurable
2016-04-24 20:00:34 +02:00
3008e4463b
GTK: implement tabs wrt #45
This also restructures the meaning of MyGUI and MyView.
They are now more strictly a hierarchy and everything that may
be specific to a view (like urlBar) has been moved into the MyView
context.

In addition, this also fixes #42
2016-04-24 18:38:47 +02:00
a4c8995299
GTK: formatting and comments 2016-04-20 17:59:55 +02:00
0ff24002e5
GTK: avoid subsequent duplicate entries in history 2016-04-20 17:27:47 +02:00
7608d838aa
GTK: improve history navigation
* increase maximum numbers of items in the history
* empty the "forward" history if we enter a directory
  via normal navigation
2016-04-20 17:20:04 +02:00
d432c2146b
GTK: improve file property dialog
Adds the following fields:
* file type
* permissions
* link destination of symlink (if applicable)
2016-04-20 17:16:58 +02:00
064d5a1032
LIB/GTK: use strict data types where possible 2016-04-20 16:34:26 +02:00
07c5fa2d62
GTK: fix imports 2016-04-20 16:33:18 +02:00
5c57551438
GTK: restructure Callbacks.hs to make it more readable 2016-04-20 01:25:40 +02:00
3c6aca04b4
GTK: fix history when clicking on HOME button 2016-04-20 00:48:34 +02:00
9d572c8a6e
GTK: remove obsolete void usage 2016-04-20 00:39:53 +02:00
680a75f5be
GTK: implement rudimentary history support wrt #21
5 items back and forth only. Implemented via a simple
TVar ([], []). Might be improved in the future.
2016-04-20 00:38:22 +02:00
a61b409486
GTK: implement fileinfo dialog wrt #32 2016-04-19 21:05:29 +02:00
9b43814846
GTK: clear move buffer after move
Doesn't make sense to keep it since the buffer
will probably point to a non-existing file afterwards.
2016-04-18 01:02:18 +02:00
8b8c9a669f
GTK: implement file drag and drop
Still doesn't work on multiple rows.

Also see #14
2016-04-18 00:51:45 +02:00
1d2bf37a44
GTK: implement creating new directories
And moving it with creating new files to a submenuitem.
2016-04-17 03:12:34 +02:00
e98fb577ed
GTK: implement home and up buttons wrt #40 2016-04-17 01:01:04 +02:00
e2c83b3c31
LIB/GTK: remove obsolete fullPath/fullPathS and refactor for prettiness 2016-04-16 21:50:15 +02:00
593a59787f
LIB: use posix-path traversal functions for getDirsFiles
This should also speed up reading.
2016-04-16 19:39:03 +02:00
bd707fc193
LIB: fix readFile, rm obsolete comment 2016-04-16 19:24:36 +02:00
0fca64594d
LIB/GTK: use more recent library versions 2016-04-16 19:14:08 +02:00
bb6c1b3cda
LIB/GTK: refactor File base type
We have now ditched AnchoredFile and just use File with Path Abs
in the path field.

This is useful since we now:
* don't allow "." or ".." as filenames anymore
* normalise paths in our path parsers and reject paths with ".."

This also allows us to know that filepaths are always valid. In addition
the 'basename' function from hpath may throw an exception if run
on the root dir "/". This exception is basically uncatched currently,
which is fine, because it's not a selectable directory.
2016-04-15 14:23:41 +02:00
3d15a66350
LIB: don't use show on String 2016-04-11 02:24:23 +02:00
2ae574688b
LIB: fix spelling error 2016-04-11 02:05:58 +02:00
c2f3da6180
LIB/GTK: improve exceptions/error handling 2016-04-11 01:59:18 +02:00
3f303b4cd4
LIB: minor cleanup 2016-04-10 22:04:07 +02:00
b7ee2ccd3d
LIB: move 'hiddenFile' to hpath package 2016-04-10 22:03:30 +02:00
bddf29671a
LIB: improve documentation 2016-04-10 19:25:22 +02:00
59d4051d84
LIB: small cleanup, rm obsolete functions, fix some TODOs 2016-04-10 19:16:06 +02:00