diff --git a/CHANGELOG.md b/CHANGELOG.md index b1207e5..2db70ac 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,20 @@ Alle noemenswaardige wijzigingen in kniip staan in dit bestand. De nieuwste versie staat bovenaan. +## 1.1.4 - 2026-11-09 + +### Nieuw + +- **Lijnen en pijlen buigen.** Selecteer een lijn of pijl. Midden op elk stuk staat dan een klein rondje. Sleep dat rondje en het wordt een buigpunt. De lijn loopt daarna als vloeiende kromme door alle punten. Zo kun je zoveel buigpunten toevoegen als je wilt. + - Dubbelklik op een buigpunt om het weer te verwijderen. + - Bij een pijl draait de punt mee met de richting van het laatste stuk. + - Met Shift springen begin- en eindpunt in stappen van 45°, gemeten vanaf het buigpunt ernaast. + - Toevoegen, verschuiven en verwijderen van buigpunten kun je ongedaan maken. + +### Gewijzigd + +- **Testversie naast kniip.** `build.ps1` maakt nu ook `KniipTest-.exe`. Die testversie heeft eigen instellingen en registervermeldingen, zodat hij naast de geïnstalleerde kniip kan draaien zonder die te raken. De testversie werkt zichzelf niet bij. Met `-SkipTest` sla je hem over. + ## 1.1.3 - 2026-11-09 ### Nieuw diff --git a/README.md b/README.md index 47d4841..6cb380d 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ kniip is een annotatie-editor die naast het Windows Knipprogramma werkt. Maak ee | Versie | Installer | | ------ | --------- | -| 1.1.3 | [Kniip-Setup-1.1.3.exe](https://git.hibbit.net/rogier/kniip/releases/download/1.1.3/Kniip-Setup-1.1.3.exe) | +| 1.1.4 | [Kniip-Setup-1.1.4.exe](https://git.hibbit.net/rogier/kniip/releases/download/1.1.4/Kniip-Setup-1.1.4.exe) | Oudere versies vind je bij [alle releases](https://git.hibbit.net/rogier/kniip/releases). @@ -70,7 +70,7 @@ Vereisten: Bouwen: ```powershell -.\build.ps1 # versie 1.1.3 +.\build.ps1 # versie 1.1.4 .\build.ps1 -Version 1.2.0 # andere versie ``` @@ -79,6 +79,20 @@ Het script levert op: - `artifacts\publish\Kniip.exe`: zelfstandige exe, draait zonder installatie - `artifacts\Kniip-.exe`: dezelfde exe, met het versienummer in de naam - `artifacts\Kniip-Setup-.exe`: de installer (alleen als Inno Setup 6 gevonden is) +- `artifacts\KniipTest-.exe`: testversie (overslaan met `-SkipTest`) + +### Testversie + +De testversie draait naast de geïnstalleerde kniip en raakt die niet aan. Hij gebruikt overal `KniipTest` in plaats van `Kniip`: de autostartregel, de 'Openen met'-registratie (`KniipTest.Image`), de instellingenmap `%APPDATA%\KniipTest` en de single-instance-mutex. Bij de eerste start kopieert hij de instellingen van de gewone kniip. Zichzelf bijwerken doet hij niet, want de installer zou de gewone kniip overschrijven. + +Opruimen hoeft alleen als je in de testversie autostart of 'Openen met' hebt aangezet: + +```powershell +.\artifacts\KniipTest-.exe --unregister +Remove-Item "$env:APPDATA\KniipTest" -Recurse # optioneel: instellingen van de testversie +``` + +Draaien beide versies tegelijk, dan reageren ze allebei op dezelfde sneltoetsen en knipsels. Sluit de gewone kniip tijdens het testen, of kies in de testversie andere sneltoetsen. ## Een nieuwe versie publiceren diff --git a/build.ps1 b/build.ps1 index 713a325..265c690 100644 --- a/build.ps1 +++ b/build.ps1 @@ -1,19 +1,27 @@ -# Publiceert kniip als zelfstandige single-file exe (geen .NET-installatie nodig op de doel-pc) +# Publiceert kniip als zelfstandige single-file exe (geen .NET-installatie nodig op de doel-pc) # en bouwt de installer als Inno Setup 6 aanwezig is. # ScreenRecorderLib (screencasts) is een C++/CLI-assembly die niet uit de bundel geladen kan worden; # IncludeAllContentForSelfExtract pakt daarom bij de eerste start alles uit naar %TEMP%\.net. # -# .\build.ps1 -> artifacts\publish\Kniip.exe (+ installer indien mogelijk) +# +# Elke build levert ook artifacts\KniipTest-.exe: een testversie met eigen register-, instellingen- +# en mutexnamen (KniipTest), die naast de geïnstalleerde kniip draait zonder diens registratie te raken. +# +# .\build.ps1 -> artifacts\publish\Kniip.exe (+ installer indien mogelijk) + testexe # .\build.ps1 -Version 1.2.0 +# .\build.ps1 -SkipTest -> zonder testexe param( - [string]$Version = "1.1.3", - [string]$Runtime = "win-x64" + [string]$Version = "1.1.4", + [string]$Runtime = "win-x64", + [switch]$SkipTest ) $ErrorActionPreference = "Stop" $root = $PSScriptRoot +$project = Join-Path $root "src\Kniip\Kniip.csproj" $publishDir = Join-Path $root "artifacts\publish" +$testPublishDir = Join-Path $root "artifacts\publish-test" # Gebruik een SDK in het gebruikersprofiel als er geen systeembrede SDK is. $localDotnet = Join-Path $env:LOCALAPPDATA "Microsoft\dotnet" @@ -22,18 +30,23 @@ if (-not (dotnet --list-sdks 2>$null) -and (Test-Path (Join-Path $localDotnet "d $env:PATH = "$localDotnet;$env:PATH" } -if (Test-Path $publishDir) { Remove-Item $publishDir -Recurse -Force } +function Publish-Kniip([string]$outputDir, [bool]$test) { + if (Test-Path $outputDir) { Remove-Item $outputDir -Recurse -Force } -dotnet publish (Join-Path $root "src\Kniip\Kniip.csproj") ` - -c Release -r $Runtime --self-contained true ` - -p:PublishSingleFile=true ` - -p:IncludeNativeLibrariesForSelfExtract=true ` - -p:IncludeAllContentForSelfExtract=true ` - -p:EnableCompressionInSingleFile=true ` - -p:DebugType=none ` - -p:Version=$Version ` - -o $publishDir -if ($LASTEXITCODE -ne 0) { throw "dotnet publish is mislukt." } + dotnet publish $project ` + -c Release -r $Runtime --self-contained true ` + -p:PublishSingleFile=true ` + -p:IncludeNativeLibrariesForSelfExtract=true ` + -p:IncludeAllContentForSelfExtract=true ` + -p:EnableCompressionInSingleFile=true ` + -p:DebugType=none ` + -p:Version=$Version ` + -p:KniipTest=$($test.ToString().ToLowerInvariant()) ` + -o $outputDir + if ($LASTEXITCODE -ne 0) { throw "dotnet publish is mislukt." } +} + +Publish-Kniip $publishDir $false Write-Host "Gepubliceerd: $publishDir\Kniip.exe" -ForegroundColor Green @@ -55,3 +68,10 @@ if ($iscc) { } else { Write-Host "Inno Setup 6 niet gevonden; installer overgeslagen (winget install JRSoftware.InnoSetup)." -ForegroundColor Yellow } + +if (-not $SkipTest) { + Publish-Kniip $testPublishDir $true + $testExe = Join-Path $root "artifacts\KniipTest-$Version.exe" + Copy-Item (Join-Path $testPublishDir "Kniip.exe") $testExe -Force + Write-Host "Testversie: $testExe" -ForegroundColor Green +} diff --git a/installer/Kniip.iss b/installer/Kniip.iss index 1025776..634afce 100644 --- a/installer/Kniip.iss +++ b/installer/Kniip.iss @@ -5,7 +5,7 @@ #define AppName "kniip" #define AppExe "Kniip.exe" #ifndef AppVersion - #define AppVersion "1.1.3" + #define AppVersion "1.1.4" #endif #ifndef PublishDir #define PublishDir "..\artifacts\publish" diff --git a/src/Kniip/App.xaml b/src/Kniip/App.xaml index 92dcb6f..8be7420 100644 --- a/src/Kniip/App.xaml +++ b/src/Kniip/App.xaml @@ -293,6 +293,92 @@ + + + + + + +