-
-
Notifications
You must be signed in to change notification settings - Fork 419
Description
Checklist
- I am using an up-to-date version.
- I have read the documentation.
- I have searched existing issues.
Description
As of now, the UI is fairly rigid and provides limited customization. The entry panel and the entry preview can be resized, but that's about as far as customization goes currently.
Solution
Add dockable UI panels, which provide plenty of features for customization, such as:
- Dragging and docking to predefined docking areas.
- Of course, there would be docking areas for each side of the screen (top, bottom, left, right) and the center of the screen.
- Each panel could also have their own nested docking areas, allowing panels to be placed adjacent to each other within the larger docking zone.
- If a docking zone contains multiple panels, it could display tabs for switching between each panel.
- Resizing, with handles dynamically appearing on the border between adjacent panels.
- The ability to be made to be "floating", having their own window.
- Toggling on or off, allowing the user to hide panels they don't use.
- Pinning, to prevent accidental resizing or moving.
Add the ability to save and switch between different arrangements of dockable panels (for now, I'm calling them views, despite it conflicting with my previous request). For example, a user may want to have a view for editing their library, with different management-related panels easily accessible, and a view for viewing their library, with the management-related panels hidden and more space given to the search bar and entry grid.
- By default, a recommended "default" view is provided, which is immutable, allowing the user to return to the default at any time.
- The user can save their current view either as a new option, or overwrite an existing one (provided it isn't immutable).
- Views can be copied, renamed, deleted, etc.
- Views could potentially be exported, shared, and imported, being stored as a
tomlfile describing each panel's docking zone, the size of the docking zone they take up, whether they're hidden or pinned, etc. This isn't at all necessary, but it could be cool to have.
Rework the existing UI to make use of dockable panels.
- For the library view, the search bar would be a panel docked to the top, the entry panel would be a panel docked to the right, and the entry grid would be a panel docked to the center.
- Persistent, non-contextual modals, such as the tag manager, could also be dockable panels that are floating by default. This would allow the user to permanently dock these modals to be accessible at all times if they wish.
- These modals could themselves contain dockable panels, allowing their contents to be rearranged. For example, the upcoming tag manager rework. Each tab could be a dockable panel, all docked to the center of the modal. The user could then dock different tabs to different areas, allowing tabs to be viewed and interacted with at once.
- Non-persistent modals, though, like the "New Tag" modal, wouldn't make much sense to itself be a dockable panel, as it'd get removed. It could contain dockable panels to allow rearranging it's contents, and have that be remembered, but being able to dock the modal itself could be confusing.
Alternatives
As said above, the UI is currently fairly static and provides little customization.