Skip to content

Add inline transfer speed sparklines

Summary

Add a compact inline speed chart for transfers, visually similar in density and placement to the existing parts/progress bar UI.

The intended control is a small sparkline-style rendering inside the transfer lists, not a full chart panel. It should help users see whether a transfer is steady, bursting, stalled, or recovering without opening a separate details view.

Intended Shape

Start with a lightweight custom-drawn sparkline:

  • store a small fixed-size speed history ring per active transfer row
  • sample at the existing transfer refresh cadence
  • draw only visible rows during normal list paint
  • use per-row normalization for v1 so slow transfers still show movement
  • keep axes, legends, and interaction out of the first version

Candidate placement:

  • download list current-speed/status area, or a narrow optional speed-graph column
  • upload list equivalent if the download-list version proves cheap enough

Scope Constraints

  • Do not add a separate chart window for this item.
  • Do not repaint every transfer row continuously; rendering must stay tied to existing visible-row invalidation.
  • Do not store long histories. The visual should use roughly 30-60 recent samples per row unless profiling supports a different bound.
  • Do not block or slow transfer processing to maintain the visual history.

Acceptance Criteria

  • [ ] Visible download rows can show a compact recent-speed sparkline.
  • [ ] The sparkline updates at the existing list refresh cadence without introducing measurable UI stutter on large transfer lists.
  • [ ] The implementation keeps bounded per-row memory usage.
  • [ ] Users who do not need the visual can hide it if implemented as a separate column.
  • [ ] A seam or focused rendering-policy test covers history retention and scaling decisions without relying on a live MFC window.