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