# Grid n' View

### ToDo

    - Save current gallery (zip)
    - Views: Gallery / Details / Lightbox
    - Details: populate fields
    - toolbar -- floating over gallery
    	- lightbox (current)
    	- info (current)
    	- select / deselect (current / all)
    	- delete / clear deleted (current / all)
    	- crop
    	- load
    - toolbar -- floating over image (gallery/lightbox/details/...)
    	- lightbox
    	- info
    	- select / deselect
    	- delete
    - Lightbox: hover indicators:
    	- start/end (a-la ImageGrid.Viewer??)
    	- next/prev
    	- count
    	- selection
    - Gallery: Adaptable image justification in grid
    - Gallery: Spacial navigation (up/down/left/right)
    	- auto focus image iff the gallery is visible
    		- handle focus / tabindex (???)
    	- option: .loop_images
    	- Up/Down: might be a good idea to select an image based on
    	  longest border instead of closest center (current)...
    - Gallery: PageUp/PageDown, home/end + allow page navigation
    - Gallery: focus visible...
    - Gallery/Lightbox: Selection of images (space / ctrl-a / ctrl-d / ctrl-i)
    	- Lightbox: show selection marker
    - Gallery: constructor...
    	Gallery([options])
    	Gallery(urls[, options])
    	Gallery(dom[, options])
    	Gallery(dom, urls[, options])
    - Gallery: view crop
    	- open/change/close
    	- crop stack (a-la ImageGrid.Viewer)
    	- actions:
    		- "from selection"
    - Gallery: drag-n-drop
    	- drop files/images -- add loading indicator
    	- drag to sort
    	- drag marked
    	- styling...
    - Gallery: remove image
    	- basic delete
    	- delete marked
    	- mark images for deletion + delete marked
    	- UI/toolbar
    - Gallery: serialize / deserialize
    - Lightbox: navigation (keyboard / mouse)
    - Lightbox: fullscreen mode
    - Gallery: element (???)
    - Would be nice to retain the scroll position on refresh...
    - ...

    Keyboard controls:
        Left / Reight   - Previos / next image
        Up / Down       - Image above / below
        Space           - Mark image (also shift-click)
        Ctrl-A          - Mark all images
        Ctrl-D          - Unmark all images
        Ctrl-I          - Reverse image marks
        Enter           - Toggle lightbox
        Esc             - Close image info or lightbox
        Delete          - Toggle image / marked for deletion (toggle)
        Shift-Delete    - Delete marked image(s) or current if none are marked

    NOTE: if the grid behaves in an odd way on resize tweak PATCH_MARGIN value,
    	though this sould not be necessary.
    	(optimal range >1 and <3)
    NOTE: the "basic actions" below are to be moved to the toolbar...

    For more info see: README.md

Basic actions:
toggle mark current (space) | mark all (ctrl-a) | unmark all (ctrl-d) | reverse mark (ctrl-i) | remove marked
toggle removal | queue marked removal | unqueue marked removal | toggle marked removal | remove queued
clear

CAPTION
TAGS
METADATA