Video: - Replace Qt Multimedia with mpv via python-mpv + OpenGL render API - Hardware-accelerated decoding, frame-accurate seeking, proper EOF detection - Translucent overlay controls in both preview and popout - LC_NUMERIC=C for mpv locale compatibility Popout viewer (renamed from slideshow): - Floating toolbar + controls overlay with auto-hide (2s) - Window auto-resizes to content aspect ratio on navigation - Hyprland: hyprctl resizewindowpixel + keep_aspect_ratio prop - Window geometry persisted to DB across sessions - Smart F11 exit sizing (60% monitor, centered) Preview toolbar: - Bookmark, Save, BL Tag, BL Post, Popout buttons above preview - Save opens folder picker menu, shows Save/Unsave state - Blacklist actions have confirmation dialogs - Per-tab button visibility (Library: Save + Popout only) - Cross-tab state management with grid selection clearing Search & pagination: - SearchState dataclass replaces 8 scattered attrs + defensive getattr - Media type filter dropdown (All/Animated/Video/GIF/Audio) - API retry with backoff on 429/503/timeout - Infinite scroll dedup fix (local seen set per backfill round) - Prev/Next buttons hide at boundaries, "(end)" status indicator Grid: - Rubber band drag selection - Saved/bookmarked dots update instantly across all tabs - Library/bookmarks emit signals on file deletion for cross-tab sync Settings & misc: - Default site option - Max thumbnail cache setting (500MB default) - Source URLs clickable in info panel - Long URLs truncated to prevent splitter blowout - Bulk save no longer auto-bookmarks
65 lines
2.0 KiB
Plaintext
65 lines
2.0 KiB
Plaintext
; booru-viewer Windows Installer
|
|
|
|
[Setup]
|
|
AppName=booru-viewer
|
|
AppVersion=0.2.0
|
|
AppPublisher=pax
|
|
AppPublisherURL=https://git.pax.moe/pax/booru-viewer
|
|
DefaultDirName={localappdata}\booru-viewer
|
|
DefaultGroupName=booru-viewer
|
|
OutputBaseFilename=booru-viewer-setup
|
|
OutputDir=dist
|
|
Compression=lzma2
|
|
SolidCompression=yes
|
|
SetupIconFile=icon.ico
|
|
UninstallDisplayIcon={app}\booru-viewer.exe
|
|
PrivilegesRequired=lowest
|
|
|
|
[Files]
|
|
Source: "dist\booru-viewer\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs
|
|
|
|
[Icons]
|
|
Name: "{group}\booru-viewer"; Filename: "{app}\booru-viewer.exe"
|
|
Name: "{autodesktop}\booru-viewer"; Filename: "{app}\booru-viewer.exe"; Tasks: desktopicon
|
|
|
|
[Tasks]
|
|
Name: "desktopicon"; Description: "Create desktop shortcut"; GroupDescription: "Additional shortcuts:"
|
|
|
|
[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;
|