Artifact [9c05e70a92]
Not logged in

Artifact 9c05e70a921d91b662a48ffce69a1e7401944949:

Wiki page [Roadmap] by tinus 2015-03-23 14:36:57.
D 2015-03-23T14:36:57.762
L Roadmap
N text/x-markdown
P 1c3e2ac6b21222a44ed843d9244c042b0127cbf3
U tinus
W 2895
# ZPreview Roadmap

Listed below are the features and changes I want to implement. Marked in _italics_ are features that have already been implemented in the source code.

## 1.0.3
* When selecting a new file, try the current renderer first
* _Also support Shift+Ctrl+Alt from ZTreeWin (~ instead of ^)_
* Add command-line parameter for `zbar.dat` location
* Add button to close error panel
* Add dialog to check for updates (branch [feature/auto-update](timeline?r=feature/auto-update))
* Save and load settings
  - window size and position of all forms
  - 'checked' property of all View actions
  - preferential order of renderers
  - which engines and/or renderers have been disabled
  - list of WLX plugins to load
* Improve error handling during automatic selection of renderer
* Refactor user interface for preview engines and renderers
  - add engine management dialog (to enable/disable renderers, _change their order of preference_, and perhaps associate specific renderers with specific file extensions)
  - remove current buttons to enable/disable engines (this can be done from the abovementioned dialog)
  - 'flatten' current "preview engine" menu with a series of buttons, one for each engine. Each button will show a menu with the renderers that engine supports.


## Later versions
* Add hex viewer renderer (branch [feature/hex-viewer](timeline?r=feature/hex-viewer))
* Add preferences dialog
  - whether to check for updates (and how often)
  - when we last (successfully) checked for updates
  - list of WLX plugins to load
* Add main menu to the preview form
* Add options to change the view mode;
  - when showing images: 1:1 or fit to window
* Add a toggle to fix the current renderer, and try to use that for all selected files
* Correctly respond to pre-commands in the zbar.dat file, to prevent preview engines from locking a file when ZTreeWin wants to delete or move it.
* When minimized or hidden, disable all preview handlers.
* Keep track of changes in zbar.dat in a separate thread, so the user interface becomes more responsive.
* Handle Ctrl-Shift-←↑→↓, Page Up/-Down, Home, End etc. (perhaps delegate that to the preview engines)
  - images in 1:1 view mode, scroll the image
  - Windows Preview Handlers: try sending WM_SCROLL messages to the handler
* Add an 'About' window

## Long-term ideas
* Add possibility to assign a custom shortcut (from ZTreeWin or the program itself) to each renderer
* Add user interface to edit all shortcuts
* Have each renderer's CouldShowFile return yes/no/maybe instead of a boolean; only show 'maybe' when it makes sense
* Decouple the sentinel file, and allow other means of specifying the file to preview (modularize the input)
* Handle multiple available zbar.dat files
* Have renderers return a score for a specific file type, and choose the one with the best score
Z 6f8aa0a7199f4d7e4be17978528f7b76