Add the option to installer for installing the plugins in %PROGRAMDATA%

This commit is contained in:
Don HO 2018-11-24 17:30:19 +01:00
parent 61402a354f
commit 44baa33d1e
4 changed files with 45 additions and 4 deletions

View File

@ -41,6 +41,8 @@ SetCompressor /SOLID lzma ; This reduces installer size by approx 30~35%
; Installer is DPI-aware: not scaled by the DWM, no blurry text
ManifestDPIAware true
Var arePlugins4AllUsers
!include "nsisInclude\winVer.nsh"
!include "nsisInclude\globalDef.nsh"
!include "nsisInclude\tools.nsh"
@ -118,6 +120,7 @@ InstType "Minimalist"
Var diffArchDir2Remove
Var noUpdater
Function .onInit
${GetParameters} $R0
@ -130,6 +133,16 @@ withoutUpdater:
StrCpy $noUpdater "true"
updaterDone:
${GetOptions} $R0 "/pliginsForAllUsers" $R1 ;case insensitive
IfErrors withoutPlugins4AllUsers withPlugins4AllUsers
withPlugins4AllUsers:
StrCpy $arePlugins4AllUsers "true"
Goto plugins4AllUsersDone
withoutPlugins4AllUsers:
StrCpy $arePlugins4AllUsers "false"
plugins4AllUsersDone:
${If} $noUpdater == "true"
!insertmacro UnSelectSection ${AutoUpdater}
SectionSetText ${AutoUpdater} ""
@ -137,6 +150,7 @@ updaterDone:
SectionSetText ${PluginsAdmin} ""
${EndIf}
${If} ${SectionIsSelected} ${PluginsAdmin}
!insertmacro SetSectionFlag ${AutoUpdater} ${SF_RO}
!insertmacro SelectSection ${AutoUpdater}
@ -204,9 +218,9 @@ Section -"Notepad++" mainSection
Call removeUnstablePlugins
Call removeOldContextMenu
Call shortcutLinkManagement
SectionEnd
; Please **DONOT** move this function (SetRoughEstimation) anywhere else

View File

@ -56,6 +56,16 @@ initUpdatePath:
StrCpy $UPDATE_PATH "$APPDATA\${APPNAME}"
CreateDirectory $UPDATE_PATH\plugins\config
${EndIf}
; override PLUGIN_INST_PATH
${If} $arePlugins4AllUsers == "true"
ReadEnvStr $0 "ALLUSERSPROFILE"
StrCpy $PLUGIN_INST_PATH "$0\Notepad++\plugins"
File /oname=$INSTDIR\pluginsForAllUsers.xml "..\bin\pluginsForAllUsers_dummy.xml"
${ELSE}
Delete $INSTDIR\pluginsForAllUsers.xml
${EndIf}
alreadyDone:
FunctionEnd
@ -121,7 +131,7 @@ Function removeUnstablePlugins
Delete "$INSTDIR\plugins\HexEditorPlugin.dll"
IfFileExists "$INSTDIR\plugins\HexEditor.dll" 0 +4
MessageBox MB_OK "Due to the stability issue,$\nHexEditor.dll will be moved to the directory $\"disabled$\"" /SD IDOK
MessageBox MB_OK "Due to the stability issue,$\nHexEditor.dll will be moved to the directory $\"disabled$\"" /SD IDOK
Rename "$INSTDIR\plugins\HexEditor.dll" "$INSTDIR\plugins\disabled\HexEditor.dll"
Delete "$INSTDIR\plugins\HexEditor.dll"

View File

@ -81,6 +81,7 @@ FunctionEnd
;Installer Functions
Var Dialog
Var NoUserDataCheckboxHandle
Var Plugin4AllUsersCheckboxHandle
Var ShortcutCheckboxHandle
Var WinVer
@ -98,7 +99,14 @@ Function ExtraOptions
${NSD_Check} $ShortcutCheckboxHandle
${NSD_OnClick} $ShortcutCheckboxHandle OnChange_ShortcutCheckBox
${NSD_CreateCheckbox} 0 80 100% 30u "Don't use %APPDATA%$\nEnable this option to make Notepad++ load/write the configuration files from/to its install directory. Check it if you use Notepad++ in a USB device."
${NSD_CreateCheckbox} 0 80 100% 30u "Check this will make your plugin installed for all users on this PC."
Pop $Plugin4AllUsersCheckboxHandle
${If} $arePlugins4AllUsers == "true"
${NSD_Check} $Plugin4AllUsersCheckboxHandle
${EndIf}
${NSD_OnClick} $Plugin4AllUsersCheckboxHandle OnChange_Plugin4AllUsersCheckBox
${NSD_CreateCheckbox} 0 160 100% 30u "Don't use %APPDATA%$\nEnable this option to make Notepad++ load/write the configuration files from/to its install directory. Check it if you use Notepad++ in a USB device."
Pop $NoUserDataCheckboxHandle
${NSD_OnClick} $NoUserDataCheckboxHandle OnChange_NoUserDataCheckBox
@ -134,6 +142,15 @@ Function OnChange_ShortcutCheckBox
${NSD_GetState} $ShortcutCheckboxHandle $createShortcutChecked
FunctionEnd
Function OnChange_Plugin4AllUsersCheckBox
${NSD_GetState} $ShortcutCheckboxHandle $0
${If} $0 == ${BST_CHECKED}
StrCpy $arePlugins4AllUsers "true"
${ELSE}
StrCpy $arePlugins4AllUsers "false"
${EndIf}
FunctionEnd
Function writeInstallInfoInRegistry
WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\notepad++.exe" "" "$INSTDIR\notepad++.exe"