Een ster in de tracklist aanklikken sloeg niets op, en werkt nu #112
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "sterren-tracklist-fix"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Het herbinden van de hele lijst vanuit de eigen klik-handler van een rij-knop is een reentrancy-val in GTK: de widget die de klik nog aan het afhandelen was, werd tegelijk herbonden en niets kwam op het scherm terecht. Verplaatst naar OnMainThread, zodat het pas gebeurt nadat de klik is afgehandeld.
De vijf sterren staan ook dichter op elkaar: elke platte knop had zijn eigen padding, waar de lege ruimte tussen de sterren vandaan kwam.
Ik heb dit niet zelf kunnen klikken en zien werken — geen schermafbeelding en geen manier om een klik te simuleren in deze sessie. De hypothese over de oorzaak is beargumenteerd vanuit de code, niet geverifieerd door het echt te proberen. Graag zelf even testen voor het mergen.
Closes #111.
De eerste poging (OnMainThread) loste het niet op, precies zoals je testte: opslaan werkte al, alleen het scherm werd nooit bijgewerkt zonder herstart. De echte oorzaak:
trackStore.ItemsChangedbindt een rij alleen opnieuw als het object daar is veranderd, en dat gebeurt nooit — de waardering staat inIRatingBook, niet opTrackRow. Nu houdt elke rij, net als bij een hoes, een verwijzing naar zijn eigen vijf sterren vast zolang die op het scherm staat, en werktRateTrackdie rechtstreeks bij. Graag opnieuw testen.