Hex Artifact Content
Not logged in

Artifact 3ef6e61bb0d53de550e73d08bfe40fe9a3346f60:


0000: 23 20 5a 50 72 65 76 69 65 77 0a 0a 5a 50 72 65  # ZPreview..ZPre
0010: 76 69 65 77 20 69 73 20 65 65 6e 20 2e 4e 45 54  view is een .NET
0020: 20 31 30 20 57 69 6e 46 6f 72 6d 73 2d 61 70 70   10 WinForms-app
0030: 6c 69 63 61 74 69 65 20 76 6f 6f 72 20 57 69 6e  licatie voor Win
0040: 64 6f 77 73 20 64 69 65 20 65 65 6e 20 70 72 65  dows die een pre
0050: 76 69 65 77 20 74 6f 6f 6e 74 0a 76 61 6e 20 68  view toont.van h
0060: 65 74 20 62 65 73 74 61 6e 64 20 64 61 74 20 6d  et bestand dat m
0070: 6f 6d 65 6e 74 65 65 6c 20 67 65 73 65 6c 65 63  omenteel geselec
0080: 74 65 65 72 64 20 69 73 20 69 6e 20 5a 54 72 65  teerd is in ZTre
0090: 65 57 69 6e 2e 0a 0a 44 65 20 61 70 70 6c 69 63  eWin...De applic
00a0: 61 74 69 65 20 67 65 62 72 75 69 6b 74 20 60 5a  atie gebruikt `Z
00b0: 61 61 70 5a 54 72 65 65 53 74 61 74 65 60 20 6f  aapZTreeState` o
00c0: 6d 20 64 65 20 68 75 69 64 69 67 65 20 74 6f 65  m de huidige toe
00d0: 73 74 61 6e 64 20 76 61 6e 20 5a 54 72 65 65 57  stand van ZTreeW
00e0: 69 6e 20 74 65 0a 76 6f 6c 67 65 6e 20 65 6e 20  in te.volgen en 
00f0: 6f 6d 20 65 76 65 6e 74 73 20 74 65 20 6f 6e 74  om events te ont
0100: 76 61 6e 67 65 6e 20 62 69 6a 20 62 65 73 74 61  vangen bij besta
0110: 6e 64 73 77 69 73 73 65 6c 73 2c 20 60 4f 6e 48  ndswissels, `OnH
0120: 6f 6c 64 60 2c 20 71 75 69 74 2c 20 65 6e 0a 43  old`, quit, en.C
0130: 74 72 6c 2b 53 68 69 66 74 2d 73 6e 65 6c 74 6f  trl+Shift-snelto
0140: 65 74 73 65 6e 2e 0a 0a 23 23 20 50 72 6f 6a 65  etsen...## Proje
0150: 63 74 65 6e 0a 0a 60 60 60 74 65 78 74 0a 5a 41  cten..```text.ZA
0160: 41 50 2e 6e 65 74 2f 0a 20 20 5a 50 72 65 76 69  AP.net/.  ZPrevi
0170: 65 77 2f 20 20 20 20 20 20 20 20 20 20 20 20 20  ew/             
0180: 20 20 20 20 20 57 69 6e 46 6f 72 6d 73 2d 61 70       WinForms-ap
0190: 70 6c 69 63 61 74 69 65 0a 20 20 5a 50 72 65 76  plicatie.  ZPrev
01a0: 69 65 77 2e 41 62 73 74 72 61 63 74 69 6f 6e 73  iew.Abstractions
01b0: 2f 20 20 20 20 20 49 6e 74 65 72 66 61 63 65 73  /     Interfaces
01c0: 20 65 6e 20 62 61 73 69 73 6b 6c 61 73 73 65 6e   en basisklassen
01d0: 20 76 6f 6f 72 20 70 72 65 76 69 65 77 20 68 61   voor preview ha
01e0: 6e 64 6c 65 72 73 0a 20 20 5a 50 72 65 76 69 65  ndlers.  ZPrevie
01f0: 77 2e 50 72 65 76 69 65 77 48 61 6e 64 6c 65 72  w.PreviewHandler
0200: 73 2f 20 20 49 6e 67 65 62 6f 75 77 64 65 20 70  s/  Ingebouwde p
0210: 72 65 76 69 65 77 20 68 61 6e 64 6c 65 72 73 0a  review handlers.
0220: 20 20 5a 50 72 65 76 69 65 77 2e 53 51 4c 69 74    ZPreview.SQLit
0230: 65 50 72 65 76 69 65 77 2f 20 20 20 20 53 51 4c  ePreview/    SQL
0240: 69 74 65 20 70 72 65 76 69 65 77 20 68 61 6e 64  ite preview hand
0250: 6c 65 72 20 69 6e 20 65 69 67 65 6e 20 70 72 6f  ler in eigen pro
0260: 6a 65 63 74 0a 20 20 5a 50 72 65 76 69 65 77 2e  ject.  ZPreview.
0270: 54 65 73 74 73 2f 20 20 20 20 20 20 20 20 20 20  Tests/          
0280: 20 20 78 55 6e 69 74 2d 74 65 73 74 73 0a 60 60    xUnit-tests.``
0290: 60 0a 0a 23 23 20 57 61 61 72 6f 6d 20 57 69 6e  `..## Waarom Win
02a0: 46 6f 72 6d 73 0a 0a 57 69 6e 46 6f 72 6d 73 20  Forms..WinForms 
02b0: 69 73 20 68 69 65 72 20 67 65 6b 6f 7a 65 6e 20  is hier gekozen 
02c0: 76 61 6e 77 65 67 65 3a 0a 0a 2d 20 64 69 72 65  vanwege:..- dire
02d0: 63 74 65 20 48 57 4e 44 2f 43 4f 4d 2d 69 6e 74  cte HWND/COM-int
02e0: 65 72 6f 70 20 76 6f 6f 72 20 57 69 6e 64 6f 77  erop voor Window
02f0: 73 20 50 72 65 76 69 65 77 20 48 61 6e 64 6c 65  s Preview Handle
0300: 72 73 0a 2d 20 63 6f 6e 73 69 73 74 65 6e 74 69  rs.- consistenti
0310: 65 20 6d 65 74 20 64 65 20 62 65 73 74 61 61 6e  e met de bestaan
0320: 64 65 20 5a 52 65 6c 61 79 2d 61 70 70 6c 69 63  de ZRelay-applic
0330: 61 74 69 65 0a 2d 20 65 65 6e 76 6f 75 64 69 67  atie.- eenvoudig
0340: 20 70 6c 75 67 69 6e 6d 6f 64 65 6c 20 77 61 61   pluginmodel waa
0350: 72 62 69 6a 20 68 61 6e 64 6c 65 72 73 20 67 65  rbij handlers ge
0360: 77 6f 6f 6e 20 65 65 6e 20 60 43 6f 6e 74 72 6f  woon een `Contro
0370: 6c 60 20 72 65 74 6f 75 72 6e 65 72 65 6e 0a 0a  l` retourneren..
0380: 23 23 20 41 72 63 68 69 74 65 63 74 75 75 72 0a  ## Architectuur.
0390: 0a 44 65 20 68 6f 6f 66 64 61 70 70 20 62 65 73  .De hoofdapp bes
03a0: 74 61 61 74 20 75 69 74 3a 0a 0a 2d 20 60 4d 61  taat uit:..- `Ma
03b0: 69 6e 46 6f 72 6d 60 0a 2d 20 60 5a 54 72 65 65  inForm`.- `ZTree
03c0: 4d 6f 6e 69 74 6f 72 43 6f 6e 74 72 6f 6c 6c 65  MonitorControlle
03d0: 72 60 0a 2d 20 60 50 72 65 76 69 65 77 48 61 6e  r`.- `PreviewHan
03e0: 64 6c 65 72 43 61 74 61 6c 6f 67 60 0a 2d 20 60  dlerCatalog`.- `
03f0: 50 72 65 76 69 65 77 53 65 74 74 69 6e 67 73 53  PreviewSettingsS
0400: 65 72 76 69 63 65 60 0a 2d 20 60 57 69 6e 64 6f  ervice`.- `Windo
0410: 77 50 6f 73 69 74 69 6f 6e 4d 61 6e 61 67 65 72  wPositionManager
0420: 60 0a 0a 44 65 20 65 76 65 6e 74 2d 66 6c 6f 77  `..De event-flow
0430: 20 69 73 3a 0a 0a 31 2e 20 60 5a 61 61 70 5a 54   is:..1. `ZaapZT
0440: 72 65 65 53 74 61 74 65 60 20 64 65 74 65 63 74  reeState` detect
0450: 65 65 72 74 20 65 65 6e 20 77 69 6a 7a 69 67 69  eert een wijzigi
0460: 6e 67 20 69 6e 20 5a 54 72 65 65 57 69 6e 2e 0a  ng in ZTreeWin..
0470: 32 2e 20 60 5a 54 72 65 65 4d 6f 6e 69 74 6f 72  2. `ZTreeMonitor
0480: 43 6f 6e 74 72 6f 6c 6c 65 72 60 20 76 65 72 74  Controller` vert
0490: 61 61 6c 74 20 64 61 74 20 6e 61 61 72 20 61 70  aalt dat naar ap
04a0: 70 2d 65 76 65 6e 74 73 2e 0a 33 2e 20 60 4d 61  p-events..3. `Ma
04b0: 69 6e 46 6f 72 6d 60 20 62 65 70 61 61 6c 74 20  inForm` bepaalt 
04c0: 77 65 6c 6b 65 20 68 61 6e 64 6c 65 72 20 67 65  welke handler ge
04d0: 62 72 75 69 6b 74 20 6d 6f 65 74 20 77 6f 72 64  bruikt moet word
04e0: 65 6e 2e 0a 34 2e 20 44 65 20 61 63 74 69 65 76  en..4. De actiev
04f0: 65 20 70 72 65 76 69 65 77 2d 63 6f 6e 74 72 6f  e preview-contro
0500: 6c 20 77 6f 72 64 74 20 76 65 72 76 61 6e 67 65  l wordt vervange
0510: 6e 2e 0a 0a 23 23 20 50 72 65 76 69 65 77 20 48  n...## Preview H
0520: 61 6e 64 6c 65 72 20 4d 6f 64 65 6c 0a 0a 48 61  andler Model..Ha
0530: 6e 64 6c 65 72 73 20 69 6d 70 6c 65 6d 65 6e 74  ndlers implement
0540: 65 72 65 6e 20 60 49 50 72 65 76 69 65 77 48 61  eren `IPreviewHa
0550: 6e 64 6c 65 72 60 20 75 69 74 20 60 5a 50 72 65  ndler` uit `ZPre
0560: 76 69 65 77 2e 41 62 73 74 72 61 63 74 69 6f 6e  view.Abstraction
0570: 73 60 2e 0a 0a 42 65 6c 61 6e 67 72 69 6a 6b 65  s`...Belangrijke
0580: 20 63 6f 6e 74 72 61 63 74 65 6e 3a 0a 0a 2d 20   contracten:..- 
0590: 60 49 50 72 65 76 69 65 77 48 61 6e 64 6c 65 72  `IPreviewHandler
05a0: 60 0a 2d 20 60 49 50 72 65 76 69 65 77 48 61 6e  `.- `IPreviewHan
05b0: 64 6c 65 72 43 6f 6e 66 69 67 60 0a 2d 20 60 49  dlerConfig`.- `I
05c0: 50 72 65 76 69 65 77 48 61 6e 64 6c 65 72 43 6f  PreviewHandlerCo
05d0: 6e 66 69 67 3c 54 43 6f 6e 66 69 67 3e 60 0a 2d  nfig<TConfig>`.-
05e0: 20 60 49 45 6e 63 6f 64 69 6e 67 41 77 61 72 65   `IEncodingAware
05f0: 50 72 65 76 69 65 77 60 0a 2d 20 60 49 46 69 6c  Preview`.- `IFil
0600: 65 52 65 73 6f 75 72 63 65 50 72 65 76 69 65 77  eResourcePreview
0610: 60 0a 2d 20 60 49 50 72 65 76 69 65 77 43 6f 6d  `.- `IPreviewCom
0620: 6d 61 6e 64 48 61 6e 64 6c 65 72 60 0a 2d 20 60  mandHandler`.- `
0630: 49 50 72 65 76 69 65 77 53 74 61 74 75 73 53 6f  IPreviewStatusSo
0640: 75 72 63 65 60 0a 0a 48 61 6e 64 6c 65 72 73 20  urce`..Handlers 
0650: 77 6f 72 64 65 6e 20 6f 6e 74 64 65 6b 74 20 76  worden ontdekt v
0660: 69 61 20 61 73 73 65 6d 62 6c 79 20 73 63 61 6e  ia assembly scan
0670: 6e 69 6e 67 3a 0a 0a 2d 20 69 6e 67 65 62 6f 75  ning:..- ingebou
0680: 77 64 65 20 68 61 6e 64 6c 65 72 73 20 75 69 74  wde handlers uit
0690: 20 60 5a 50 72 65 76 69 65 77 2e 50 72 65 76 69   `ZPreview.Previ
06a0: 65 77 48 61 6e 64 6c 65 72 73 60 0a 2d 20 65 78  ewHandlers`.- ex
06b0: 74 65 72 6e 65 20 68 61 6e 64 6c 65 72 73 20 75  terne handlers u
06c0: 69 74 20 60 70 6c 75 67 69 6e 73 2f 2a 2e 64 6c  it `plugins/*.dl
06d0: 6c 60 0a 0a 50 6c 75 67 69 6e 2d 6c 6f 61 64 66  l`..Plugin-loadf
06e0: 6f 75 74 65 6e 20 77 6f 72 64 65 6e 20 76 61 73  outen worden vas
06f0: 74 67 65 6c 65 67 64 20 69 6e 20 60 50 6c 75 67  tgelegd in `Plug
0700: 69 6e 4c 6f 61 64 52 65 73 75 6c 74 60 2e 0a 0a  inLoadResult`...
0710: 23 23 20 49 6e 67 65 62 6f 75 77 64 65 20 50 72  ## Ingebouwde Pr
0720: 65 76 69 65 77 20 48 61 6e 64 6c 65 72 73 0a 0a  eview Handlers..
0730: 23 23 23 20 54 65 6b 73 74 0a 0a 2d 20 69 64 3a  ### Tekst..- id:
0740: 20 60 62 75 69 6c 74 69 6e 2e 74 65 78 74 60 0a   `builtin.text`.
0750: 2d 20 65 6e 63 6f 64 69 6e 67 2d 6b 65 75 7a 65  - encoding-keuze
0760: 20 76 69 61 20 74 6f 6f 6c 62 61 72 0a 2d 20 7a   via toolbar.- z
0770: 6f 65 6b 66 75 6e 63 74 69 65 20 76 69 61 20 60  oekfunctie via `
0780: 43 74 72 6c 2b 46 60 20 65 6e 20 60 46 33 60 0a  Ctrl+F` en `F3`.
0790: 2d 20 68 65 74 20 7a 6f 65 6b 62 6c 6f 6b 20 69  - het zoekblok i
07a0: 73 20 63 6f 6d 70 61 63 74 65 72 20 67 65 6d 61  s compacter gema
07b0: 61 6b 74 3b 20 60 4e 65 78 74 60 20 69 73 20 6e  akt; `Next` is n
07c0: 75 20 6f 6e 67 65 76 65 65 72 20 65 76 65 6e 20  u ongeveer even 
07d0: 68 6f 6f 67 20 61 6c 73 20 68 65 74 20 7a 6f 65  hoog als het zoe
07e0: 6b 76 61 6b 0a 2d 20 68 61 6e 64 6c 65 72 63 6f  kvak.- handlerco
07f0: 6e 66 69 67 75 72 61 74 69 65 20 76 6f 6f 72 20  nfiguratie voor 
0800: 66 61 6c 6c 62 61 63 6b 2d 65 6e 63 6f 64 69 6e  fallback-encodin
0810: 67 20 65 6e 20 77 6f 72 64 2d 77 72 61 70 0a 2d  g en word-wrap.-
0820: 20 67 72 6f 74 65 20 62 65 73 74 61 6e 64 65 6e   grote bestanden
0830: 20 77 6f 72 64 65 6e 20 61 73 79 6e 63 68 72 6f   worden asynchro
0840: 6f 6e 20 65 6e 20 62 65 67 72 65 6e 73 64 20 61  on en begrensd a
0850: 6c 73 20 70 72 65 76 69 65 77 20 67 65 6c 61 64  ls preview gelad
0860: 65 6e 2c 20 7a 6f 64 61 74 20 64 65 20 55 49 20  en, zodat de UI 
0870: 62 72 75 69 6b 62 61 61 72 20 62 6c 69 6a 66 74  bruikbaar blijft
0880: 0a 2d 20 64 6f 6f 72 67 65 73 74 75 75 72 64 65  .- doorgestuurde
0890: 20 5a 54 72 65 65 57 69 6e 2d 6e 61 76 69 67 61   ZTreeWin-naviga
08a0: 74 69 65 20 28 60 70 69 6a 6c 74 6a 65 73 60 2c  tie (`pijltjes`,
08b0: 20 60 50 67 55 70 60 2f 60 50 67 44 6e 60 2c 20   `PgUp`/`PgDn`, 
08c0: 60 48 6f 6d 65 60 2f 60 45 6e 64 60 29 20 73 63  `Home`/`End`) sc
08d0: 72 6f 6c 6c 74 20 64 65 20 74 65 6b 73 74 70 72  rollt de tekstpr
08e0: 65 76 69 65 77 20 64 69 72 65 63 74 0a 0a 23 23  eview direct..##
08f0: 23 20 5a 69 70 2d 61 72 63 68 69 65 66 0a 0a 2d  # Zip-archief..-
0900: 20 69 64 3a 20 60 62 75 69 6c 74 69 6e 2e 7a 69   id: `builtin.zi
0910: 70 60 0a 2d 20 64 69 73 70 6c 61 79 6e 61 61 6d  p`.- displaynaam
0920: 3a 20 60 41 72 63 68 69 76 65 60 0a 2d 20 61 62  : `Archive`.- ab
0930: 73 74 72 61 68 65 65 72 74 20 5a 49 50 2d 2c 20  straheert ZIP-, 
0940: 54 41 52 2d 20 65 6e 20 47 5a 69 70 2d 62 72 6f  TAR- en GZip-bro
0950: 6e 6e 65 6e 20 61 63 68 74 65 72 20 64 65 7a 65  nnen achter deze
0960: 6c 66 64 65 20 61 72 63 68 69 76 65 2d 70 72 65  lfde archive-pre
0970: 76 69 65 77 20 55 49 0a 2d 20 64 65 74 65 63 74  view UI.- detect
0980: 65 65 72 74 20 5a 49 50 2d 63 6f 6e 74 61 69 6e  eert ZIP-contain
0990: 65 72 73 20 6f 70 20 50 4b 2d 66 69 6c 65 2d 73  ers op PK-file-s
09a0: 69 67 6e 61 74 75 72 65 20 69 6e 20 70 6c 61 61  ignature in plaa
09b0: 74 73 20 76 61 6e 20 61 6c 6c 65 65 6e 20 6f 70  ts van alleen op
09c0: 20 65 78 74 65 6e 73 69 65 0a 2d 20 64 65 74 65   extensie.- dete
09d0: 63 74 65 65 72 74 20 6f 6f 6b 20 60 2e 74 61 72  cteert ook `.tar
09e0: 60 20 65 6e 20 47 5a 69 70 2d 62 65 73 74 61 6e  ` en GZip-bestan
09f0: 64 65 6e 20 28 60 2e 67 7a 60 2c 20 60 2e 67 7a  den (`.gz`, `.gz
0a00: 69 70 60 2c 20 60 2e 74 67 7a 60 2c 20 60 2e 74  ip`, `.tgz`, `.t
0a10: 61 72 2e 67 7a 60 29 0a 2d 20 6f 6e 64 65 72 73  ar.gz`).- onders
0a20: 74 65 75 6e 74 20 64 61 61 72 64 6f 6f 72 20 6f  teunt daardoor o
0a30: 6f 6b 20 61 72 63 68 69 65 76 65 6e 20 6d 65 74  ok archieven met
0a40: 20 76 65 72 6b 65 65 72 64 20 62 65 6e 6f 65 6d   verkeerd benoem
0a50: 64 65 20 6f 66 20 6f 6e 74 62 72 65 6b 65 6e 64  de of ontbrekend
0a60: 65 20 65 78 74 65 6e 73 69 65 73 2c 20 7a 6f 6c  e extensies, zol
0a70: 61 6e 67 20 64 65 20 73 69 67 6e 61 74 75 72 65  ang de signature
0a80: 20 6f 66 20 54 41 52 2d 68 65 61 64 65 72 20 6f   of TAR-header o
0a90: 76 65 72 65 65 6e 6b 6f 6d 74 0a 2d 20 6c 69 73  vereenkomt.- lis
0aa0: 74 76 69 65 77 73 20 61 75 74 6f 2d 66 69 74 74  tviews auto-fitt
0ab0: 65 6e 20 6e 75 20 6b 6f 6c 6f 6d 6d 65 6e 20 6f  en nu kolommen o
0ac0: 70 20 69 6e 68 6f 75 64 20 6f 66 20 68 65 61 64  p inhoud of head
0ad0: 65 72 2c 20 61 66 68 61 6e 6b 65 6c 69 6a 6b 20  er, afhankelijk 
0ae0: 76 61 6e 20 77 61 74 20 62 72 65 64 65 72 20 69  van wat breder i
0af0: 73 0a 2d 20 6b 6c 69 6b 6b 65 6e 20 6f 70 20 65  s.- klikken op e
0b00: 65 6e 20 6b 6f 6c 6f 6d 68 65 61 64 65 72 20 73  en kolomheader s
0b10: 6f 72 74 65 65 72 74 20 6f 70 20 64 65 20 6f 6e  orteert op de on
0b20: 64 65 72 6c 69 67 67 65 6e 64 65 20 6e 61 61 6d  derliggende naam
0b30: 2d 2c 20 67 72 6f 6f 74 74 65 2d 2c 20 63 6f 6d  -, grootte-, com
0b40: 70 72 65 73 73 69 65 2d 20 6f 66 20 64 61 74 75  pressie- of datu
0b50: 6d 77 61 61 72 64 65 6e 3b 20 6e 6f 67 6d 61 61  mwaarden; nogmaa
0b60: 6c 73 20 6b 6c 69 6b 6b 65 6e 20 64 72 61 61 69  ls klikken draai
0b70: 74 20 64 65 20 73 6f 72 74 65 65 72 72 69 63 68  t de sorteerrich
0b80: 74 69 6e 67 20 6f 6d 0a 2d 20 74 72 65 65 76 69  ting om.- treevi
0b90: 65 77 20 77 6f 72 64 74 20 76 6f 6c 6c 65 64 69  ew wordt volledi
0ba0: 67 20 75 69 74 67 65 6b 6c 61 70 74 20 62 69 6a  g uitgeklapt bij
0bb0: 20 6f 70 65 6e 65 6e 0a 2d 20 72 65 63 68 74 73   openen.- rechts
0bc0: 20 76 61 6e 20 64 65 20 6c 69 6a 73 74 2f 74 72   van de lijst/tr
0bd0: 65 65 20 73 74 61 61 74 20 6e 75 20 65 65 6e 20  ee staat nu een 
0be0: 70 72 65 76 69 65 77 2d 70 61 6e 65 65 6c 20 64  preview-paneel d
0bf0: 61 74 20 67 65 73 65 6c 65 63 74 65 65 72 64 65  at geselecteerde
0c00: 20 61 72 63 68 69 65 66 65 6e 74 72 69 65 73 20   archiefentries 
0c10: 76 69 61 20 64 65 20 62 75 69 6c 74 2d 69 6e 20  via de built-in 
0c20: 70 72 65 76 69 65 77 20 68 61 6e 64 6c 65 72 73  preview handlers
0c30: 20 74 6f 6f 6e 74 0a 2d 20 67 65 6e 65 73 74 65   toont.- geneste
0c40: 20 61 72 63 68 69 65 76 65 6e 20 6b 75 6e 6e 65   archieven kunne
0c50: 6e 20 64 61 61 72 64 6f 6f 72 20 6f 6f 6b 20 77  n daardoor ook w
0c60: 65 65 72 20 76 69 61 20 60 62 75 69 6c 74 69 6e  eer via `builtin
0c70: 2e 7a 69 70 60 20 69 6e 20 68 65 74 20 72 65 63  .zip` in het rec
0c80: 68 74 65 72 20 70 72 65 76 69 65 77 2d 70 61 6e  hter preview-pan
0c90: 65 65 6c 20 67 65 6f 70 65 6e 64 20 77 6f 72 64  eel geopend word
0ca0: 65 6e 2c 20 62 69 6a 76 6f 6f 72 62 65 65 6c 64  en, bijvoorbeeld
0cb0: 20 65 65 6e 20 60 2e 7a 69 70 60 20 69 6e 20 65   een `.zip` in e
0cc0: 65 6e 20 60 2e 7a 69 70 60 0a 2d 20 62 69 6a 20  en `.zip`.- bij 
0cd0: 77 69 73 73 65 6c 65 6e 20 74 75 73 73 65 6e 20  wisselen tussen 
0ce0: 60 4c 69 73 74 60 20 65 6e 20 60 54 72 65 65 60  `List` en `Tree`
0cf0: 20 62 6c 69 6a 66 74 20 68 65 74 7a 65 6c 66 64   blijft hetzelfd
0d00: 65 20 61 72 63 68 69 65 66 62 65 73 74 61 6e 64  e archiefbestand
0d10: 20 67 65 73 65 6c 65 63 74 65 65 72 64 20 7a 6f   geselecteerd zo
0d20: 6e 64 65 72 20 64 65 20 72 65 63 68 74 65 72 20  nder de rechter 
0d30: 70 72 65 76 69 65 77 20 6f 70 6e 69 65 75 77 20  preview opnieuw 
0d40: 74 65 20 6c 61 64 65 6e 0a 2d 20 64 65 20 73 70  te laden.- de sp
0d50: 6c 69 74 74 65 72 20 74 75 73 73 65 6e 20 6c 69  litter tussen li
0d60: 6a 73 74 20 65 6e 20 70 72 65 76 69 65 77 2c 20  jst en preview, 
0d70: 65 6e 20 69 6e 20 64 65 20 74 72 65 65 2d 74 61  en in de tree-ta
0d80: 62 20 6f 6f 6b 20 64 69 65 20 74 75 73 73 65 6e  b ook die tussen
0d90: 20 74 72 65 65 20 65 6e 20 62 65 73 74 61 6e 64   tree en bestand
0da0: 65 6e 6c 69 6a 73 74 2c 20 6f 6e 74 68 6f 75 64  enlijst, onthoud
0db0: 65 6e 20 68 75 6e 20 72 65 6c 61 74 69 65 76 65  en hun relatieve
0dc0: 20 70 6f 73 69 74 69 65 0a 2d 20 69 6e 20 68 65   positie.- in he
0dd0: 74 20 70 72 65 76 69 65 77 2d 70 61 6e 65 65 6c  t preview-paneel
0de0: 20 6b 75 6e 20 6a 65 20 64 65 20 69 6e 67 65 62   kun je de ingeb
0df0: 6f 75 77 64 65 20 68 61 6e 64 6c 65 72 20 6e 75  ouwde handler nu
0e00: 20 6f 6f 6b 20 68 61 6e 64 6d 61 74 69 67 20 6b   ook handmatig k
0e10: 69 65 7a 65 6e 3b 20 60 28 61 75 74 6f 64 65 74  iezen; `(autodet
0e20: 65 63 74 29 60 20 6b 69 65 73 74 20 61 75 74 6f  ect)` kiest auto
0e30: 6d 61 74 69 73 63 68 20 65 6e 20 73 79 6e 63 68  matisch en synch
0e40: 72 6f 6e 69 73 65 65 72 74 20 64 61 61 72 6e 61  roniseert daarna
0e50: 20 64 65 20 77 65 72 6b 65 6c 69 6a 6b 20 67 65   de werkelijk ge
0e60: 62 72 75 69 6b 74 65 20 68 61 6e 64 6c 65 72 20  bruikte handler 
0e70: 69 6e 20 64 65 20 6c 69 6a 73 74 0a 2d 20 57 69  in de lijst.- Wi
0e80: 6e 64 6f 77 73 20 70 72 65 76 69 65 77 20 68 61  ndows preview ha
0e90: 6e 64 6c 65 72 73 20 77 6f 72 64 65 6e 20 69 6e  ndlers worden in
0ea0: 20 64 65 7a 65 20 69 6e 67 65 62 65 64 64 65 20   deze ingebedde 
0eb0: 61 72 63 68 69 76 65 2d 70 72 65 76 69 65 77 6b  archive-previewk
0ec0: 65 75 7a 65 20 62 65 77 75 73 74 20 6e 69 65 74  euze bewust niet
0ed0: 20 61 61 6e 67 65 62 6f 64 65 6e 3b 20 62 75 69   aangeboden; bui
0ee0: 6c 74 2d 69 6e 20 68 61 6e 64 6c 65 72 73 2c 20  lt-in handlers, 
0ef0: 69 6e 63 6c 75 73 69 65 66 20 60 62 75 69 6c 74  inclusief `built
0f00: 69 6e 2e 7a 69 70 60 2c 20 77 65 6c 0a 0a 23 23  in.zip`, wel..##
0f10: 23 20 48 65 78 0a 0a 2d 20 69 64 3a 20 60 62 75  # Hex..- id: `bu
0f20: 69 6c 74 69 6e 2e 68 65 78 60 0a 2d 20 66 61 6c  iltin.hex`.- fal
0f30: 6c 62 61 63 6b 2d 68 61 6e 64 6c 65 72 20 76 6f  lback-handler vo
0f40: 6f 72 20 65 6c 6b 20 62 65 73 74 61 61 6e 64 20  or elk bestaand 
0f50: 62 65 73 74 61 6e 64 0a 2d 20 63 6f 6e 66 69 67  bestand.- config
0f60: 75 72 65 65 72 62 61 61 72 20 6c 65 74 74 65 72  ureerbaar letter
0f70: 74 79 70 65 2c 20 62 79 74 65 73 20 70 65 72 20  type, bytes per 
0f80: 72 65 67 65 6c 20 65 6e 20 41 53 43 49 49 2d 6d  regel en ASCII-m
0f90: 6f 64 75 73 0a 2d 20 64 65 20 69 6e 73 70 65 63  odus.- de inspec
0fa0: 74 6f 72 20 74 6f 6f 6e 74 20 62 6f 76 65 6e 61  tor toont bovena
0fb0: 61 6e 20 61 6c 74 69 6a 64 20 64 65 20 6c 65 6e  an altijd de len
0fc0: 67 74 65 20 76 61 6e 20 64 65 20 68 75 69 64 69  gte van de huidi
0fd0: 67 65 20 73 65 6c 65 63 74 69 65 0a 2d 20 68 65  ge selectie.- he
0fe0: 74 20 63 6f 6e 66 69 67 75 72 61 74 69 65 73 63  t configuratiesc
0ff0: 68 65 72 6d 20 68 6f 75 64 74 20 64 65 20 69 6e  herm houdt de in
1000: 73 70 65 63 74 6f 72 2d 6f 70 74 69 65 73 20 6e  spector-opties n
1010: 75 20 69 6e 20 65 65 6e 20 61 70 61 72 74 20 73  u in een apart s
1020: 63 72 6f 6c 6c 62 61 61 72 20 70 61 6e 65 65 6c  crollbaar paneel
1030: 2c 20 7a 6f 64 61 74 20 67 65 65 6e 20 69 6e 73  , zodat geen ins
1040: 74 65 6c 6c 69 6e 67 65 6e 20 6d 65 65 72 20 6f  tellingen meer o
1050: 76 65 72 20 65 6c 6b 61 61 72 20 68 65 65 6e 20  ver elkaar heen 
1060: 76 61 6c 6c 65 6e 0a 2d 20 68 75 69 64 69 67 65  vallen.- huidige
1070: 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 65 20 74   implementatie t
1080: 6f 6f 6e 74 20 70 72 61 67 6d 61 74 69 73 63 68  oont pragmatisch
1090: 20 6d 61 78 69 6d 61 61 6c 20 64 65 20 65 65 72   maximaal de eer
10a0: 73 74 65 20 32 35 36 20 4b 69 42 0a 2d 20 60 48  ste 256 KiB.- `H
10b0: 6f 6d 65 60 20 65 6e 20 60 45 6e 64 60 20 73 70  ome` en `End` sp
10c0: 72 69 6e 67 65 6e 20 6e 61 61 72 20 62 65 67 69  ringen naar begi
10d0: 6e 20 65 6e 20 65 69 6e 64 65 20 76 61 6e 20 64  n en einde van d
10e0: 65 20 70 72 65 76 69 65 77 0a 2d 20 6e 61 76 69  e preview.- navi
10f0: 67 61 74 69 65 20 6d 65 74 20 70 69 6a 6c 74 6a  gatie met pijltj
1100: 65 73 2c 20 60 50 67 55 70 60 2f 60 50 67 44 6e  es, `PgUp`/`PgDn
1110: 60 2c 20 60 48 6f 6d 65 60 2f 60 45 6e 64 60 3b  `, `Home`/`End`;
1120: 20 60 53 68 69 66 74 60 20 2b 20 70 69 6a 6c 74   `Shift` + pijlt
1130: 6a 65 73 20 62 72 65 69 64 74 20 73 65 6c 65 63  jes breidt selec
1140: 74 69 65 20 64 69 72 65 63 74 20 75 69 74 20 76  tie direct uit v
1150: 61 6e 61 66 20 64 65 20 68 75 69 64 69 67 65 20  anaf de huidige 
1160: 62 79 74 65 0a 0a 23 23 23 20 41 66 62 65 65 6c  byte..### Afbeel
1170: 64 69 6e 67 0a 0a 2d 20 69 64 3a 20 60 62 75 69  ding..- id: `bui
1180: 6c 74 69 6e 2e 69 6d 61 67 65 60 0a 2d 20 66 69  ltin.image`.- fi
1190: 74 2d 74 6f 2d 77 69 6e 64 6f 77 20 61 6c 73 20  t-to-window als 
11a0: 73 74 61 6e 64 61 61 72 64 0a 2d 20 7a 6f 6f 6d  standaard.- zoom
11b0: 20 6d 65 74 20 60 43 74 72 6c 2b 73 63 72 6f 6c   met `Ctrl+scrol
11c0: 6c 60 0a 2d 20 72 6f 74 61 74 69 65 20 6d 65 74  l`.- rotatie met
11d0: 20 60 52 60 20 65 6e 20 60 4c 60 0a 2d 20 72 65   `R` en `L`.- re
11e0: 73 65 74 20 6d 65 74 20 60 43 74 72 6c 2b 30 60  set met `Ctrl+0`
11f0: 0a 0a 23 23 23 20 57 69 6e 64 6f 77 73 20 50 72  ..### Windows Pr
1200: 65 76 69 65 77 20 48 61 6e 64 6c 65 72 20 48 6f  eview Handler Ho
1210: 73 74 0a 0a 2d 20 69 64 3a 20 60 62 75 69 6c 74  st..- id: `built
1220: 69 6e 2e 73 68 65 6c 6c 60 0a 2d 20 7a 6f 65 6b  in.shell`.- zoek
1230: 74 20 43 4f 4d 20 70 72 65 76 69 65 77 20 68 61  t COM preview ha
1240: 6e 64 6c 65 72 73 20 76 69 61 20 64 65 20 73 74  ndlers via de st
1250: 61 6e 64 61 61 72 64 20 60 73 68 65 6c 6c 65 78  andaard `shellex
1260: 60 2d 72 65 67 69 73 74 72 61 74 69 65 0a 2d 20  `-registratie.- 
1270: 68 6f 73 74 20 70 72 65 76 69 65 77 20 68 61 6e  host preview han
1280: 64 6c 65 72 73 20 76 69 61 20 65 69 67 65 6e 20  dlers via eigen 
1290: 43 4f 4d 2d 69 6e 74 65 72 6f 70 6c 61 61 67 0a  COM-interoplaag.
12a0: 2d 20 69 6e 69 74 69 61 6c 69 73 65 65 72 74 20  - initialiseert 
12b0: 68 61 6e 64 6c 65 72 73 20 73 74 72 65 61 6d 2d  handlers stream-
12c0: 66 69 72 73 74 2c 20 6d 65 74 20 66 61 6c 6c 62  first, met fallb
12d0: 61 63 6b 20 6e 61 61 72 20 66 69 6c 65 20 6f 66  ack naar file of
12e0: 20 73 68 65 6c 6c 20 69 74 65 6d 0a 2d 20 63 6f   shell item.- co
12f0: 6e 63 72 65 74 65 20 62 65 73 63 68 69 6b 62 61  ncrete beschikba
1300: 72 65 20 57 69 6e 64 6f 77 73 20 50 72 65 76 69  re Windows Previ
1310: 65 77 20 48 61 6e 64 6c 65 72 73 20 77 6f 72 64  ew Handlers word
1320: 65 6e 20 61 6c 73 20 61 66 7a 6f 6e 64 65 72 6c  en als afzonderl
1330: 69 6a 6b 65 20 6b 65 75 7a 65 73 20 69 6e 20 64  ijke keuzes in d
1340: 65 20 68 61 6e 64 6c 65 72 6c 69 6a 73 74 20 67  e handlerlijst g
1350: 65 74 6f 6f 6e 64 0a 2d 20 68 65 74 20 63 6f 6e  etoond.- het con
1360: 66 69 67 75 72 61 74 69 65 73 63 68 65 72 6d 20  figuratiescherm 
1370: 74 6f 6f 6e 74 20 69 6e 20 60 44 65 66 61 75 6c  toont in `Defaul
1380: 74 20 4f 72 64 65 72 60 20 64 61 61 72 6e 61 61  t Order` daarnaa
1390: 73 74 20 6f 6f 6b 20 65 65 6e 20 61 6c 67 65 6d  st ook een algem
13a0: 65 6e 65 20 60 57 69 6e 64 6f 77 73 20 50 72 65  ene `Windows Pre
13b0: 76 69 65 77 20 48 61 6e 64 6c 65 72 20 28 72 65  view Handler (re
13c0: 67 69 73 74 65 72 65 64 29 60 2d 70 6c 61 63 65  gistered)`-place
13d0: 68 6f 6c 64 65 72 2c 20 64 69 65 20 62 69 6a 20  holder, die bij 
13e0: 72 75 6e 74 69 6d 65 20 77 6f 72 64 74 20 76 65  runtime wordt ve
13f0: 72 76 61 6e 67 65 6e 20 64 6f 6f 72 20 64 65 20  rvangen door de 
1400: 64 61 61 64 77 65 72 6b 65 6c 69 6a 6b 20 67 65  daadwerkelijk ge
1410: 72 65 67 69 73 74 72 65 65 72 64 65 20 68 61 6e  registreerde han
1420: 64 6c 65 72 20 76 6f 6f 72 20 68 65 74 20 68 75  dler voor het hu
1430: 69 64 69 67 65 20 62 65 73 74 61 6e 64 0a 2d 20  idige bestand.- 
1440: 69 6e 69 74 69 61 6c 69 73 65 65 72 74 20 64 65  initialiseert de
1450: 20 43 4f 4d 20 70 72 65 76 69 65 77 20 70 61 73   COM preview pas
1460: 20 6e 61 64 61 74 20 64 65 20 68 6f 73 74 2d 63   nadat de host-c
1470: 6f 6e 74 72 6f 6c 20 65 65 6e 20 62 72 75 69 6b  ontrol een bruik
1480: 62 61 72 65 20 63 6c 69 65 6e 74 20 73 69 7a 65  bare client size
1490: 20 68 65 65 66 74 2c 20 65 6e 20 73 74 75 75 72   heeft, en stuur
14a0: 74 20 64 61 61 72 6e 61 20 72 65 73 69 7a 65 2d  t daarna resize-
14b0: 75 70 64 61 74 65 73 20 64 6f 6f 72 0a 0a 23 23  updates door..##
14c0: 23 20 53 51 4c 69 74 65 0a 0a 2d 20 69 64 3a 20  # SQLite..- id: 
14d0: 60 62 75 69 6c 74 69 6e 2e 73 71 6c 69 74 65 60  `builtin.sqlite`
14e0: 0a 2d 20 73 74 61 61 74 20 69 6e 20 65 65 6e 20  .- staat in een 
14f0: 61 70 61 72 74 20 70 72 6f 6a 65 63 74 20 28 60  apart project (`
1500: 5a 50 72 65 76 69 65 77 2e 53 51 4c 69 74 65 50  ZPreview.SQLiteP
1510: 72 65 76 69 65 77 60 29 20 6d 65 74 20 65 69 67  review`) met eig
1520: 65 6e 20 64 65 70 65 6e 64 65 6e 63 79 20 6f 70  en dependency op
1530: 20 60 4d 69 63 72 6f 73 6f 66 74 2e 44 61 74 61   `Microsoft.Data
1540: 2e 53 71 6c 69 74 65 60 0a 2d 20 74 6f 6f 6e 74  .Sqlite`.- toont
1550: 20 6c 69 6e 6b 73 20 6f 62 6a 65 63 74 65 6e 20   links objecten 
1560: 75 69 74 20 60 73 71 6c 69 74 65 5f 6d 61 73 74  uit `sqlite_mast
1570: 65 72 60 20 28 61 6c 6c 65 20 6b 6f 6c 6f 6d 6d  er` (alle kolomm
1580: 65 6e 20 62 65 68 61 6c 76 65 20 60 73 71 6c 60  en behalve `sql`
1590: 29 0a 2d 20 74 6f 6f 6e 74 20 72 65 63 68 74 73  ).- toont rechts
15a0: 20 64 65 20 53 51 4c 2d 64 65 66 69 6e 69 74 69   de SQL-definiti
15b0: 65 20 76 61 6e 20 68 65 74 20 67 65 73 65 6c 65  e van het gesele
15c0: 63 74 65 65 72 64 65 20 6f 62 6a 65 63 74 0a 2d  cteerde object.-
15d0: 20 68 65 65 66 74 20 65 65 6e 20 71 75 65 72 79   heeft een query
15e0: 2d 74 61 62 20 6d 65 74 20 53 51 4c 2d 65 64 69  -tab met SQL-edi
15f0: 74 6f 72 2c 20 72 75 6e 2f 73 74 6f 70 2d 6b 6e  tor, run/stop-kn
1600: 6f 70 20 65 6e 20 72 65 73 75 6c 74 61 61 74 67  op en resultaatg
1610: 72 69 64 0a 2d 20 71 75 65 72 79 2d 65 78 65 63  rid.- query-exec
1620: 75 74 69 65 20 69 73 20 61 73 79 6e 63 68 72 6f  utie is asynchro
1630: 6f 6e 20 6d 65 74 20 61 6e 6e 75 6c 65 65 72 62  on met annuleerb
1640: 61 72 65 20 72 75 6e 0a 2d 20 72 65 73 75 6c 74  are run.- result
1650: 61 61 74 77 65 65 72 67 61 76 65 20 67 65 62 72  aatweergave gebr
1660: 75 69 6b 74 20 65 65 6e 20 76 69 72 74 75 61 6c  uikt een virtual
1670: 2d 6d 6f 64 65 20 67 72 69 64 20 76 6f 6f 72 20  -mode grid voor 
1680: 67 72 6f 74 65 72 65 20 64 61 74 61 73 65 74 73  grotere datasets
1690: 0a 2d 20 64 75 62 62 65 6c 6b 6c 69 6b 20 6f 70  .- dubbelklik op
16a0: 20 65 65 6e 20 63 65 6c 20 6f 70 65 6e 74 20 65   een cel opent e
16b0: 65 6e 20 64 65 74 61 69 6c 76 65 6e 73 74 65 72  en detailvenster
16c0: 20 28 74 65 6b 73 74 20 6f 66 20 68 65 78 20 76   (tekst of hex v
16d0: 6f 6f 72 20 42 4c 4f 42 29 0a 2d 20 63 6f 6e 74  oor BLOB).- cont
16e0: 65 78 74 6d 65 6e 75 20 6f 70 20 72 65 73 75 6c  extmenu op resul
16f0: 74 61 61 74 67 72 69 64 3a 20 53 65 6c 65 63 74  taatgrid: Select
1700: 20 41 6c 6c 2c 20 43 6f 70 79 2c 20 45 78 70 6f   All, Copy, Expo
1710: 72 74 20 41 73 20 43 53 56 0a 2d 20 63 6f 6e 66  rt As CSV.- conf
1720: 69 67 75 72 65 65 72 62 61 61 72 20 6c 65 74 74  igureerbaar lett
1730: 65 72 74 79 70 65 20 76 6f 6f 72 20 65 64 69 74  ertype voor edit
1740: 6f 72 20 65 6e 20 67 72 69 64 2c 20 70 6c 75 73  or en grid, plus
1750: 20 73 74 61 6e 64 61 61 72 64 20 71 75 65 72 79   standaard query
1760: 2d 74 65 6d 70 6c 61 74 65 0a 2d 20 68 65 74 20  -template.- het 
1770: 71 75 65 72 79 2d 74 65 6d 70 6c 61 74 65 2d 76  query-template-v
1780: 61 6b 20 69 6e 20 64 65 20 73 65 74 74 69 6e 67  ak in de setting
1790: 73 20 76 6f 6c 67 74 20 64 69 72 65 63 74 20 68  s volgt direct h
17a0: 65 74 20 67 65 6b 6f 7a 65 6e 20 65 64 69 74 6f  et gekozen edito
17b0: 72 2d 6c 65 74 74 65 72 74 79 70 65 0a 0a 23 23  r-lettertype..##
17c0: 20 43 6f 6e 66 69 67 75 72 61 74 69 65 0a 0a 43   Configuratie..C
17d0: 6f 6e 66 69 67 75 72 61 74 69 65 20 77 6f 72 64  onfiguratie word
17e0: 74 20 6f 70 67 65 73 6c 61 67 65 6e 20 69 6e 3a  t opgeslagen in:
17f0: 0a 0a 60 60 60 74 65 78 74 0a 25 41 50 50 44 41  ..```text.%APPDA
1800: 54 41 25 5c 5a 61 61 70 5c 5a 50 72 65 76 69 65  TA%\Zaap\ZPrevie
1810: 77 5c 73 65 74 74 69 6e 67 73 2e 6a 73 6f 6e 0a  w\settings.json.
1820: 60 60 60 0a 0a 44 61 61 72 69 6e 20 73 74 61 61  ```..Daarin staa
1830: 6e 20 6f 6e 64 65 72 20 6d 65 65 72 3a 0a 0a 2d  n onder meer:..-
1840: 20 60 64 65 66 61 75 6c 74 48 61 6e 64 6c 65 72   `defaultHandler
1850: 4f 72 64 65 72 60 0a 2d 20 60 65 78 74 65 6e 73  Order`.- `extens
1860: 69 6f 6e 4f 76 65 72 72 69 64 65 73 60 0a 2d 20  ionOverrides`.- 
1870: 60 68 61 6e 64 6c 65 72 43 6f 6e 66 69 67 60 0a  `handlerConfig`.
1880: 2d 20 60 77 69 6e 64 6f 77 50 6f 73 69 74 69 6f  - `windowPositio
1890: 6e 73 60 0a 0a 52 75 6e 74 69 6d 65 2d 66 6f 75  ns`..Runtime-fou
18a0: 74 65 6e 20 65 6e 20 65 78 63 65 70 74 69 6f 6e  ten en exception
18b0: 73 20 77 6f 72 64 65 6e 20 6f 6f 6b 20 67 65 6c  s worden ook gel
18c0: 6f 67 64 20 6e 61 61 72 20 60 7a 70 72 65 76 69  ogd naar `zprevi
18d0: 65 77 2e 6c 6f 67 60 20 69 6e 20 64 65 7a 65 6c  ew.log` in dezel
18e0: 66 64 65 20 64 69 72 65 63 74 6f 72 79 20 61 6c  fde directory al
18f0: 73 20 60 73 65 74 74 69 6e 67 73 2e 6a 73 6f 6e  s `settings.json
1900: 60 2e 0a 0a 48 65 74 20 63 6f 6e 66 69 67 75 72  `...Het configur
1910: 61 74 69 65 73 63 68 65 72 6d 20 62 65 76 61 74  atiescherm bevat
1920: 3a 0a 0a 2d 20 73 74 61 6e 64 61 61 72 64 20 68  :..- standaard h
1930: 61 6e 64 6c 65 72 76 6f 6c 67 6f 72 64 65 0a 2d  andlervolgorde.-
1940: 20 60 44 65 66 61 75 6c 74 20 4f 72 64 65 72 60   `Default Order`
1950: 20 6f 6e 64 65 72 73 74 65 75 6e 74 20 6e 75 20   ondersteunt nu 
1960: 6d 75 6c 74 69 73 65 6c 65 63 74 2c 20 7a 6f 64  multiselect, zod
1970: 61 74 20 6d 65 65 72 64 65 72 65 20 68 61 6e 64  at meerdere hand
1980: 6c 65 72 73 20 74 65 67 65 6c 69 6a 6b 20 6f 6d  lers tegelijk om
1990: 68 6f 6f 67 20 6f 66 20 6f 6d 6c 61 61 67 20 76  hoog of omlaag v
19a0: 65 72 70 6c 61 61 74 73 74 20 6b 75 6e 6e 65 6e  erplaatst kunnen
19b0: 20 77 6f 72 64 65 6e 20 65 6e 20 68 75 6e 20 6d   worden en hun m
19c0: 6f 64 65 20 69 6e 20 c3 a9 c3 a9 6e 20 6b 65 65  ode in één kee
19d0: 72 20 61 61 6e 67 65 70 61 73 74 20 6b 61 6e 20  r aangepast kan 
19e0: 77 6f 72 64 65 6e 0a 2d 20 70 65 72 2d 65 78 74  worden.- per-ext
19f0: 65 6e 73 69 65 20 6f 76 65 72 72 69 64 65 73 20  ensie overrides 
1a00: 73 6c 61 61 6e 20 6e 75 20 61 6c 6c 65 65 6e 20  slaan nu alleen 
1a10: 65 78 70 6c 69 63 69 65 74 65 20 61 66 77 69 6a  expliciete afwij
1a20: 6b 69 6e 67 65 6e 20 6f 70 3b 20 64 65 20 72 65  kingen op; de re
1a30: 73 74 20 65 72 66 74 20 64 6f 6f 72 20 75 69 74  st erft door uit
1a40: 20 64 65 20 73 74 61 6e 64 61 61 72 64 76 6f 6c   de standaardvol
1a50: 67 6f 72 64 65 0a 2d 20 64 65 20 6c 69 6a 73 74  gorde.- de lijst
1a60: 65 6e 20 69 6e 20 60 50 65 72 20 45 78 74 65 6e  en in `Per Exten
1a70: 73 69 6f 6e 60 20 6f 6e 64 65 72 73 74 65 75 6e  sion` ondersteun
1a80: 65 6e 20 6e 75 20 6f 6f 6b 20 6d 75 6c 74 69 73  en nu ook multis
1a90: 65 6c 65 63 74 20 76 6f 6f 72 20 68 65 74 20 76  elect voor het v
1aa0: 65 72 77 69 6a 64 65 72 65 6e 20 76 61 6e 20 6d  erwijderen van m
1ab0: 65 65 72 64 65 72 65 20 65 78 74 65 6e 73 69 65  eerdere extensie
1ac0: 73 20 6f 66 20 6d 65 65 72 64 65 72 65 20 68 61  s of meerdere ha
1ad0: 6e 64 6c 65 72 2d 6f 76 65 72 72 69 64 65 73 20  ndler-overrides 
1ae0: 74 65 67 65 6c 69 6a 6b 0a 2d 20 68 61 6e 64 6c  tegelijk.- handl
1af0: 65 72 2d 73 70 65 63 69 66 69 65 6b 65 20 69 6e  er-specifieke in
1b00: 73 74 65 6c 6c 69 6e 67 65 6e 70 61 6e 65 6c 65  stellingenpanele
1b10: 6e 0a 2d 20 67 65 65 6e 20 61 70 61 72 74 20 76  n.- geen apart v
1b20: 65 6e 73 74 65 72 69 63 6f 6f 6e 20 6d 65 65 72  enstericoon meer
1b30: 20 69 6e 20 64 65 20 74 69 74 65 6c 62 61 6c 6b   in de titelbalk
1b40: 2c 20 7a 6f 64 61 74 20 68 65 74 20 6e 69 65 74  , zodat het niet
1b50: 20 61 66 77 69 6a 6b 74 20 76 61 6e 20 64 65 20   afwijkt van de 
1b60: 6b 6e 6f 70 2d 69 63 6f 6f 6e 6b 65 75 7a 65 0a  knop-icoonkeuze.
1b70: 2d 20 74 6f 6f 6c 73 74 72 69 70 6b 6e 6f 70 70  - toolstripknopp
1b80: 65 6e 20 76 6f 6f 72 20 60 55 73 65 20 46 69 72  en voor `Use Fir
1b90: 73 74 20 46 6f 72 20 45 78 74 65 6e 73 69 6f 6e  st For Extension
1ba0: 60 20 65 6e 20 60 43 6f 6e 66 69 67 75 72 61 74  ` en `Configurat
1bb0: 69 6f 6e 60 20 68 65 62 62 65 6e 20 6e 75 20 65  ion` hebben nu e
1bc0: 65 6e 20 65 69 67 65 6e 20 69 63 6f 6f 6e 0a 2d  en eigen icoon.-
1bd0: 20 64 65 20 60 46 72 65 65 7a 65 60 2d 6b 6e 6f   de `Freeze`-kno
1be0: 70 20 68 65 65 66 74 20 6e 75 20 6f 6f 6b 20 65  p heeft nu ook e
1bf0: 65 6e 20 65 69 67 65 6e 20 73 6e 65 65 75 77 76  en eigen sneeuwv
1c00: 6c 6f 6b 2d 69 63 6f 6f 6e 0a 0a 23 23 20 53 6e  lok-icoon..## Sn
1c10: 65 6c 74 6f 65 74 73 65 6e 0a 0a 47 6c 6f 62 61  eltoetsen..Globa
1c20: 6c 65 20 73 6e 65 6c 74 6f 65 74 73 65 6e 20 76  le sneltoetsen v
1c30: 61 6e 75 69 74 20 5a 54 72 65 65 57 69 6e 20 65  anuit ZTreeWin e
1c40: 6e 20 6c 6f 6b 61 6c 65 20 73 6e 65 6c 74 6f 65  n lokale sneltoe
1c50: 74 73 65 6e 20 69 6e 20 68 65 74 20 70 72 65 76  tsen in het prev
1c60: 69 65 77 76 65 6e 73 74 65 72 3a 0a 0a 2d 20 60  iewvenster:..- `
1c70: 43 74 72 6c 2b 53 68 69 66 74 2b 4d 60 20 6d 69  Ctrl+Shift+M` mi
1c80: 6e 69 6d 61 6c 69 73 65 72 65 6e 2f 68 65 72 73  nimaliseren/hers
1c90: 74 65 6c 6c 65 6e 0a 2d 20 60 43 74 72 6c 2b 53  tellen.- `Ctrl+S
1ca0: 68 69 66 74 2b 46 34 60 20 76 65 6e 73 74 65 72  hift+F4` venster
1cb0: 20 73 6c 75 69 74 65 6e 0a 2d 20 60 43 74 72 6c   sluiten.- `Ctrl
1cc0: 2b 53 68 69 66 74 2b 46 60 20 70 72 65 76 69 65  +Shift+F` previe
1cd0: 77 20 62 65 76 72 69 65 7a 65 6e 2f 6f 6e 74 64  w bevriezen/ontd
1ce0: 6f 6f 69 65 6e 0a 2d 20 60 43 74 72 6c 2b 53 68  ooien.- `Ctrl+Sh
1cf0: 69 66 74 2b 48 60 20 76 6f 6c 67 65 6e 64 65 20  ift+H` volgende 
1d00: 68 61 6e 64 6c 65 72 2c 20 60 43 74 72 6c 2b 53  handler, `Ctrl+S
1d10: 68 69 66 74 2b 41 6c 74 2b 48 60 20 76 6f 72 69  hift+Alt+H` vori
1d20: 67 65 20 68 61 6e 64 6c 65 72 0a 2d 20 60 43 74  ge handler.- `Ct
1d30: 72 6c 2b 53 68 69 66 74 2b 31 60 20 74 2f 6d 20  rl+Shift+1` t/m 
1d40: 60 43 74 72 6c 2b 53 68 69 66 74 2b 39 60 20 73  `Ctrl+Shift+9` s
1d50: 65 6c 65 63 74 65 72 65 6e 20 68 61 6e 64 6c 65  electeren handle
1d60: 72 70 6f 73 69 74 69 65 20 31 2e 2e 39 2c 20 60  rpositie 1..9, `
1d70: 43 74 72 6c 2b 53 68 69 66 74 2b 30 60 20 74 72  Ctrl+Shift+0` tr
1d80: 69 67 67 65 72 74 20 61 75 74 6f 64 65 74 65 63  iggert autodetec
1d90: 74 69 65 0a 0a 60 43 74 72 6c 2b 53 68 69 66 74  tie..`Ctrl+Shift
1da0: 2b 4d 60 20 68 65 72 73 74 65 6c 74 20 65 65 6e  +M` herstelt een
1db0: 20 65 65 72 64 65 72 20 67 65 6d 61 78 69 6d 61   eerder gemaxima
1dc0: 6c 69 73 65 65 72 64 20 76 65 6e 73 74 65 72 20  liseerd venster 
1dd0: 6e 75 20 6f 6f 6b 20 77 65 65 72 20 61 6c 73 20  nu ook weer als 
1de0: 67 65 6d 61 78 69 6d 61 6c 69 73 65 65 72 64 2e  gemaximaliseerd.
1df0: 0a 0a 48 61 6e 64 6c 65 72 2d 73 70 65 63 69 66  ..Handler-specif
1e00: 69 65 6b 65 20 73 6e 65 6c 74 6f 65 74 73 65 6e  ieke sneltoetsen
1e10: 3a 0a 0a 2d 20 60 43 74 72 6c 2b 46 60 20 74 65  :..- `Ctrl+F` te
1e20: 6b 73 74 20 7a 6f 65 6b 65 6e 0a 2d 20 60 46 33  kst zoeken.- `F3
1e30: 60 20 76 6f 6c 67 65 6e 64 65 20 74 65 6b 73 74  ` volgende tekst
1e40: 74 72 65 66 66 65 72 0a 2d 20 60 46 35 60 20 2f  treffer.- `F5` /
1e50: 20 60 46 39 60 20 53 51 4c 69 74 65 20 71 75 65   `F9` SQLite que
1e60: 72 79 20 75 69 74 76 6f 65 72 65 6e 2f 73 74 6f  ry uitvoeren/sto
1e70: 70 70 65 6e 0a 2d 20 60 43 74 72 6c 2b 30 60 20  ppen.- `Ctrl+0` 
1e80: 61 66 62 65 65 6c 64 69 6e 67 20 72 65 73 65 74  afbeelding reset
1e90: 74 65 6e 0a 2d 20 60 52 60 20 2f 20 60 4c 60 20  ten.- `R` / `L` 
1ea0: 61 66 62 65 65 6c 64 69 6e 67 20 72 6f 74 65 72  afbeelding roter
1eb0: 65 6e 0a 2d 20 60 62 75 69 6c 74 69 6e 2e 68 65  en.- `builtin.he
1ec0: 78 60 3a 20 70 69 6a 6c 74 6a 65 73 2c 20 60 50  x`: pijltjes, `P
1ed0: 67 55 70 60 2f 60 50 67 44 6e 60 2c 20 60 48 6f  gUp`/`PgDn`, `Ho
1ee0: 6d 65 60 2f 60 45 6e 64 60 3b 20 76 69 61 20 5a  me`/`End`; via Z
1ef0: 54 72 65 65 57 69 6e 20 77 6f 72 64 65 6e 20 60  TreeWin worden `
1f00: 43 74 72 6c 2b 53 68 69 66 74 60 2d 76 61 72 69  Ctrl+Shift`-vari
1f10: 61 6e 74 65 6e 20 64 6f 6f 72 67 65 73 74 75 75  anten doorgestuu
1f20: 72 64 2c 20 65 6e 20 60 43 74 72 6c 2b 53 68 69  rd, en `Ctrl+Shi
1f30: 66 74 2b 41 6c 74 60 20 2b 20 70 69 6a 6c 74 6a  ft+Alt` + pijltj
1f40: 65 73 20 77 6f 72 64 74 20 76 65 72 74 61 61 6c  es wordt vertaal
1f50: 64 20 6e 61 61 72 20 73 65 6c 65 63 74 69 65 20  d naar selectie 
1f60: 6d 65 74 20 60 53 68 69 66 74 60 20 2b 20 70 69  met `Shift` + pi
1f70: 6a 6c 74 6a 65 73 0a 2d 20 60 62 75 69 6c 74 69  jltjes.- `builti
1f80: 6e 2e 74 65 78 74 60 3a 20 76 69 61 20 5a 54 72  n.text`: via ZTr
1f90: 65 65 57 69 6e 20 73 63 72 6f 6c 6c 65 6e 20 60  eeWin scrollen `
1fa0: 43 74 72 6c 2b 53 68 69 66 74 60 20 2b 20 70 69  Ctrl+Shift` + pi
1fb0: 6a 6c 74 6a 65 73 2c 20 60 50 67 55 70 60 2f 60  jltjes, `PgUp`/`
1fc0: 50 67 44 6e 60 2c 20 60 48 6f 6d 65 60 20 65 6e  PgDn`, `Home` en
1fd0: 20 60 45 6e 64 60 20 64 65 20 74 65 6b 73 74 70   `End` de tekstp
1fe0: 72 65 76 69 65 77 0a 0a 23 23 20 56 65 6e 73 74  review..## Venst
1ff0: 65 72 70 6f 73 69 74 69 65 0a 0a 44 65 20 76 65  erpositie..De ve
2000: 6e 73 74 65 72 70 6f 73 69 74 69 65 20 77 6f 72  nsterpositie wor
2010: 64 74 20 6f 6e 74 68 6f 75 64 65 6e 20 70 65 72  dt onthouden per
2020: 20 6d 6f 6e 69 74 6f 72 63 6f 6e 66 69 67 75 72   monitorconfigur
2030: 61 74 69 65 2e 20 44 65 20 66 69 6e 67 65 72 70  atie. De fingerp
2040: 72 69 6e 74 20 77 6f 72 64 74 0a 62 65 72 65 6b  rint wordt.berek
2050: 65 6e 64 20 75 69 74 20 60 44 65 76 69 63 65 4e  end uit `DeviceN
2060: 61 6d 65 60 20 65 6e 20 60 42 6f 75 6e 64 73 60  ame` en `Bounds`
2070: 20 76 61 6e 20 61 6c 6c 65 20 73 63 68 65 72 6d   van alle scherm
2080: 65 6e 2e 0a 0a 42 69 6a 20 65 65 6e 20 67 65 6d  en...Bij een gem
2090: 61 78 69 6d 61 6c 69 73 65 65 72 64 20 76 65 6e  aximaliseerd ven
20a0: 73 74 65 72 20 77 6f 72 64 74 20 6e 75 20 6f 6f  ster wordt nu oo
20b0: 6b 20 64 65 20 64 6f 65 6c 6d 6f 6e 69 74 6f 72  k de doelmonitor
20c0: 20 6f 6e 74 68 6f 75 64 65 6e 2c 20 7a 6f 64 61   onthouden, zoda
20d0: 74 20 68 65 72 73 74 65 6c 20 6f 70 20 64 65 7a  t herstel op dez
20e0: 65 6c 66 64 65 20 6d 6f 6e 69 74 6f 72 20 67 65  elfde monitor ge
20f0: 62 65 75 72 74 2e 0a 0a 23 23 20 42 75 69 6c 64  beurt...## Build
2100: 20 65 6e 20 74 65 73 74 0a 0a 42 75 69 6c 64 3a   en test..Build:
2110: 0a 0a 60 60 60 73 68 0a 64 6f 74 6e 65 74 20 62  ..```sh.dotnet b
2120: 75 69 6c 64 20 5a 41 41 50 2e 6e 65 74 2f 5a 41  uild ZAAP.net/ZA
2130: 41 50 2e 6e 65 74 2e 73 6c 6e 20 2d 70 3a 45 6e  AP.net.sln -p:En
2140: 61 62 6c 65 57 69 6e 64 6f 77 73 54 61 72 67 65  ableWindowsTarge
2150: 74 69 6e 67 3d 74 72 75 65 0a 60 60 60 0a 0a 54  ting=true.```..T
2160: 65 73 74 73 20 63 6f 6d 70 69 6c 65 72 65 6e 20  ests compileren 
2170: 6f 70 20 4c 69 6e 75 78 2c 20 6d 61 61 72 20 57  op Linux, maar W
2180: 69 6e 46 6f 72 6d 73 2f 57 69 6e 64 6f 77 73 44  inForms/WindowsD
2190: 65 73 6b 74 6f 70 20 72 75 6e 74 69 6d 65 2d 76  esktop runtime-v
21a0: 61 6c 69 64 61 74 69 65 20 6c 75 6b 74 0a 64 61  alidatie lukt.da
21b0: 61 72 20 6e 69 65 74 2e 20 49 6e 74 65 72 61 63  ar niet. Interac
21c0: 74 69 65 76 65 20 76 61 6c 69 64 61 74 69 65 20  tieve validatie 
21d0: 76 61 6e 20 64 65 20 55 49 20 65 6e 20 57 69 6e  van de UI en Win
21e0: 64 6f 77 73 20 50 72 65 76 69 65 77 20 48 61 6e  dows Preview Han
21f0: 64 6c 65 72 73 20 6d 6f 65 74 20 6f 70 0a 57 69  dlers moet op.Wi
2200: 6e 64 6f 77 73 20 67 65 62 65 75 72 65 6e 2e 0a  ndows gebeuren..
2210: 0a 23 23 20 56 65 72 76 6f 6c 67 64 6f 63 75 6d  .## Vervolgdocum
2220: 65 6e 74 65 6e 0a 0a 2d 20 60 50 4c 41 4e 2e 6d  enten..- `PLAN.m
2230: 64 60 3a 20 61 6c 6c 65 65 6e 20 6f 70 65 6e 73  d`: alleen opens
2240: 74 61 61 6e 64 65 20 70 75 6e 74 65 6e 20 65 6e  taande punten en
2250: 20 62 75 67 20 62 61 63 6b 6c 6f 67 0a 2d 20 60   bug backlog.- `
2260: 61 72 63 68 69 76 65 73 2e 50 4c 41 4e 2e 6d 64  archives.PLAN.md
2270: 60 3a 20 6f 6e 74 77 65 72 70 70 6c 61 6e 20 76  `: ontwerpplan v
2280: 6f 6f 72 20 61 72 63 68 69 76 65 20 70 72 65 76  oor archive prev
2290: 69 65 77 0a                                      iew.