Skip to content

Follow a scan by completed pages, not blank ones#86

Open
sjg20 wants to merge 1 commit into
masterfrom
scan-display
Open

Follow a scan by completed pages, not blank ones#86
sjg20 wants to merge 1 commit into
masterfrom
scan-display

Conversation

@sjg20

@sjg20 sjg20 commented Jun 15, 2026

Copy link
Copy Markdown
Owner

When scanning, the page view inserted a blank row for each new page the moment it started and scrolled straight to it, so the page filled in only after the jump. That made sense when scanners streamed the raster slowly and you watched it fill, but modern scanners deliver a whole page in one burst — so all you see is blank pages that flash and vanish as the view jumps ahead to the next not-yet-scanned page.

This follows the scan by the pages that actually have data:

  • slotBeginningPage() no longer scrolls when a page merely starts.
  • slotNewScannedPage() scrolls to a page once it has finished scanning.
  • Pagemodel::slotNewScannedPage() returns the completed page's row; Pageview::scrollToRow() brings it to the bottom of the view (respecting the user having scrolled away with the existing _autoscroll logic).

Net effect: the most recently scanned pages stay on screen instead of blanks.

⚠️ This is a scan-flow/visual change and I couldn't exercise a real scan locally (the sandbox is missing the QtStateMachine dev headers, so no full GUI build here) — it's verified by per-file compiles + the build on CI. Worth a quick scan on your machine to confirm the feel.

🤖 Generated with Claude Code

When scanning, the page view inserted a blank row for each new page
the moment it started and scrolled straight to it, so the page filled
in only after the jump.  That made sense when scanners streamed the
raster slowly and you watched it fill, but modern scanners deliver a
whole page in one burst, so all the user sees is blank pages that
flash and vanish as the view jumps ahead.

Follow the scan by the pages that have data instead: don't scroll when
a page merely starts, and scroll to a page once it has finished
scanning, in slotNewScannedPage().  Pagemodel::slotNewScannedPage()
now returns the completed page's row, and Pageview::scrollToRow()
brings it to the bottom of the view (respecting the user having
scrolled away).  The result is that the most recently scanned pages
stay on screen rather than blanks.

Co-developed-by: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant