From f6452683ff540503bb0a3194ccc2bd277d6d8574 Mon Sep 17 00:00:00 2001 From: pax Date: Sun, 5 Apr 2026 18:31:13 -0500 Subject: [PATCH] Add red data removal checkbox to uninstaller MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Optional checkbox in bold red: REMOVE ALL USER DATA (BOOKMARKS, CACHE, LIBRARY — DATA LOSS). Unchecked by default. Deletes %APPDATA%/booru-viewer if checked. --- installer.iss | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/installer.iss b/installer.iss index 1b38f4e..34c4f20 100644 --- a/installer.iss +++ b/installer.iss @@ -27,3 +27,38 @@ Name: "desktopicon"; Description: "Create desktop shortcut"; GroupDescription: " [Run] Filename: "{app}\booru-viewer.exe"; Description: "Launch booru-viewer"; Flags: nowait postinstall skipifsilent + +[Code] +var + RemoveDataCheckbox: TNewCheckBox; + +procedure InitializeUninstallProgressForm(); +var + UninstallPage: TNewStaticText; +begin + RemoveDataCheckbox := TNewCheckBox.Create(UninstallProgressForm); + RemoveDataCheckbox.Parent := UninstallProgressForm; + RemoveDataCheckbox.Left := 10; + RemoveDataCheckbox.Top := UninstallProgressForm.ClientHeight - 50; + RemoveDataCheckbox.Width := UninstallProgressForm.ClientWidth - 20; + RemoveDataCheckbox.Height := 20; + RemoveDataCheckbox.Caption := 'REMOVE ALL USER DATA (BOOKMARKS, CACHE, LIBRARY — DATA LOSS)'; + RemoveDataCheckbox.Font.Color := clRed; + RemoveDataCheckbox.Font.Style := [fsBold]; + RemoveDataCheckbox.Checked := False; +end; + +procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep); +var + AppDataDir: String; +begin + if CurUninstallStep = usPostUninstall then + begin + if RemoveDataCheckbox.Checked then + begin + AppDataDir := ExpandConstant('{userappdata}\booru-viewer'); + if DirExists(AppDataDir) then + DelTree(AppDataDir, True, True, True); + end; + end; +end;