README.md at trunk
Not logged in

File ZAAP.net/ZPreview/README.md artifact 3ef6e61bb0 on branch trunk


ZPreview

ZPreview is een .NET 10 WinForms-applicatie voor Windows die een preview toont van het bestand dat momenteel geselecteerd is in ZTreeWin.

De applicatie gebruikt ZaapZTreeState om de huidige toestand van ZTreeWin te volgen en om events te ontvangen bij bestandswissels, OnHold, quit, en Ctrl+Shift-sneltoetsen.

Projecten

ZAAP.net/
  ZPreview/                  WinForms-applicatie
  ZPreview.Abstractions/     Interfaces en basisklassen voor preview handlers
  ZPreview.PreviewHandlers/  Ingebouwde preview handlers
  ZPreview.SQLitePreview/    SQLite preview handler in eigen project
  ZPreview.Tests/            xUnit-tests

Waarom WinForms

WinForms is hier gekozen vanwege:

Architectuur

De hoofdapp bestaat uit:

De event-flow is:

  1. ZaapZTreeState detecteert een wijziging in ZTreeWin.
  2. ZTreeMonitorController vertaalt dat naar app-events.
  3. MainForm bepaalt welke handler gebruikt moet worden.
  4. De actieve preview-control wordt vervangen.

Preview Handler Model

Handlers implementeren IPreviewHandler uit ZPreview.Abstractions.

Belangrijke contracten:

Handlers worden ontdekt via assembly scanning:

Plugin-loadfouten worden vastgelegd in PluginLoadResult.

Ingebouwde Preview Handlers

Tekst

Zip-archief

Hex

Afbeelding

Windows Preview Handler Host

SQLite

Configuratie

Configuratie wordt opgeslagen in:

%APPDATA%\Zaap\ZPreview\settings.json

Daarin staan onder meer:

Runtime-fouten en exceptions worden ook gelogd naar zpreview.log in dezelfde directory als settings.json.

Het configuratiescherm bevat:

Sneltoetsen

Globale sneltoetsen vanuit ZTreeWin en lokale sneltoetsen in het previewvenster:

Ctrl+Shift+M herstelt een eerder gemaximaliseerd venster nu ook weer als gemaximaliseerd.

Handler-specifieke sneltoetsen:

Vensterpositie

De vensterpositie wordt onthouden per monitorconfiguratie. De fingerprint wordt berekend uit DeviceName en Bounds van alle schermen.

Bij een gemaximaliseerd venster wordt nu ook de doelmonitor onthouden, zodat herstel op dezelfde monitor gebeurt.

Build en test

Build:

dotnet build ZAAP.net/ZAAP.net.sln -p:EnableWindowsTargeting=true

Tests compileren op Linux, maar WinForms/WindowsDesktop runtime-validatie lukt daar niet. Interactieve validatie van de UI en Windows Preview Handlers moet op Windows gebeuren.

Vervolgdocumenten