|
@@ -2462,6 +2462,19 @@ horeca-blok bij stadsactiviteiten op `EventCurrent`) blijft bewust
|
|
|
liggen tot Bob erop terugkomt — geen eigen taak-ID.)*
|
|
liggen tot Bob erop terugkomt — geen eigen taak-ID.)*
|
|
|
|
|
|
|
|
**P2-7 · Eigenaar: Bob.** Opschonen:
|
|
**P2-7 · Eigenaar: Bob.** Opschonen:
|
|
|
|
|
+- **Nieuw bevestigd dood (2026-08-31, Claude, code-only; geverifieerd
|
|
|
|
|
+ met `grep -rn "components/<bestand>" lib/` — 0 importeurs):**
|
|
|
|
|
+ `lib/components/uitgaantabel_kaart_widget.dart` +
|
|
|
|
|
+ `..._model.dart`. Dit is een **verouderd duplicaat** van het live
|
|
|
|
|
+ component `lib/uitgaanspaginas/uitgaantabel_kaart/` — zelfde
|
|
|
|
|
+ klassenaam `UitgaantabelKaartWidget`, maar de oude versie heeft nog
|
|
|
|
|
+ `parameter9` waar de live versie `nid` heeft, en mist het
|
|
|
|
|
+ blurhash-werk uit P2-12. Alle drie de gebruiksplekken (`favorieten`,
|
|
|
|
|
+ `favorieten_copy`, `p_uitgaantabel_kaart_component`) importeren de
|
|
|
|
|
+ `uitgaanspaginas`-versie. Ook 0 importeurs:
|
|
|
|
|
+ `lib/components/header_buttons_component_copymethartje_widget.dart`
|
|
|
|
|
+ (mogelijk relevant voor P0-12's dubbele-hartjes-vraag — eerst daar
|
|
|
|
|
+ checken vóór weggooien).
|
|
|
- Merge `kaartTabelUitgaanComp` + `kaartTabelUitgaanSComp` — Bob doet
|
|
- Merge `kaartTabelUitgaanComp` + `kaartTabelUitgaanSComp` — Bob doet
|
|
|
dit zelf ("ik kijk er zelf naar").
|
|
dit zelf ("ik kijk er zelf naar").
|
|
|
- `lib/kanweg` opnieuw leegmaken indien teruggekomen na een latere
|
|
- `lib/kanweg` opnieuw leegmaken indien teruggekomen na een latere
|
|
@@ -2741,7 +2754,7 @@ overwegen bij een volgende theme-update:
|
|
|
|
|
|
|
|
---
|
|
---
|
|
|
|
|
|
|
|
-**P2-15 · Eigenaar: Bob (builder), Claude regisseert/verifieert.
|
|
|
|
|
|
|
+**P2-15 · Eigenaar: Bob (builder), Claude regisseert/verifieert — bezig (sessie 2026-08-31, bouwstap 3 restpunten).
|
|
|
Bouwstap 1 afgerond en bevestigd (2026-08-27): custom action
|
|
Bouwstap 1 afgerond en bevestigd (2026-08-27): custom action
|
|
|
`bestandUpload` (`lib/custom_code/actions/bestand_upload.dart`) upload
|
|
`bestandUpload` (`lib/custom_code/actions/bestand_upload.dart`) upload
|
|
|
foto → fid, live getest tegen productie
|
|
foto → fid, live getest tegen productie
|
|
@@ -3077,6 +3090,31 @@ top-level aangemaakt mét een *relatief* pad (`/nl/flutterdrup/...`)
|
|
|
afgeknipt worden in de verzendactie.
|
|
afgeknipt worden in de verzendactie.
|
|
|
6. Na succes: melding **"wordt beoordeeld"**, niet "geplaatst".
|
|
6. Na succes: melding **"wordt beoordeeld"**, niet "geplaatst".
|
|
|
|
|
|
|
|
|
|
+**Nieuwe restpunten (sessie 2026-08-31, live pair-fix):**
|
|
|
|
|
+7. **Verzendknop crasht bij ontbrekende plaats.** Argument #5 van
|
|
|
|
|
+ `stadsactiviteitCreate` genereert `_model.createPlaatsID!` (non-null
|
|
|
|
|
+ assertion) — indienen zonder een plaats te kiezen geeft een
|
|
|
|
|
+ `Null check operator used on a null value` vóórdat de custom action
|
|
|
|
|
+ zijn eigen nette "Ongeldige plaats"-melding kan tonen. Guard nodig:
|
|
|
|
|
+ knop uitschakelen/verbergen zolang `createPlaatsID` niet gezet is,
|
|
|
|
|
+ of een conditie vooraan de actieketen.
|
|
|
|
|
+8. **`field_town_access` bevat nog plaats-niveau tids (Drupal-kant).**
|
|
|
|
|
+ De omzetting naar gemeente-niveau (2026-08-27) wijzigde alleen de
|
|
|
|
|
+ widget-instellingen, niet de al opgeslagen waarden — bevestigd via
|
|
|
|
|
+ `mijn_stadsrechten` op Bob's eigen account (`tid` 29946
|
|
|
|
|
+ = 's-Gravendeel, een Plaats; `parent_titel` = Binnenmaas, de
|
|
|
|
|
+ gemeente). Gevolg: de rechten-shortcut op `stadsactiviteitAanmaken`
|
|
|
|
|
+ zet `createGemeenteID` op een plaats-tid en de Plaats-dropdown
|
|
|
|
|
+ blijft leeg. **De app-binding (`$[:].tid`) is correct; de data niet.**
|
|
|
|
|
+ Eenmalige drush-migratie nodig voor alle gebruikers met
|
|
|
|
|
+ `field_town_access`: tids waarvoor
|
|
|
|
|
+ `count(taxonomy_get_parents_all($tid)) === 3` vervangen door hun
|
|
|
|
|
+ gemeente-parent (`$parents[1]->tid`), dedupliceren, `user_save()`.
|
|
|
|
|
+ Eerst devbob, dan productie. Script is in de sessie aan Bob gegeven.
|
|
|
|
|
+9. **Categorie-dropdown toont de hele hiërarchie plat.** `categorieen`
|
|
|
|
|
+ geeft `diepte`/`parent_tid` mee; de multiselect toont nu ouder- én
|
|
|
|
|
+ kindtermen door elkaar zonder inspringing. Optionele verfijning.
|
|
|
|
|
+
|
|
|
**Losse observatie (niet blokkerend):** FlutterFlow's Issues-paneel
|
|
**Losse observatie (niet blokkerend):** FlutterFlow's Issues-paneel
|
|
|
toont 1 error "Property Override — return type mismatch" wijzend naar
|
|
toont 1 error "Property Override — return type mismatch" wijzend naar
|
|
|
`DropDownProvincie`, terwijl de export 0 Dart-errors geeft en de
|
|
`DropDownProvincie`, terwijl de export 0 Dart-errors geeft en de
|
|
@@ -3116,16 +3154,54 @@ Info/Opening/Map → openingstijden en kaart terug als eigen tab, "Links"
|
|
|
onder Info. Let op: `evenement_horecagelegenheid` noemt dezelfde tab al
|
|
onder Info. Let op: `evenement_horecagelegenheid` noemt dezelfde tab al
|
|
|
wél "Openingstijden" — die twee schermen spreken elkaar nu tegen.
|
|
wél "Openingstijden" — die twee schermen spreken elkaar nu tegen.
|
|
|
|
|
|
|
|
-**P2-17 · Eigenaar: Claude** (mechanisch). Slagschaduw onder
|
|
|
|
|
-titelteksten verwijderen (property-zoekbalk → "shadow"). Tien
|
|
|
|
|
-componenten: `uitgaantabel_kaart_widget.dart`,
|
|
|
|
|
-`kaart_tabel_uitgaan_comp_widget.dart`,
|
|
|
|
|
-`kaart_tabel_uitgaan_s_comp_widget.dart`,
|
|
|
|
|
-`kaart_slider_uitgaan_s_comp_widget.dart`,
|
|
|
|
|
-`home_uitgaantabel_kaart_component`, `p_uitgaan_slider_kaart_component`,
|
|
|
|
|
-`p_uitgaantabel_kaart_component_orgineel_met_kaartjeerin`,
|
|
|
|
|
-`event_current_widget.dart`, `horecagelegenheid_current_widget.dart`.
|
|
|
|
|
-De site gebruikt dit effect nergens.
|
|
|
|
|
|
|
+**P2-17 · Eigenaar: Claude (builder-stappen klaar, alleen nog
|
|
|
|
|
+uitvoeren).** Slagschaduw onder titelteksten verwijderen — de site
|
|
|
|
|
+gebruikt dit effect nergens.
|
|
|
|
|
+
|
|
|
|
|
+**Inventarisatie afgerond en aangescherpt (2026-08-31, Claude,
|
|
|
|
|
+code-only op de repo). De oorspronkelijke lijst van 10 bestanden is
|
|
|
|
|
+terug te brengen tot 5 plekken die daadwerkelijk zichtbaar zijn**; de
|
|
|
|
|
+andere 5 staan in componenten die door geen enkel bestand geïmporteerd
|
|
|
|
|
+worden, dus daar heeft de fix geen zichtbaar effect. Zoekpatroon voor
|
|
|
|
|
+hercontrole: `grep -rn "shadows: \[" lib/ --include=*.dart` (11
|
|
|
|
|
+treffers in 10 bestanden).
|
|
|
|
|
+
|
|
|
|
|
+**Wél doen — 5 plekken, allemaal live (regelnummers t.o.v. de export
|
|
|
|
|
+van 2026-08-31):**
|
|
|
|
|
+1. `HomeUitgaantabelKaartComponent` — titel-`AutoSizeText`
|
|
|
|
|
+ (`lib/uitgaanspaginas/home_uitgaantabel_kaart_component/..._widget.dart:413`,
|
|
|
|
|
+ bron `$.titel`). Zwaarste geval: staat 5x op de Home-pagina.
|
|
|
|
|
+2. `PUitgaanSliderKaartComponent` — titel-`Text`
|
|
|
|
|
+ (`lib/uitgaanspaginas/p_uitgaan_slider_kaart_component/..._widget.dart:274`,
|
|
|
|
|
+ bron `widget!.titel`). Gebruikt door zowel `HomeUitgaanSliderComponent`
|
|
|
|
|
+ als `PUitgaanSliderComponent`.
|
|
|
|
|
+3. `UitgaantabelKaart` — titel-`AutoSizeText`
|
|
|
|
|
+ (`lib/uitgaanspaginas/uitgaantabel_kaart/uitgaantabel_kaart_widget.dart:311`).
|
|
|
|
|
+ **Let op: dit is de map `uitgaanspaginas/uitgaantabel_kaart/`, niet
|
|
|
|
|
+ `lib/components/uitgaantabel_kaart_widget.dart`** — zie de
|
|
|
|
|
+ dode-lijst hieronder. Gebruikt door Favorieten en
|
|
|
|
|
+ `PUitgaantabelKaartComponent`.
|
|
|
|
|
+4. `EventCurrent` — **twee** plekken
|
|
|
|
|
+ (`..._widget.dart:354` én `:607`), niet één zoals de oude notitie
|
|
|
|
|
+ suggereerde.
|
|
|
|
|
+5. `HorecagelegenheidCurrent` — titel-`Text` (`..._widget.dart:469`).
|
|
|
|
|
+
|
|
|
|
|
+**Niet doen (geen zichtbaar effect — 0 importeurs, geverifieerd met
|
|
|
|
|
+`grep -rn "components/<bestand>" lib/`):**
|
|
|
|
|
+- `lib/components/kaart_tabel_uitgaan_comp_widget.dart` (0 importeurs)
|
|
|
|
|
+- `lib/components/kaart_tabel_uitgaan_s_comp_widget.dart` (0)
|
|
|
|
|
+- `lib/components/uitgaantabel_kaart_widget.dart` (0) — zie P2-7
|
|
|
|
|
+- `lib/components/kaart_slider_uitgaan_s_comp_widget.dart` — alleen
|
|
|
|
|
+ geïmporteerd door `slider_uitgaan_component_small_current`, en dát
|
|
|
|
|
+ component is zelf al als orphan bevestigd (zie P2-7)
|
|
|
|
|
+- `lib/uitgaanspaginas/p_uitgaantabel_kaart_component_orgineel_met_kaartjeerin/`
|
|
|
|
|
+ (0)
|
|
|
|
|
+
|
|
|
|
|
+**Builder-stappen per plek:** widget selecteren → "Search
|
|
|
|
|
+properties..." → typ `shadow` → de shadow-sectie uitzetten/verwijderen.
|
|
|
|
|
+Verifiëren met een verse export: het aantal `shadows: [`-treffers moet
|
|
|
|
|
+van 11 naar 6 gaan (de 5 dode blijven staan tot P2-7 die mappen
|
|
|
|
|
+opruimt).
|
|
|
|
|
|
|
|
**P2-18 · Eigenaar: Claude** (mechanisch, ±12 iconen; pas ná P0-11).
|
|
**P2-18 · Eigenaar: Claude** (mechanisch, ±12 iconen; pas ná P0-11).
|
|
|
Eén icoon per categorie in het menu: "Cultuur" en "Jeugd" hebben nu
|
|
Eén icoon per categorie in het menu: "Cultuur" en "Jeugd" hebben nu
|
|
@@ -3151,11 +3227,128 @@ kaarttitels op afbreken/overlopen nakijken. Ook een legitieme uitkomst:
|
|
|
niet doen — dan is de app herkenbaar op kleur maar mist hij de
|
|
niet doen — dan is de app herkenbaar op kleur maar mist hij de
|
|
|
kranten-uitstraling.
|
|
kranten-uitstraling.
|
|
|
|
|
|
|
|
-**P2-21 · Eigenaar: Claude.** Tabletweergave herschikken i.p.v.
|
|
|
|
|
-uitrekken: op tabletformaat blijven kaarten één kolom en rekken ze mee
|
|
|
|
|
-tot volledige schermbreedte (onleesbaar lange regels, sliderband wordt
|
|
|
|
|
-een leeg vlak). Fix: boven ±700px twee kolommen in de lijstweergaven +
|
|
|
|
|
-de tekstkolom in kaarten begrenzen. Verifiëren op `emulator-5556`
|
|
|
|
|
-(tablet) én telefoonformaat. Staat los van P1-11 (labels/overflow, al
|
|
|
|
|
-afgerond) — dit gaat puur over kolomindeling.
|
|
|
|
|
|
|
+**P2-21 · Eigenaar: Claude (analyse afgerond, builder-werk resteert).**
|
|
|
|
|
+Tabletweergave herschikken i.p.v. uitrekken. Verifiëren op
|
|
|
|
|
+`emulator-5556` (tablet) én telefoonformaat. Staat los van P1-11
|
|
|
|
|
+(labels/overflow, al afgerond) — dit gaat puur over kolomindeling.
|
|
|
|
|
+
|
|
|
|
|
+**Analyse afgerond 2026-08-31 (Claude, code-only + live screenshots op
|
|
|
|
|
+`emulator-5556`). Uitkomst: de klacht klopt, maar geldt voor minder
|
|
|
|
|
+pagina's dan gedacht — en één deel ervan (de sliderband) blijkt géén
|
|
|
|
|
+tabletprobleem te zijn.**
|
|
|
|
|
+
|
|
|
|
|
+*Meetgegevens.* FlutterFlow's breekpunten staan in
|
|
|
|
|
+`lib/flutter_flow/flutter_flow_util.dart:378-380`: `kBreakpointSmall`
|
|
|
|
|
+479, `kBreakpointMedium` 767, `kBreakpointLarge` 991 (logische px).
|
|
|
|
|
+`emulator-5556` is 2560x1600 @ 320dpi → **1280x800 dp liggend**,
|
|
|
|
|
+**800x1280 dp staand** (rotatie zit op `USER_ROTATION_LOCKED`; staand
|
|
|
|
|
+testen kan met `adb -s emulator-5556 shell wm size 1600x2560`, daarna
|
|
|
|
|
+`wm size reset`). Telefoon-referentie `emulator-5554`: 1080x1920 @
|
|
|
|
|
+420dpi → **411x731 dp**. Een tablet zit dus altijd in de bovenste twee
|
|
|
|
|
+breekpunt-treden, een telefoon altijd in de onderste.
|
|
|
|
|
+
|
|
|
|
|
+**1. Horeca-overzicht (gemeente én provincie) — al goed, niets doen.**
|
|
|
|
|
+Beide pagina's gebruiken een `MasonryGridView` met een responsieve
|
|
|
|
|
+`crossAxisCount` (1 / 1 / 2 / 3 per breekpunt, o.a.
|
|
|
|
|
+`horecagelegenheden_overzicht_widget.dart:598`). Op tablet staand geeft
|
|
|
|
|
+dat 2 kolommen, liggend 3. Dit is meteen het na te volgen patroon voor
|
|
|
|
|
+punt 2.
|
|
|
|
|
+
|
|
|
|
|
+**2. Home — dit is het echte werk.** De 5 tabs bouwen hun kaarten met
|
|
|
|
|
+`List.generate` in een gewone `Column` binnen een
|
|
|
|
|
+`SingleChildScrollView` (`home_widget.dart`, o.a. regels 314/338/375/
|
|
|
|
|
+412/449) — **geen grid, dus altijd één kolom, op elk schermformaat**.
|
|
|
|
|
+Live bevestigd: op 800 dp staand is elke kaart volle breedte met de
|
|
|
|
|
+rechterhelft grotendeels leeg. De kaart zelf
|
|
|
|
|
+(`home_uitgaantabel_kaart_component_widget.dart:230`) is een `Row` van
|
|
|
|
|
+`Expanded(flex: 3)` (foto) en `Expanded(flex: 6)` (tekst), met een
|
|
|
|
|
+responsieve vaste hoogte (160/200/240/280 dp, regel 198) — de hoogte
|
|
|
|
|
+schaalt dus wél mee met het breekpunt, de kolomindeling niet. Daardoor
|
|
|
|
|
+wordt de kaart op tablet zowel breder als hoger terwijl de tekst
|
|
|
|
|
+gelijk blijft.
|
|
|
|
|
+*Fix:* de `Column` per tab omzetten naar een grid met dezelfde
|
|
|
|
|
+responsieve `crossAxisCount` als punt 1. **Gebruik rechtsklik →
|
|
|
|
|
+"Replace", nooit "Wrap Widget" + "Remove Widget"** — zie de
|
|
|
|
|
+`CLAUDE.md`-notitie: die tweede route sloopt de `List.generate`-binding
|
|
|
|
|
+zonder foutmelding. Na afloop verifiëren dat `List.generate(` nog in de
|
|
|
|
|
+export staat.
|
|
|
|
|
+
|
|
|
|
|
+**3. Favorieten — kleine correctie, geen herbouw.**
|
|
|
|
|
+`favorieten_widget.dart:339` en `:663` hebben `crossAxisCount: 2`
|
|
|
|
|
+**hardgecodeerd**. Op tablet blijft het dus bij 2 kolommen waar 3 zou
|
|
|
|
|
+passen, en op telefoon staan er 2 naast elkaar in een kaart die op
|
|
|
|
|
+volle breedte ontworpen is. Zet dit om naar dezelfde responsieve
|
|
|
|
|
+uitdrukking als punt 1.
|
|
|
|
|
+
|
|
|
|
|
+**4. De sliderband is géén tabletprobleem — apart opgevoerd als
|
|
|
|
|
+P1-38.** De "leeg vlak"-indruk komt van een lichtroze container die
|
|
|
|
|
+óók op telefoonformaat zichtbaar is; zie P1-38 hieronder. Op tablet
|
|
|
|
|
+valt hij alleen meer op omdat het vlak breder wordt. Wat wel
|
|
|
|
|
+tablet-specifiek is: `viewportFraction: 0.75`
|
|
|
|
|
+(`home_uitgaan_slider_component_widget.dart:287` en
|
|
|
|
|
+`p_uitgaan_slider_component_widget.dart:280`) betekent op 1280 dp een
|
|
|
|
|
+kaart van 960 dp breed — één enorme kaart per scherm. Dat verdient
|
|
|
|
|
+dezelfde breekpunt-behandeling (bv. 0.75 / 0.5 / 0.35), maar pas
|
|
|
|
|
+nadat P1-38 de kleur heeft opgelost, anders kijk je naar twee
|
|
|
|
|
+problemen tegelijk.
|
|
|
|
|
+
|
|
|
|
|
+*Screenshots van deze meting staan in de sessie-scratchpad en zijn niet
|
|
|
|
|
+bewaard; opnieuw maken kost twee minuten met de `wm size`-truc
|
|
|
|
|
+hierboven.*
|
|
|
|
|
+
|
|
|
|
|
+---
|
|
|
|
|
+
|
|
|
|
|
+**P1-37 · Eigenaar: Claude of Bob (1 conditie).** De Home-kaart toont
|
|
|
|
|
+letterlijk de tekst **`null`** wanneer een evenement geen
|
|
|
|
|
+beschrijving heeft. Live gezien op 2026-08-31 op de Home-pagina, tab
|
|
|
|
|
+"Uitgaan", kaart "Micha Wertheim" — de regel onder de datum leest
|
|
|
|
|
+`null`.
|
|
|
|
|
+
|
|
|
|
|
+Oorzaak is het bekende patroon uit P1-6/P1-15: in
|
|
|
|
|
+`home_uitgaantabel_kaart_component_widget.dart:657-662` staat een kale
|
|
|
|
|
+`Expanded(child: Text(getJsonField(evenementenItem, r'''$.inhoud''')
|
|
|
|
|
+.toString(), ...))` zonder guard — `.toString()` op `null` levert de
|
|
|
|
|
+string `"null"`. **Dit is een andere plek dan het al bekende geval:**
|
|
|
|
|
+P1-15 punt 3 gaat over `UitgaantabelKaartWidget`'s
|
|
|
|
|
+`widget!.inhoud!.toString()`, een ander component. Deze zit op de
|
|
|
|
|
+startpagina van de app en is dus zichtbaarder.
|
|
|
|
|
+
|
|
|
|
|
+*Fix:* zelfde recept als P1-15 punt 3 — Visibility → Conditional op de
|
|
|
|
|
+`Text`-node, First Value = de rauwe `$.inhoud`-binding, operator
|
|
|
|
|
+**"Is Set"**, geen Second Value (dat vermijdt de bekende tweede-dialoog-
|
|
|
|
|
+freeze). Let op de `CLAUDE.md`-waarschuwing dat "Is Set and Not Empty"
|
|
|
|
|
+op een JSON-Path-binding tegen een raw loop-item **niet** beschikbaar
|
|
|
|
|
+is — "Is Set" is hier de haalbare optie.
|
|
|
|
|
+
|
|
|
|
|
+*Zelfde component, nog niet live waargenomen maar identiek onbeschermd:*
|
|
|
|
|
+`$.titel` (:385), `$.horecagelegenheid` (:442), `$.adres` (:497),
|
|
|
|
|
+`$.plaats` (:566), `$.datum` (:618). Meepakken als de conditie-route
|
|
|
|
|
+eenmaal werkt.
|
|
|
|
|
+
|
|
|
|
|
+---
|
|
|
|
|
+
|
|
|
|
|
+**P1-38 · Eigenaar: Bob (1 kleurwaarde) — past bij het P1-32/P1-33-
|
|
|
|
|
+kleurwerk.** Rond de slider op de Home-pagina staat een **lichtroze
|
|
|
|
|
+vlak met een grijze rand**, zichtbaar op élk schermformaat (bevestigd
|
|
|
|
|
+op zowel telefoon- als tabletformaat, 2026-08-31).
|
|
|
|
|
+
|
|
|
|
|
+`home_widget.dart:187-195`:
|
|
|
|
|
+```
|
|
|
|
|
+Container(
|
|
|
|
|
+ height: 250.0,
|
|
|
|
|
+ decoration: BoxDecoration(
|
|
|
|
|
+ color: Color(0xFFF5A2A2),
|
|
|
|
|
+ border: Border.all(color: Color(0xFFCAC3C3), width: 2.0),
|
|
|
|
|
+ ),
|
|
|
|
|
+```
|
|
|
|
|
+`#F5A2A2` en `#CAC3C3` komen in geen van beide merkpaletten voor (zie
|
|
|
|
|
+het merk-DNA in `CLAUDE.md`: #9A141D, #FF680D, #3E454C, #09B34A,
|
|
|
|
|
+#F2F2F2) en staan ook niet in `flutter_flow_theme.dart`. Ziet eruit als een
|
|
|
|
|
+achtergebleven hulpkleur om de slider-container zichtbaar te maken
|
|
|
|
|
+tijdens het bouwen. Omdat de carousel-kaarten de vaste hoogte van 250
|
|
|
|
|
+dp niet vullen, is het vlak er duidelijk omheen te zien.
|
|
|
|
|
+
|
|
|
|
|
+*Fix:* de `Fill Color` van deze container op transparant zetten (of op
|
|
|
|
|
+`#F2F2F2` als er bewust een rustvlak achter de slider moet), en de
|
|
|
|
|
+2px-rand weghalen. Eén widget, één eigenschap.
|
|
|
|
|
|