Windows installer: Remove userdata dir selection

Due to UAC, especially virtualization of the Programs directory, it is preferable to force 'My Games' as the location.
This commit is contained in:
aquileia 2015-08-08 03:32:28 +02:00
parent c7ffe8dfd7
commit d8b5e7b3c1

View File

@ -11,7 +11,6 @@
!define MULTIUSER_INSTALLMODE_INSTDIR "Battle for Wesnoth %version"
!include "MultiUser.nsh"
!include "MUI2.nsh"
!include "nsDialogs.nsh"
!include "LogicLib.nsh"
!include "WinVer.nsh"
@ -26,16 +25,7 @@
;Variables
Var StartMenuFolder
!define UserdataDir Wesnoth%version_major
Var UserdataFlags
;Userdata page variables
Var Dialog
Var UserdataMyDocumentsRadioButton
Var UserdataMyDocumentsRadioButtonState
Var UserdataInstalldirRadioButton
Var UserdataInstalldirRadioButtonState
!define UserdataFlags "'--config-dir Wesnoth%version_major'"
;--------------------------------
;Interface Settings
@ -66,10 +56,8 @@
!define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\Battle for Wesnoth\%version"
!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder"
!define MUI_STARTMENUPAGE_DEFAULTFOLDER "Battle for Wesnoth %version"
!insertmacro MUI_PAGE_STARTMENU Application $StartMenuFolder
Page custom UserdataPage UserdataPageLeave
!insertmacro MUI_PAGE_STARTMENU Application $StartMenuFolder
!insertmacro MUI_PAGE_INSTFILES
@ -146,52 +134,22 @@ Function .onInit
!insertmacro MULTIUSER_INIT
!insertmacro MUI_LANGDLL_DISPLAY
StrCpy $UserdataMyDocumentsRadioButtonState ${BST_CHECKED}
FunctionEnd
Function UserdataPage
nsDialogs::Create /NOUNLOAD 1018
Pop $Dialog
${If} $Dialog == error
Abort
${EndIf}
${NSD_CreateRadioButton} 0 30u 100%% 10u "Store userdata (preferences, saved games..) in My Documents\My Games\${UserdataDir}"
Pop $UserdataMyDocumentsRadioButton
${NSD_CreateRadioButton} 0 50u 100%% 10u "Store userdata in the install location"
Pop $UserdataInstalldirRadioButton
${NSD_SetState} $UserdataMyDocumentsRadioButton $UserdataMyDocumentsRadioButtonState
${NSD_SetState} $UserdataInstalldirRadioButton $UserdataInstalldirRadioButtonState
nsDialogs::Show
FunctionEnd
Function StartMenuShortcuts
!insertmacro MUI_STARTMENU_WRITE_BEGIN Application
${If} $UserdataMyDocumentsRadioButtonState == ${BST_CHECKED}
StrCpy $UserdataFlags "--config-dir ${UserdataDir}"
${Else}
StrCpy $UserdataFlags ""
${EndIf}
; Create shortcuts
CreateDirectory "$SMPROGRAMS\$StartMenuFolder"
CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Battle for Wesnoth.lnk" "$INSTDIR\wesnoth.exe" $UserdataFlags
CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Battle for Wesnoth (with console).lnk" "$INSTDIR\cwesnoth.cmd" $UserdataFlags "$INSTDIR\wesnoth.exe"
CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Battle for Wesnoth.lnk" "$INSTDIR\wesnoth.exe" ${UserdataFlags}
CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Battle for Wesnoth (with console).lnk" "$INSTDIR\cwesnoth.cmd" ${UserdataFlags} "$INSTDIR\wesnoth.exe"
CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Manual.lnk" "$INSTDIR\manual\manual.$(LCode).html"
${If} ${IsNT}
${AndIf} ${AtMostWin7}
; Win7 or lower has collapsed start menu folders, activate additional shortcuts.
CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Map editor.lnk" "$INSTDIR\wesnoth.exe" "-e $UserdataFlags" "$INSTDIR\wesnoth_editor-icon.ico"
CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Map editor.lnk" "$INSTDIR\wesnoth.exe" "-e ${UserdataFlags}" "$INSTDIR\wesnoth_editor-icon.ico"
CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Uninstall.lnk" "$INSTDIR\Uninstall.exe"
CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Changelog.lnk" "$INSTDIR\changelog.txt"
CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Player's changelog.lnk" "$INSTDIR\players_changelog.txt"
@ -221,13 +179,6 @@ Function StartMenuShortcuts
FunctionEnd
Function UserdataPageLeave
${NSD_GetState} $UserdataMyDocumentsRadioButton $UserdataMyDocumentsRadioButtonState
${NSD_GetState} $UserdataInstalldirRadioButton $UserdataInstalldirRadioButtonState
FunctionEnd
;--------------------------------
;Uninstaller Section