ENH: use radio buttons to choose PATH options

This commit is contained in:
Bill Hoffman 2006-05-10 12:15:00 -04:00
parent da8403a163
commit 5b3a2c84fc
2 changed files with 33 additions and 16 deletions

View File

@ -1,5 +1,5 @@
[Settings] [Settings]
NumFields=3 NumFields=4
[Field 1] [Field 1]
Type=label Type=label
@ -10,20 +10,28 @@ Top=0
Bottom=20 Bottom=20
[Field 2] [Field 2]
Type=checkbox Type=radiobutton
Text=Check this option to add the path to the system PATH Text=Do not add @CPACK_PACKAGE_NAME@ to the system PATH
Left=0 Left=0
Right=-1 Right=-1
Top=30 Top=30
Bottom=40 Bottom=40
State=0 State=1
[Field 3] [Field 3]
Type=checkbox Type=radiobutton
Text=If administrator, add to the PATH for all users. Text=Add @CPACK_PACKAGE_NAME@ to the system PATH for all users
Left=0 Left=0
Right=-1 Right=-1
Top=40 Top=40
Bottom=50 Bottom=50
State=1 State=0
[Field 4]
Type=radiobutton
Text=Add @CPACK_PACKAGE_NAME@ to the system PATH for current user
Left=0
Right=-1
Top=50
Bottom=60
State=0

View File

