Summary
The virtual data table component (used in Downloads, Shared, Search, Servers and Peers) currently shows a fixed set of columns at fixed widths. Users should be able to choose which columns are visible and resize columns to their preference, and those choices should persist across page reloads and visits.
Motivation
Different users care about different data, and screens vary in size. Some columns are hidden today even though users may want them. For example, the Peers/clients table exposes fields like the peer IP and OS that are not currently shown — a user might well want to see them, while others may prefer to hide columns they don't use to reduce clutter.
Requested behaviour
- Show/hide columns: the user can toggle the visibility of individual columns. A column picker (e.g. a small pop-up/menu opened from a button in the table header/toolbar) would be a good fit, but the exact UI is left to the implementer's judgement.
- Resize columns: the user can adjust column widths manually (e.g. by dragging the column edges).
- Persistence: both the set of visible columns and their widths are saved to the browser's localStorage, per table, so the layout is restored on reload and on future visits.
- Sensible defaults: when no saved preference exists, fall back to the current default columns and widths.
- Reset to defaults: the user can restore the original columns and widths, clearing the saved preference for that table.
Notes
- Applies to all tables using the shared virtual table component.
- Should remain responsive (the tables already scroll horizontally on narrow screens).
Summary
The virtual data table component (used in Downloads, Shared, Search, Servers and Peers) currently shows a fixed set of columns at fixed widths. Users should be able to choose which columns are visible and resize columns to their preference, and those choices should persist across page reloads and visits.
Motivation
Different users care about different data, and screens vary in size. Some columns are hidden today even though users may want them. For example, the Peers/clients table exposes fields like the peer IP and OS that are not currently shown — a user might well want to see them, while others may prefer to hide columns they don't use to reduce clutter.
Requested behaviour
Notes