-
Notifications
You must be signed in to change notification settings - Fork 3
Description
Sometimes, a collection will change on disk while browsing through it with Ivy, e.g. you import your camera contents while browsing through your raw photo dump directory, or you delete some duplicates. It is desirable for the collection to be reloaded without having to go through the hassle of re-selecting all relevant directories and files from one or more system file dialogs.
Logic Rules and Behaviors
When reloading the current collection Ivy MUST...
- remember how a file came to be in the collection (i.e. as part of a directory vs. individually selected)
- add/remove any added/removed files in opened directories
- remove any removed files that were previously explicitly added to the collection
If possible and practical, Ivy SHOULD...
- maintain stable ordering for unchanged files, relative to each other
- try to remember the currently-viewed file, and land there again after the collection is rebuilt
- reload the current file, if it has changed (i.e. external editor, or as a result of file-moving/renaming)
- update the collection automatically
UX
This feature could be completely manual, triggered on-demand by one or more of a menu item, a toolbar button, and an accelerator key combo. This would be a reasonable enough choice as the user should know when they've made changes to their image collections on disk, but the real value-add is automating the whole thing.
One could periodically poll for changes, but for very large directories this doesn't scale very nicely. The better alternative would be to "watch" the appropriate files and directories, and react to changes in an event-driven manner.
A quick search did not reveal a racket-native (or via FFI) solution that works across platforms, but further research may lead to a suitable open source solution.