diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 4fceb75..34cc687 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -101,8 +101,13 @@ jobs: robocopy ./dependencies_bin/bin build/bin *.dll if ErrorLevel 8 (exit /B 1) copy LICENSE build\bin + copy build\inno-metadata\ppic.iss build\bin\ppic.iss + robocopy build\inno-metadata\Strings build\bin\Strings + if ErrorLevel 8 (exit /B 1) + iscc /Q build\bin\ppic.iss + if ErrorLevel 1 (exit /B 1) exit /B 0 - uses: actions/upload-artifact@v6 with: - name: "windows-msvc${{ matrix.vs }}-qt${{ matrix.qt_ver }}-cmake-package" - path: build/bin/* + name: "ppic-windows-msvc${{ matrix.vs }}-qt${{ matrix.qt_ver }}-cmake-setup" + path: build/bin/ppic-setup.exe diff --git a/CMakeLists.txt b/CMakeLists.txt index 1ec3754..0681a04 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -105,6 +105,7 @@ if (NOT UV_EXECUTABLE) endif () if (WIN32) + # Setup Windows RC files set (PPIC_RC_TEMPLATE_FILE ${CMAKE_CURRENT_BINARY_DIR}/pineapple-pictures.rc.in) execute_process ( COMMAND ${UV_EXECUTABLE} tool run metaglot render rc @@ -228,6 +229,24 @@ if (WIN32) set_target_properties(${EXE_NAME} PROPERTIES WIN32_EXECUTABLE TRUE ) + + # Setup Inno Setup script file + set (PPIC_INNO_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/inno-metadata) + execute_process ( + COMMAND ${UV_EXECUTABLE} tool run metaglot render inno + --manifest ${CMAKE_SOURCE_DIR}/dist/ppic.iss.in.toml + --po ${CMAKE_SOURCE_DIR}/locales/inno/*.po + --iss-template ${CMAKE_SOURCE_DIR}/dist/ppic.iss.in.liquid + --isl-template ${CMAKE_SOURCE_DIR}/dist/ppic.isl.liquid + --iss-path ppic.iss.in + --isl-path "Strings/{{ lang }}.isl" + --output ${PPIC_INNO_OUTPUT_DIR} + RESULT_VARIABLE METAGLOT_INNO_RESULT + ) + if (NOT METAGLOT_INNO_RESULT EQUAL 0) + message (FATAL_ERROR "Failed to render Inno Setup script via MetaGlot (exit code: ${METAGLOT_INNO_RESULT}).") + endif () + configure_file (${PPIC_INNO_OUTPUT_DIR}/ppic.iss.in ${PPIC_INNO_OUTPUT_DIR}/ppic.iss @ONLY) elseif (APPLE) # Include icon to project set_source_files_properties(dist/sarasacw-picture.icns PROPERTIES diff --git a/dist/ppic.isl.liquid b/dist/ppic.isl.liquid new file mode 100644 index 0000000..6b186a7 --- /dev/null +++ b/dist/ppic.isl.liquid @@ -0,0 +1,5 @@ +[CustomMessages] +MyAppName={{ strings.MyAppName | inno_escape }} +MyOther={{ strings.MyOther | inno_escape }} +MyAssociateWithFiles={{ strings.MyAssociateWithFiles | inno_escape }} +MyInstallVcRedist={{ strings.MyInstallVcRedist | inno_escape }} diff --git a/dist/ppic.iss.in.liquid b/dist/ppic.iss.in.liquid new file mode 100644 index 0000000..d59fed2 --- /dev/null +++ b/dist/ppic.iss.in.liquid @@ -0,0 +1,362 @@ +; Script for generating the Pineapple Pictures installer. + +#define MyAppName "Pineapple Pictures" +#define MyAppVersion "@PROJECT_VERSION@" +#define MyAppPublisher "BLumia" +#define MyAppURL "https://github.com/BLumia/pineapple-pictures" +#define MyAppExeName "ppic.exe" + +[Setup] +; NOTE: The value of AppId uniquely identifies this application. Do not use the same AppId value in installers for other applications. +; (To generate a new GUID, click Tools | Generate GUID inside the IDE.) +{% comment %} +The escaped double opening brace in the AppId value below is wrapped in a Liquid raw block, +because it would otherwise open a Liquid output tag. +{% endcomment %} +AppId={% raw %}{{B5291320-FE7C-4069-BF87-A0AC327FCD20}{% endraw %} +AppName={cm:MyAppName} +AppVersion={#MyAppVersion} ;{#MyAppName} {#MyAppVersion} +AppPublisher={#MyAppPublisher} +AppPublisherURL={#MyAppURL} +AppSupportURL={#MyAppURL} +AppUpdatesURL={#MyAppURL} +; Explicit literals (via preprocessor defines): the Setup.exe version info resource +; must not fall back to AppName, because AppName carries an Inno constant and the +; fallback yields an empty string in that case. +VersionInfoDescription={#MyAppName} Setup +VersionInfoProductName={#MyAppName} +DefaultDirName={autopf}\pineapple-pictures +UninstallDisplayIcon={app}\{#MyAppExeName} +; "ArchitecturesAllowed=x64compatible" specifies that Setup cannot run +; on anything but x64 and Windows 11 on Arm. +ArchitecturesAllowed=x64compatible +; "ArchitecturesInstallIn64BitMode=x64compatible" requests that the +; install be done in "64-bit mode" on x64 or Windows 11 on Arm, +; meaning it should use the native 64-bit Program Files directory and +; the 64-bit view of the registry. +ArchitecturesInstallIn64BitMode=x64compatible +ChangesAssociations=yes +DefaultGroupName={cm:MyAppName} +AllowNoIcons=yes +LicenseFile=LICENSE +; Uncomment the following line to run in non administrative install mode (install for current user only). +;PrivilegesRequired=lowest +PrivilegesRequiredOverridesAllowed=dialog +OutputDir=. +OutputBaseFilename=ppic-setup +SolidCompression=yes +WizardStyle=modern + +[Languages] +{% for lang in langs -%} +{% case lang -%} +{% when 'zh_CN' -%} +{% assign base = 'compiler:Languages\ChineseSimplified.isl' -%} +{% else -%} +{% assign base = 'compiler:Default.isl' -%} +{% endcase -%} +Name: "{{ lang }}"; MessagesFile: "{{ base }},Strings\{{ lang }}.isl" +{% endfor -%} + +[Tasks] +Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked +Name: "associatewithfiles"; Description: "{cm:MyAssociateWithFiles,{#MyAppName}}"; GroupDescription: "{cm:MyOther}" + +[Files] +; YYC MARK: +; This file MUST be placed with "ppic.exe" before compiling this script. +; Otherwise exception will be thrown. +Source: "{#MyAppExeName}"; DestDir: "{app}"; Flags: ignoreversion +Source: "*"; Excludes: "vc_redist.x64.exe,ppic-setup.exe,ppic.iss,Strings"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs +Source: "vc_redist.x64.exe"; DestDir: "{tmp}"; Flags: deleteafterinstall +; NOTE: Don't use "Flags: ignoreversion" on any shared system files + +[Registry] +; Registration scheme follows the app-registration model (App Paths + Applications +; keys plus per-family ProgIds), with all display names and icons referenced as +; indirect strings into ppic.exe itself (string table 1000-1028, icons 101-105), +; so the registry values stay language-neutral and Explorer resolves them per +; user UI language. Adding a new file family: copy a family block below, adjust +; the ProgId, string ID, icon ID and extension list, then add the extensions to +; SupportedTypes. String/icon IDs must exist in the Windows RC resources +; (dist/pineapple-pictures.rc.in.toml and dist/winrc-icos). + +; --- Application registration (always installed) --- + +; App Paths: lets the shell resolve "ppic.exe" by name and locates its DLL directory. +Root: HKA; Subkey: "Software\Microsoft\Windows\CurrentVersion\App Paths\ppic.exe"; ValueType: string; ValueName: ""; ValueData: "{app}\ppic.exe"; Flags: uninsdeletekey +Root: HKA; Subkey: "Software\Microsoft\Windows\CurrentVersion\App Paths\ppic.exe"; ValueType: string; ValueName: "Path"; ValueData: "{app}" +; Applications: makes ppic.exe itself appear in the "Open with" lists. +Root: HKA; Subkey: "Software\Classes\Applications\ppic.exe"; ValueType: string; ValueName: "FriendlyAppName"; ValueData: "@{app}\ppic.exe,-1000"; Flags: uninsdeletekey +Root: HKA; Subkey: "Software\Classes\Applications\ppic.exe"; ValueType: string; ValueName: "NoOpenWith"; ValueData: "" +Root: HKA; Subkey: "Software\Classes\Applications\ppic.exe\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\ppic.exe,-101" +Root: HKA; Subkey: "Software\Classes\Applications\ppic.exe\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\ppic.exe"" ""%1""" +; SupportedTypes: declares the supported types to filter the "Open with" dialog. +Root: HKA; Subkey: "Software\Classes\Applications\ppic.exe\SupportedTypes"; ValueType: string; ValueName: ".ani"; ValueData: "" +Root: HKA; Subkey: "Software\Classes\Applications\ppic.exe\SupportedTypes"; ValueType: string; ValueName: ".apng"; ValueData: "" +Root: HKA; Subkey: "Software\Classes\Applications\ppic.exe\SupportedTypes"; ValueType: string; ValueName: ".avif"; ValueData: "" +Root: HKA; Subkey: "Software\Classes\Applications\ppic.exe\SupportedTypes"; ValueType: string; ValueName: ".bmp"; ValueData: "" +Root: HKA; Subkey: "Software\Classes\Applications\ppic.exe\SupportedTypes"; ValueType: string; ValueName: ".bw"; ValueData: "" +Root: HKA; Subkey: "Software\Classes\Applications\ppic.exe\SupportedTypes"; ValueType: string; ValueName: ".dds"; ValueData: "" +Root: HKA; Subkey: "Software\Classes\Applications\ppic.exe\SupportedTypes"; ValueType: string; ValueName: ".exr"; ValueData: "" +Root: HKA; Subkey: "Software\Classes\Applications\ppic.exe\SupportedTypes"; ValueType: string; ValueName: ".gif"; ValueData: "" +Root: HKA; Subkey: "Software\Classes\Applications\ppic.exe\SupportedTypes"; ValueType: string; ValueName: ".hdr"; ValueData: "" +Root: HKA; Subkey: "Software\Classes\Applications\ppic.exe\SupportedTypes"; ValueType: string; ValueName: ".icns"; ValueData: "" +Root: HKA; Subkey: "Software\Classes\Applications\ppic.exe\SupportedTypes"; ValueType: string; ValueName: ".ico"; ValueData: "" +Root: HKA; Subkey: "Software\Classes\Applications\ppic.exe\SupportedTypes"; ValueType: string; ValueName: ".iff"; ValueData: "" +Root: HKA; Subkey: "Software\Classes\Applications\ppic.exe\SupportedTypes"; ValueType: string; ValueName: ".jfif"; ValueData: "" +Root: HKA; Subkey: "Software\Classes\Applications\ppic.exe\SupportedTypes"; ValueType: string; ValueName: ".jpeg"; ValueData: "" +Root: HKA; Subkey: "Software\Classes\Applications\ppic.exe\SupportedTypes"; ValueType: string; ValueName: ".jpg"; ValueData: "" +Root: HKA; Subkey: "Software\Classes\Applications\ppic.exe\SupportedTypes"; ValueType: string; ValueName: ".kra"; ValueData: "" +Root: HKA; Subkey: "Software\Classes\Applications\ppic.exe\SupportedTypes"; ValueType: string; ValueName: ".ora"; ValueData: "" +Root: HKA; Subkey: "Software\Classes\Applications\ppic.exe\SupportedTypes"; ValueType: string; ValueName: ".pdd"; ValueData: "" +Root: HKA; Subkey: "Software\Classes\Applications\ppic.exe\SupportedTypes"; ValueType: string; ValueName: ".pcx"; ValueData: "" +Root: HKA; Subkey: "Software\Classes\Applications\ppic.exe\SupportedTypes"; ValueType: string; ValueName: ".pfm"; ValueData: "" +Root: HKA; Subkey: "Software\Classes\Applications\ppic.exe\SupportedTypes"; ValueType: string; ValueName: ".phm"; ValueData: "" +Root: HKA; Subkey: "Software\Classes\Applications\ppic.exe\SupportedTypes"; ValueType: string; ValueName: ".pic"; ValueData: "" +Root: HKA; Subkey: "Software\Classes\Applications\ppic.exe\SupportedTypes"; ValueType: string; ValueName: ".png"; ValueData: "" +Root: HKA; Subkey: "Software\Classes\Applications\ppic.exe\SupportedTypes"; ValueType: string; ValueName: ".psb"; ValueData: "" +Root: HKA; Subkey: "Software\Classes\Applications\ppic.exe\SupportedTypes"; ValueType: string; ValueName: ".psd"; ValueData: "" +Root: HKA; Subkey: "Software\Classes\Applications\ppic.exe\SupportedTypes"; ValueType: string; ValueName: ".psdt"; ValueData: "" +Root: HKA; Subkey: "Software\Classes\Applications\ppic.exe\SupportedTypes"; ValueType: string; ValueName: ".pxr"; ValueData: "" +Root: HKA; Subkey: "Software\Classes\Applications\ppic.exe\SupportedTypes"; ValueType: string; ValueName: ".qoi"; ValueData: "" +Root: HKA; Subkey: "Software\Classes\Applications\ppic.exe\SupportedTypes"; ValueType: string; ValueName: ".ras"; ValueData: "" +Root: HKA; Subkey: "Software\Classes\Applications\ppic.exe\SupportedTypes"; ValueType: string; ValueName: ".rgb"; ValueData: "" +Root: HKA; Subkey: "Software\Classes\Applications\ppic.exe\SupportedTypes"; ValueType: string; ValueName: ".rgba"; ValueData: "" +Root: HKA; Subkey: "Software\Classes\Applications\ppic.exe\SupportedTypes"; ValueType: string; ValueName: ".sct"; ValueData: "" +Root: HKA; Subkey: "Software\Classes\Applications\ppic.exe\SupportedTypes"; ValueType: string; ValueName: ".sgi"; ValueData: "" +Root: HKA; Subkey: "Software\Classes\Applications\ppic.exe\SupportedTypes"; ValueType: string; ValueName: ".sun"; ValueData: "" +Root: HKA; Subkey: "Software\Classes\Applications\ppic.exe\SupportedTypes"; ValueType: string; ValueName: ".svg"; ValueData: "" +Root: HKA; Subkey: "Software\Classes\Applications\ppic.exe\SupportedTypes"; ValueType: string; ValueName: ".tga"; ValueData: "" +Root: HKA; Subkey: "Software\Classes\Applications\ppic.exe\SupportedTypes"; ValueType: string; ValueName: ".tif"; ValueData: "" +Root: HKA; Subkey: "Software\Classes\Applications\ppic.exe\SupportedTypes"; ValueType: string; ValueName: ".tiff"; ValueData: "" +Root: HKA; Subkey: "Software\Classes\Applications\ppic.exe\SupportedTypes"; ValueType: string; ValueName: ".wbmp"; ValueData: "" +Root: HKA; Subkey: "Software\Classes\Applications\ppic.exe\SupportedTypes"; ValueType: string; ValueName: ".webp"; ValueData: "" +Root: HKA; Subkey: "Software\Classes\Applications\ppic.exe\SupportedTypes"; ValueType: string; ValueName: ".xcf"; ValueData: "" + +; --- File type ProgId declarations (always installed) --- +; Per family: one ProgId shared by its extensions, always registered. Default +; value and FriendlyTypeName both carry the indirect string; DefaultIcon +; references the embedded icon by resource ID (101 app, 102 bmp, 103 gif, +; 104 jpg, 105 png). Only the OpenWithProgids line(s) at the end of each +; family block claim the actual association and are gated by the installer +; task "associatewithfiles". + +; JPEG family (string 1001, icon 104) +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Jpeg"; ValueType: string; ValueName: ""; ValueData: "@{app}\ppic.exe,-1001"; Flags: uninsdeletekey +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Jpeg"; ValueType: string; ValueName: "FriendlyTypeName"; ValueData: "@{app}\ppic.exe,-1001" +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Jpeg\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\ppic.exe,-104" +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Jpeg\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\ppic.exe"" ""%1""" +Root: HKA; Subkey: "Software\Classes\.jpg\OpenWithProgids"; ValueType: string; ValueName: "PineapplePictures.Jpeg"; ValueData: ""; Flags: uninsdeletevalue uninsdeletekeyifempty; Tasks: associatewithfiles +Root: HKA; Subkey: "Software\Classes\.jpeg\OpenWithProgids"; ValueType: string; ValueName: "PineapplePictures.Jpeg"; ValueData: ""; Flags: uninsdeletevalue uninsdeletekeyifempty; Tasks: associatewithfiles +Root: HKA; Subkey: "Software\Classes\.jfif\OpenWithProgids"; ValueType: string; ValueName: "PineapplePictures.Jpeg"; ValueData: ""; Flags: uninsdeletevalue uninsdeletekeyifempty; Tasks: associatewithfiles + +; GIF family (string 1002, icon 103) +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Gif"; ValueType: string; ValueName: ""; ValueData: "@{app}\ppic.exe,-1002"; Flags: uninsdeletekey +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Gif"; ValueType: string; ValueName: "FriendlyTypeName"; ValueData: "@{app}\ppic.exe,-1002" +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Gif\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\ppic.exe,-103" +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Gif\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\ppic.exe"" ""%1""" +Root: HKA; Subkey: "Software\Classes\.gif\OpenWithProgids"; ValueType: string; ValueName: "PineapplePictures.Gif"; ValueData: ""; Flags: uninsdeletevalue uninsdeletekeyifempty; Tasks: associatewithfiles + +; PNG family (string 1003, icon 105) +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Png"; ValueType: string; ValueName: ""; ValueData: "@{app}\ppic.exe,-1003"; Flags: uninsdeletekey +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Png"; ValueType: string; ValueName: "FriendlyTypeName"; ValueData: "@{app}\ppic.exe,-1003" +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Png\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\ppic.exe,-105" +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Png\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\ppic.exe"" ""%1""" +Root: HKA; Subkey: "Software\Classes\.png\OpenWithProgids"; ValueType: string; ValueName: "PineapplePictures.Png"; ValueData: ""; Flags: uninsdeletevalue uninsdeletekeyifempty; Tasks: associatewithfiles +Root: HKA; Subkey: "Software\Classes\.apng\OpenWithProgids"; ValueType: string; ValueName: "PineapplePictures.Png"; ValueData: ""; Flags: uninsdeletevalue uninsdeletekeyifempty; Tasks: associatewithfiles + +; SVG (string 1004, icon 105 - transparency capable) +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Svg"; ValueType: string; ValueName: ""; ValueData: "@{app}\ppic.exe,-1004"; Flags: uninsdeletekey +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Svg"; ValueType: string; ValueName: "FriendlyTypeName"; ValueData: "@{app}\ppic.exe,-1004" +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Svg\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\ppic.exe,-105" +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Svg\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\ppic.exe"" ""%1""" +Root: HKA; Subkey: "Software\Classes\.svg\OpenWithProgids"; ValueType: string; ValueName: "PineapplePictures.Svg"; ValueData: ""; Flags: uninsdeletevalue uninsdeletekeyifempty; Tasks: associatewithfiles + +; WebP (string 1005, icon 105 - transparency capable) +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Webp"; ValueType: string; ValueName: ""; ValueData: "@{app}\ppic.exe,-1005"; Flags: uninsdeletekey +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Webp"; ValueType: string; ValueName: "FriendlyTypeName"; ValueData: "@{app}\ppic.exe,-1005" +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Webp\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\ppic.exe,-105" +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Webp\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\ppic.exe"" ""%1""" +Root: HKA; Subkey: "Software\Classes\.webp\OpenWithProgids"; ValueType: string; ValueName: "PineapplePictures.Webp"; ValueData: ""; Flags: uninsdeletevalue uninsdeletekeyifempty; Tasks: associatewithfiles + +; AVIF (string 1006, icon 105 - transparency capable) +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Avif"; ValueType: string; ValueName: ""; ValueData: "@{app}\ppic.exe,-1006"; Flags: uninsdeletekey +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Avif"; ValueType: string; ValueName: "FriendlyTypeName"; ValueData: "@{app}\ppic.exe,-1006" +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Avif\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\ppic.exe,-105" +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Avif\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\ppic.exe"" ""%1""" +Root: HKA; Subkey: "Software\Classes\.avif\OpenWithProgids"; ValueType: string; ValueName: "PineapplePictures.Avif"; ValueData: ""; Flags: uninsdeletevalue uninsdeletekeyifempty; Tasks: associatewithfiles + +; ICO (string 1007, icon 105 - transparency capable) +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Ico"; ValueType: string; ValueName: ""; ValueData: "@{app}\ppic.exe,-1007"; Flags: uninsdeletekey +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Ico"; ValueType: string; ValueName: "FriendlyTypeName"; ValueData: "@{app}\ppic.exe,-1007" +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Ico\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\ppic.exe,-105" +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Ico\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\ppic.exe"" ""%1""" +Root: HKA; Subkey: "Software\Classes\.ico\OpenWithProgids"; ValueType: string; ValueName: "PineapplePictures.Ico"; ValueData: ""; Flags: uninsdeletevalue uninsdeletekeyifempty; Tasks: associatewithfiles + +; ICNS (string 1008, icon 105 - transparency capable) +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Icns"; ValueType: string; ValueName: ""; ValueData: "@{app}\ppic.exe,-1008"; Flags: uninsdeletekey +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Icns"; ValueType: string; ValueName: "FriendlyTypeName"; ValueData: "@{app}\ppic.exe,-1008" +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Icns\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\ppic.exe,-105" +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Icns\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\ppic.exe"" ""%1""" +Root: HKA; Subkey: "Software\Classes\.icns\OpenWithProgids"; ValueType: string; ValueName: "PineapplePictures.Icns"; ValueData: ""; Flags: uninsdeletevalue uninsdeletekeyifempty; Tasks: associatewithfiles + +; Photoshop family (string 1009, icon 102 - artwork) +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Psd"; ValueType: string; ValueName: ""; ValueData: "@{app}\ppic.exe,-1009"; Flags: uninsdeletekey +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Psd"; ValueType: string; ValueName: "FriendlyTypeName"; ValueData: "@{app}\ppic.exe,-1009" +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Psd\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\ppic.exe,-102" +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Psd\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\ppic.exe"" ""%1""" +Root: HKA; Subkey: "Software\Classes\.psd\OpenWithProgids"; ValueType: string; ValueName: "PineapplePictures.Psd"; ValueData: ""; Flags: uninsdeletevalue uninsdeletekeyifempty; Tasks: associatewithfiles +Root: HKA; Subkey: "Software\Classes\.psb\OpenWithProgids"; ValueType: string; ValueName: "PineapplePictures.Psd"; ValueData: ""; Flags: uninsdeletevalue uninsdeletekeyifempty; Tasks: associatewithfiles +Root: HKA; Subkey: "Software\Classes\.pdd\OpenWithProgids"; ValueType: string; ValueName: "PineapplePictures.Psd"; ValueData: ""; Flags: uninsdeletevalue uninsdeletekeyifempty; Tasks: associatewithfiles +Root: HKA; Subkey: "Software\Classes\.psdt\OpenWithProgids"; ValueType: string; ValueName: "PineapplePictures.Psd"; ValueData: ""; Flags: uninsdeletevalue uninsdeletekeyifempty; Tasks: associatewithfiles + +; Krita (string 1010, icon 102 - artwork) +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Kra"; ValueType: string; ValueName: ""; ValueData: "@{app}\ppic.exe,-1010"; Flags: uninsdeletekey +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Kra"; ValueType: string; ValueName: "FriendlyTypeName"; ValueData: "@{app}\ppic.exe,-1010" +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Kra\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\ppic.exe,-102" +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Kra\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\ppic.exe"" ""%1""" +Root: HKA; Subkey: "Software\Classes\.kra\OpenWithProgids"; ValueType: string; ValueName: "PineapplePictures.Kra"; ValueData: ""; Flags: uninsdeletevalue uninsdeletekeyifempty; Tasks: associatewithfiles + +; GIMP XCF (string 1011, icon 102 - artwork) +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Xcf"; ValueType: string; ValueName: ""; ValueData: "@{app}\ppic.exe,-1011"; Flags: uninsdeletekey +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Xcf"; ValueType: string; ValueName: "FriendlyTypeName"; ValueData: "@{app}\ppic.exe,-1011" +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Xcf\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\ppic.exe,-102" +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Xcf\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\ppic.exe"" ""%1""" +Root: HKA; Subkey: "Software\Classes\.xcf\OpenWithProgids"; ValueType: string; ValueName: "PineapplePictures.Xcf"; ValueData: ""; Flags: uninsdeletevalue uninsdeletekeyifempty; Tasks: associatewithfiles + +; TARGA (string 1012, icon 102 - artwork) +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Tga"; ValueType: string; ValueName: ""; ValueData: "@{app}\ppic.exe,-1012"; Flags: uninsdeletekey +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Tga"; ValueType: string; ValueName: "FriendlyTypeName"; ValueData: "@{app}\ppic.exe,-1012" +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Tga\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\ppic.exe,-102" +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Tga\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\ppic.exe"" ""%1""" +Root: HKA; Subkey: "Software\Classes\.tga\OpenWithProgids"; ValueType: string; ValueName: "PineapplePictures.Tga"; ValueData: ""; Flags: uninsdeletevalue uninsdeletekeyifempty; Tasks: associatewithfiles + +; TIFF family (string 1013, icon 104 - photo) +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Tif"; ValueType: string; ValueName: ""; ValueData: "@{app}\ppic.exe,-1013"; Flags: uninsdeletekey +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Tif"; ValueType: string; ValueName: "FriendlyTypeName"; ValueData: "@{app}\ppic.exe,-1013" +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Tif\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\ppic.exe,-104" +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Tif\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\ppic.exe"" ""%1""" +Root: HKA; Subkey: "Software\Classes\.tif\OpenWithProgids"; ValueType: string; ValueName: "PineapplePictures.Tif"; ValueData: ""; Flags: uninsdeletevalue uninsdeletekeyifempty; Tasks: associatewithfiles +Root: HKA; Subkey: "Software\Classes\.tiff\OpenWithProgids"; ValueType: string; ValueName: "PineapplePictures.Tif"; ValueData: ""; Flags: uninsdeletevalue uninsdeletekeyifempty; Tasks: associatewithfiles + +; BMP (string 1014, icon 102) +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Bmp"; ValueType: string; ValueName: ""; ValueData: "@{app}\ppic.exe,-1014"; Flags: uninsdeletekey +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Bmp"; ValueType: string; ValueName: "FriendlyTypeName"; ValueData: "@{app}\ppic.exe,-1014" +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Bmp\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\ppic.exe,-102" +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Bmp\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\ppic.exe"" ""%1""" +Root: HKA; Subkey: "Software\Classes\.bmp\OpenWithProgids"; ValueType: string; ValueName: "PineapplePictures.Bmp"; ValueData: ""; Flags: uninsdeletevalue uninsdeletekeyifempty; Tasks: associatewithfiles + +; Wireless BMP (string 1015, icon 102) +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Wbmp"; ValueType: string; ValueName: ""; ValueData: "@{app}\ppic.exe,-1015"; Flags: uninsdeletekey +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Wbmp"; ValueType: string; ValueName: "FriendlyTypeName"; ValueData: "@{app}\ppic.exe,-1015" +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Wbmp\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\ppic.exe,-102" +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Wbmp\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\ppic.exe"" ""%1""" +Root: HKA; Subkey: "Software\Classes\.wbmp\OpenWithProgids"; ValueType: string; ValueName: "PineapplePictures.Wbmp"; ValueData: ""; Flags: uninsdeletevalue uninsdeletekeyifempty; Tasks: associatewithfiles + +; DirectDraw Surface (string 1016, icon 102 - artwork) +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Dds"; ValueType: string; ValueName: ""; ValueData: "@{app}\ppic.exe,-1016"; Flags: uninsdeletekey +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Dds"; ValueType: string; ValueName: "FriendlyTypeName"; ValueData: "@{app}\ppic.exe,-1016" +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Dds\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\ppic.exe,-102" +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Dds\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\ppic.exe"" ""%1""" +Root: HKA; Subkey: "Software\Classes\.dds\OpenWithProgids"; ValueType: string; ValueName: "PineapplePictures.Dds"; ValueData: ""; Flags: uninsdeletevalue uninsdeletekeyifempty; Tasks: associatewithfiles + +; HDR family incl. EXR (string 1017, icon 104 - photo) +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Hdr"; ValueType: string; ValueName: ""; ValueData: "@{app}\ppic.exe,-1017"; Flags: uninsdeletekey +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Hdr"; ValueType: string; ValueName: "FriendlyTypeName"; ValueData: "@{app}\ppic.exe,-1017" +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Hdr\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\ppic.exe,-104" +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Hdr\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\ppic.exe"" ""%1""" +Root: HKA; Subkey: "Software\Classes\.hdr\OpenWithProgids"; ValueType: string; ValueName: "PineapplePictures.Hdr"; ValueData: ""; Flags: uninsdeletevalue uninsdeletekeyifempty; Tasks: associatewithfiles +Root: HKA; Subkey: "Software\Classes\.exr\OpenWithProgids"; ValueType: string; ValueName: "PineapplePictures.Hdr"; ValueData: ""; Flags: uninsdeletevalue uninsdeletekeyifempty; Tasks: associatewithfiles + +; IFF (string 1018, icon 104 - fallback) +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Iff"; ValueType: string; ValueName: ""; ValueData: "@{app}\ppic.exe,-1018"; Flags: uninsdeletekey +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Iff"; ValueType: string; ValueName: "FriendlyTypeName"; ValueData: "@{app}\ppic.exe,-1018" +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Iff\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\ppic.exe,-104" +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Iff\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\ppic.exe"" ""%1""" +Root: HKA; Subkey: "Software\Classes\.iff\OpenWithProgids"; ValueType: string; ValueName: "PineapplePictures.Iff"; ValueData: ""; Flags: uninsdeletevalue uninsdeletekeyifempty; Tasks: associatewithfiles + +; Softimage PIC (string 1019, icon 104 - fallback) +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Pic"; ValueType: string; ValueName: ""; ValueData: "@{app}\ppic.exe,-1019"; Flags: uninsdeletekey +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Pic"; ValueType: string; ValueName: "FriendlyTypeName"; ValueData: "@{app}\ppic.exe,-1019" +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Pic\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\ppic.exe,-104" +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Pic\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\ppic.exe"" ""%1""" +Root: HKA; Subkey: "Software\Classes\.pic\OpenWithProgids"; ValueType: string; ValueName: "PineapplePictures.Pic"; ValueData: ""; Flags: uninsdeletevalue uninsdeletekeyifempty; Tasks: associatewithfiles + +; PCX (string 1020, icon 104 - fallback) +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Pcx"; ValueType: string; ValueName: ""; ValueData: "@{app}\ppic.exe,-1020"; Flags: uninsdeletekey +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Pcx"; ValueType: string; ValueName: "FriendlyTypeName"; ValueData: "@{app}\ppic.exe,-1020" +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Pcx\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\ppic.exe,-104" +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Pcx\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\ppic.exe"" ""%1""" +Root: HKA; Subkey: "Software\Classes\.pcx\OpenWithProgids"; ValueType: string; ValueName: "PineapplePictures.Pcx"; ValueData: ""; Flags: uninsdeletevalue uninsdeletekeyifempty; Tasks: associatewithfiles + +; QOI (string 1021, icon 105 - transparency capable) +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Qoi"; ValueType: string; ValueName: ""; ValueData: "@{app}\ppic.exe,-1021"; Flags: uninsdeletekey +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Qoi"; ValueType: string; ValueName: "FriendlyTypeName"; ValueData: "@{app}\ppic.exe,-1021" +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Qoi\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\ppic.exe,-105" +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Qoi\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\ppic.exe"" ""%1""" +Root: HKA; Subkey: "Software\Classes\.qoi\OpenWithProgids"; ValueType: string; ValueName: "PineapplePictures.Qoi"; ValueData: ""; Flags: uninsdeletevalue uninsdeletekeyifempty; Tasks: associatewithfiles + +; Sun Raster family (string 1022, icon 104 - fallback) +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Ras"; ValueType: string; ValueName: ""; ValueData: "@{app}\ppic.exe,-1022"; Flags: uninsdeletekey +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Ras"; ValueType: string; ValueName: "FriendlyTypeName"; ValueData: "@{app}\ppic.exe,-1022" +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Ras\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\ppic.exe,-104" +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Ras\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\ppic.exe"" ""%1""" +Root: HKA; Subkey: "Software\Classes\.ras\OpenWithProgids"; ValueType: string; ValueName: "PineapplePictures.Ras"; ValueData: ""; Flags: uninsdeletevalue uninsdeletekeyifempty; Tasks: associatewithfiles +Root: HKA; Subkey: "Software\Classes\.sun\OpenWithProgids"; ValueType: string; ValueName: "PineapplePictures.Ras"; ValueData: ""; Flags: uninsdeletevalue uninsdeletekeyifempty; Tasks: associatewithfiles + +; OpenRaster (string 1023, icon 102 - artwork) +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Ora"; ValueType: string; ValueName: ""; ValueData: "@{app}\ppic.exe,-1023"; Flags: uninsdeletekey +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Ora"; ValueType: string; ValueName: "FriendlyTypeName"; ValueData: "@{app}\ppic.exe,-1023" +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Ora\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\ppic.exe,-102" +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Ora\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\ppic.exe"" ""%1""" +Root: HKA; Subkey: "Software\Classes\.ora\OpenWithProgids"; ValueType: string; ValueName: "PineapplePictures.Ora"; ValueData: ""; Flags: uninsdeletevalue uninsdeletekeyifempty; Tasks: associatewithfiles + +; Animated Cursor (string 1024, icon 103 - animated) +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Ani"; ValueType: string; ValueName: ""; ValueData: "@{app}\ppic.exe,-1024"; Flags: uninsdeletekey +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Ani"; ValueType: string; ValueName: "FriendlyTypeName"; ValueData: "@{app}\ppic.exe,-1024" +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Ani\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\ppic.exe,-103" +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Ani\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\ppic.exe"" ""%1""" +Root: HKA; Subkey: "Software\Classes\.ani\OpenWithProgids"; ValueType: string; ValueName: "PineapplePictures.Ani"; ValueData: ""; Flags: uninsdeletevalue uninsdeletekeyifempty; Tasks: associatewithfiles + +; Portable Float Map family (string 1025, icon 104 - photo/HDR) +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Pfm"; ValueType: string; ValueName: ""; ValueData: "@{app}\ppic.exe,-1025"; Flags: uninsdeletekey +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Pfm"; ValueType: string; ValueName: "FriendlyTypeName"; ValueData: "@{app}\ppic.exe,-1025" +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Pfm\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\ppic.exe,-104" +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Pfm\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\ppic.exe"" ""%1""" +Root: HKA; Subkey: "Software\Classes\.pfm\OpenWithProgids"; ValueType: string; ValueName: "PineapplePictures.Pfm"; ValueData: ""; Flags: uninsdeletevalue uninsdeletekeyifempty; Tasks: associatewithfiles +Root: HKA; Subkey: "Software\Classes\.phm\OpenWithProgids"; ValueType: string; ValueName: "PineapplePictures.Pfm"; ValueData: ""; Flags: uninsdeletevalue uninsdeletekeyifempty; Tasks: associatewithfiles + +; Silicon Graphics family (string 1026, icon 104 - fallback) +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Rgb"; ValueType: string; ValueName: ""; ValueData: "@{app}\ppic.exe,-1026"; Flags: uninsdeletekey +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Rgb"; ValueType: string; ValueName: "FriendlyTypeName"; ValueData: "@{app}\ppic.exe,-1026" +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Rgb\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\ppic.exe,-104" +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Rgb\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\ppic.exe"" ""%1""" +Root: HKA; Subkey: "Software\Classes\.rgb\OpenWithProgids"; ValueType: string; ValueName: "PineapplePictures.Rgb"; ValueData: ""; Flags: uninsdeletevalue uninsdeletekeyifempty; Tasks: associatewithfiles +Root: HKA; Subkey: "Software\Classes\.rgba\OpenWithProgids"; ValueType: string; ValueName: "PineapplePictures.Rgb"; ValueData: ""; Flags: uninsdeletevalue uninsdeletekeyifempty; Tasks: associatewithfiles +Root: HKA; Subkey: "Software\Classes\.bw\OpenWithProgids"; ValueType: string; ValueName: "PineapplePictures.Rgb"; ValueData: ""; Flags: uninsdeletevalue uninsdeletekeyifempty; Tasks: associatewithfiles +Root: HKA; Subkey: "Software\Classes\.sgi\OpenWithProgids"; ValueType: string; ValueName: "PineapplePictures.Rgb"; ValueData: ""; Flags: uninsdeletevalue uninsdeletekeyifempty; Tasks: associatewithfiles + +; Pixar (string 1027, icon 104 - fallback) +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Pxr"; ValueType: string; ValueName: ""; ValueData: "@{app}\ppic.exe,-1027"; Flags: uninsdeletekey +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Pxr"; ValueType: string; ValueName: "FriendlyTypeName"; ValueData: "@{app}\ppic.exe,-1027" +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Pxr\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\ppic.exe,-104" +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Pxr\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\ppic.exe"" ""%1""" +Root: HKA; Subkey: "Software\Classes\.pxr\OpenWithProgids"; ValueType: string; ValueName: "PineapplePictures.Pxr"; ValueData: ""; Flags: uninsdeletevalue uninsdeletekeyifempty; Tasks: associatewithfiles + +; Scitex CT (string 1028, icon 104 - fallback) +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Sct"; ValueType: string; ValueName: ""; ValueData: "@{app}\ppic.exe,-1028"; Flags: uninsdeletekey +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Sct"; ValueType: string; ValueName: "FriendlyTypeName"; ValueData: "@{app}\ppic.exe,-1028" +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Sct\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\ppic.exe,-104" +Root: HKA; Subkey: "Software\Classes\PineapplePictures.Sct\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\ppic.exe"" ""%1""" +Root: HKA; Subkey: "Software\Classes\.sct\OpenWithProgids"; ValueType: string; ValueName: "PineapplePictures.Sct"; ValueData: ""; Flags: uninsdeletevalue uninsdeletekeyifempty; Tasks: associatewithfiles + +[Icons] +Name: "{group}\{cm:MyAppName}"; Filename: "{app}\{#MyAppExeName}" +Name: "{group}\{cm:ProgramOnTheWeb,{#MyAppName}}"; Filename: "https://github.com/BLumia/pineapple-pictures" +Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}" +Name: "{autodesktop}\{cm:MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon + +[Run] +Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#MyAppName}}"; Flags: nowait postinstall skipifsilent +Filename: "{tmp}\vc_redist.x64.exe"; Parameters: "/install /quiet /norestart"; StatusMsg: "{cm:MyInstallVcRedist}"; Flags: waituntilterminated diff --git a/dist/ppic.iss.in.toml b/dist/ppic.iss.in.toml new file mode 100644 index 0000000..78f96a6 --- /dev/null +++ b/dist/ppic.iss.in.toml @@ -0,0 +1,18 @@ +version = 1 +source_language = "en" + +[strings.MyAppName] +msgid = "Pineapple Pictures" +comment = "Display name of the application, used in the installer UI." + +[strings.MyOther] +msgid = "Other:" +comment = "Group caption for the extra installer task options." + +[strings.MyAssociateWithFiles] +msgid = "Associate %1 with its supported file types." +comment = "Installer task description. %1 is the application name." + +[strings.MyInstallVcRedist] +msgid = "Installing Microsoft Visual C++ Redistributable..." +comment = "Status message shown while installing the VC++ runtime." diff --git a/locales/inno/inno.pot b/locales/inno/inno.pot new file mode 100644 index 0000000..8863d42 --- /dev/null +++ b/locales/inno/inno.pot @@ -0,0 +1,28 @@ +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: MetaGlot/polib\n" + +#. Display name of the application, used in the installer UI. +msgid "Pineapple Pictures" +msgstr "" + +#. Group caption for the extra installer task options. +msgid "Other:" +msgstr "" + +#. Installer task description. %1 is the application name. +msgid "Associate %1 with its supported file types." +msgstr "" + +#. Status message shown while installing the VC++ runtime. +msgid "Installing Microsoft Visual C++ Redistributable..." +msgstr "" diff --git a/locales/inno/zh_CN.po b/locales/inno/zh_CN.po new file mode 100644 index 0000000..b8b2252 --- /dev/null +++ b/locales/inno/zh_CN.po @@ -0,0 +1,24 @@ +msgid "" +msgstr "" +"Project-Id-Version: pineapple-pictures\n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. Display name of the application, used in the installer UI. +msgid "Pineapple Pictures" +msgstr "菠萝看图" + +#. Group caption for the extra installer task options. +msgid "Other:" +msgstr "其他:" + +#. Installer task description. %1 is the application name. +msgid "Associate %1 with its supported file types." +msgstr "将 %1 与其支持的文件类型关联。" + +#. Status message shown while installing the VC++ runtime. +msgid "Installing Microsoft Visual C++ Redistributable..." +msgstr "正在安装 Microsoft Visual C++ 运行库..."