Warning, file /frameworks/syntax-highlighting/autotests/html/installer_krita.nsi.html was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 <!DOCTYPE html> 0002 <html><head> 0003 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> 0004 <title>installer_krita.nsi</title> 0005 <meta name="generator" content="KF5::SyntaxHighlighting - Definition (NSIS) - Theme (Breeze Light)"/> 0006 </head><body style="background-color:#ffffff;color:#1f1c1b"><pre> 0007 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">ifndef</span> KRITA_INSTALLER_32 <span style="color:#ca60ca;">&</span> KRITA_INSTALLER_64 0008 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">error</span> <span style="color:#bf0303;">"Either one of KRITA_INSTALLER_32 or KRITA_INSTALLER_64 must be defined."</span> 0009 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">endif</span> 0010 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">ifdef</span> KRITA_INSTALLER_32 <span style="color:#ca60ca;">&</span> KRITA_INSTALLER_64 0011 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">error</span> <span style="color:#bf0303;">"Only one of KRITA_INSTALLER_32 or KRITA_INSTALLER_64 should be defined."</span> 0012 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">endif</span> 0013 0014 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">ifndef</span> KRITA_PACKAGE_ROOT 0015 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">error</span> <span style="color:#bf0303;">"KRITA_PACKAGE_ROOT should be defined and point to the root of the package files."</span> 0016 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">endif</span> 0017 0018 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">ifdef</span> KRITA_INSTALLER_64 0019 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">define</span> KRITA_INSTALLER_BITNESS 64 0020 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">else</span> 0021 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">define</span> KRITA_INSTALLER_BITNESS 32 0022 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">endif</span> 0023 0024 <span style="color:#0095ff;font-weight:bold;">Unicode</span> true 0025 # Enabling DPI awareness creates awful CJK text in some sizes<span style="color:#ca60ca;">,</span> so don't enable it. 0026 <span style="color:#0095ff;font-weight:bold;">ManifestDPIAware</span> false 0027 0028 # Krita constants <span style="color:#ca60ca;">(</span>can be overridden in command line params<span style="color:#ca60ca;">)</span> 0029 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">define</span> /<span style="font-weight:bold;">ifndef</span> KRITA_VERSION <span style="color:#bf0303;">"0.0.0.0"</span> 0030 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">define</span> /<span style="font-weight:bold;">ifndef</span> KRITA_VERSION_DISPLAY <span style="color:#bf0303;">"test-version"</span> 0031 #<span style="color:#ca60ca;">!</span><span style="font-weight:bold;">define</span> /<span style="font-weight:bold;">ifndef</span> KRITA_VERSION_GIT <span style="color:#bf0303;">""</span> 0032 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">define</span> /<span style="font-weight:bold;">ifndef</span> KRITA_INSTALLER_OUTPUT_DIR <span style="color:#bf0303;">""</span> 0033 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">ifdef</span> KRITA_INSTALLER_64 0034 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">define</span> /<span style="font-weight:bold;">ifndef</span> KRITA_INSTALLER_OUTPUT_NAME <span style="color:#bf0303;">"krita_x64_setup.exe"</span> 0035 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">else</span> 0036 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">define</span> /<span style="font-weight:bold;">ifndef</span> KRITA_INSTALLER_OUTPUT_NAME <span style="color:#bf0303;">"krita_x86_setup.exe"</span> 0037 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">endif</span> 0038 0039 # Krita constants <span style="color:#ca60ca;">(</span>fixed<span style="color:#ca60ca;">)</span> 0040 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">if</span> <span style="color:#bf0303;">"${KRITA_INSTALLER_OUTPUT_DIR}"</span> <span style="color:#ca60ca;">==</span> <span style="color:#bf0303;">""</span> 0041 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">define</span> KRITA_INSTALLER_OUTPUT <span style="color:#bf0303;">"${KRITA_INSTALLER_OUTPUT_NAME}"</span> 0042 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">else</span> 0043 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">define</span> KRITA_INSTALLER_OUTPUT <span style="color:#bf0303;">"${KRITA_INSTALLER_OUTPUT_DIR}\${KRITA_INSTALLER_OUTPUT_NAME}"</span> 0044 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">endif</span> 0045 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">define</span> KRTIA_PUBLISHER <span style="color:#bf0303;">"Krita Foundation"</span> 0046 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">ifdef</span> KRITA_INSTALLER_64 0047 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">define</span> KRITA_PRODUCTNAME <span style="color:#bf0303;">"Krita (x64)"</span> 0048 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">define</span> KRITA_UNINSTALL_REGKEY <span style="color:#bf0303;">"Krita_x64"</span> 0049 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">else</span> 0050 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">define</span> KRITA_PRODUCTNAME <span style="color:#bf0303;">"Krita (x86)"</span> 0051 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">define</span> KRITA_UNINSTALL_REGKEY <span style="color:#bf0303;">"Krita_x86"</span> 0052 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">endif</span> 0053 0054 <span style="color:#0095ff;font-weight:bold;">VIProductVersion</span> <span style="color:#bf0303;">"${KRITA_VERSION}"</span> 0055 <span style="color:#0095ff;font-weight:bold;">VIAddVersionKey</span> <span style="color:#bf0303;">"CompanyName"</span> <span style="color:#bf0303;">"${KRTIA_PUBLISHER}"</span> 0056 <span style="color:#0095ff;font-weight:bold;">VIAddVersionKey</span> <span style="color:#bf0303;">"FileDescription"</span> <span style="color:#bf0303;">"${KRITA_PRODUCTNAME} ${KRITA_VERSION_DISPLAY} Setup"</span> 0057 <span style="color:#0095ff;font-weight:bold;">VIAddVersionKey</span> <span style="color:#bf0303;">"FileVersion"</span> <span style="color:#bf0303;">"${KRITA_VERSION}"</span> 0058 <span style="color:#0095ff;font-weight:bold;">VIAddVersionKey</span> <span style="color:#bf0303;">"InternalName"</span> <span style="color:#bf0303;">"${KRITA_INSTALLER_OUTPUT_NAME}"</span> 0059 <span style="color:#0095ff;font-weight:bold;">VIAddVersionKey</span> <span style="color:#bf0303;">"LegalCopyright"</span> <span style="color:#bf0303;">"${KRTIA_PUBLISHER}"</span> 0060 <span style="color:#0095ff;font-weight:bold;">VIAddVersionKey</span> <span style="color:#bf0303;">"OriginalFileName"</span> <span style="color:#bf0303;">"${KRITA_INSTALLER_OUTPUT_NAME}"</span> 0061 <span style="color:#0095ff;font-weight:bold;">VIAddVersionKey</span> <span style="color:#bf0303;">"ProductName"</span> <span style="color:#bf0303;">"${KRITA_PRODUCTNAME} ${KRITA_VERSION_DISPLAY} Setup"</span> 0062 <span style="color:#0095ff;font-weight:bold;">VIAddVersionKey</span> <span style="color:#bf0303;">"ProductVersion"</span> <span style="color:#bf0303;">"${KRITA_VERSION}"</span> 0063 0064 <span style="color:#0095ff;font-weight:bold;">BrandingText</span> <span style="color:#bf0303;">"[NSIS ${NSIS_VERSION}] ${KRITA_PRODUCTNAME} ${KRITA_VERSION}"</span> 0065 0066 <span style="color:#0095ff;font-weight:bold;">Name</span> <span style="color:#bf0303;">"${KRITA_PRODUCTNAME} ${KRITA_VERSION_DISPLAY}"</span> 0067 <span style="color:#0095ff;font-weight:bold;">OutFile</span> $<span style="color:#ca60ca;">{</span>KRITA_INSTALLER_OUTPUT<span style="color:#ca60ca;">}</span> 0068 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">ifdef</span> KRITA_INSTALLER_64 0069 <span style="color:#0095ff;font-weight:bold;">InstallDir</span> <span style="color:#bf0303;">"$PROGRAMFILES64\Krita (x64)"</span> 0070 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">else</span> 0071 <span style="color:#0095ff;font-weight:bold;">InstallDir</span> <span style="color:#bf0303;">"$PROGRAMFILES32\Krita (x86)"</span> 0072 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">endif</span> 0073 XPstyle on 0074 0075 <span style="color:#0095ff;font-weight:bold;">ShowInstDetails</span> show 0076 <span style="color:#0095ff;font-weight:bold;">ShowUninstDetails</span> show 0077 0078 <span style="color:#0095ff;font-weight:bold;">Var</span> KritaStartMenuFolder 0079 <span style="color:#0095ff;font-weight:bold;">Var</span> CreateDesktopIcon 0080 0081 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">include</span> MUI2.nsh 0082 0083 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">define</span> <span style="color:#9500ff;font-weight:bold;">MUI_FINISHPAGE_NOAUTOCLOSE</span> 0084 0085 # Installer Pages 0086 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">insertmacro</span> <span style="color:#9500ff;font-weight:bold;">MUI_PAGE_WELCOME</span> 0087 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">define</span> <span style="color:#9500ff;font-weight:bold;">MUI_LICENSEPAGE_CHECKBOX</span> 0088 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">insertmacro</span> <span style="color:#9500ff;font-weight:bold;">MUI_PAGE_LICENSE</span> <span style="color:#bf0303;">"license_gpl-3.0.rtf"</span> 0089 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">insertmacro</span> <span style="color:#9500ff;font-weight:bold;">MUI_PAGE_DIRECTORY</span> 0090 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">insertmacro</span> <span style="color:#9500ff;font-weight:bold;">MUI_PAGE_COMPONENTS</span> 0091 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">define</span> <span style="color:#9500ff;font-weight:bold;">MUI_PAGE_CUSTOMFUNCTION_PRE</span> func_ShellExLicensePage_Init 0092 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">define</span> <span style="color:#9500ff;font-weight:bold;">MUI_PAGE_HEADER_TEXT</span> <span style="color:#bf0303;">"$(ShellExLicensePageHeader)"</span> 0093 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">insertmacro</span> <span style="color:#9500ff;font-weight:bold;">MUI_PAGE_LICENSE</span> <span style="color:#bf0303;">"license.rtf"</span> 0094 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">define</span> <span style="color:#9500ff;font-weight:bold;">MUI_STARTMENUPAGE_DEFAULTFOLDER</span> <span style="color:#bf0303;">"Krita"</span> 0095 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">define</span> <span style="color:#9500ff;font-weight:bold;">MUI_STARTMENUPAGE_REGISTRY_ROOT</span> HKLM 0096 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">define</span> <span style="color:#9500ff;font-weight:bold;">MUI_STARTMENUPAGE_REGISTRY_KEY</span> <span style="color:#bf0303;">"Software\Krita"</span> 0097 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">define</span> <span style="color:#9500ff;font-weight:bold;">MUI_STARTMENUPAGE_REGISTRY_VALUENAME</span> <span style="color:#bf0303;">"StartMenuFolder"</span> 0098 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">define</span> <span style="color:#9500ff;font-weight:bold;">MUI_STARTMENUPAGE_NODISABLE</span> 0099 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">insertmacro</span> <span style="color:#9500ff;font-weight:bold;">MUI_PAGE_STARTMENU</span> Krita $KritaStartMenuFolder 0100 <span style="color:#0095ff;font-weight:bold;">Page</span> Custom func_BeforeInstallPage_Init 0101 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">insertmacro</span> <span style="color:#9500ff;font-weight:bold;">MUI_PAGE_INSTFILES</span> 0102 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">insertmacro</span> <span style="color:#9500ff;font-weight:bold;">MUI_PAGE_FINISH</span> 0103 0104 # Uninstaller Pages 0105 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">define</span> <span style="color:#9500ff;font-weight:bold;">MUI_PAGE_CUSTOMFUNCTION_PRE</span> un.func_UnintallFirstpage_Init 0106 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">insertmacro</span> <span style="color:#9500ff;font-weight:bold;">MUI_UNPAGE_CONFIRM</span> 0107 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">insertmacro</span> <span style="color:#9500ff;font-weight:bold;">MUI_UNPAGE_INSTFILES</span> 0108 0109 # Languages 0110 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">insertmacro</span> <span style="color:#9500ff;font-weight:bold;">MUI_LANGUAGE</span> <span style="color:#bf0303;">"English"</span> 0111 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">insertmacro</span> <span style="color:#9500ff;font-weight:bold;">MUI_LANGUAGE</span> <span style="color:#bf0303;">"TradChinese"</span> 0112 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">insertmacro</span> <span style="color:#9500ff;font-weight:bold;">MUI_LANGUAGE</span> <span style="color:#bf0303;">"SimpChinese"</span> 0113 0114 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">include</span> Sections.nsh 0115 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">include</span> LogicLib.nsh 0116 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">include</span> x64.nsh 0117 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">include</span> WinVer.nsh 0118 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">include</span> WordFunc.nsh 0119 0120 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">define</span> KRITA_SHELLEX_DIR <span style="color:#bf0303;">"$INSTDIR\shellex"</span> 0121 0122 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">include</span> <span style="color:#bf0303;">"include\FileExists2.nsh"</span> 0123 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">include</span> <span style="color:#bf0303;">"include\IsFileInUse.nsh"</span> 0124 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">include</span> <span style="color:#bf0303;">"krita_versions_detect.nsh"</span> 0125 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">include</span> <span style="color:#bf0303;">"krita_shell_integration.nsh"</span> 0126 0127 <span style="color:#0095ff;font-weight:bold;">Var</span> KritaMsiProductX86 0128 <span style="color:#0095ff;font-weight:bold;">Var</span> KritaMsiProductX64 0129 <span style="color:#0095ff;font-weight:bold;">Var</span> KritaNsisVersion 0130 <span style="color:#0095ff;font-weight:bold;">Var</span> KritaNsisBitness 0131 <span style="color:#0095ff;font-weight:bold;">Var</span> KritaNsisInstallLocation 0132 0133 <span style="color:#0095ff;font-weight:bold;">Var</span> PrevShellExInstallLocation 0134 <span style="color:#0095ff;font-weight:bold;">Var</span> PrevShellExStandalone 0135 0136 <span style="color:#0095ff;font-weight:bold;">Var</span> UninstallShellExStandalone 0137 0138 <span style="color:#0095ff;font-weight:bold;">Section</span> <span style="color:#bf0303;">"-Remove_shellex"</span> SEC_remove_shellex 0139 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">If</span><span style="color:#ca60ca;">}</span> $PrevShellExInstallLocation <span style="color:#ca60ca;">!=</span> <span style="color:#bf0303;">""</span> 0140 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">AndIf</span><span style="color:#ca60ca;">}</span> $PrevShellExStandalone <span style="color:#ca60ca;">==</span> 1 0141 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">AndIf</span><span style="color:#ca60ca;">}</span> $KritaNsisVersion <span style="color:#ca60ca;">==</span> <span style="color:#bf0303;">""</span> 0142 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">AndIf</span><span style="color:#ca60ca;">}</span> $<span style="color:#ca60ca;">{</span>FileExists<span style="color:#ca60ca;">}</span> <span style="color:#bf0303;">"$PrevShellExInstallLocation\uninstall.exe"</span> 0143 push $R0 0144 <span style="color:#0095ff;font-weight:bold;">DetailPrint</span> <span style="color:#bf0303;">"$(RemovingShellEx)"</span> 0145 <span style="color:#0095ff;font-weight:bold;">SetDetailsPrint</span> listonly 0146 <span style="color:#0095ff;font-weight:bold;">ExecWait</span> <span style="color:#bf0303;">"$PrevShellExInstallLocation\uninstall.exe /S _?=$PrevShellExInstallLocation"</span> $R0 0147 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">If</span><span style="color:#ca60ca;">}</span> $R0 <span style="color:#ca60ca;">!=</span> 0 0148 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">IfNot</span><span style="color:#ca60ca;">}</span> $<span style="color:#ca60ca;">{</span>Silent<span style="color:#ca60ca;">}</span> 0149 <span style="color:#0095ff;font-weight:bold;">MessageBox</span> <span style="color:#9500ff;font-weight:bold;">MB_OK</span><span style="color:#ca60ca;">|</span>MB_ICONSTOP <span style="color:#bf0303;">"$(RemoveShellExFailed)"</span> 0150 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">EndIf</span><span style="color:#ca60ca;">}</span> 0151 <span style="color:#0095ff;font-weight:bold;">SetDetailsPrint</span> both 0152 <span style="color:#0095ff;font-weight:bold;">DetailPrint</span> <span style="color:#bf0303;">"$(RemoveShellExFailed)"</span> 0153 <span style="color:#0095ff;font-weight:bold;">Abort</span> 0154 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">EndIf</span><span style="color:#ca60ca;">}</span> 0155 <span style="color:#0095ff;font-weight:bold;">Delete</span> <span style="color:#bf0303;">"$PrevShellExInstallLocation\uninstall.exe"</span> 0156 <span style="color:#0095ff;font-weight:bold;">RMDir</span> /REBOOTOK <span style="color:#bf0303;">"$PrevShellExInstallLocation"</span> 0157 <span style="color:#0095ff;font-weight:bold;">SetRebootFlag</span> false 0158 <span style="color:#0095ff;font-weight:bold;">SetDetailsPrint</span> lastused 0159 <span style="color:#0095ff;font-weight:bold;">DetailPrint</span> <span style="color:#bf0303;">"$(RemoveShellExDone)"</span> 0160 pop $R0 0161 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">EndIf</span><span style="color:#ca60ca;">}</span> 0162 <span style="color:#0095ff;font-weight:bold;">SectionEnd</span> 0163 0164 <span style="color:#0095ff;font-weight:bold;">Section</span> <span style="color:#bf0303;">"$(SectionRemoveOldVer)"</span> SEC_remove_old_version 0165 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">If</span><span style="color:#ca60ca;">}</span> $KritaNsisInstallLocation <span style="color:#ca60ca;">!=</span> <span style="color:#bf0303;">""</span> 0166 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">AndIf</span><span style="color:#ca60ca;">}</span> $<span style="color:#ca60ca;">{</span>FileExists<span style="color:#ca60ca;">}</span> <span style="color:#bf0303;">"$KritaNsisInstallLocation\uninstall.exe"</span> 0167 push $R0 0168 <span style="color:#0095ff;font-weight:bold;">DetailPrint</span> <span style="color:#bf0303;">"$(RemovingOldVer)"</span> 0169 <span style="color:#0095ff;font-weight:bold;">SetDetailsPrint</span> listonly 0170 <span style="color:#0095ff;font-weight:bold;">ExecWait</span> <span style="color:#bf0303;">"$KritaNsisInstallLocation\uninstall.exe /S _?=$KritaNsisInstallLocation"</span> $R0 0171 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">If</span><span style="color:#ca60ca;">}</span> $R0 <span style="color:#ca60ca;">!=</span> 0 0172 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">IfNot</span><span style="color:#ca60ca;">}</span> $<span style="color:#ca60ca;">{</span>Silent<span style="color:#ca60ca;">}</span> 0173 <span style="color:#0095ff;font-weight:bold;">MessageBox</span> <span style="color:#9500ff;font-weight:bold;">MB_OK</span><span style="color:#ca60ca;">|</span>MB_ICONSTOP <span style="color:#bf0303;">"$(RemoveOldVerFailed)"</span> 0174 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">EndIf</span><span style="color:#ca60ca;">}</span> 0175 <span style="color:#0095ff;font-weight:bold;">SetDetailsPrint</span> both 0176 <span style="color:#0095ff;font-weight:bold;">DetailPrint</span> <span style="color:#bf0303;">"$(RemoveOldVerFailed)"</span> 0177 <span style="color:#0095ff;font-weight:bold;">Abort</span> 0178 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">EndIf</span><span style="color:#ca60ca;">}</span> 0179 <span style="color:#0095ff;font-weight:bold;">Delete</span> <span style="color:#bf0303;">"$KritaNsisInstallLocation\uninstall.exe"</span> 0180 <span style="color:#0095ff;font-weight:bold;">RMDir</span> /REBOOTOK <span style="color:#bf0303;">"$KritaNsisInstallLocation"</span> 0181 <span style="color:#0095ff;font-weight:bold;">SetRebootFlag</span> false 0182 <span style="color:#0095ff;font-weight:bold;">SetDetailsPrint</span> lastused 0183 <span style="color:#0095ff;font-weight:bold;">DetailPrint</span> <span style="color:#bf0303;">"$(RemoveOldVerDone)"</span> 0184 pop $R0 0185 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">EndIf</span><span style="color:#ca60ca;">}</span> 0186 <span style="color:#0095ff;font-weight:bold;">SectionEnd</span> 0187 0188 <span style="color:#0095ff;font-weight:bold;">Section</span> <span style="color:#bf0303;">"-Thing"</span> 0189 <span style="color:#0095ff;font-weight:bold;">SetOutPath</span> $INSTDIR 0190 <span style="color:#0095ff;font-weight:bold;">WriteRegStr</span> HKLM <span style="color:#bf0303;">"Software\Microsoft\Windows\CurrentVersion\Uninstall\${KRITA_UNINSTALL_REGKEY}"</span> \ 0191 <span style="color:#bf0303;">"DisplayName"</span> <span style="color:#bf0303;">"${KRITA_PRODUCTNAME} ${KRITA_VERSION_DISPLAY}"</span> 0192 <span style="color:#0095ff;font-weight:bold;">WriteRegStr</span> HKLM <span style="color:#bf0303;">"Software\Microsoft\Windows\CurrentVersion\Uninstall\${KRITA_UNINSTALL_REGKEY}"</span> \ 0193 <span style="color:#bf0303;">"UninstallString"</span> <span style="color:#bf0303;">"$\"</span>$INSTDIR\uninstall.exe$\<span style="color:#bf0303;">""</span> 0194 <span style="color:#0095ff;font-weight:bold;">WriteUninstaller</span> $INSTDIR\uninstall.exe 0195 <span style="color:#0095ff;font-weight:bold;">WriteRegStr</span> HKLM <span style="color:#bf0303;">"Software\Microsoft\Windows\CurrentVersion\Uninstall\${KRITA_UNINSTALL_REGKEY}"</span> \ 0196 <span style="color:#bf0303;">"DisplayVersion"</span> <span style="color:#bf0303;">"${KRITA_VERSION}"</span> 0197 <span style="color:#0095ff;font-weight:bold;">WriteRegStr</span> HKLM <span style="color:#bf0303;">"Software\Microsoft\Windows\CurrentVersion\Uninstall\${KRITA_UNINSTALL_REGKEY}"</span> \ 0198 <span style="color:#bf0303;">"DisplayIcon"</span> <span style="color:#bf0303;">"$\"</span>$INSTDIR\shellex\krita.ico$\<span style="color:#bf0303;">",0"</span> 0199 <span style="color:#0095ff;font-weight:bold;">WriteRegStr</span> HKLM <span style="color:#bf0303;">"Software\Microsoft\Windows\CurrentVersion\Uninstall\${KRITA_UNINSTALL_REGKEY}"</span> \ 0200 <span style="color:#bf0303;">"URLInfoAbout"</span> <span style="color:#bf0303;">"https://krita.org/"</span> 0201 <span style="color:#0095ff;font-weight:bold;">WriteRegStr</span> HKLM <span style="color:#bf0303;">"Software\Microsoft\Windows\CurrentVersion\Uninstall\${KRITA_UNINSTALL_REGKEY}"</span> \ 0202 <span style="color:#bf0303;">"InstallLocation"</span> <span style="color:#bf0303;">"$INSTDIR"</span> 0203 <span style="color:#0095ff;font-weight:bold;">WriteRegStr</span> HKLM <span style="color:#bf0303;">"Software\Microsoft\Windows\CurrentVersion\Uninstall\${KRITA_UNINSTALL_REGKEY}"</span> \ 0204 <span style="color:#bf0303;">"Publisher"</span> <span style="color:#bf0303;">"${KRTIA_PUBLISHER}"</span> 0205 #WriteRegDWORD HKLM <span style="color:#bf0303;">"Software\Microsoft\Windows\CurrentVersion\Uninstall\${KRITA_UNINSTALL_REGKEY}"</span> \ 0206 # <span style="color:#bf0303;">"EstimatedSize"</span> 250000 0207 <span style="color:#0095ff;font-weight:bold;">WriteRegDWORD</span> HKLM <span style="color:#bf0303;">"Software\Microsoft\Windows\CurrentVersion\Uninstall\${KRITA_UNINSTALL_REGKEY}"</span> \ 0208 <span style="color:#bf0303;">"NoModify"</span> 1 0209 <span style="color:#0095ff;font-weight:bold;">WriteRegDWORD</span> HKLM <span style="color:#bf0303;">"Software\Microsoft\Windows\CurrentVersion\Uninstall\${KRITA_UNINSTALL_REGKEY}"</span> \ 0210 <span style="color:#bf0303;">"NoRepair"</span> 1 0211 # Registry entries for version recognition 0212 # InstallLocation: 0213 # Where krita is installed 0214 <span style="color:#0095ff;font-weight:bold;">WriteRegStr</span> HKLM <span style="color:#bf0303;">"Software\Krita"</span> \ 0215 <span style="color:#bf0303;">"InstallLocation"</span> <span style="color:#bf0303;">"$INSTDIR"</span> 0216 # Version: 0217 # Version of Krita 0218 <span style="color:#0095ff;font-weight:bold;">WriteRegStr</span> HKLM <span style="color:#bf0303;">"Software\Krita"</span> \ 0219 <span style="color:#bf0303;">"Version"</span> <span style="color:#bf0303;">"${KRITA_VERSION}"</span> 0220 # x64: 0221 # Set to 1 for 64<span style="color:#ca60ca;">-</span>bit Krita<span style="color:#ca60ca;">,</span> can be missing for 32<span style="color:#ca60ca;">-</span>bit Krita 0222 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">ifdef</span> KRITA_INSTALLER_64 0223 <span style="color:#0095ff;font-weight:bold;">WriteRegDWORD</span> HKLM <span style="color:#bf0303;">"Software\Krita"</span> \ 0224 <span style="color:#bf0303;">"x64"</span> 1 0225 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">else</span> 0226 <span style="color:#0095ff;font-weight:bold;">DeleteRegValue</span> HKLM <span style="color:#bf0303;">"Software\Krita"</span> <span style="color:#bf0303;">"x64"</span> 0227 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">endif</span> 0228 # InstallerLanguage: 0229 # Language used by the installer <span style="color:#ca60ca;">(</span>to be re<span style="color:#ca60ca;">-</span>used for the uninstaller<span style="color:#ca60ca;">)</span> 0230 <span style="color:#0095ff;font-weight:bold;">WriteRegStr</span> HKLM <span style="color:#bf0303;">"Software\Krita"</span> \ 0231 <span style="color:#bf0303;">"InstallerLanguage"</span> <span style="color:#bf0303;">"$LANGUAGE"</span> 0232 # StartMenuFolder: 0233 # Start Menu Folder 0234 # Handled by Modern UI 2.0 <span style="color:#9500ff;font-weight:bold;">MUI_PAGE_STARTMENU</span> 0235 <span style="color:#0095ff;font-weight:bold;">SectionEnd</span> 0236 0237 <span style="color:#0095ff;font-weight:bold;">Section</span> <span style="color:#bf0303;">"${KRITA_PRODUCTNAME}"</span> SEC_product_main 0238 # TODO: Maybe switch to explicit file list<span style="color:#ca60ca;">?</span> 0239 <span style="color:#0095ff;font-weight:bold;">File</span> /r /x ffmpeg.exe /x ffmpeg_README.txt /x ffmpeg_LICENSE.txt $<span style="color:#ca60ca;">{</span>KRITA_PACKAGE_ROOT<span style="color:#ca60ca;">}</span>\bin 0240 <span style="color:#0095ff;font-weight:bold;">File</span> /r $<span style="color:#ca60ca;">{</span>KRITA_PACKAGE_ROOT<span style="color:#ca60ca;">}</span>\lib 0241 <span style="color:#0095ff;font-weight:bold;">File</span> /r $<span style="color:#ca60ca;">{</span>KRITA_PACKAGE_ROOT<span style="color:#ca60ca;">}</span>\share 0242 <span style="color:#0095ff;font-weight:bold;">File</span> /r $<span style="color:#ca60ca;">{</span>KRITA_PACKAGE_ROOT<span style="color:#ca60ca;">}</span>\python 0243 <span style="color:#0095ff;font-weight:bold;">SectionEnd</span> 0244 0245 <span style="color:#0095ff;font-weight:bold;">Section</span> <span style="color:#bf0303;">"-Main_associate"</span> 0246 <span style="color:#0095ff;font-weight:bold;">CreateDirectory</span> $<span style="color:#ca60ca;">{</span>KRITA_SHELLEX_DIR<span style="color:#ca60ca;">}</span> 0247 $<span style="color:#ca60ca;">{</span>Krita_RegisterFileAssociation<span style="color:#ca60ca;">}</span> <span style="color:#bf0303;">"$INSTDIR\bin\krita.exe"</span> 0248 <span style="color:#0095ff;font-weight:bold;">SectionEnd</span> 0249 0250 <span style="color:#0095ff;font-weight:bold;">Section</span> <span style="color:#bf0303;">"-Main_Shortcuts"</span> 0251 # Placing this after Krita_RegisterFileAssociation to get the icon 0252 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">insertmacro</span> <span style="color:#9500ff;font-weight:bold;">MUI_STARTMENU_WRITE_BEGIN</span> Krita 0253 <span style="color:#0095ff;font-weight:bold;">CreateDirectory</span> <span style="color:#bf0303;">"$SMPROGRAMS\$KritaStartMenuFolder"</span> 0254 <span style="color:#0095ff;font-weight:bold;">CreateShortcut</span> <span style="color:#bf0303;">"$SMPROGRAMS\$KritaStartMenuFolder\${KRITA_PRODUCTNAME}.lnk"</span> <span style="color:#bf0303;">"$INSTDIR\bin\krita.exe"</span> <span style="color:#bf0303;">""</span> <span style="color:#bf0303;">"$INSTDIR\shellex\krita.ico"</span> 0 0255 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">insertmacro</span> <span style="color:#9500ff;font-weight:bold;">MUI_STARTMENU_WRITE_END</span> 0256 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">If</span><span style="color:#ca60ca;">}</span> $CreateDesktopIcon <span style="color:#ca60ca;">==</span> 1 0257 # <span style="color:#9500ff;font-weight:bold;">For</span> the desktop icon<span style="color:#ca60ca;">,</span> keep the name short and omit version info 0258 <span style="color:#0095ff;font-weight:bold;">CreateShortcut</span> <span style="color:#bf0303;">"$DESKTOP\Krita.lnk"</span> <span style="color:#bf0303;">"$INSTDIR\bin\krita.exe"</span> <span style="color:#bf0303;">""</span> <span style="color:#bf0303;">"$INSTDIR\shellex\krita.ico"</span> 0 0259 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">EndIf</span><span style="color:#ca60ca;">}</span> 0260 <span style="color:#0095ff;font-weight:bold;">SectionEnd</span> 0261 0262 <span style="color:#0095ff;font-weight:bold;">Section</span> <span style="color:#bf0303;">"$(SectionShellEx)"</span> SEC_shellex 0263 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">If</span><span style="color:#ca60ca;">}</span> $<span style="color:#ca60ca;">{</span>RunningX64<span style="color:#ca60ca;">}</span> 0264 $<span style="color:#ca60ca;">{</span>Krita_RegisterComComonents<span style="color:#ca60ca;">}</span> 64 0265 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">EndIf</span><span style="color:#ca60ca;">}</span> 0266 $<span style="color:#ca60ca;">{</span>Krita_RegisterComComonents<span style="color:#ca60ca;">}</span> 32 0267 0268 $<span style="color:#ca60ca;">{</span>Krita_RegisterShellExtension<span style="color:#ca60ca;">}</span> 0269 0270 # ShellExtension\InstallLocation: 0271 # Where the shell extension is installed 0272 # <span style="color:#9500ff;font-weight:bold;">If</span> installed by Krita installer<span style="color:#ca60ca;">,</span> this must point to shellex sub<span style="color:#ca60ca;">-</span>dir 0273 <span style="color:#0095ff;font-weight:bold;">WriteRegStr</span> HKLM <span style="color:#bf0303;">"Software\Krita\ShellExtension"</span> \ 0274 <span style="color:#bf0303;">"InstallLocation"</span> <span style="color:#bf0303;">"$INSTDIR\shellex"</span> 0275 # ShellExtension\Version: 0276 # Version of the shell extension 0277 <span style="color:#0095ff;font-weight:bold;">WriteRegStr</span> HKLM <span style="color:#bf0303;">"Software\Krita\ShellExtension"</span> \ 0278 <span style="color:#bf0303;">"Version"</span> <span style="color:#bf0303;">"${KRITASHELLEX_VERSION}"</span> 0279 # ShellExtension\Standalone: 0280 # 0 <span style="color:#ca60ca;">=</span> Installed by Krita installer 0281 # 1 <span style="color:#ca60ca;">=</span> Standalone installer 0282 <span style="color:#0095ff;font-weight:bold;">WriteRegDWORD</span> HKLM <span style="color:#bf0303;">"Software\Krita\ShellExtension"</span> \ 0283 <span style="color:#bf0303;">"Standalone"</span> 0 0284 # ShellExtension\KritaExePath: 0285 # Path to krita.exe as specified by user or by Krita installer 0286 # Empty <span style="font-weight:bold;">if</span> not specified 0287 <span style="color:#0095ff;font-weight:bold;">WriteRegStr</span> HKLM <span style="color:#bf0303;">"Software\Krita\ShellExtension"</span> \ 0288 <span style="color:#bf0303;">"KritaExePath"</span> <span style="color:#bf0303;">"$INSTDIR\bin\krita.exe"</span> 0289 <span style="color:#0095ff;font-weight:bold;">SectionEnd</span> 0290 0291 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">ifdef</span> HAS_FFMPEG 0292 <span style="color:#0095ff;font-weight:bold;">Section</span> <span style="color:#bf0303;">"$(SectionBundledFfmpeg)"</span> SEC_ffmpeg 0293 <span style="color:#0095ff;font-weight:bold;">File</span> /oname<span style="color:#ca60ca;">=</span>bin\ffmpeg.exe $<span style="color:#ca60ca;">{</span>KRITA_PACKAGE_ROOT<span style="color:#ca60ca;">}</span>\bin\ffmpeg.exe 0294 <span style="color:#0095ff;font-weight:bold;">File</span> /oname<span style="color:#ca60ca;">=</span>bin\ffmpeg_LICENSE.txt $<span style="color:#ca60ca;">{</span>KRITA_PACKAGE_ROOT<span style="color:#ca60ca;">}</span>\bin\ffmpeg_LICENSE.txt 0295 <span style="color:#0095ff;font-weight:bold;">File</span> /oname<span style="color:#ca60ca;">=</span>bin\ffmpeg_README.txt $<span style="color:#ca60ca;">{</span>KRITA_PACKAGE_ROOT<span style="color:#ca60ca;">}</span>\bin\ffmpeg_README.txt 0296 <span style="color:#0095ff;font-weight:bold;">SectionEnd</span> 0297 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">endif</span> 0298 0299 <span style="color:#0095ff;font-weight:bold;">Section</span> <span style="color:#bf0303;">"-Main_refreshShell"</span> 0300 $<span style="color:#ca60ca;">{</span>RefreshShell<span style="color:#ca60ca;">}</span> 0301 <span style="color:#0095ff;font-weight:bold;">SectionEnd</span> 0302 0303 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">insertmacro</span> <span style="color:#9500ff;font-weight:bold;">MUI_FUNCTION_DESCRIPTION_BEGIN</span> 0304 #<span style="color:#ca60ca;">!</span><span style="font-weight:bold;">insertmacro</span> <span style="color:#9500ff;font-weight:bold;">MUI_DESCRIPTION_TEXT</span> $<span style="color:#ca60ca;">{</span>SEC_remove_shellex<span style="color:#ca60ca;">}</span> <span style="color:#bf0303;">"Remove previously installed Krita Shell Integration."</span> 0305 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">insertmacro</span> <span style="color:#9500ff;font-weight:bold;">MUI_DESCRIPTION_TEXT</span> $<span style="color:#ca60ca;">{</span>SEC_remove_old_version<span style="color:#ca60ca;">}</span> <span style="color:#bf0303;">"$(SectionRemoveOldVerDesc)"</span> 0306 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">insertmacro</span> <span style="color:#9500ff;font-weight:bold;">MUI_DESCRIPTION_TEXT</span> $<span style="color:#ca60ca;">{</span>SEC_product_main<span style="color:#ca60ca;">}</span> <span style="color:#bf0303;">"$(SectionMainDesc)"</span> 0307 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">insertmacro</span> <span style="color:#9500ff;font-weight:bold;">MUI_DESCRIPTION_TEXT</span> $<span style="color:#ca60ca;">{</span>SEC_shellex<span style="color:#ca60ca;">}</span> <span style="color:#bf0303;">"$(SectionShellExDesc)"</span> 0308 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">ifdef</span> HAS_FFMPEG 0309 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">insertmacro</span> <span style="color:#9500ff;font-weight:bold;">MUI_DESCRIPTION_TEXT</span> $<span style="color:#ca60ca;">{</span>SEC_ffmpeg<span style="color:#ca60ca;">}</span> <span style="color:#bf0303;">"$(SectionBundledFfmpegDesc)"</span> 0310 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">endif</span> 0311 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">insertmacro</span> <span style="color:#9500ff;font-weight:bold;">MUI_FUNCTION_DESCRIPTION_END</span> 0312 0313 <span style="color:#0095ff;font-weight:bold;">Section</span> <span style="color:#bf0303;">"un.$(SectionShellEx)"</span> 0314 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">If</span><span style="color:#ca60ca;">}</span> $UninstallShellExStandalone <span style="color:#ca60ca;">==</span> 1 0315 push $R0 0316 <span style="color:#0095ff;font-weight:bold;">DetailPrint</span> <span style="color:#bf0303;">"$(RemovingShellEx)"</span> 0317 <span style="color:#0095ff;font-weight:bold;">SetDetailsPrint</span> listonly 0318 <span style="color:#0095ff;font-weight:bold;">ExecWait</span> <span style="color:#bf0303;">"$INSTDIR\shellex\uninstall.exe /S _?=$INSTDIR\shellex"</span> $R0 0319 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">If</span><span style="color:#ca60ca;">}</span> $R0 <span style="color:#ca60ca;">!=</span> 0 0320 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">IfNot</span><span style="color:#ca60ca;">}</span> $<span style="color:#ca60ca;">{</span>Silent<span style="color:#ca60ca;">}</span> 0321 <span style="color:#0095ff;font-weight:bold;">MessageBox</span> <span style="color:#9500ff;font-weight:bold;">MB_OK</span><span style="color:#ca60ca;">|</span>MB_ICONSTOP <span style="color:#bf0303;">"$(RemoveShellExFailed)"</span> 0322 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">EndIf</span><span style="color:#ca60ca;">}</span> 0323 <span style="color:#0095ff;font-weight:bold;">SetDetailsPrint</span> lastused 0324 <span style="color:#0095ff;font-weight:bold;">SetDetailsPrint</span> both 0325 <span style="color:#0095ff;font-weight:bold;">DetailPrint</span> <span style="color:#bf0303;">"$(RemoveShellExFailed)"</span> 0326 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">EndIf</span><span style="color:#ca60ca;">}</span> 0327 <span style="color:#0095ff;font-weight:bold;">Delete</span> <span style="color:#bf0303;">"$INSTDIR\shellex\uninstall.exe"</span> 0328 <span style="color:#0095ff;font-weight:bold;">RMDir</span> /REBOOTOK <span style="color:#bf0303;">"$INSTDIR\shellex"</span> 0329 <span style="color:#0095ff;font-weight:bold;">SetDetailsPrint</span> lastused 0330 <span style="color:#0095ff;font-weight:bold;">DetailPrint</span> <span style="color:#bf0303;">"$(RemoveShellExDone)"</span> 0331 pop $R0 0332 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">Else</span><span style="color:#ca60ca;">}</span> 0333 $<span style="color:#ca60ca;">{</span>Krita_UnregisterShellExtension<span style="color:#ca60ca;">}</span> 0334 0335 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">If</span><span style="color:#ca60ca;">}</span> $<span style="color:#ca60ca;">{</span>RunningX64<span style="color:#ca60ca;">}</span> 0336 $<span style="color:#ca60ca;">{</span>Krita_UnregisterComComonents<span style="color:#ca60ca;">}</span> 64 0337 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">EndIf</span><span style="color:#ca60ca;">}</span> 0338 $<span style="color:#ca60ca;">{</span>Krita_UnregisterComComonents<span style="color:#ca60ca;">}</span> 32 0339 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">EndIf</span><span style="color:#ca60ca;">}</span> 0340 <span style="color:#0095ff;font-weight:bold;">SectionEnd</span> 0341 0342 <span style="color:#0095ff;font-weight:bold;">Section</span> <span style="color:#bf0303;">"un.Main_associate"</span> 0343 # TODO: Conditional<span style="color:#ca60ca;">,</span> use install log 0344 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">If</span><span style="color:#ca60ca;">}</span> $UninstallShellExStandalone <span style="color:#ca60ca;">!=</span> 1 0345 $<span style="color:#ca60ca;">{</span>Krita_UnregisterFileAssociation<span style="color:#ca60ca;">}</span> 0346 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">EndIf</span><span style="color:#ca60ca;">}</span> 0347 <span style="color:#0095ff;font-weight:bold;">SectionEnd</span> 0348 0349 <span style="color:#0095ff;font-weight:bold;">Section</span> <span style="color:#bf0303;">"un.Main_Shortcuts"</span> 0350 <span style="color:#0095ff;font-weight:bold;">Delete</span> <span style="color:#bf0303;">"$DESKTOP\Krita.lnk"</span> 0351 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">insertmacro</span> MUI_STARTMENU_GETFOLDER Krita $KritaStartMenuFolder 0352 <span style="color:#0095ff;font-weight:bold;">Delete</span> <span style="color:#bf0303;">"$SMPROGRAMS\$KritaStartMenuFolder\${KRITA_PRODUCTNAME}.lnk"</span> 0353 <span style="color:#0095ff;font-weight:bold;">RMDir</span> <span style="color:#bf0303;">"$SMPROGRAMS\$KritaStartMenuFolder"</span> 0354 <span style="color:#0095ff;font-weight:bold;">SectionEnd</span> 0355 0356 <span style="color:#0095ff;font-weight:bold;">Section</span> <span style="color:#bf0303;">"un.${KRITA_PRODUCTNAME}"</span> 0357 # TODO: Maybe switch to explicit file list or some sort of install log<span style="color:#ca60ca;">?</span> 0358 <span style="color:#0095ff;font-weight:bold;">RMDir</span> /r $INSTDIR\bin 0359 <span style="color:#0095ff;font-weight:bold;">RMDir</span> /r $INSTDIR\lib 0360 <span style="color:#0095ff;font-weight:bold;">RMDir</span> /r $INSTDIR\share 0361 <span style="color:#0095ff;font-weight:bold;">RMDir</span> /r $INSTDIR\python 0362 <span style="color:#0095ff;font-weight:bold;">SectionEnd</span> 0363 0364 <span style="color:#0095ff;font-weight:bold;">Section</span> <span style="color:#bf0303;">"un.Thing"</span> 0365 <span style="color:#0095ff;font-weight:bold;">RMDir</span> /REBOOTOK $INSTDIR\shellex 0366 <span style="color:#0095ff;font-weight:bold;">DeleteRegKey</span> HKLM <span style="color:#bf0303;">"Software\Krita"</span> 0367 <span style="color:#0095ff;font-weight:bold;">DeleteRegKey</span> HKLM <span style="color:#bf0303;">"Software\Microsoft\Windows\CurrentVersion\Uninstall\${KRITA_UNINSTALL_REGKEY}"</span> 0368 <span style="color:#0095ff;font-weight:bold;">Delete</span> $INSTDIR\uninstall.exe 0369 <span style="color:#0095ff;font-weight:bold;">RMDir</span> /REBOOTOK $INSTDIR 0370 <span style="color:#0095ff;font-weight:bold;">SectionEnd</span> 0371 0372 <span style="color:#0095ff;font-weight:bold;">Section</span> <span style="color:#bf0303;">"un.Main_refreshShell"</span> 0373 $<span style="color:#ca60ca;">{</span>RefreshShell<span style="color:#ca60ca;">}</span> 0374 <span style="color:#0095ff;font-weight:bold;">SectionEnd</span> 0375 0376 <span style="color:#0095ff;font-weight:bold;">Function</span> .onInit 0377 <span style="color:#0095ff;font-weight:bold;">SetShellVarContext</span> all 0378 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">insertmacro</span> SetSectionFlag $<span style="color:#ca60ca;">{</span>SEC_product_main<span style="color:#ca60ca;">}</span> $<span style="color:#ca60ca;">{</span>SF_RO<span style="color:#ca60ca;">}</span> 0379 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">insertmacro</span> SetSectionFlag $<span style="color:#ca60ca;">{</span>SEC_product_main<span style="color:#ca60ca;">}</span> $<span style="color:#ca60ca;">{</span>SF_BOLD<span style="color:#ca60ca;">}</span> 0380 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">insertmacro</span> SetSectionFlag $<span style="color:#ca60ca;">{</span>SEC_remove_old_version<span style="color:#ca60ca;">}</span> $<span style="color:#ca60ca;">{</span>SF_RO<span style="color:#ca60ca;">}</span> 0381 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">ifdef</span> HAS_FFMPEG 0382 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">insertmacro</span> SetSectionFlag $<span style="color:#ca60ca;">{</span>SEC_ffmpeg<span style="color:#ca60ca;">}</span> $<span style="color:#ca60ca;">{</span>SF_RO<span style="color:#ca60ca;">}</span> 0383 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">endif</span> 0384 <span style="color:#0095ff;font-weight:bold;">StrCpy</span> $CreateDesktopIcon 1 # Create desktop icon by default 0385 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">IfNot</span><span style="color:#ca60ca;">}</span> $<span style="color:#ca60ca;">{</span>AtLeastWin7<span style="color:#ca60ca;">}</span> 0386 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">IfNot</span><span style="color:#ca60ca;">}</span> $<span style="color:#ca60ca;">{</span>Silent<span style="color:#ca60ca;">}</span> 0387 <span style="color:#0095ff;font-weight:bold;">MessageBox</span> <span style="color:#9500ff;font-weight:bold;">MB_OK</span><span style="color:#ca60ca;">|</span>MB_ICONSTOP <span style="color:#bf0303;">"$(MsgRequireWin7)"</span> 0388 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">EndIf</span><span style="color:#ca60ca;">}</span> 0389 <span style="color:#0095ff;font-weight:bold;">Abort</span> 0390 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">EndIf</span><span style="color:#ca60ca;">}</span> 0391 0392 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">IfNot</span><span style="color:#ca60ca;">}</span> $<span style="color:#ca60ca;">{</span>Silent<span style="color:#ca60ca;">}</span> 0393 # Language selection<span style="color:#ca60ca;">,</span> seems that the order is predefined. 0394 <span style="color:#0095ff;font-weight:bold;">Push</span> <span style="color:#bf0303;">""</span> # This value is for languages auto count 0395 <span style="color:#0095ff;font-weight:bold;">Push</span> $<span style="color:#ca60ca;">{</span>LANG_ENGLISH<span style="color:#ca60ca;">}</span> 0396 <span style="color:#0095ff;font-weight:bold;">Push</span> English 0397 <span style="color:#0095ff;font-weight:bold;">Push</span> $<span style="color:#ca60ca;">{</span>LANG_TRADCHINESE<span style="color:#ca60ca;">}</span> 0398 <span style="color:#0095ff;font-weight:bold;">Push</span> <span style="color:#bf0303;">"繁體中文"</span> 0399 <span style="color:#0095ff;font-weight:bold;">Push</span> $<span style="color:#ca60ca;">{</span>LANG_SIMPCHINESE<span style="color:#ca60ca;">}</span> 0400 <span style="color:#0095ff;font-weight:bold;">Push</span> <span style="color:#bf0303;">"简体中文"</span> 0401 <span style="color:#0095ff;font-weight:bold;">Push</span> A # <span style="color:#ca60ca;">=</span> auto count languages 0402 LangDLL::LangDialog <span style="color:#bf0303;">"$(^SetupCaption)"</span> <span style="color:#bf0303;">"$(SetupLangPrompt)"</span> 0403 <span style="color:#0095ff;font-weight:bold;">Pop</span> $LANGUAGE 0404 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">If</span><span style="color:#ca60ca;">}</span> $LANGUAGE <span style="color:#ca60ca;">==</span> <span style="color:#bf0303;">"cancel"</span> 0405 <span style="color:#0095ff;font-weight:bold;">Abort</span> 0406 $<span style="color:#ca60ca;">{</span>Endif<span style="color:#ca60ca;">}</span> 0407 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">EndIf</span><span style="color:#ca60ca;">}</span> 0408 0409 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">ifdef</span> KRITA_INSTALLER_64 0410 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">If</span><span style="color:#ca60ca;">}</span> $<span style="color:#ca60ca;">{</span>RunningX64<span style="color:#ca60ca;">}</span> 0411 <span style="color:#0095ff;font-weight:bold;">SetRegView</span> 64 0412 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">Else</span><span style="color:#ca60ca;">}</span> 0413 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">IfNot</span><span style="color:#ca60ca;">}</span> $<span style="color:#ca60ca;">{</span>Silent<span style="color:#ca60ca;">}</span> 0414 <span style="color:#0095ff;font-weight:bold;">MessageBox</span> <span style="color:#9500ff;font-weight:bold;">MB_OK</span><span style="color:#ca60ca;">|</span>MB_ICONSTOP <span style="color:#bf0303;">"$(Msg64bitOn32bit)"</span> 0415 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">EndIf</span><span style="color:#ca60ca;">}</span> 0416 <span style="color:#0095ff;font-weight:bold;">Abort</span> 0417 $<span style="color:#ca60ca;">{</span>Endif<span style="color:#ca60ca;">}</span> 0418 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">else</span> 0419 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">If</span><span style="color:#ca60ca;">}</span> $<span style="color:#ca60ca;">{</span>RunningX64<span style="color:#ca60ca;">}</span> 0420 <span style="color:#0095ff;font-weight:bold;">SetRegView</span> 64 0421 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">IfNot</span><span style="color:#ca60ca;">}</span> $<span style="color:#ca60ca;">{</span>Silent<span style="color:#ca60ca;">}</span> 0422 <span style="color:#0095ff;font-weight:bold;">MessageBox</span> <span style="color:#9500ff;font-weight:bold;">MB_YESNO</span><span style="color:#ca60ca;">|</span>MB_ICONEXCLAMATION <span style="color:#bf0303;">"$(Msg32bitOn64bit)"</span> \ 0423 /SD IDYES \ 0424 IDYES lbl_allow32on64 0425 <span style="color:#0095ff;font-weight:bold;">Abort</span> 0426 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">EndIf</span><span style="color:#ca60ca;">}</span> 0427 lbl_allow32on64: 0428 $<span style="color:#ca60ca;">{</span>Endif<span style="color:#ca60ca;">}</span> 0429 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">endif</span> 0430 0431 # Detect ancient Krita versions 0432 $<span style="color:#ca60ca;">{</span>DetectKritaMsi32bit<span style="color:#ca60ca;">}</span> $KritaMsiProductX86 0433 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">If</span><span style="color:#ca60ca;">}</span> $<span style="color:#ca60ca;">{</span>RunningX64<span style="color:#ca60ca;">}</span> 0434 $<span style="color:#ca60ca;">{</span>DetectKritaMsi64bit<span style="color:#ca60ca;">}</span> $KritaMsiProductX64 0435 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">EndIf</span><span style="color:#ca60ca;">}</span> 0436 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">If</span><span style="color:#ca60ca;">}</span> $KritaMsiProductX86 <span style="color:#ca60ca;">!=</span> <span style="color:#bf0303;">""</span> 0437 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">OrIf</span><span style="color:#ca60ca;">}</span> $KritaMsiProductX64 <span style="color:#ca60ca;">!=</span> <span style="color:#bf0303;">""</span> 0438 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">IfNot</span><span style="color:#ca60ca;">}</span> $<span style="color:#ca60ca;">{</span>Silent<span style="color:#ca60ca;">}</span> 0439 <span style="color:#0095ff;font-weight:bold;">MessageBox</span> <span style="color:#9500ff;font-weight:bold;">MB_YESNO</span><span style="color:#ca60ca;">|</span><span style="color:#9500ff;font-weight:bold;">MB_ICONQUESTION</span><span style="color:#ca60ca;">|</span>MB_DEFBUTTON1 <span style="color:#bf0303;">"$(MsgAncientVerMustBeRemoved)"</span> \ 0440 /SD IDYES \ 0441 IDYES lbl_removeAncientVer 0442 <span style="color:#0095ff;font-weight:bold;">Abort</span> 0443 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">EndIf</span><span style="color:#ca60ca;">}</span> 0444 lbl_removeAncientVer: 0445 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">If</span><span style="color:#ca60ca;">}</span> $KritaMsiProductX64 <span style="color:#ca60ca;">!=</span> <span style="color:#bf0303;">""</span> 0446 push $R0 0447 $<span style="color:#ca60ca;">{</span>MsiUninstall<span style="color:#ca60ca;">}</span> $KritaMsiProductX64 $R0 0448 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">If</span><span style="color:#ca60ca;">}</span> $R0 <span style="color:#ca60ca;">!=</span> 0 0449 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">IfNot</span><span style="color:#ca60ca;">}</span> $<span style="color:#ca60ca;">{</span>Silent<span style="color:#ca60ca;">}</span> 0450 $<span style="color:#ca60ca;">{</span>IfKritaMsi3Alpha<span style="color:#ca60ca;">}</span> $KritaMsiProductX64 0451 <span style="color:#0095ff;font-weight:bold;">MessageBox</span> <span style="color:#9500ff;font-weight:bold;">MB_OK</span><span style="color:#ca60ca;">|</span>MB_ICONSTOP <span style="color:#bf0303;">"$(MsgKrita3alpha1RemoveFailed)"</span> 0452 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">Else</span><span style="color:#ca60ca;">}</span> 0453 <span style="color:#0095ff;font-weight:bold;">MessageBox</span> <span style="color:#9500ff;font-weight:bold;">MB_OK</span><span style="color:#ca60ca;">|</span>MB_ICONSTOP <span style="color:#bf0303;">"$(MsgKrita2msi64bitRemoveFailed)"</span> 0454 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">EndIf</span><span style="color:#ca60ca;">}</span> 0455 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">EndIf</span><span style="color:#ca60ca;">}</span> 0456 <span style="color:#0095ff;font-weight:bold;">Abort</span> 0457 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">EndIf</span><span style="color:#ca60ca;">}</span> 0458 pop $R0 0459 <span style="color:#0095ff;font-weight:bold;">StrCpy</span> $KritaMsiProductX64 <span style="color:#bf0303;">""</span> 0460 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">EndIf</span><span style="color:#ca60ca;">}</span> 0461 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">If</span><span style="color:#ca60ca;">}</span> $KritaMsiProductX86 <span style="color:#ca60ca;">!=</span> <span style="color:#bf0303;">""</span> 0462 push $R0 0463 $<span style="color:#ca60ca;">{</span>MsiUninstall<span style="color:#ca60ca;">}</span> $KritaMsiProductX86 $R0 0464 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">If</span><span style="color:#ca60ca;">}</span> $R0 <span style="color:#ca60ca;">!=</span> 0 0465 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">IfNot</span><span style="color:#ca60ca;">}</span> $<span style="color:#ca60ca;">{</span>Silent<span style="color:#ca60ca;">}</span> 0466 <span style="color:#0095ff;font-weight:bold;">MessageBox</span> <span style="color:#9500ff;font-weight:bold;">MB_OK</span><span style="color:#ca60ca;">|</span>MB_ICONSTOP <span style="color:#bf0303;">"$(MsgKrita2msi32bitRemoveFailed)"</span> 0467 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">EndIf</span><span style="color:#ca60ca;">}</span> 0468 <span style="color:#0095ff;font-weight:bold;">Abort</span> 0469 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">EndIf</span><span style="color:#ca60ca;">}</span> 0470 pop $R0 0471 <span style="color:#0095ff;font-weight:bold;">StrCpy</span> $KritaMsiProductX86 <span style="color:#bf0303;">""</span> 0472 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">EndIf</span><span style="color:#ca60ca;">}</span> 0473 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">EndIf</span><span style="color:#ca60ca;">}</span> 0474 0475 $<span style="color:#ca60ca;">{</span>DetectKritaNsis<span style="color:#ca60ca;">}</span> $KritaNsisVersion $KritaNsisBitness $KritaNsisInstallLocation 0476 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">If</span><span style="color:#ca60ca;">}</span> $KritaNsisVersion <span style="color:#ca60ca;">!=</span> <span style="color:#bf0303;">""</span> 0477 push $R0 0478 $<span style="color:#ca60ca;">{</span>VersionCompare<span style="color:#ca60ca;">}</span> <span style="color:#bf0303;">"${KRITA_VERSION}"</span> <span style="color:#bf0303;">"$KritaNsisVersion"</span> $R0 0479 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">If</span><span style="color:#ca60ca;">}</span> $R0 <span style="color:#ca60ca;">==</span> 0 0480 # Same version installed... probably 0481 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">If</span><span style="color:#ca60ca;">}</span> $KritaNsisBitness <span style="color:#ca60ca;">==</span> $<span style="color:#ca60ca;">{</span>KRITA_INSTALLER_BITNESS<span style="color:#ca60ca;">}</span> 0482 # Very likely the same version 0483 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">IfNot</span><span style="color:#ca60ca;">}</span> $<span style="color:#ca60ca;">{</span>Silent<span style="color:#ca60ca;">}</span> 0484 <span style="color:#0095ff;font-weight:bold;">MessageBox</span> <span style="color:#9500ff;font-weight:bold;">MB_OK</span><span style="color:#ca60ca;">|</span><span style="color:#9500ff;font-weight:bold;">MB_ICONINFORMATION</span> <span style="color:#bf0303;">"$(MsgKritaSameVerReinstall)"</span> 0485 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">EndIf</span><span style="color:#ca60ca;">}</span> 0486 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">Else</span><span style="color:#ca60ca;">}</span> 0487 # Very likely the same version but different arch 0488 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">IfNot</span><span style="color:#ca60ca;">}</span> $<span style="color:#ca60ca;">{</span>Silent<span style="color:#ca60ca;">}</span> 0489 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">ifdef</span> KRITA_INSTALLER_64 0490 <span style="color:#0095ff;font-weight:bold;">MessageBox</span> <span style="color:#9500ff;font-weight:bold;">MB_OK</span><span style="color:#ca60ca;">|</span><span style="color:#9500ff;font-weight:bold;">MB_ICONINFORMATION</span> <span style="color:#bf0303;">"$(MsgKrita3264bitSwap)"</span> 0491 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">else</span> 0492 <span style="color:#0095ff;font-weight:bold;">MessageBox</span> <span style="color:#9500ff;font-weight:bold;">MB_OK</span><span style="color:#ca60ca;">|</span>MB_ICONEXCLAMATION <span style="color:#bf0303;">"$(MsgKrita3264bitSwap)"</span> 0493 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">endif</span> 0494 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">EndIf</span><span style="color:#ca60ca;">}</span> 0495 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">EndIf</span><span style="color:#ca60ca;">}</span> 0496 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">ElseIf</span><span style="color:#ca60ca;">}</span> $R0 <span style="color:#ca60ca;">==</span> 1 0497 # Upgrade 0498 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">If</span><span style="color:#ca60ca;">}</span> $KritaNsisBitness <span style="color:#ca60ca;">==</span> $<span style="color:#ca60ca;">{</span>KRITA_INSTALLER_BITNESS<span style="color:#ca60ca;">}</span> 0499 # Silent about upgrade 0500 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">Else</span><span style="color:#ca60ca;">}</span> 0501 # Upgrade but different arch 0502 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">IfNot</span><span style="color:#ca60ca;">}</span> $<span style="color:#ca60ca;">{</span>Silent<span style="color:#ca60ca;">}</span> 0503 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">ifdef</span> KRITA_INSTALLER_64 0504 <span style="color:#0095ff;font-weight:bold;">MessageBox</span> <span style="color:#9500ff;font-weight:bold;">MB_OK</span><span style="color:#ca60ca;">|</span><span style="color:#9500ff;font-weight:bold;">MB_ICONINFORMATION</span> <span style="color:#bf0303;">"$(MsgKrita3264bitSwap)"</span> 0505 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">else</span> 0506 <span style="color:#0095ff;font-weight:bold;">MessageBox</span> <span style="color:#9500ff;font-weight:bold;">MB_OK</span><span style="color:#ca60ca;">|</span>MB_ICONEXCLAMATION <span style="color:#bf0303;">"$(MsgKrita3264bitSwap)"</span> 0507 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">endif</span> 0508 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">EndIf</span><span style="color:#ca60ca;">}</span> 0509 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">EndIf</span><span style="color:#ca60ca;">}</span> 0510 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">ElseIf</span><span style="color:#ca60ca;">}</span> $R0 <span style="color:#ca60ca;">==</span> 2 0511 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">IfNot</span><span style="color:#ca60ca;">}</span> $<span style="color:#ca60ca;">{</span>Silent<span style="color:#ca60ca;">}</span> 0512 <span style="color:#0095ff;font-weight:bold;">MessageBox</span> <span style="color:#9500ff;font-weight:bold;">MB_OK</span><span style="color:#ca60ca;">|</span>MB_ICONSTOP <span style="color:#bf0303;">"$(MsgKritaNewerAlreadyInstalled)"</span> 0513 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">EndIf</span><span style="color:#ca60ca;">}</span> 0514 <span style="color:#0095ff;font-weight:bold;">Abort</span> 0515 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">Else</span><span style="color:#ca60ca;">}</span> 0516 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">IfNot</span><span style="color:#ca60ca;">}</span> $<span style="color:#ca60ca;">{</span>Silent<span style="color:#ca60ca;">}</span> 0517 <span style="color:#0095ff;font-weight:bold;">MessageBox</span> <span style="color:#9500ff;font-weight:bold;">MB_OK</span><span style="color:#ca60ca;">|</span>MB_ICONSTOP <span style="color:#bf0303;">"Error: Unexpected state"</span> 0518 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">EndIf</span><span style="color:#ca60ca;">}</span> 0519 <span style="color:#0095ff;font-weight:bold;">Abort</span> 0520 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">EndIf</span><span style="color:#ca60ca;">}</span> 0521 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">insertmacro</span> SetSectionFlag $<span style="color:#ca60ca;">{</span>SEC_remove_old_version<span style="color:#ca60ca;">}</span> $<span style="color:#ca60ca;">{</span>SF_SELECTED<span style="color:#ca60ca;">}</span> 0522 # Detect <span style="font-weight:bold;">if</span> Krita is running... 0523 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">If</span><span style="color:#ca60ca;">}</span> $<span style="color:#ca60ca;">{</span>IsFileinUse<span style="color:#ca60ca;">}</span> <span style="color:#bf0303;">"$KritaNsisInstallLocation\bin\krita.exe"</span> 0524 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">IfNot</span><span style="color:#ca60ca;">}</span> $<span style="color:#ca60ca;">{</span>Silent<span style="color:#ca60ca;">}</span> 0525 <span style="color:#0095ff;font-weight:bold;">MessageBox</span> <span style="color:#9500ff;font-weight:bold;">MB_OK</span><span style="color:#ca60ca;">|</span>MB_ICONEXCLAMATION <span style="color:#bf0303;">"$(MsgKritaRunning)"</span> 0526 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">EndIf</span><span style="color:#ca60ca;">}</span> 0527 <span style="color:#0095ff;font-weight:bold;">SetErrorLevel</span> 10 0528 <span style="color:#0095ff;font-weight:bold;">Abort</span> 0529 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">EndIf</span><span style="color:#ca60ca;">}</span> 0530 pop $R0 0531 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">Else</span><span style="color:#ca60ca;">}</span> 0532 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">insertmacro</span> ClearSectionFlag $<span style="color:#ca60ca;">{</span>SEC_remove_old_version<span style="color:#ca60ca;">}</span> $<span style="color:#ca60ca;">{</span>SF_SELECTED<span style="color:#ca60ca;">}</span> 0533 <span style="color:#0095ff;font-weight:bold;">SectionSetText</span> $<span style="color:#ca60ca;">{</span>SEC_remove_old_version<span style="color:#ca60ca;">}</span> <span style="color:#bf0303;">""</span> 0534 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">EndIf</span><span style="color:#ca60ca;">}</span> 0535 0536 # Detect standalone shell extension 0537 # TODO: Would it be possible to update Krita without replacing the standalone shellex<span style="color:#ca60ca;">?</span> 0538 <span style="color:#0095ff;font-weight:bold;">ClearErrors</span> 0539 <span style="color:#0095ff;font-weight:bold;">ReadRegStr</span> $PrevShellExInstallLocation HKLM <span style="color:#bf0303;">"Software\Krita\ShellExtension"</span> <span style="color:#bf0303;">"InstallLocation"</span> 0540 #ReadRegStr $PrevShellExVersion HKLM <span style="color:#bf0303;">"Software\Krita\ShellExtension"</span> <span style="color:#bf0303;">"Version"</span> 0541 <span style="color:#0095ff;font-weight:bold;">ReadRegDWORD</span> $PrevShellExStandalone HKLM <span style="color:#bf0303;">"Software\Krita\ShellExtension"</span> <span style="color:#bf0303;">"Standalone"</span> 0542 #ReadRegStr $PrevShellExKritaExePath HKLM <span style="color:#bf0303;">"Software\Krita\ShellExtension"</span> <span style="color:#bf0303;">"KritaExePath"</span> 0543 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">If</span><span style="color:#ca60ca;">}</span> $<span style="color:#ca60ca;">{</span>Errors<span style="color:#ca60ca;">}</span> 0544 # TODO: Assume no previous version installed or what<span style="color:#ca60ca;">?</span> 0545 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">EndIf</span><span style="color:#ca60ca;">}</span> 0546 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">If</span><span style="color:#ca60ca;">}</span> $PrevShellExStandalone <span style="color:#ca60ca;">==</span> 1 0547 #<span style="color:#ca60ca;">!</span><span style="font-weight:bold;">insertmacro</span> SetSectionFlag $<span style="color:#ca60ca;">{</span>SEC_remove_shellex<span style="color:#ca60ca;">}</span> $<span style="color:#ca60ca;">{</span>SF_SELECTED<span style="color:#ca60ca;">}</span> 0548 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">Else</span><span style="color:#ca60ca;">}</span> 0549 #<span style="color:#ca60ca;">!</span><span style="font-weight:bold;">insertmacro</span> ClearSectionFlag $<span style="color:#ca60ca;">{</span>SEC_remove_shellex<span style="color:#ca60ca;">}</span> $<span style="color:#ca60ca;">{</span>SF_SELECTED<span style="color:#ca60ca;">}</span> 0550 #SectionSetText $<span style="color:#ca60ca;">{</span>SEC_remove_shellex<span style="color:#ca60ca;">}</span> <span style="color:#bf0303;">""</span> 0551 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">EndIf</span><span style="color:#ca60ca;">}</span> 0552 <span style="color:#0095ff;font-weight:bold;">FunctionEnd</span> 0553 0554 <span style="color:#0095ff;font-weight:bold;">Function</span> un.onInit 0555 <span style="color:#0095ff;font-weight:bold;">SetShellVarContext</span> all 0556 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">ifdef</span> KRITA_INSTALLER_64 0557 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">If</span><span style="color:#ca60ca;">}</span> $<span style="color:#ca60ca;">{</span>RunningX64<span style="color:#ca60ca;">}</span> 0558 <span style="color:#0095ff;font-weight:bold;">SetRegView</span> 64 0559 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">Else</span><span style="color:#ca60ca;">}</span> 0560 <span style="color:#0095ff;font-weight:bold;">Abort</span> 0561 $<span style="color:#ca60ca;">{</span>Endif<span style="color:#ca60ca;">}</span> 0562 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">else</span> 0563 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">If</span><span style="color:#ca60ca;">}</span> $<span style="color:#ca60ca;">{</span>RunningX64<span style="color:#ca60ca;">}</span> 0564 <span style="color:#0095ff;font-weight:bold;">SetRegView</span> 64 0565 $<span style="color:#ca60ca;">{</span>Endif<span style="color:#ca60ca;">}</span> 0566 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">endif</span> 0567 0568 # Get and use installer language: 0569 <span style="color:#0095ff;font-weight:bold;">Push</span> $0 0570 <span style="color:#0095ff;font-weight:bold;">ReadRegStr</span> $0 HKLM <span style="color:#bf0303;">"Software\Krita"</span> <span style="color:#bf0303;">"InstallerLanguage"</span> 0571 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">If</span><span style="color:#ca60ca;">}</span> $0 <span style="color:#ca60ca;">!=</span> <span style="color:#bf0303;">""</span> 0572 <span style="color:#0095ff;font-weight:bold;">StrCpy</span> $LANGUAGE $0 0573 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">EndIf</span><span style="color:#ca60ca;">}</span> 0574 <span style="color:#0095ff;font-weight:bold;">Pop</span> $0 0575 0576 <span style="color:#0095ff;font-weight:bold;">ReadRegDWORD</span> $UninstallShellExStandalone HKLM <span style="color:#bf0303;">"Software\Krita\ShellExtension"</span> <span style="color:#bf0303;">"Standalone"</span> 0577 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">If</span><span style="color:#ca60ca;">}</span> $<span style="color:#ca60ca;">{</span>Silent<span style="color:#ca60ca;">}</span> 0578 # Only check here <span style="font-weight:bold;">if</span> running in silent mode. It's otherwise checked in 0579 # un.func_UnintallFirstpage_Init in order to display a prompt in the 0580 # correct language. 0581 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">If</span><span style="color:#ca60ca;">}</span> $<span style="color:#ca60ca;">{</span>IsFileinUse<span style="color:#ca60ca;">}</span> <span style="color:#bf0303;">"$INSTDIR\bin\krita.exe"</span> 0582 <span style="color:#0095ff;font-weight:bold;">SetErrorLevel</span> 10 0583 <span style="color:#0095ff;font-weight:bold;">Abort</span> 0584 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">EndIf</span><span style="color:#ca60ca;">}</span> 0585 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">EndIf</span><span style="color:#ca60ca;">}</span> 0586 <span style="color:#0095ff;font-weight:bold;">FunctionEnd</span> 0587 0588 <span style="color:#0095ff;font-weight:bold;">Function</span> un.func_UnintallFirstpage_Init 0589 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">If</span><span style="color:#ca60ca;">}</span> $<span style="color:#ca60ca;">{</span>IsFileinUse<span style="color:#ca60ca;">}</span> <span style="color:#bf0303;">"$INSTDIR\bin\krita.exe"</span> 0590 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">IfNot</span><span style="color:#ca60ca;">}</span> $<span style="color:#ca60ca;">{</span>Silent<span style="color:#ca60ca;">}</span> 0591 <span style="color:#0095ff;font-weight:bold;">MessageBox</span> <span style="color:#9500ff;font-weight:bold;">MB_OK</span><span style="color:#ca60ca;">|</span>MB_ICONEXCLAMATION <span style="color:#bf0303;">"$(MsgUninstallKritaRunning)"</span> 0592 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">EndIf</span><span style="color:#ca60ca;">}</span> 0593 <span style="color:#0095ff;font-weight:bold;">SetErrorLevel</span> 10 0594 <span style="color:#0095ff;font-weight:bold;">Quit</span> 0595 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">EndIf</span><span style="color:#ca60ca;">}</span> 0596 <span style="color:#0095ff;font-weight:bold;">FunctionEnd</span> 0597 0598 <span style="color:#0095ff;font-weight:bold;">Function</span> func_ShellExLicensePage_Init 0599 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">IfNot</span><span style="color:#ca60ca;">}</span> $<span style="color:#ca60ca;">{</span>SectionIsSelected<span style="color:#ca60ca;">}</span> $<span style="color:#ca60ca;">{</span>SEC_shellex<span style="color:#ca60ca;">}</span> 0600 # Skip ShellEx license page <span style="font-weight:bold;">if</span> not selected 0601 <span style="color:#0095ff;font-weight:bold;">Abort</span> 0602 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">EndIf</span><span style="color:#ca60ca;">}</span> 0603 <span style="color:#0095ff;font-weight:bold;">FunctionEnd</span> 0604 0605 <span style="color:#0095ff;font-weight:bold;">Var</span> hwndChkDesktopIcon 0606 0607 <span style="color:#0095ff;font-weight:bold;">Function</span> func_DesktopShortcutPage_CheckChange 0608 $<span style="color:#ca60ca;">{</span>NSD_GetState<span style="color:#ca60ca;">}</span> $hwndChkDesktopIcon $CreateDesktopIcon 0609 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">If</span><span style="color:#ca60ca;">}</span> $CreateDesktopIcon <span style="color:#ca60ca;">==</span> $<span style="color:#ca60ca;">{</span>BST_CHECKED<span style="color:#ca60ca;">}</span> 0610 <span style="color:#0095ff;font-weight:bold;">StrCpy</span> $CreateDesktopIcon 1 0611 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">Else</span><span style="color:#ca60ca;">}</span> 0612 <span style="color:#0095ff;font-weight:bold;">StrCpy</span> $CreateDesktopIcon 0 0613 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">EndIf</span><span style="color:#ca60ca;">}</span> 0614 <span style="color:#0095ff;font-weight:bold;">FunctionEnd</span> 0615 0616 <span style="color:#0095ff;font-weight:bold;">Function</span> func_BeforeInstallPage_Init 0617 push $R0 0618 0619 nsDialogs::Create 1018 0620 pop $R0 0621 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">If</span><span style="color:#ca60ca;">}</span> $R0 <span style="color:#ca60ca;">==</span> <span style="font-weight:bold;">error</span> 0622 <span style="color:#0095ff;font-weight:bold;">Abort</span> 0623 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">EndIf</span><span style="color:#ca60ca;">}</span> 0624 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">insertmacro</span> <span style="color:#9500ff;font-weight:bold;">MUI_HEADER_TEXT</span> <span style="color:#bf0303;">"$(ConfirmInstallPageHeader)"</span> <span style="color:#bf0303;">"$(ConfirmInstallPageDesc)"</span> 0625 0626 $<span style="color:#ca60ca;">{</span>NSD_CreateLabel<span style="color:#ca60ca;">}</span> 0u 0u 300u 20u <span style="color:#bf0303;">"$(DesktopIconPageDesc2)"</span> 0627 pop $R0 0628 0629 $<span style="color:#ca60ca;">{</span>NSD_CreateCheckbox<span style="color:#ca60ca;">}</span> 0u 20u 300u 10u <span style="color:#bf0303;">"$(DesktopIconPageCheckbox)"</span> 0630 pop $hwndChkDesktopIcon 0631 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">If</span><span style="color:#ca60ca;">}</span> $CreateDesktopIcon <span style="color:#ca60ca;">==</span> 1 0632 $<span style="color:#ca60ca;">{</span>NSD_Check<span style="color:#ca60ca;">}</span> $hwndChkDesktopIcon 0633 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">Else</span><span style="color:#ca60ca;">}</span> 0634 $<span style="color:#ca60ca;">{</span>NSD_Uncheck<span style="color:#ca60ca;">}</span> $hwndChkDesktopIcon 0635 $<span style="color:#ca60ca;">{</span><span style="color:#9500ff;font-weight:bold;">EndIf</span><span style="color:#ca60ca;">}</span> 0636 $<span style="color:#ca60ca;">{</span>NSD_OnClick<span style="color:#ca60ca;">}</span> $hwndChkDesktopIcon func_DesktopShortcutPage_CheckChange 0637 0638 $<span style="color:#ca60ca;">{</span>NSD_CreateLabel<span style="color:#ca60ca;">}</span> 0u 40u 300u 140u <span style="color:#bf0303;">"$(ConfirmInstallPageDesc2)"</span> 0639 pop $R0 0640 0641 # TODO: Add install option summary for review<span style="color:#ca60ca;">?</span> 0642 0643 nsDialogs::Show 0644 0645 pop $R0 0646 <span style="color:#0095ff;font-weight:bold;">FunctionEnd</span> 0647 0648 0649 # Strings 0650 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">include</span> <span style="color:#bf0303;">"translations\English.nsh"</span> 0651 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">include</span> <span style="color:#bf0303;">"translations\TradChinese.nsh"</span> 0652 <span style="color:#ca60ca;">!</span><span style="font-weight:bold;">include</span> <span style="color:#bf0303;">"translations\SimpChinese.nsh"</span> 0653 </pre></body></html>