7.4 KiB
7.4 KiB
name, overview, todos, isProject
| name | overview | todos | isProject | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Update-melding blauwe stip | kniip controleert op de achtergrond (bij het starten en daarna elke 24 uur, uit te zetten in Instellingen) op een nieuwe versie. Als die er is, krijgen de knop Instellingen in de editor-werkbalk en de tab Update in Instellingen een blauwe stip. |
|
false |
Blauwe update-melding bij Instellingen en de tab Update
Huidige situatie
- src/Kniip/Update/UpdateChecker.cs haalt releases op met
GetReleasesAsync, maar dat gebeurt nu alleen in src/Kniip/Settings/SettingsWindow.xaml.cs zodra de tab Update geopend wordt (Tabs_SelectionChangedgevolgd doorCheckForUpdatesAsync). - De knop Instellingen staat in src/Kniip/Editor/EditorWindow.xaml (regel 318–321, glyph
). AccentBrushis#0067C0(blauw) in src/Kniip/App.xaml, en die gebruiken we voor de stip.
flowchart LR
AppStart[App start] --> Notifier[UpdateNotifier]
Timer["Timer 24 uur"] --> Notifier
Notifier -->|GetReleasesAsync| Checker[UpdateChecker]
Notifier -->|AvailabilityChanged| EditorBadge[Stip op knop Instellingen]
Notifier -->|AvailabilityChanged| TabBadge[Stip op tab Update]
SettingsCheck[Handmatige controle in tab Update] -->|Report| Notifier
Stappen
-
Nieuwe instelling in src/Kniip/Settings/AppSettings.cs:
public bool CheckForUpdates { get; set; } = true; -
Nieuwe klasse
UpdateNotifierinsrc/Kniip/Update/UpdateNotifier.cs:- Houdt
ReleaseInfo? Availablebij enbool IsUpdateAvailable, met een eventAvailabilityChangeddat op de UI-thread wordt afgevuurd. Apply(bool enabled): als de controle aanstaat, wordt die kort na het starten uitgevoerd (ongeveer 10 seconden vertraging, zodat het opstarten niet trager wordt) en daarna via eenDispatcherTimerelke 24 uur. Als de controle uitstaat, stopt de timer en verdwijnt de stip.CheckAsync()roeptUpdateChecker.GetReleasesAsyncaan en vangtUpdateExceptionstil af, zodat een achtergrondcontrole nooit een foutmelding toont.Report(ReleaseInfo? newest)wordt gebruikt door de handmatige controle in de tab Update, zodat de stip ook daarmee gelijkloopt.- "Nieuwer" betekent hetzelfde als in
ShowReleases:r.Version > UpdateChecker.CurrentVersion.
- Houdt
-
App (src/Kniip/App.xaml.cs):
- Een property
public UpdateNotifier Updates { get; } = new(); - Bij het opstarten (na
ApplyHotkeys) wordtUpdates.Apply(Settings.CheckForUpdates)aangeroepen. - In
SaveSettings()gebeurt dat opnieuw, zodat het aan- of uitzetten van de controle direct effect heeft.
- Een property
-
Stip op de knop Instellingen (src/Kniip/Editor/EditorWindow.xaml en
.xaml.cs):- De inhoud van de knop wordt een
Gridmet de bestaande glyph plus<Ellipse x:Name="SettingsBadge" Width="8" Height="8" Fill="{StaticResource AccentBrush}" Stroke="White" StrokeThickness="1" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0,-2,-3,0" Visibility="Collapsed" />. - In de code-behind abonneert de editor zich op
App.Instance.Updates.AvailabilityChanged. Bij een wijziging wordenSettingsBadge.Visibilityen de tooltip bijgewerkt (de tooltip wordt "Instellingen - nieuwe versie beschikbaar"). BijClosedwordt het abonnement weer opgezegd.
- De inhoud van de knop wordt een
-
Stip op de tab Update en een vinkje voor de achtergrondcontrole (src/Kniip/Settings/SettingsWindow.xaml en
.xaml.cs):- De
HeadervanUpdateTabwordt een horizontaleStackPanelmet de tekst "Update" en daarachter een blauweEllipse x:Name="UpdateTabBadge"van dezelfde stijl, met een margin links van 6. - In de tab Update, onder
CurrentVersionText, komt<CheckBox x:Name="AutoUpdateCheckBox" Content="Automatisch controleren op nieuwe versies (bij starten en dagelijks)" />. Die wordt gevuld inLoadFrom, bewaard inSave_Clicken meegenomen bij Standaardinstellingen. - Het venster abonneert zich op
AvailabilityChangedom de zichtbaarheid van de stip te zetten, en zegt dat abonnement op bijClosed. - Na een handmatige controle roept
ShowReleasesApp.Instance.Updates.Report(newer.FirstOrDefault())aan.
- De
Gedrag
- De stip blijft zichtbaar zolang er een nieuwere versie is. Na het updaten start kniip met de nieuwe versie, en dan is er geen nieuwere versie meer, dus verdwijnt de stip vanzelf.
- Er komen geen extra meldingen in het systeemvak, zoals afgesproken.
Changelog en release 1.1.4 (na de codewijzigingen)
- CHANGELOG.md: bovenaan een nieuwe sectie
## 1.1.4 - 2026-11-09in dezelfde stijl als de eerdere versies, bijvoorbeeld:- Onder
### Nieuw: Melding bij een nieuwe versie. kniip kijkt bij het starten en daarna elke dag of er een nieuwere versie is. Als die er is, staat er een blauwe stip op de knop Instellingen in de editor en op de tab Update. Je zet dit uit in de tab Update met Automatisch controleren op nieuwe versies. - Onder
### Gewijzigd: kniip zoekt nu standaard zelf op de achtergrond naar updates. Tot nu toe gebeurde dat alleen als je de tab Update opende, zoals vermeld bij 1.1.0.
- Onder
- README.md:
- In de versietabel 1.1.3 vervangen door 1.1.4, met de link
.../releases/download/1.1.4/Kniip-Setup-1.1.4.exe. - Het commentaar
# versie 1.1.3bij het bouwen wordt# versie 1.1.4. - Bij "Updaten vanuit kniip" komt een zin over de automatische controle en de blauwe stip.
- In de versietabel 1.1.3 vervangen door 1.1.4, met de link
- Versienummer van 1.1.3 naar 1.1.4 in build.ps1 (
$Version), installer/Kniip.iss (#define AppVersion) en src/Kniip/Kniip.csproj (<Version>). - Bouwen en uitbrengen, op dezelfde manier als bij 1.1.2 en 1.1.3:
.\build.ps1draaien. Dat levertartifacts\Kniip-1.1.4.exeenartifacts\Kniip-Setup-1.1.4.exeop.- Daarna
git add -A,git commit -m "1.1.4",git tag 1.1.4(zonderv, net als de vorige tags) engit push origin HEADplusgit push origin 1.1.4. - De release op git.hibbit.net maak je, net als eerder, zelf aan. Je hangt daar
artifacts\Kniip-Setup-1.1.4.exeaan als bijlage en plakt de 1.1.4-tekst uit de changelog in de beschrijving. Ik lever die tekst kant-en-klaar aan.