Wat de scan opleverde staat nu in een overlay #57

Merged
roelof merged 1 commit from scan-overzicht-overlay into main 2026-08-06 08:38:56 +02:00
Owner

Staat op #56 en moet er ná gemerged worden. De diff toont nu ook die commit; die verdwijnt er vanzelf uit zodra #56 op main staat. Zonder #56 kent de samenvatting de albumstap niet.

De vier stappen van de scanknop plakten hun samenvattingen aan elkaar tot één string, die in een strook van elf pixels langs de onderkant van het venster belandde. Dat is een zin die tot de eerste komma gelezen wordt.

Wat er verandert

  • ScanReport is een regel per stap (ScanReportLine), gevuld terwijl de ronde loopt. Een ronde die halverwege gestopt wordt meldt dus nog steeds de stappen die wél gebeurd zijn, en niet alleen die ene die onderbroken werd. FillAsync geeft nu bool terug en schrijft zijn eigen regel, in plaats van een string door te geven waar de volgende stap weer aan plakt.
  • ShowReport zet het paneel neer als de ronde eindigt, hoe hij ook eindigt. Een uitzondering komt er als eigen regel in te staan, om dezelfde reden als de tellingen: een foutmelding is een zin, en een zin in die strook wordt niet uitgelezen.
  • Modeless. Een kaart in rij 0 van het hoofdraster, rechtsonder — over een hoek van de trackkolom en nooit over de transportbalk — en als laatste kind van dat raster, zodat hij over de lijsten tekent in plaats van eronder. De lijsten, de transport en de scanknop blijven gewoon werken. Hij blijft staan tot hij weggeklikt wordt of de volgende ronde start: een scan duurt uren en zijn samenvatting hoort er nog te staan als je terugkomt bij de machine.
  • De statusregel houdt alleen de kop over (Scan finished / Scan stopped / Scan failed), zodat wegklikken het venster niet laat beweren dat er nooit iets gebeurd is.
  • ReportBackgroundBrush en ReportBorderBrush per themavariant in App.axaml, zoals elke andere kleur die het venster met de hand tekent. Dekkend, niet doorschijnend: de waas van de transportbalk over regels tekst zou nog slechter leesbaar zijn dan de regel die dit vervangt.

Zo hoort het er na een volle ronde uit te zien:

Scan finished                                    ✕

Scan             51 tracks added, 0 already known
Fill             nothing past volume 100 to fill from
Albums           4 records mended — 31 covers, 11 years
Artist pictures  5 artists, 51 tracks given a picture

Niet draaiend gezien

Eerlijk gezegd: het paneel is nog niet op het scherm bekeken. De opstelling stond klaar — wegwerp-PostgreSQL, kopieën van vijf platen, lokale server op 127.0.0.1:5199, speler ingelogd met een eigen XDG_CONFIG_HOME — maar het venster ging dicht voordat er een scanronde gedraaid was; er staat geen POST /api/scan in het serverlog. Onder Wayland is er geen invoergereedschap, dus die knopdruk moet met de hand.

Het bouwt, en omdat compiled bindings aan staan betekent dat dat elk bindingspad is opgelost. Maar hoe de kaart er werkelijk uitziet — de breedte van de stapkolom, of de tekst afbreekt, of de schaduw in beide thema's klopt — is nog niet vastgesteld.