@ -14,8 +14,9 @@
Var STARTMENU_FOLDER Var STARTMENU_FOLDER
Var SV_ALLUSERS Var SV_ALLUSERS
Var START_MENU Var START_MENU
Var ADD_TO_PATH Var DO_NOT_ADD_TO_PATH
Var ADD_TO_PATH_ALL_USERS Var ADD_TO_PATH_ALL_USERS
Var ADD_TO_PATH_CURRENT_USER
;-------------------------------- ;--------------------------------
;Include Modern UI ;Include Modern UI
@ -66,6 +67,7 @@ Function .onInit
StrCmp "@CPACK_NSIS_MODIFY_PATH@" "ON" 0 noOptionsPage StrCmp "@CPACK_NSIS_MODIFY_PATH@" "ON" 0 noOptionsPage
!insertmacro MUI_INSTALLOPTIONS_EXTRACT "NSIS.InstallOptions.ini" !insertmacro MUI_INSTALLOPTIONS_EXTRACT "NSIS.InstallOptions.ini"
noOptionsPage: noOptionsPage:
FunctionEnd FunctionEnd
@ -441,9 +443,10 @@ FunctionEnd
Section "Add to path" Section "Add to path"
Push $INSTDIR\bin Push $INSTDIR\bin
;Read a value from an InstallOptions INI file ;Read a value from an InstallOptions INI file
!insertmacro MUI_INSTALLOPTIONS_READ $ADD_TO_PATH "NSIS.InstallOptions.ini" "Field 2" "State" !insertmacro MUI_INSTALLOPTIONS_READ $DO_NOT_ADD_TO_PATH "NSIS.InstallOptions.ini" "Field 2" "State"
!insertmacro MUI_INSTALLOPTIONS_READ $ADD_TO_PATH_ALL_USERS "NSIS.InstallOptions.ini" "Field 3" "State" !insertmacro MUI_INSTALLOPTIONS_READ $ADD_TO_PATH_ALL_USERS "NSIS.InstallOptions.ini" "Field 3" "State"
StrCmp $ADD_TO_PATH "1" 0 doNotAddToPath !insertmacro MUI_INSTALLOPTIONS_READ $ADD_TO_PATH_CURRENT_USER "NSIS.InstallOptions.ini" "Field 4" "State"
StrCmp $DO_NOT_ADD_TO_PATH "1" doNotAddToPath 0
Call AddToPath Call AddToPath
doNotAddToPath: doNotAddToPath:
SectionEnd SectionEnd
@ -498,12 +501,15 @@ Section "Installer Section" InstSection
Push "StartMenu" Push "StartMenu"
Push "$STARTMENU_FOLDER" Push "$STARTMENU_FOLDER"
Call ConditionalAddToRegisty Call ConditionalAddToRegisty
Push "AddToPath" Push "DoNotAddToPath"
Push "$ADD_TO_PATH" Push "$DO_NOT_ADD_TO_PATH"
Call ConditionalAddToRegisty Call ConditionalAddToRegisty
Push "AddToPathAllUsers" Push "AddToPathAllUsers"
Push "$ADD_TO_PATH_ALL_USERS" Push "$ADD_TO_PATH_ALL_USERS"
Call ConditionalAddToRegisty Call ConditionalAddToRegisty
Push "AddToPathCurrentUser"
Push "$ADD_TO_PATH_CURRENT_USER"
Call ConditionalAddToRegisty
@CPACK_NSIS_EXTRA_INSTALL_COMMANDS@ @CPACK_NSIS_EXTRA_INSTALL_COMMANDS@
@ -516,6 +522,7 @@ SectionEnd
Function InstallOptionsPage Function InstallOptionsPage
!insertmacro MUI_HEADER_TEXT "Install Options" "Chose options for installing @CPACK_PACKAGE_INSTALL_DIRECTORY@" !insertmacro MUI_HEADER_TEXT "Install Options" "Chose options for installing @CPACK_PACKAGE_INSTALL_DIRECTORY@"
!insertmacro MUI_INSTALLOPTIONS_DISPLAY "NSIS.InstallOptions.ini" !insertmacro MUI_INSTALLOPTIONS_DISPLAY "NSIS.InstallOptions.ini"
FunctionEnd FunctionEnd
;-------------------------------- ;--------------------------------
@ -550,11 +557,13 @@ Section "Uninstall"
ReadRegStr $START_MENU SHCTX \ ReadRegStr $START_MENU SHCTX \
"Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_DIRECTORY@" "StartMenu" "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_DIRECTORY@" "StartMenu"
;MessageBox MB_OK "Start menu is in: $START_MENU" ;MessageBox MB_OK "Start menu is in: $START_MENU"
ReadRegStr $ADD_TO_PATH SHCTX \ ReadRegStr $DO_NOT_ADD_TO_PATH SHCTX \
"Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_DIRECTORY@" "AddToPath" "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_DIRECTORY@" "DoNotAddToPath"
ReadRegStr $ADD_TO_PATH_ALL_USERS SHCTX \ ReadRegStr $ADD_TO_PATH_ALL_USERS SHCTX \
"Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_DIRECTORY@" "AddToPathAllUsers" "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_DIRECTORY@" "AddToPathAllUsers"
;MessageBox MB_OK "Add to path: $ADD_TO_PATH all users: $ADD_TO_PATH_ALL_USERS" ReadRegStr $ADD_TO_PATH_CURRENT_USER SHCTX \
"Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_DIRECTORY@" "AddToPathCurrentUser"
;MessageBox MB_OK "Add to path: $DO_NOT_ADD_TO_PATH all users: $ADD_TO_PATH_ALL_USERS"
@CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS@ @CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS@
@ -613,7 +622,7 @@ Section "Uninstall"
DeleteRegKey /ifempty SHCTX "Software\@CPACK_PACKAGE_VENDOR@\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" DeleteRegKey /ifempty SHCTX "Software\@CPACK_PACKAGE_VENDOR@\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@"
Push $INSTDIR\bin Push $INSTDIR\bin
StrCmp $ADD_TO_PATH "1" 0 doNotRemoveFromPath StrCmp $DO_NOT_ADD_TO_PATH_ "1" doNotRemoveFromPath 0
Call un.RemoveFromPath Call un.RemoveFromPath
doNotRemoveFromPath: doNotRemoveFromPath:
SectionEnd SectionEnd