File indexing completed on 2025-02-02 03:54:46
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 Dark)"/> 0006 </head><body style="background-color:#232629;color:#cfcfc2"><pre> 0007 <span style="color:#3f8058">!</span><span style="font-weight:bold">ifndef</span> KRITA_INSTALLER_32 <span style="color:#3f8058">&</span> KRITA_INSTALLER_64 0008 <span style="color:#3f8058">!</span><span style="font-weight:bold">error</span> <span style="color:#f44f4f">"Either one of KRITA_INSTALLER_32 or KRITA_INSTALLER_64 must be defined."</span> 0009 <span style="color:#3f8058">!</span><span style="font-weight:bold">endif</span> 0010 <span style="color:#3f8058">!</span><span style="font-weight:bold">ifdef</span> KRITA_INSTALLER_32 <span style="color:#3f8058">&</span> KRITA_INSTALLER_64 0011 <span style="color:#3f8058">!</span><span style="font-weight:bold">error</span> <span style="color:#f44f4f">"Only one of KRITA_INSTALLER_32 or KRITA_INSTALLER_64 should be defined."</span> 0012 <span style="color:#3f8058">!</span><span style="font-weight:bold">endif</span> 0013 0014 <span style="color:#3f8058">!</span><span style="font-weight:bold">ifndef</span> KRITA_PACKAGE_ROOT 0015 <span style="color:#3f8058">!</span><span style="font-weight:bold">error</span> <span style="color:#f44f4f">"KRITA_PACKAGE_ROOT should be defined and point to the root of the package files."</span> 0016 <span style="color:#3f8058">!</span><span style="font-weight:bold">endif</span> 0017 0018 <span style="color:#3f8058">!</span><span style="font-weight:bold">ifdef</span> KRITA_INSTALLER_64 0019 <span style="color:#3f8058">!</span><span style="font-weight:bold">define</span> KRITA_INSTALLER_BITNESS 64 0020 <span style="color:#3f8058">!</span><span style="font-weight:bold">else</span> 0021 <span style="color:#3f8058">!</span><span style="font-weight:bold">define</span> KRITA_INSTALLER_BITNESS 32 0022 <span style="color:#3f8058">!</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:#3f8058">,</span> so don't enable it. 0026 <span style="color:#0095ff;font-weight:bold">ManifestDPIAware</span> false 0027 0028 # Krita constants <span style="color:#3f8058">(</span>can be overridden in command line params<span style="color:#3f8058">)</span> 0029 <span style="color:#3f8058">!</span><span style="font-weight:bold">define</span> /<span style="font-weight:bold">ifndef</span> KRITA_VERSION <span style="color:#f44f4f">"0.0.0.0"</span> 0030 <span style="color:#3f8058">!</span><span style="font-weight:bold">define</span> /<span style="font-weight:bold">ifndef</span> KRITA_VERSION_DISPLAY <span style="color:#f44f4f">"test-version"</span> 0031 #<span style="color:#3f8058">!</span><span style="font-weight:bold">define</span> /<span style="font-weight:bold">ifndef</span> KRITA_VERSION_GIT <span style="color:#f44f4f">""</span> 0032 <span style="color:#3f8058">!</span><span style="font-weight:bold">define</span> /<span style="font-weight:bold">ifndef</span> KRITA_INSTALLER_OUTPUT_DIR <span style="color:#f44f4f">""</span> 0033 <span style="color:#3f8058">!</span><span style="font-weight:bold">ifdef</span> KRITA_INSTALLER_64 0034 <span style="color:#3f8058">!</span><span style="font-weight:bold">define</span> /<span style="font-weight:bold">ifndef</span> KRITA_INSTALLER_OUTPUT_NAME <span style="color:#f44f4f">"krita_x64_setup.exe"</span> 0035 <span style="color:#3f8058">!</span><span style="font-weight:bold">else</span> 0036 <span style="color:#3f8058">!</span><span style="font-weight:bold">define</span> /<span style="font-weight:bold">ifndef</span> KRITA_INSTALLER_OUTPUT_NAME <span style="color:#f44f4f">"krita_x86_setup.exe"</span> 0037 <span style="color:#3f8058">!</span><span style="font-weight:bold">endif</span> 0038 0039 # Krita constants <span style="color:#3f8058">(</span>fixed<span style="color:#3f8058">)</span> 0040 <span style="color:#3f8058">!</span><span style="font-weight:bold">if</span> <span style="color:#f44f4f">"${KRITA_INSTALLER_OUTPUT_DIR}"</span> <span style="color:#3f8058">==</span> <span style="color:#f44f4f">""</span> 0041 <span style="color:#3f8058">!</span><span style="font-weight:bold">define</span> KRITA_INSTALLER_OUTPUT <span style="color:#f44f4f">"${KRITA_INSTALLER_OUTPUT_NAME}"</span> 0042 <span style="color:#3f8058">!</span><span style="font-weight:bold">else</span> 0043 <span style="color:#3f8058">!</span><span style="font-weight:bold">define</span> KRITA_INSTALLER_OUTPUT <span style="color:#f44f4f">"${KRITA_INSTALLER_OUTPUT_DIR}\${KRITA_INSTALLER_OUTPUT_NAME}"</span> 0044 <span style="color:#3f8058">!</span><span style="font-weight:bold">endif</span> 0045 <span style="color:#3f8058">!</span><span style="font-weight:bold">define</span> KRTIA_PUBLISHER <span style="color:#f44f4f">"Krita Foundation"</span> 0046 <span style="color:#3f8058">!</span><span style="font-weight:bold">ifdef</span> KRITA_INSTALLER_64 0047 <span style="color:#3f8058">!</span><span style="font-weight:bold">define</span> KRITA_PRODUCTNAME <span style="color:#f44f4f">"Krita (x64)"</span> 0048 <span style="color:#3f8058">!</span><span style="font-weight:bold">define</span> KRITA_UNINSTALL_REGKEY <span style="color:#f44f4f">"Krita_x64"</span> 0049 <span style="color:#3f8058">!</span><span style="font-weight:bold">else</span> 0050 <span style="color:#3f8058">!</span><span style="font-weight:bold">define</span> KRITA_PRODUCTNAME <span style="color:#f44f4f">"Krita (x86)"</span> 0051 <span style="color:#3f8058">!</span><span style="font-weight:bold">define</span> KRITA_UNINSTALL_REGKEY <span style="color:#f44f4f">"Krita_x86"</span> 0052 <span style="color:#3f8058">!</span><span style="font-weight:bold">endif</span> 0053 0054 <span style="color:#0095ff;font-weight:bold">VIProductVersion</span> <span style="color:#f44f4f">"${KRITA_VERSION}"</span> 0055 <span style="color:#0095ff;font-weight:bold">VIAddVersionKey</span> <span style="color:#f44f4f">"CompanyName"</span> <span style="color:#f44f4f">"${KRTIA_PUBLISHER}"</span> 0056 <span style="color:#0095ff;font-weight:bold">VIAddVersionKey</span> <span style="color:#f44f4f">"FileDescription"</span> <span style="color:#f44f4f">"${KRITA_PRODUCTNAME} ${KRITA_VERSION_DISPLAY} Setup"</span> 0057 <span style="color:#0095ff;font-weight:bold">VIAddVersionKey</span> <span style="color:#f44f4f">"FileVersion"</span> <span style="color:#f44f4f">"${KRITA_VERSION}"</span> 0058 <span style="color:#0095ff;font-weight:bold">VIAddVersionKey</span> <span style="color:#f44f4f">"InternalName"</span> <span style="color:#f44f4f">"${KRITA_INSTALLER_OUTPUT_NAME}"</span> 0059 <span style="color:#0095ff;font-weight:bold">VIAddVersionKey</span> <span style="color:#f44f4f">"LegalCopyright"</span> <span style="color:#f44f4f">"${KRTIA_PUBLISHER}"</span> 0060 <span style="color:#0095ff;font-weight:bold">VIAddVersionKey</span> <span style="color:#f44f4f">"OriginalFileName"</span> <span style="color:#f44f4f">"${KRITA_INSTALLER_OUTPUT_NAME}"</span> 0061 <span style="color:#0095ff;font-weight:bold">VIAddVersionKey</span> <span style="color:#f44f4f">"ProductName"</span> <span style="color:#f44f4f">"${KRITA_PRODUCTNAME} ${KRITA_VERSION_DISPLAY} Setup"</span> 0062 <span style="color:#0095ff;font-weight:bold">VIAddVersionKey</span> <span style="color:#f44f4f">"ProductVersion"</span> <span style="color:#f44f4f">"${KRITA_VERSION}"</span> 0063 0064 <span style="color:#0095ff;font-weight:bold">BrandingText</span> <span style="color:#f44f4f">"[NSIS ${NSIS_VERSION}] ${KRITA_PRODUCTNAME} ${KRITA_VERSION}"</span> 0065 0066 <span style="color:#0095ff;font-weight:bold">Name</span> <span style="color:#f44f4f">"${KRITA_PRODUCTNAME} ${KRITA_VERSION_DISPLAY}"</span> 0067 <span style="color:#0095ff;font-weight:bold">OutFile</span> $<span style="color:#3f8058">{</span>KRITA_INSTALLER_OUTPUT<span style="color:#3f8058">}</span> 0068 <span style="color:#3f8058">!</span><span style="font-weight:bold">ifdef</span> KRITA_INSTALLER_64 0069 <span style="color:#0095ff;font-weight:bold">InstallDir</span> <span style="color:#f44f4f">"$PROGRAMFILES64\Krita (x64)"</span> 0070 <span style="color:#3f8058">!</span><span style="font-weight:bold">else</span> 0071 <span style="color:#0095ff;font-weight:bold">InstallDir</span> <span style="color:#f44f4f">"$PROGRAMFILES32\Krita (x86)"</span> 0072 <span style="color:#3f8058">!</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:#3f8058">!</span><span style="font-weight:bold">include</span> MUI2.nsh 0082 0083 <span style="color:#3f8058">!</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:#3f8058">!</span><span style="font-weight:bold">insertmacro</span> <span style="color:#9500ff;font-weight:bold">MUI_PAGE_WELCOME</span> 0087 <span style="color:#3f8058">!</span><span style="font-weight:bold">define</span> <span style="color:#9500ff;font-weight:bold">MUI_LICENSEPAGE_CHECKBOX</span> 0088 <span style="color:#3f8058">!</span><span style="font-weight:bold">insertmacro</span> <span style="color:#9500ff;font-weight:bold">MUI_PAGE_LICENSE</span> <span style="color:#f44f4f">"license_gpl-3.0.rtf"</span> 0089 <span style="color:#3f8058">!</span><span style="font-weight:bold">insertmacro</span> <span style="color:#9500ff;font-weight:bold">MUI_PAGE_DIRECTORY</span> 0090 <span style="color:#3f8058">!</span><span style="font-weight:bold">insertmacro</span> <span style="color:#9500ff;font-weight:bold">MUI_PAGE_COMPONENTS</span> 0091 <span style="color:#3f8058">!</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:#3f8058">!</span><span style="font-weight:bold">define</span> <span style="color:#9500ff;font-weight:bold">MUI_PAGE_HEADER_TEXT</span> <span style="color:#f44f4f">"$(ShellExLicensePageHeader)"</span> 0093 <span style="color:#3f8058">!</span><span style="font-weight:bold">insertmacro</span> <span style="color:#9500ff;font-weight:bold">MUI_PAGE_LICENSE</span> <span style="color:#f44f4f">"license.rtf"</span> 0094 <span style="color:#3f8058">!</span><span style="font-weight:bold">define</span> <span style="color:#9500ff;font-weight:bold">MUI_STARTMENUPAGE_DEFAULTFOLDER</span> <span style="color:#f44f4f">"Krita"</span> 0095 <span style="color:#3f8058">!</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:#3f8058">!</span><span style="font-weight:bold">define</span> <span style="color:#9500ff;font-weight:bold">MUI_STARTMENUPAGE_REGISTRY_KEY</span> <span style="color:#f44f4f">"Software\Krita"</span> 0097 <span style="color:#3f8058">!</span><span style="font-weight:bold">define</span> <span style="color:#9500ff;font-weight:bold">MUI_STARTMENUPAGE_REGISTRY_VALUENAME</span> <span style="color:#f44f4f">"StartMenuFolder"</span> 0098 <span style="color:#3f8058">!</span><span style="font-weight:bold">define</span> <span style="color:#9500ff;font-weight:bold">MUI_STARTMENUPAGE_NODISABLE</span> 0099 <span style="color:#3f8058">!</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:#3f8058">!</span><span style="font-weight:bold">insertmacro</span> <span style="color:#9500ff;font-weight:bold">MUI_PAGE_INSTFILES</span> 0102 <span style="color:#3f8058">!</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:#3f8058">!</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:#3f8058">!</span><span style="font-weight:bold">insertmacro</span> <span style="color:#9500ff;font-weight:bold">MUI_UNPAGE_CONFIRM</span> 0107 <span style="color:#3f8058">!</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:#3f8058">!</span><span style="font-weight:bold">insertmacro</span> <span style="color:#9500ff;font-weight:bold">MUI_LANGUAGE</span> <span style="color:#f44f4f">"English"</span> 0111 <span style="color:#3f8058">!</span><span style="font-weight:bold">insertmacro</span> <span style="color:#9500ff;font-weight:bold">MUI_LANGUAGE</span> <span style="color:#f44f4f">"TradChinese"</span> 0112 <span style="color:#3f8058">!</span><span style="font-weight:bold">insertmacro</span> <span style="color:#9500ff;font-weight:bold">MUI_LANGUAGE</span> <span style="color:#f44f4f">"SimpChinese"</span> 0113 0114 <span style="color:#3f8058">!</span><span style="font-weight:bold">include</span> Sections.nsh 0115 <span style="color:#3f8058">!</span><span style="font-weight:bold">include</span> LogicLib.nsh 0116 <span style="color:#3f8058">!</span><span style="font-weight:bold">include</span> x64.nsh 0117 <span style="color:#3f8058">!</span><span style="font-weight:bold">include</span> WinVer.nsh 0118 <span style="color:#3f8058">!</span><span style="font-weight:bold">include</span> WordFunc.nsh 0119 0120 <span style="color:#3f8058">!</span><span style="font-weight:bold">define</span> KRITA_SHELLEX_DIR <span style="color:#f44f4f">"$INSTDIR\shellex"</span> 0121 0122 <span style="color:#3f8058">!</span><span style="font-weight:bold">include</span> <span style="color:#f44f4f">"include\FileExists2.nsh"</span> 0123 <span style="color:#3f8058">!</span><span style="font-weight:bold">include</span> <span style="color:#f44f4f">"include\IsFileInUse.nsh"</span> 0124 <span style="color:#3f8058">!</span><span style="font-weight:bold">include</span> <span style="color:#f44f4f">"krita_versions_detect.nsh"</span> 0125 <span style="color:#3f8058">!</span><span style="font-weight:bold">include</span> <span style="color:#f44f4f">"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:#f44f4f">"-Remove_shellex"</span> SEC_remove_shellex 0139 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">If</span><span style="color:#3f8058">}</span> $PrevShellExInstallLocation <span style="color:#3f8058">!=</span> <span style="color:#f44f4f">""</span> 0140 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">AndIf</span><span style="color:#3f8058">}</span> $PrevShellExStandalone <span style="color:#3f8058">==</span> 1 0141 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">AndIf</span><span style="color:#3f8058">}</span> $KritaNsisVersion <span style="color:#3f8058">==</span> <span style="color:#f44f4f">""</span> 0142 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">AndIf</span><span style="color:#3f8058">}</span> $<span style="color:#3f8058">{</span>FileExists<span style="color:#3f8058">}</span> <span style="color:#f44f4f">"$PrevShellExInstallLocation\uninstall.exe"</span> 0143 push $R0 0144 <span style="color:#0095ff;font-weight:bold">DetailPrint</span> <span style="color:#f44f4f">"$(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:#f44f4f">"$PrevShellExInstallLocation\uninstall.exe /S _?=$PrevShellExInstallLocation"</span> $R0 0147 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">If</span><span style="color:#3f8058">}</span> $R0 <span style="color:#3f8058">!=</span> 0 0148 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">IfNot</span><span style="color:#3f8058">}</span> $<span style="color:#3f8058">{</span>Silent<span style="color:#3f8058">}</span> 0149 <span style="color:#0095ff;font-weight:bold">MessageBox</span> <span style="color:#9500ff;font-weight:bold">MB_OK</span><span style="color:#3f8058">|</span>MB_ICONSTOP <span style="color:#f44f4f">"$(RemoveShellExFailed)"</span> 0150 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">EndIf</span><span style="color:#3f8058">}</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:#f44f4f">"$(RemoveShellExFailed)"</span> 0153 <span style="color:#0095ff;font-weight:bold">Abort</span> 0154 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">EndIf</span><span style="color:#3f8058">}</span> 0155 <span style="color:#0095ff;font-weight:bold">Delete</span> <span style="color:#f44f4f">"$PrevShellExInstallLocation\uninstall.exe"</span> 0156 <span style="color:#0095ff;font-weight:bold">RMDir</span> /REBOOTOK <span style="color:#f44f4f">"$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:#f44f4f">"$(RemoveShellExDone)"</span> 0160 pop $R0 0161 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">EndIf</span><span style="color:#3f8058">}</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:#f44f4f">"$(SectionRemoveOldVer)"</span> SEC_remove_old_version 0165 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">If</span><span style="color:#3f8058">}</span> $KritaNsisInstallLocation <span style="color:#3f8058">!=</span> <span style="color:#f44f4f">""</span> 0166 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">AndIf</span><span style="color:#3f8058">}</span> $<span style="color:#3f8058">{</span>FileExists<span style="color:#3f8058">}</span> <span style="color:#f44f4f">"$KritaNsisInstallLocation\uninstall.exe"</span> 0167 push $R0 0168 <span style="color:#0095ff;font-weight:bold">DetailPrint</span> <span style="color:#f44f4f">"$(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:#f44f4f">"$KritaNsisInstallLocation\uninstall.exe /S _?=$KritaNsisInstallLocation"</span> $R0 0171 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">If</span><span style="color:#3f8058">}</span> $R0 <span style="color:#3f8058">!=</span> 0 0172 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">IfNot</span><span style="color:#3f8058">}</span> $<span style="color:#3f8058">{</span>Silent<span style="color:#3f8058">}</span> 0173 <span style="color:#0095ff;font-weight:bold">MessageBox</span> <span style="color:#9500ff;font-weight:bold">MB_OK</span><span style="color:#3f8058">|</span>MB_ICONSTOP <span style="color:#f44f4f">"$(RemoveOldVerFailed)"</span> 0174 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">EndIf</span><span style="color:#3f8058">}</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:#f44f4f">"$(RemoveOldVerFailed)"</span> 0177 <span style="color:#0095ff;font-weight:bold">Abort</span> 0178 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">EndIf</span><span style="color:#3f8058">}</span> 0179 <span style="color:#0095ff;font-weight:bold">Delete</span> <span style="color:#f44f4f">"$KritaNsisInstallLocation\uninstall.exe"</span> 0180 <span style="color:#0095ff;font-weight:bold">RMDir</span> /REBOOTOK <span style="color:#f44f4f">"$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:#f44f4f">"$(RemoveOldVerDone)"</span> 0184 pop $R0 0185 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">EndIf</span><span style="color:#3f8058">}</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:#f44f4f">"-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:#f44f4f">"Software\Microsoft\Windows\CurrentVersion\Uninstall\${KRITA_UNINSTALL_REGKEY}"</span> \ 0191 <span style="color:#f44f4f">"DisplayName"</span> <span style="color:#f44f4f">"${KRITA_PRODUCTNAME} ${KRITA_VERSION_DISPLAY}"</span> 0192 <span style="color:#0095ff;font-weight:bold">WriteRegStr</span> HKLM <span style="color:#f44f4f">"Software\Microsoft\Windows\CurrentVersion\Uninstall\${KRITA_UNINSTALL_REGKEY}"</span> \ 0193 <span style="color:#f44f4f">"UninstallString"</span> <span style="color:#f44f4f">"$\"</span>$INSTDIR\uninstall.exe$\<span style="color:#f44f4f">""</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:#f44f4f">"Software\Microsoft\Windows\CurrentVersion\Uninstall\${KRITA_UNINSTALL_REGKEY}"</span> \ 0196 <span style="color:#f44f4f">"DisplayVersion"</span> <span style="color:#f44f4f">"${KRITA_VERSION}"</span> 0197 <span style="color:#0095ff;font-weight:bold">WriteRegStr</span> HKLM <span style="color:#f44f4f">"Software\Microsoft\Windows\CurrentVersion\Uninstall\${KRITA_UNINSTALL_REGKEY}"</span> \ 0198 <span style="color:#f44f4f">"DisplayIcon"</span> <span style="color:#f44f4f">"$\"</span>$INSTDIR\shellex\krita.ico$\<span style="color:#f44f4f">",0"</span> 0199 <span style="color:#0095ff;font-weight:bold">WriteRegStr</span> HKLM <span style="color:#f44f4f">"Software\Microsoft\Windows\CurrentVersion\Uninstall\${KRITA_UNINSTALL_REGKEY}"</span> \ 0200 <span style="color:#f44f4f">"URLInfoAbout"</span> <span style="color:#f44f4f">"https://krita.org/"</span> 0201 <span style="color:#0095ff;font-weight:bold">WriteRegStr</span> HKLM <span style="color:#f44f4f">"Software\Microsoft\Windows\CurrentVersion\Uninstall\${KRITA_UNINSTALL_REGKEY}"</span> \ 0202 <span style="color:#f44f4f">"InstallLocation"</span> <span style="color:#f44f4f">"$INSTDIR"</span> 0203 <span style="color:#0095ff;font-weight:bold">WriteRegStr</span> HKLM <span style="color:#f44f4f">"Software\Microsoft\Windows\CurrentVersion\Uninstall\${KRITA_UNINSTALL_REGKEY}"</span> \ 0204 <span style="color:#f44f4f">"Publisher"</span> <span style="color:#f44f4f">"${KRTIA_PUBLISHER}"</span> 0205 #WriteRegDWORD HKLM <span style="color:#f44f4f">"Software\Microsoft\Windows\CurrentVersion\Uninstall\${KRITA_UNINSTALL_REGKEY}"</span> \ 0206 # <span style="color:#f44f4f">"EstimatedSize"</span> 250000 0207 <span style="color:#0095ff;font-weight:bold">WriteRegDWORD</span> HKLM <span style="color:#f44f4f">"Software\Microsoft\Windows\CurrentVersion\Uninstall\${KRITA_UNINSTALL_REGKEY}"</span> \ 0208 <span style="color:#f44f4f">"NoModify"</span> 1 0209 <span style="color:#0095ff;font-weight:bold">WriteRegDWORD</span> HKLM <span style="color:#f44f4f">"Software\Microsoft\Windows\CurrentVersion\Uninstall\${KRITA_UNINSTALL_REGKEY}"</span> \ 0210 <span style="color:#f44f4f">"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:#f44f4f">"Software\Krita"</span> \ 0215 <span style="color:#f44f4f">"InstallLocation"</span> <span style="color:#f44f4f">"$INSTDIR"</span> 0216 # Version: 0217 # Version of Krita 0218 <span style="color:#0095ff;font-weight:bold">WriteRegStr</span> HKLM <span style="color:#f44f4f">"Software\Krita"</span> \ 0219 <span style="color:#f44f4f">"Version"</span> <span style="color:#f44f4f">"${KRITA_VERSION}"</span> 0220 # x64: 0221 # Set to 1 for 64<span style="color:#3f8058">-</span>bit Krita<span style="color:#3f8058">,</span> can be missing for 32<span style="color:#3f8058">-</span>bit Krita 0222 <span style="color:#3f8058">!</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:#f44f4f">"Software\Krita"</span> \ 0224 <span style="color:#f44f4f">"x64"</span> 1 0225 <span style="color:#3f8058">!</span><span style="font-weight:bold">else</span> 0226 <span style="color:#0095ff;font-weight:bold">DeleteRegValue</span> HKLM <span style="color:#f44f4f">"Software\Krita"</span> <span style="color:#f44f4f">"x64"</span> 0227 <span style="color:#3f8058">!</span><span style="font-weight:bold">endif</span> 0228 # InstallerLanguage: 0229 # Language used by the installer <span style="color:#3f8058">(</span>to be re<span style="color:#3f8058">-</span>used for the uninstaller<span style="color:#3f8058">)</span> 0230 <span style="color:#0095ff;font-weight:bold">WriteRegStr</span> HKLM <span style="color:#f44f4f">"Software\Krita"</span> \ 0231 <span style="color:#f44f4f">"InstallerLanguage"</span> <span style="color:#f44f4f">"$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:#f44f4f">"${KRITA_PRODUCTNAME}"</span> SEC_product_main 0238 # TODO: Maybe switch to explicit file list<span style="color:#3f8058">?</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:#3f8058">{</span>KRITA_PACKAGE_ROOT<span style="color:#3f8058">}</span>\bin 0240 <span style="color:#0095ff;font-weight:bold">File</span> /r $<span style="color:#3f8058">{</span>KRITA_PACKAGE_ROOT<span style="color:#3f8058">}</span>\lib 0241 <span style="color:#0095ff;font-weight:bold">File</span> /r $<span style="color:#3f8058">{</span>KRITA_PACKAGE_ROOT<span style="color:#3f8058">}</span>\share 0242 <span style="color:#0095ff;font-weight:bold">File</span> /r $<span style="color:#3f8058">{</span>KRITA_PACKAGE_ROOT<span style="color:#3f8058">}</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:#f44f4f">"-Main_associate"</span> 0246 <span style="color:#0095ff;font-weight:bold">CreateDirectory</span> $<span style="color:#3f8058">{</span>KRITA_SHELLEX_DIR<span style="color:#3f8058">}</span> 0247 $<span style="color:#3f8058">{</span>Krita_RegisterFileAssociation<span style="color:#3f8058">}</span> <span style="color:#f44f4f">"$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:#f44f4f">"-Main_Shortcuts"</span> 0251 # Placing this after Krita_RegisterFileAssociation to get the icon 0252 <span style="color:#3f8058">!</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:#f44f4f">"$SMPROGRAMS\$KritaStartMenuFolder"</span> 0254 <span style="color:#0095ff;font-weight:bold">CreateShortcut</span> <span style="color:#f44f4f">"$SMPROGRAMS\$KritaStartMenuFolder\${KRITA_PRODUCTNAME}.lnk"</span> <span style="color:#f44f4f">"$INSTDIR\bin\krita.exe"</span> <span style="color:#f44f4f">""</span> <span style="color:#f44f4f">"$INSTDIR\shellex\krita.ico"</span> 0 0255 <span style="color:#3f8058">!</span><span style="font-weight:bold">insertmacro</span> <span style="color:#9500ff;font-weight:bold">MUI_STARTMENU_WRITE_END</span> 0256 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">If</span><span style="color:#3f8058">}</span> $CreateDesktopIcon <span style="color:#3f8058">==</span> 1 0257 # <span style="color:#9500ff;font-weight:bold">For</span> the desktop icon<span style="color:#3f8058">,</span> keep the name short and omit version info 0258 <span style="color:#0095ff;font-weight:bold">CreateShortcut</span> <span style="color:#f44f4f">"$DESKTOP\Krita.lnk"</span> <span style="color:#f44f4f">"$INSTDIR\bin\krita.exe"</span> <span style="color:#f44f4f">""</span> <span style="color:#f44f4f">"$INSTDIR\shellex\krita.ico"</span> 0 0259 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">EndIf</span><span style="color:#3f8058">}</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:#f44f4f">"$(SectionShellEx)"</span> SEC_shellex 0263 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">If</span><span style="color:#3f8058">}</span> $<span style="color:#3f8058">{</span>RunningX64<span style="color:#3f8058">}</span> 0264 $<span style="color:#3f8058">{</span>Krita_RegisterComComonents<span style="color:#3f8058">}</span> 64 0265 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">EndIf</span><span style="color:#3f8058">}</span> 0266 $<span style="color:#3f8058">{</span>Krita_RegisterComComonents<span style="color:#3f8058">}</span> 32 0267 0268 $<span style="color:#3f8058">{</span>Krita_RegisterShellExtension<span style="color:#3f8058">}</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:#3f8058">,</span> this must point to shellex sub<span style="color:#3f8058">-</span>dir 0273 <span style="color:#0095ff;font-weight:bold">WriteRegStr</span> HKLM <span style="color:#f44f4f">"Software\Krita\ShellExtension"</span> \ 0274 <span style="color:#f44f4f">"InstallLocation"</span> <span style="color:#f44f4f">"$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:#f44f4f">"Software\Krita\ShellExtension"</span> \ 0278 <span style="color:#f44f4f">"Version"</span> <span style="color:#f44f4f">"${KRITASHELLEX_VERSION}"</span> 0279 # ShellExtension\Standalone: 0280 # 0 <span style="color:#3f8058">=</span> Installed by Krita installer 0281 # 1 <span style="color:#3f8058">=</span> Standalone installer 0282 <span style="color:#0095ff;font-weight:bold">WriteRegDWORD</span> HKLM <span style="color:#f44f4f">"Software\Krita\ShellExtension"</span> \ 0283 <span style="color:#f44f4f">"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:#f44f4f">"Software\Krita\ShellExtension"</span> \ 0288 <span style="color:#f44f4f">"KritaExePath"</span> <span style="color:#f44f4f">"$INSTDIR\bin\krita.exe"</span> 0289 <span style="color:#0095ff;font-weight:bold">SectionEnd</span> 0290 0291 <span style="color:#3f8058">!</span><span style="font-weight:bold">ifdef</span> HAS_FFMPEG 0292 <span style="color:#0095ff;font-weight:bold">Section</span> <span style="color:#f44f4f">"$(SectionBundledFfmpeg)"</span> SEC_ffmpeg 0293 <span style="color:#0095ff;font-weight:bold">File</span> /oname<span style="color:#3f8058">=</span>bin\ffmpeg.exe $<span style="color:#3f8058">{</span>KRITA_PACKAGE_ROOT<span style="color:#3f8058">}</span>\bin\ffmpeg.exe 0294 <span style="color:#0095ff;font-weight:bold">File</span> /oname<span style="color:#3f8058">=</span>bin\ffmpeg_LICENSE.txt $<span style="color:#3f8058">{</span>KRITA_PACKAGE_ROOT<span style="color:#3f8058">}</span>\bin\ffmpeg_LICENSE.txt 0295 <span style="color:#0095ff;font-weight:bold">File</span> /oname<span style="color:#3f8058">=</span>bin\ffmpeg_README.txt $<span style="color:#3f8058">{</span>KRITA_PACKAGE_ROOT<span style="color:#3f8058">}</span>\bin\ffmpeg_README.txt 0296 <span style="color:#0095ff;font-weight:bold">SectionEnd</span> 0297 <span style="color:#3f8058">!</span><span style="font-weight:bold">endif</span> 0298 0299 <span style="color:#0095ff;font-weight:bold">Section</span> <span style="color:#f44f4f">"-Main_refreshShell"</span> 0300 $<span style="color:#3f8058">{</span>RefreshShell<span style="color:#3f8058">}</span> 0301 <span style="color:#0095ff;font-weight:bold">SectionEnd</span> 0302 0303 <span style="color:#3f8058">!</span><span style="font-weight:bold">insertmacro</span> <span style="color:#9500ff;font-weight:bold">MUI_FUNCTION_DESCRIPTION_BEGIN</span> 0304 #<span style="color:#3f8058">!</span><span style="font-weight:bold">insertmacro</span> <span style="color:#9500ff;font-weight:bold">MUI_DESCRIPTION_TEXT</span> $<span style="color:#3f8058">{</span>SEC_remove_shellex<span style="color:#3f8058">}</span> <span style="color:#f44f4f">"Remove previously installed Krita Shell Integration."</span> 0305 <span style="color:#3f8058">!</span><span style="font-weight:bold">insertmacro</span> <span style="color:#9500ff;font-weight:bold">MUI_DESCRIPTION_TEXT</span> $<span style="color:#3f8058">{</span>SEC_remove_old_version<span style="color:#3f8058">}</span> <span style="color:#f44f4f">"$(SectionRemoveOldVerDesc)"</span> 0306 <span style="color:#3f8058">!</span><span style="font-weight:bold">insertmacro</span> <span style="color:#9500ff;font-weight:bold">MUI_DESCRIPTION_TEXT</span> $<span style="color:#3f8058">{</span>SEC_product_main<span style="color:#3f8058">}</span> <span style="color:#f44f4f">"$(SectionMainDesc)"</span> 0307 <span style="color:#3f8058">!</span><span style="font-weight:bold">insertmacro</span> <span style="color:#9500ff;font-weight:bold">MUI_DESCRIPTION_TEXT</span> $<span style="color:#3f8058">{</span>SEC_shellex<span style="color:#3f8058">}</span> <span style="color:#f44f4f">"$(SectionShellExDesc)"</span> 0308 <span style="color:#3f8058">!</span><span style="font-weight:bold">ifdef</span> HAS_FFMPEG 0309 <span style="color:#3f8058">!</span><span style="font-weight:bold">insertmacro</span> <span style="color:#9500ff;font-weight:bold">MUI_DESCRIPTION_TEXT</span> $<span style="color:#3f8058">{</span>SEC_ffmpeg<span style="color:#3f8058">}</span> <span style="color:#f44f4f">"$(SectionBundledFfmpegDesc)"</span> 0310 <span style="color:#3f8058">!</span><span style="font-weight:bold">endif</span> 0311 <span style="color:#3f8058">!</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:#f44f4f">"un.$(SectionShellEx)"</span> 0314 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">If</span><span style="color:#3f8058">}</span> $UninstallShellExStandalone <span style="color:#3f8058">==</span> 1 0315 push $R0 0316 <span style="color:#0095ff;font-weight:bold">DetailPrint</span> <span style="color:#f44f4f">"$(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:#f44f4f">"$INSTDIR\shellex\uninstall.exe /S _?=$INSTDIR\shellex"</span> $R0 0319 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">If</span><span style="color:#3f8058">}</span> $R0 <span style="color:#3f8058">!=</span> 0 0320 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">IfNot</span><span style="color:#3f8058">}</span> $<span style="color:#3f8058">{</span>Silent<span style="color:#3f8058">}</span> 0321 <span style="color:#0095ff;font-weight:bold">MessageBox</span> <span style="color:#9500ff;font-weight:bold">MB_OK</span><span style="color:#3f8058">|</span>MB_ICONSTOP <span style="color:#f44f4f">"$(RemoveShellExFailed)"</span> 0322 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">EndIf</span><span style="color:#3f8058">}</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:#f44f4f">"$(RemoveShellExFailed)"</span> 0326 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">EndIf</span><span style="color:#3f8058">}</span> 0327 <span style="color:#0095ff;font-weight:bold">Delete</span> <span style="color:#f44f4f">"$INSTDIR\shellex\uninstall.exe"</span> 0328 <span style="color:#0095ff;font-weight:bold">RMDir</span> /REBOOTOK <span style="color:#f44f4f">"$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:#f44f4f">"$(RemoveShellExDone)"</span> 0331 pop $R0 0332 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">Else</span><span style="color:#3f8058">}</span> 0333 $<span style="color:#3f8058">{</span>Krita_UnregisterShellExtension<span style="color:#3f8058">}</span> 0334 0335 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">If</span><span style="color:#3f8058">}</span> $<span style="color:#3f8058">{</span>RunningX64<span style="color:#3f8058">}</span> 0336 $<span style="color:#3f8058">{</span>Krita_UnregisterComComonents<span style="color:#3f8058">}</span> 64 0337 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">EndIf</span><span style="color:#3f8058">}</span> 0338 $<span style="color:#3f8058">{</span>Krita_UnregisterComComonents<span style="color:#3f8058">}</span> 32 0339 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">EndIf</span><span style="color:#3f8058">}</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:#f44f4f">"un.Main_associate"</span> 0343 # TODO: Conditional<span style="color:#3f8058">,</span> use install log 0344 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">If</span><span style="color:#3f8058">}</span> $UninstallShellExStandalone <span style="color:#3f8058">!=</span> 1 0345 $<span style="color:#3f8058">{</span>Krita_UnregisterFileAssociation<span style="color:#3f8058">}</span> 0346 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">EndIf</span><span style="color:#3f8058">}</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:#f44f4f">"un.Main_Shortcuts"</span> 0350 <span style="color:#0095ff;font-weight:bold">Delete</span> <span style="color:#f44f4f">"$DESKTOP\Krita.lnk"</span> 0351 <span style="color:#3f8058">!</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:#f44f4f">"$SMPROGRAMS\$KritaStartMenuFolder\${KRITA_PRODUCTNAME}.lnk"</span> 0353 <span style="color:#0095ff;font-weight:bold">RMDir</span> <span style="color:#f44f4f">"$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:#f44f4f">"un.${KRITA_PRODUCTNAME}"</span> 0357 # TODO: Maybe switch to explicit file list or some sort of install log<span style="color:#3f8058">?</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:#f44f4f">"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:#f44f4f">"Software\Krita"</span> 0367 <span style="color:#0095ff;font-weight:bold">DeleteRegKey</span> HKLM <span style="color:#f44f4f">"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:#f44f4f">"un.Main_refreshShell"</span> 0373 $<span style="color:#3f8058">{</span>RefreshShell<span style="color:#3f8058">}</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:#3f8058">!</span><span style="font-weight:bold">insertmacro</span> SetSectionFlag $<span style="color:#3f8058">{</span>SEC_product_main<span style="color:#3f8058">}</span> $<span style="color:#3f8058">{</span>SF_RO<span style="color:#3f8058">}</span> 0379 <span style="color:#3f8058">!</span><span style="font-weight:bold">insertmacro</span> SetSectionFlag $<span style="color:#3f8058">{</span>SEC_product_main<span style="color:#3f8058">}</span> $<span style="color:#3f8058">{</span>SF_BOLD<span style="color:#3f8058">}</span> 0380 <span style="color:#3f8058">!</span><span style="font-weight:bold">insertmacro</span> SetSectionFlag $<span style="color:#3f8058">{</span>SEC_remove_old_version<span style="color:#3f8058">}</span> $<span style="color:#3f8058">{</span>SF_RO<span style="color:#3f8058">}</span> 0381 <span style="color:#3f8058">!</span><span style="font-weight:bold">ifdef</span> HAS_FFMPEG 0382 <span style="color:#3f8058">!</span><span style="font-weight:bold">insertmacro</span> SetSectionFlag $<span style="color:#3f8058">{</span>SEC_ffmpeg<span style="color:#3f8058">}</span> $<span style="color:#3f8058">{</span>SF_RO<span style="color:#3f8058">}</span> 0383 <span style="color:#3f8058">!</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:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">IfNot</span><span style="color:#3f8058">}</span> $<span style="color:#3f8058">{</span>AtLeastWin7<span style="color:#3f8058">}</span> 0386 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">IfNot</span><span style="color:#3f8058">}</span> $<span style="color:#3f8058">{</span>Silent<span style="color:#3f8058">}</span> 0387 <span style="color:#0095ff;font-weight:bold">MessageBox</span> <span style="color:#9500ff;font-weight:bold">MB_OK</span><span style="color:#3f8058">|</span>MB_ICONSTOP <span style="color:#f44f4f">"$(MsgRequireWin7)"</span> 0388 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">EndIf</span><span style="color:#3f8058">}</span> 0389 <span style="color:#0095ff;font-weight:bold">Abort</span> 0390 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">EndIf</span><span style="color:#3f8058">}</span> 0391 0392 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">IfNot</span><span style="color:#3f8058">}</span> $<span style="color:#3f8058">{</span>Silent<span style="color:#3f8058">}</span> 0393 # Language selection<span style="color:#3f8058">,</span> seems that the order is predefined. 0394 <span style="color:#0095ff;font-weight:bold">Push</span> <span style="color:#f44f4f">""</span> # This value is for languages auto count 0395 <span style="color:#0095ff;font-weight:bold">Push</span> $<span style="color:#3f8058">{</span>LANG_ENGLISH<span style="color:#3f8058">}</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:#3f8058">{</span>LANG_TRADCHINESE<span style="color:#3f8058">}</span> 0398 <span style="color:#0095ff;font-weight:bold">Push</span> <span style="color:#f44f4f">"繁體中文"</span> 0399 <span style="color:#0095ff;font-weight:bold">Push</span> $<span style="color:#3f8058">{</span>LANG_SIMPCHINESE<span style="color:#3f8058">}</span> 0400 <span style="color:#0095ff;font-weight:bold">Push</span> <span style="color:#f44f4f">"简体中文"</span> 0401 <span style="color:#0095ff;font-weight:bold">Push</span> A # <span style="color:#3f8058">=</span> auto count languages 0402 LangDLL::LangDialog <span style="color:#f44f4f">"$(^SetupCaption)"</span> <span style="color:#f44f4f">"$(SetupLangPrompt)"</span> 0403 <span style="color:#0095ff;font-weight:bold">Pop</span> $LANGUAGE 0404 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">If</span><span style="color:#3f8058">}</span> $LANGUAGE <span style="color:#3f8058">==</span> <span style="color:#f44f4f">"cancel"</span> 0405 <span style="color:#0095ff;font-weight:bold">Abort</span> 0406 $<span style="color:#3f8058">{</span>Endif<span style="color:#3f8058">}</span> 0407 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">EndIf</span><span style="color:#3f8058">}</span> 0408 0409 <span style="color:#3f8058">!</span><span style="font-weight:bold">ifdef</span> KRITA_INSTALLER_64 0410 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">If</span><span style="color:#3f8058">}</span> $<span style="color:#3f8058">{</span>RunningX64<span style="color:#3f8058">}</span> 0411 <span style="color:#0095ff;font-weight:bold">SetRegView</span> 64 0412 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">Else</span><span style="color:#3f8058">}</span> 0413 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">IfNot</span><span style="color:#3f8058">}</span> $<span style="color:#3f8058">{</span>Silent<span style="color:#3f8058">}</span> 0414 <span style="color:#0095ff;font-weight:bold">MessageBox</span> <span style="color:#9500ff;font-weight:bold">MB_OK</span><span style="color:#3f8058">|</span>MB_ICONSTOP <span style="color:#f44f4f">"$(Msg64bitOn32bit)"</span> 0415 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">EndIf</span><span style="color:#3f8058">}</span> 0416 <span style="color:#0095ff;font-weight:bold">Abort</span> 0417 $<span style="color:#3f8058">{</span>Endif<span style="color:#3f8058">}</span> 0418 <span style="color:#3f8058">!</span><span style="font-weight:bold">else</span> 0419 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">If</span><span style="color:#3f8058">}</span> $<span style="color:#3f8058">{</span>RunningX64<span style="color:#3f8058">}</span> 0420 <span style="color:#0095ff;font-weight:bold">SetRegView</span> 64 0421 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">IfNot</span><span style="color:#3f8058">}</span> $<span style="color:#3f8058">{</span>Silent<span style="color:#3f8058">}</span> 0422 <span style="color:#0095ff;font-weight:bold">MessageBox</span> <span style="color:#9500ff;font-weight:bold">MB_YESNO</span><span style="color:#3f8058">|</span>MB_ICONEXCLAMATION <span style="color:#f44f4f">"$(Msg32bitOn64bit)"</span> \ 0423 /SD IDYES \ 0424 IDYES lbl_allow32on64 0425 <span style="color:#0095ff;font-weight:bold">Abort</span> 0426 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">EndIf</span><span style="color:#3f8058">}</span> 0427 lbl_allow32on64: 0428 $<span style="color:#3f8058">{</span>Endif<span style="color:#3f8058">}</span> 0429 <span style="color:#3f8058">!</span><span style="font-weight:bold">endif</span> 0430 0431 # Detect ancient Krita versions 0432 $<span style="color:#3f8058">{</span>DetectKritaMsi32bit<span style="color:#3f8058">}</span> $KritaMsiProductX86 0433 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">If</span><span style="color:#3f8058">}</span> $<span style="color:#3f8058">{</span>RunningX64<span style="color:#3f8058">}</span> 0434 $<span style="color:#3f8058">{</span>DetectKritaMsi64bit<span style="color:#3f8058">}</span> $KritaMsiProductX64 0435 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">EndIf</span><span style="color:#3f8058">}</span> 0436 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">If</span><span style="color:#3f8058">}</span> $KritaMsiProductX86 <span style="color:#3f8058">!=</span> <span style="color:#f44f4f">""</span> 0437 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">OrIf</span><span style="color:#3f8058">}</span> $KritaMsiProductX64 <span style="color:#3f8058">!=</span> <span style="color:#f44f4f">""</span> 0438 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">IfNot</span><span style="color:#3f8058">}</span> $<span style="color:#3f8058">{</span>Silent<span style="color:#3f8058">}</span> 0439 <span style="color:#0095ff;font-weight:bold">MessageBox</span> <span style="color:#9500ff;font-weight:bold">MB_YESNO</span><span style="color:#3f8058">|</span><span style="color:#9500ff;font-weight:bold">MB_ICONQUESTION</span><span style="color:#3f8058">|</span>MB_DEFBUTTON1 <span style="color:#f44f4f">"$(MsgAncientVerMustBeRemoved)"</span> \ 0440 /SD IDYES \ 0441 IDYES lbl_removeAncientVer 0442 <span style="color:#0095ff;font-weight:bold">Abort</span> 0443 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">EndIf</span><span style="color:#3f8058">}</span> 0444 lbl_removeAncientVer: 0445 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">If</span><span style="color:#3f8058">}</span> $KritaMsiProductX64 <span style="color:#3f8058">!=</span> <span style="color:#f44f4f">""</span> 0446 push $R0 0447 $<span style="color:#3f8058">{</span>MsiUninstall<span style="color:#3f8058">}</span> $KritaMsiProductX64 $R0 0448 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">If</span><span style="color:#3f8058">}</span> $R0 <span style="color:#3f8058">!=</span> 0 0449 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">IfNot</span><span style="color:#3f8058">}</span> $<span style="color:#3f8058">{</span>Silent<span style="color:#3f8058">}</span> 0450 $<span style="color:#3f8058">{</span>IfKritaMsi3Alpha<span style="color:#3f8058">}</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:#3f8058">|</span>MB_ICONSTOP <span style="color:#f44f4f">"$(MsgKrita3alpha1RemoveFailed)"</span> 0452 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">Else</span><span style="color:#3f8058">}</span> 0453 <span style="color:#0095ff;font-weight:bold">MessageBox</span> <span style="color:#9500ff;font-weight:bold">MB_OK</span><span style="color:#3f8058">|</span>MB_ICONSTOP <span style="color:#f44f4f">"$(MsgKrita2msi64bitRemoveFailed)"</span> 0454 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">EndIf</span><span style="color:#3f8058">}</span> 0455 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">EndIf</span><span style="color:#3f8058">}</span> 0456 <span style="color:#0095ff;font-weight:bold">Abort</span> 0457 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">EndIf</span><span style="color:#3f8058">}</span> 0458 pop $R0 0459 <span style="color:#0095ff;font-weight:bold">StrCpy</span> $KritaMsiProductX64 <span style="color:#f44f4f">""</span> 0460 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">EndIf</span><span style="color:#3f8058">}</span> 0461 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">If</span><span style="color:#3f8058">}</span> $KritaMsiProductX86 <span style="color:#3f8058">!=</span> <span style="color:#f44f4f">""</span> 0462 push $R0 0463 $<span style="color:#3f8058">{</span>MsiUninstall<span style="color:#3f8058">}</span> $KritaMsiProductX86 $R0 0464 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">If</span><span style="color:#3f8058">}</span> $R0 <span style="color:#3f8058">!=</span> 0 0465 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">IfNot</span><span style="color:#3f8058">}</span> $<span style="color:#3f8058">{</span>Silent<span style="color:#3f8058">}</span> 0466 <span style="color:#0095ff;font-weight:bold">MessageBox</span> <span style="color:#9500ff;font-weight:bold">MB_OK</span><span style="color:#3f8058">|</span>MB_ICONSTOP <span style="color:#f44f4f">"$(MsgKrita2msi32bitRemoveFailed)"</span> 0467 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">EndIf</span><span style="color:#3f8058">}</span> 0468 <span style="color:#0095ff;font-weight:bold">Abort</span> 0469 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">EndIf</span><span style="color:#3f8058">}</span> 0470 pop $R0 0471 <span style="color:#0095ff;font-weight:bold">StrCpy</span> $KritaMsiProductX86 <span style="color:#f44f4f">""</span> 0472 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">EndIf</span><span style="color:#3f8058">}</span> 0473 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">EndIf</span><span style="color:#3f8058">}</span> 0474 0475 $<span style="color:#3f8058">{</span>DetectKritaNsis<span style="color:#3f8058">}</span> $KritaNsisVersion $KritaNsisBitness $KritaNsisInstallLocation 0476 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">If</span><span style="color:#3f8058">}</span> $KritaNsisVersion <span style="color:#3f8058">!=</span> <span style="color:#f44f4f">""</span> 0477 push $R0 0478 $<span style="color:#3f8058">{</span>VersionCompare<span style="color:#3f8058">}</span> <span style="color:#f44f4f">"${KRITA_VERSION}"</span> <span style="color:#f44f4f">"$KritaNsisVersion"</span> $R0 0479 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">If</span><span style="color:#3f8058">}</span> $R0 <span style="color:#3f8058">==</span> 0 0480 # Same version installed... probably 0481 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">If</span><span style="color:#3f8058">}</span> $KritaNsisBitness <span style="color:#3f8058">==</span> $<span style="color:#3f8058">{</span>KRITA_INSTALLER_BITNESS<span style="color:#3f8058">}</span> 0482 # Very likely the same version 0483 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">IfNot</span><span style="color:#3f8058">}</span> $<span style="color:#3f8058">{</span>Silent<span style="color:#3f8058">}</span> 0484 <span style="color:#0095ff;font-weight:bold">MessageBox</span> <span style="color:#9500ff;font-weight:bold">MB_OK</span><span style="color:#3f8058">|</span><span style="color:#9500ff;font-weight:bold">MB_ICONINFORMATION</span> <span style="color:#f44f4f">"$(MsgKritaSameVerReinstall)"</span> 0485 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">EndIf</span><span style="color:#3f8058">}</span> 0486 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">Else</span><span style="color:#3f8058">}</span> 0487 # Very likely the same version but different arch 0488 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">IfNot</span><span style="color:#3f8058">}</span> $<span style="color:#3f8058">{</span>Silent<span style="color:#3f8058">}</span> 0489 <span style="color:#3f8058">!</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:#3f8058">|</span><span style="color:#9500ff;font-weight:bold">MB_ICONINFORMATION</span> <span style="color:#f44f4f">"$(MsgKrita3264bitSwap)"</span> 0491 <span style="color:#3f8058">!</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:#3f8058">|</span>MB_ICONEXCLAMATION <span style="color:#f44f4f">"$(MsgKrita3264bitSwap)"</span> 0493 <span style="color:#3f8058">!</span><span style="font-weight:bold">endif</span> 0494 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">EndIf</span><span style="color:#3f8058">}</span> 0495 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">EndIf</span><span style="color:#3f8058">}</span> 0496 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">ElseIf</span><span style="color:#3f8058">}</span> $R0 <span style="color:#3f8058">==</span> 1 0497 # Upgrade 0498 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">If</span><span style="color:#3f8058">}</span> $KritaNsisBitness <span style="color:#3f8058">==</span> $<span style="color:#3f8058">{</span>KRITA_INSTALLER_BITNESS<span style="color:#3f8058">}</span> 0499 # Silent about upgrade 0500 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">Else</span><span style="color:#3f8058">}</span> 0501 # Upgrade but different arch 0502 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">IfNot</span><span style="color:#3f8058">}</span> $<span style="color:#3f8058">{</span>Silent<span style="color:#3f8058">}</span> 0503 <span style="color:#3f8058">!</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:#3f8058">|</span><span style="color:#9500ff;font-weight:bold">MB_ICONINFORMATION</span> <span style="color:#f44f4f">"$(MsgKrita3264bitSwap)"</span> 0505 <span style="color:#3f8058">!</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:#3f8058">|</span>MB_ICONEXCLAMATION <span style="color:#f44f4f">"$(MsgKrita3264bitSwap)"</span> 0507 <span style="color:#3f8058">!</span><span style="font-weight:bold">endif</span> 0508 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">EndIf</span><span style="color:#3f8058">}</span> 0509 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">EndIf</span><span style="color:#3f8058">}</span> 0510 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">ElseIf</span><span style="color:#3f8058">}</span> $R0 <span style="color:#3f8058">==</span> 2 0511 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">IfNot</span><span style="color:#3f8058">}</span> $<span style="color:#3f8058">{</span>Silent<span style="color:#3f8058">}</span> 0512 <span style="color:#0095ff;font-weight:bold">MessageBox</span> <span style="color:#9500ff;font-weight:bold">MB_OK</span><span style="color:#3f8058">|</span>MB_ICONSTOP <span style="color:#f44f4f">"$(MsgKritaNewerAlreadyInstalled)"</span> 0513 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">EndIf</span><span style="color:#3f8058">}</span> 0514 <span style="color:#0095ff;font-weight:bold">Abort</span> 0515 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">Else</span><span style="color:#3f8058">}</span> 0516 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">IfNot</span><span style="color:#3f8058">}</span> $<span style="color:#3f8058">{</span>Silent<span style="color:#3f8058">}</span> 0517 <span style="color:#0095ff;font-weight:bold">MessageBox</span> <span style="color:#9500ff;font-weight:bold">MB_OK</span><span style="color:#3f8058">|</span>MB_ICONSTOP <span style="color:#f44f4f">"Error: Unexpected state"</span> 0518 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">EndIf</span><span style="color:#3f8058">}</span> 0519 <span style="color:#0095ff;font-weight:bold">Abort</span> 0520 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">EndIf</span><span style="color:#3f8058">}</span> 0521 <span style="color:#3f8058">!</span><span style="font-weight:bold">insertmacro</span> SetSectionFlag $<span style="color:#3f8058">{</span>SEC_remove_old_version<span style="color:#3f8058">}</span> $<span style="color:#3f8058">{</span>SF_SELECTED<span style="color:#3f8058">}</span> 0522 # Detect <span style="font-weight:bold">if</span> Krita is running... 0523 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">If</span><span style="color:#3f8058">}</span> $<span style="color:#3f8058">{</span>IsFileinUse<span style="color:#3f8058">}</span> <span style="color:#f44f4f">"$KritaNsisInstallLocation\bin\krita.exe"</span> 0524 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">IfNot</span><span style="color:#3f8058">}</span> $<span style="color:#3f8058">{</span>Silent<span style="color:#3f8058">}</span> 0525 <span style="color:#0095ff;font-weight:bold">MessageBox</span> <span style="color:#9500ff;font-weight:bold">MB_OK</span><span style="color:#3f8058">|</span>MB_ICONEXCLAMATION <span style="color:#f44f4f">"$(MsgKritaRunning)"</span> 0526 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">EndIf</span><span style="color:#3f8058">}</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:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">EndIf</span><span style="color:#3f8058">}</span> 0530 pop $R0 0531 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">Else</span><span style="color:#3f8058">}</span> 0532 <span style="color:#3f8058">!</span><span style="font-weight:bold">insertmacro</span> ClearSectionFlag $<span style="color:#3f8058">{</span>SEC_remove_old_version<span style="color:#3f8058">}</span> $<span style="color:#3f8058">{</span>SF_SELECTED<span style="color:#3f8058">}</span> 0533 <span style="color:#0095ff;font-weight:bold">SectionSetText</span> $<span style="color:#3f8058">{</span>SEC_remove_old_version<span style="color:#3f8058">}</span> <span style="color:#f44f4f">""</span> 0534 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">EndIf</span><span style="color:#3f8058">}</span> 0535 0536 # Detect standalone shell extension 0537 # TODO: Would it be possible to update Krita without replacing the standalone shellex<span style="color:#3f8058">?</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:#f44f4f">"Software\Krita\ShellExtension"</span> <span style="color:#f44f4f">"InstallLocation"</span> 0540 #ReadRegStr $PrevShellExVersion HKLM <span style="color:#f44f4f">"Software\Krita\ShellExtension"</span> <span style="color:#f44f4f">"Version"</span> 0541 <span style="color:#0095ff;font-weight:bold">ReadRegDWORD</span> $PrevShellExStandalone HKLM <span style="color:#f44f4f">"Software\Krita\ShellExtension"</span> <span style="color:#f44f4f">"Standalone"</span> 0542 #ReadRegStr $PrevShellExKritaExePath HKLM <span style="color:#f44f4f">"Software\Krita\ShellExtension"</span> <span style="color:#f44f4f">"KritaExePath"</span> 0543 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">If</span><span style="color:#3f8058">}</span> $<span style="color:#3f8058">{</span>Errors<span style="color:#3f8058">}</span> 0544 # TODO: Assume no previous version installed or what<span style="color:#3f8058">?</span> 0545 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">EndIf</span><span style="color:#3f8058">}</span> 0546 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">If</span><span style="color:#3f8058">}</span> $PrevShellExStandalone <span style="color:#3f8058">==</span> 1 0547 #<span style="color:#3f8058">!</span><span style="font-weight:bold">insertmacro</span> SetSectionFlag $<span style="color:#3f8058">{</span>SEC_remove_shellex<span style="color:#3f8058">}</span> $<span style="color:#3f8058">{</span>SF_SELECTED<span style="color:#3f8058">}</span> 0548 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">Else</span><span style="color:#3f8058">}</span> 0549 #<span style="color:#3f8058">!</span><span style="font-weight:bold">insertmacro</span> ClearSectionFlag $<span style="color:#3f8058">{</span>SEC_remove_shellex<span style="color:#3f8058">}</span> $<span style="color:#3f8058">{</span>SF_SELECTED<span style="color:#3f8058">}</span> 0550 #SectionSetText $<span style="color:#3f8058">{</span>SEC_remove_shellex<span style="color:#3f8058">}</span> <span style="color:#f44f4f">""</span> 0551 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">EndIf</span><span style="color:#3f8058">}</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:#3f8058">!</span><span style="font-weight:bold">ifdef</span> KRITA_INSTALLER_64 0557 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">If</span><span style="color:#3f8058">}</span> $<span style="color:#3f8058">{</span>RunningX64<span style="color:#3f8058">}</span> 0558 <span style="color:#0095ff;font-weight:bold">SetRegView</span> 64 0559 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">Else</span><span style="color:#3f8058">}</span> 0560 <span style="color:#0095ff;font-weight:bold">Abort</span> 0561 $<span style="color:#3f8058">{</span>Endif<span style="color:#3f8058">}</span> 0562 <span style="color:#3f8058">!</span><span style="font-weight:bold">else</span> 0563 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">If</span><span style="color:#3f8058">}</span> $<span style="color:#3f8058">{</span>RunningX64<span style="color:#3f8058">}</span> 0564 <span style="color:#0095ff;font-weight:bold">SetRegView</span> 64 0565 $<span style="color:#3f8058">{</span>Endif<span style="color:#3f8058">}</span> 0566 <span style="color:#3f8058">!</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:#f44f4f">"Software\Krita"</span> <span style="color:#f44f4f">"InstallerLanguage"</span> 0571 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">If</span><span style="color:#3f8058">}</span> $0 <span style="color:#3f8058">!=</span> <span style="color:#f44f4f">""</span> 0572 <span style="color:#0095ff;font-weight:bold">StrCpy</span> $LANGUAGE $0 0573 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">EndIf</span><span style="color:#3f8058">}</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:#f44f4f">"Software\Krita\ShellExtension"</span> <span style="color:#f44f4f">"Standalone"</span> 0577 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">If</span><span style="color:#3f8058">}</span> $<span style="color:#3f8058">{</span>Silent<span style="color:#3f8058">}</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:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">If</span><span style="color:#3f8058">}</span> $<span style="color:#3f8058">{</span>IsFileinUse<span style="color:#3f8058">}</span> <span style="color:#f44f4f">"$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:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">EndIf</span><span style="color:#3f8058">}</span> 0585 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">EndIf</span><span style="color:#3f8058">}</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:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">If</span><span style="color:#3f8058">}</span> $<span style="color:#3f8058">{</span>IsFileinUse<span style="color:#3f8058">}</span> <span style="color:#f44f4f">"$INSTDIR\bin\krita.exe"</span> 0590 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">IfNot</span><span style="color:#3f8058">}</span> $<span style="color:#3f8058">{</span>Silent<span style="color:#3f8058">}</span> 0591 <span style="color:#0095ff;font-weight:bold">MessageBox</span> <span style="color:#9500ff;font-weight:bold">MB_OK</span><span style="color:#3f8058">|</span>MB_ICONEXCLAMATION <span style="color:#f44f4f">"$(MsgUninstallKritaRunning)"</span> 0592 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">EndIf</span><span style="color:#3f8058">}</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:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">EndIf</span><span style="color:#3f8058">}</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:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">IfNot</span><span style="color:#3f8058">}</span> $<span style="color:#3f8058">{</span>SectionIsSelected<span style="color:#3f8058">}</span> $<span style="color:#3f8058">{</span>SEC_shellex<span style="color:#3f8058">}</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:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">EndIf</span><span style="color:#3f8058">}</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:#3f8058">{</span>NSD_GetState<span style="color:#3f8058">}</span> $hwndChkDesktopIcon $CreateDesktopIcon 0609 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">If</span><span style="color:#3f8058">}</span> $CreateDesktopIcon <span style="color:#3f8058">==</span> $<span style="color:#3f8058">{</span>BST_CHECKED<span style="color:#3f8058">}</span> 0610 <span style="color:#0095ff;font-weight:bold">StrCpy</span> $CreateDesktopIcon 1 0611 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">Else</span><span style="color:#3f8058">}</span> 0612 <span style="color:#0095ff;font-weight:bold">StrCpy</span> $CreateDesktopIcon 0 0613 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">EndIf</span><span style="color:#3f8058">}</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:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">If</span><span style="color:#3f8058">}</span> $R0 <span style="color:#3f8058">==</span> <span style="font-weight:bold">error</span> 0622 <span style="color:#0095ff;font-weight:bold">Abort</span> 0623 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">EndIf</span><span style="color:#3f8058">}</span> 0624 <span style="color:#3f8058">!</span><span style="font-weight:bold">insertmacro</span> <span style="color:#9500ff;font-weight:bold">MUI_HEADER_TEXT</span> <span style="color:#f44f4f">"$(ConfirmInstallPageHeader)"</span> <span style="color:#f44f4f">"$(ConfirmInstallPageDesc)"</span> 0625 0626 $<span style="color:#3f8058">{</span>NSD_CreateLabel<span style="color:#3f8058">}</span> 0u 0u 300u 20u <span style="color:#f44f4f">"$(DesktopIconPageDesc2)"</span> 0627 pop $R0 0628 0629 $<span style="color:#3f8058">{</span>NSD_CreateCheckbox<span style="color:#3f8058">}</span> 0u 20u 300u 10u <span style="color:#f44f4f">"$(DesktopIconPageCheckbox)"</span> 0630 pop $hwndChkDesktopIcon 0631 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">If</span><span style="color:#3f8058">}</span> $CreateDesktopIcon <span style="color:#3f8058">==</span> 1 0632 $<span style="color:#3f8058">{</span>NSD_Check<span style="color:#3f8058">}</span> $hwndChkDesktopIcon 0633 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">Else</span><span style="color:#3f8058">}</span> 0634 $<span style="color:#3f8058">{</span>NSD_Uncheck<span style="color:#3f8058">}</span> $hwndChkDesktopIcon 0635 $<span style="color:#3f8058">{</span><span style="color:#9500ff;font-weight:bold">EndIf</span><span style="color:#3f8058">}</span> 0636 $<span style="color:#3f8058">{</span>NSD_OnClick<span style="color:#3f8058">}</span> $hwndChkDesktopIcon func_DesktopShortcutPage_CheckChange 0637 0638 $<span style="color:#3f8058">{</span>NSD_CreateLabel<span style="color:#3f8058">}</span> 0u 40u 300u 140u <span style="color:#f44f4f">"$(ConfirmInstallPageDesc2)"</span> 0639 pop $R0 0640 0641 # TODO: Add install option summary for review<span style="color:#3f8058">?</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:#3f8058">!</span><span style="font-weight:bold">include</span> <span style="color:#f44f4f">"translations\English.nsh"</span> 0651 <span style="color:#3f8058">!</span><span style="font-weight:bold">include</span> <span style="color:#f44f4f">"translations\TradChinese.nsh"</span> 0652 <span style="color:#3f8058">!</span><span style="font-weight:bold">include</span> <span style="color:#f44f4f">"translations\SimpChinese.nsh"</span> 0653 </pre></body></html>