> Staat op **#56** en moet er ná gemerged worden. De diff toont nu ook die commit; die verdwijnt er vanzelf uit zodra #56 op `main` staat. Zonder #56 kent de samenvatting de albumstap niet. De vier stappen van de scanknop plakten hun samenvattingen aan elkaar tot één string, die in een strook van elf pixels langs de onderkant van het venster belandde. Dat is een zin die tot de eerste komma gelezen wordt. ## Wat er verandert - **`ScanReport` is een regel per stap** (`ScanReportLine`), gevuld **terwijl de ronde loopt**. Een ronde die halverwege gestopt wordt meldt dus nog steeds de stappen die wél gebeurd zijn, en niet alleen die ene die onderbroken werd. `FillAsync` geeft nu `bool` terug en schrijft zijn eigen regel, in plaats van een string door te geven waar de volgende stap weer aan plakt. - **`ShowReport` zet het paneel neer als de ronde eindigt, hoe hij ook eindigt.** Een uitzondering komt er als eigen regel in te staan, om dezelfde reden als de tellingen: een foutmelding is een zin, en een zin in die strook wordt niet uitgelezen. - **Modeless.** Een kaart in rij 0 van het hoofdraster, rechtsonder — over een hoek van de trackkolom en nooit over de transportbalk — en als **laatste kind** van dat raster, zodat hij over de lijsten tekent in plaats van eronder. De lijsten, de transport en de scanknop blijven gewoon werken. Hij blijft staan tot hij weggeklikt wordt of de volgende ronde start: een scan duurt uren en zijn samenvatting hoort er nog te staan als je terugkomt bij de machine. - **De statusregel houdt alleen de kop over** (`Scan finished` / `Scan stopped` / `Scan failed`), zodat wegklikken het venster niet laat beweren dat er nooit iets gebeurd is. - **`ReportBackgroundBrush` en `ReportBorderBrush` per themavariant** in `App.axaml`, zoals elke andere kleur die het venster met de hand tekent. Dekkend, niet doorschijnend: de waas van de transportbalk over regels tekst zou nog slechter leesbaar zijn dan de regel die dit vervangt. Zo hoort het er na een volle ronde uit te zien: ``` Scan finished ✕ Scan 51 tracks added, 0 already known Fill nothing past volume 100 to fill from Albums 4 records mended — 31 covers, 11 years Artist pictures 5 artists, 51 tracks given a picture ``` ## Niet draaiend gezien Eerlijk gezegd: het paneel is **nog niet op het scherm bekeken**. De opstelling stond klaar — wegwerp-PostgreSQL, kopieën van vijf platen, lokale server op `127.0.0.1:5199`, speler ingelogd met een eigen `XDG_CONFIG_HOME` — maar het venster ging dicht voordat er een scanronde gedraaid was; er staat geen `POST /api/scan` in het serverlog. Onder Wayland is er geen invoergereedschap, dus die knopdruk moet met de hand. Het bouwt, en omdat compiled bindings aan staan betekent dat dat elk bindingspad is opgelost. Maar hoe de kaart er werkelijk uitziet — de breedte van de stapkolom, of de tekst afbreekt, of de schaduw in beide thema's klopt — is nog niet vastgesteld.
De vier stappen van de scanknop plakten hun samenvattingen aan elkaar tot één
string, die in een strook van elf pixels langs de onderkant van het venster
belandde. Dat is een zin die tot de eerste komma gelezen wordt.

ScanReport is nu een regel per stap, gevuld terwijl de ronde loopt — een ronde
die halverwege gestopt wordt meldt dus nog steeds de stappen die wél gebeurd
zijn, en niet alleen die ene die onderbroken werd. ShowReport zet het paneel
neer als de ronde eindigt, hoe hij ook eindigt; een uitzondering komt er als
eigen regel in te staan, om dezelfde reden als de tellingen.

Het paneel is modeless: een kaart in rij 0 van het hoofdraster, rechtsonder,
dus over een hoek van de trackkolom en nooit over de transportbalk, en als
laatste kind van dat raster zodat hij over de lijsten tekent in plaats van
eronder. Er wordt niets geblokkeerd zolang hij staat — de lijsten, de transport
en de scanknop blijven werken — en hij blijft tot hij weggeklikt wordt of de
volgende ronde start, want een scan duurt uren en zijn samenvatting hoort er
nog te staan als de eigenaar terugkomt bij de machine.

De statusregel houdt alleen de kop over (Scan finished / stopped / failed),
zodat het wegklikken van het paneel het venster niet laat beweren dat er nooit
iets gebeurd is. De achtergrond is dekkend, met een kleur per variant zoals
elke andere kleur die het venster met de hand tekent: de doorschijnende waas
van de transportbalk over regels tekst zou nog slechter leesbaar zijn dan de
regel die dit vervangt.

Niet draaiend gezien: de opstelling stond klaar maar er is geen scanronde
gedraaid, dus het paneel is nog niet op het scherm bekeken.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
roelof merged commit 9b288431e8 into main 2026-08-06 08:38:56 +02:00
roelof deleted branch scan-overzicht-overlay 2026-08-06 08:38:56 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
KavalirOS/RockHeaven!57
No description provided.