* Improved multi-user installation. It is now easier to have both a system as well as a local version of LyX installed.

* Installation for all users is the default for Power Users and Administrators
* For silent installation, it is possible to use the /AllUsers or /CurrentUser command line parameter to choose for which users you want to install
* Updated list of supported languages. The "red" languages from http://www.lyx.org/devel/i18n.php have been removed.
* Language and dictionary names are no longer in English but are translated in the language itself
* One single list with language names, ISO codes and identifiers
* Both the installer and uninstaller automatically detect the user interface language
* Added more space in the user interface for translated texts
* Added all Python encoding files so there will be no problems with future Python scripts

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/branches/BRANCH_1_4_X@15200 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Joost Verburg 2006-10-02 17:21:20 +00:00
parent 17ccf3cf5f
commit a7594d6ca8
21 changed files with 470 additions and 262 deletions

View File

@ -48,8 +48,14 @@ Section -InstallData
;Uninstaller information ;Uninstaller information
!define REG_UNINSTALL 'WriteRegStr SHELL_CONTEXT "Software\Microsoft\Windows\CurrentVersion\Uninstall\${SETUP_UNINSTALLER_KEY}"' !define REG_UNINSTALL 'WriteRegStr SHELL_CONTEXT "Software\Microsoft\Windows\CurrentVersion\Uninstall\${SETUP_UNINSTALLER_KEY}"'
${REG_UNINSTALL} "UninstallString" "$\"$INSTDIR\${SETUP_UNINSTALLER}$\"" ${if} $CurrentUserInstall == ${TRUE}
${REG_UNINSTALL} "UninstallString" '"$INSTDIR\${SETUP_UNINSTALLER}" /CurrentUser'
${REG_UNINSTALL} "DisplayName" "${APP_NAME} ${APP_VERSION} $(TEXT_INSTALL_CURRENTUSER)"
${else}
${REG_UNINSTALL} "UninstallString" '"$INSTDIR\${SETUP_UNINSTALLER}" /AllUsers'
${REG_UNINSTALL} "DisplayName" "${APP_NAME} ${APP_VERSION}" ${REG_UNINSTALL} "DisplayName" "${APP_NAME} ${APP_VERSION}"
${endif}
${REG_UNINSTALL} "DisplayVersion" "${APP_VERSION}" ${REG_UNINSTALL} "DisplayVersion" "${APP_VERSION}"
${REG_UNINSTALL} "DisplayIcon" "$INSTDIR\bin\lyx_32x32.ico" ${REG_UNINSTALL} "DisplayIcon" "$INSTDIR\bin\lyx_32x32.ico"
${REG_UNINSTALL} "URLUpdateInfo" "http://www.lyx.org/" ${REG_UNINSTALL} "URLUpdateInfo" "http://www.lyx.org/"
@ -57,9 +63,6 @@ Section -InstallData
${REG_UNINSTALL} "Publisher" "LyX Team" ${REG_UNINSTALL} "Publisher" "LyX Team"
${REG_UNINSTALL} "HelpLink" "http://www.lyx.org/internet/mailing.php" ${REG_UNINSTALL} "HelpLink" "http://www.lyx.org/internet/mailing.php"
;Create uninstaller
WriteUninstaller "$INSTDIR\${SETUP_UNINSTALLER}"
SectionEnd SectionEnd
Section -LaTeX Section -LaTeX
@ -113,7 +116,7 @@ Section -Configure
FileOpen $R1 "$INSTDIR\${APP_RUN}" w FileOpen $R1 "$INSTDIR\${APP_RUN}" w
FileWrite $R1 '@echo off$\r$\n' FileWrite $R1 '@echo off$\r$\n'
FileWrite $R1 'SET LC_ALL=$LangCode$\r$\n' FileWrite $R1 'SET LC_ALL=$LangISOCode$\r$\n'
FileWrite $R1 'SET AIK_DATA_DIR=$INSTDIR\aiksaurus$\r$\n' FileWrite $R1 'SET AIK_DATA_DIR=$INSTDIR\aiksaurus$\r$\n'
FileWrite $R1 'start "${APP_NAME}" "$INSTDIR\bin\lyx.exe" %*$\r$\n' FileWrite $R1 'start "${APP_NAME}" "$INSTDIR\bin\lyx.exe" %*$\r$\n'

View File

@ -1,7 +1,7 @@
/* /*
LyX Core LyX Core
Binaries, resources, MSYS/Python, Aspell Binaries, Resources, Python, Aspell
*/ */
@ -78,19 +78,22 @@ Section -Core SecCore
;Aspell ;Aspell
File /oname=$PLUGINSDIR\aspelldata.exe "${FILES_ASPELLDATA}\aspelldata-sep06.exe" File /oname=$PLUGINSDIR\AspellData.exe "${FILES_ASPELLDATA}\AspellData.exe"
${if} $AllUsersInstall == ${TRUE} ${if} $CurrentUserInstall == ${TRUE}
ExecWait '"$PLUGINSDIR\aspelldata.exe" /S /AllUsers' ExecWait '"$PLUGINSDIR\AspellData.exe" /S /CurrentUser'
${else} ${else}
ExecWait '"$PLUGINSDIR\aspelldata.exe" /S' ExecWait '"$PLUGINSDIR\AspellData.exe" /S /AllUsers'
${endif} ${endif}
Delete "$PLUGINSDIR\aspelldata.exe" Delete "$PLUGINSDIR\AspellData.exe"
;Aiksarus data ;Aiksarus data
SetOutPath "$INSTDIR\aiksaurus" SetOutPath "$INSTDIR\aiksaurus"
!insertmacro FileListAiksaurusData File "${FILES_AIKSAURUS}\" !insertmacro FileListAiksaurusData File "${FILES_AIKSAURUS}\"
;Create uninstaller
WriteUninstaller "$INSTDIR\${SETUP_UNINSTALLER}"
SectionEnd SectionEnd

View File

@ -7,15 +7,15 @@ Aspell dictionaries
;-------------------------------- ;--------------------------------
;Macros ;Macros
!macro Dictionary file lang_name lang_code size !macro Dictionary FILE LANGNAME LANGCODE SIZE
Section /o "${lang_name}" Section /o "${LANGNAME}"
AddSize ${size} AddSize ${SIZE}
Push ${lang_code} Push ${LANGCODE}
Push "${lang_name}" Push "${LANGNAME}"
Push ${file} Push ${FILE}
Call DownloadDictionary Call DownloadDictionary
@ -36,39 +36,39 @@ SectionEnd
!define DICT '!insertmacro Dictionary' !define DICT '!insertmacro Dictionary'
${DICT} af-0.50-0 "Afrikaans" af 924 ${DICT} af-0.50-0 "Afrikaans" af 924
${DICT} no-0.50-2 "Bokmål" no 1300
${DICT} bg-0.50-0 "Bulgarian" bg 9059 ${DICT} bg-0.50-0 "Bulgarian" bg 9059
${DICT} ca-20040130-1 "Catalan" ca 1107 ${DICT} ca-20040130-1 "Català" ca 1107
${DICT} hr-0.51-0 "Croatian" hr 2006 ${DICT} cs-20040614-1 "Cesky" cs 2096
${DICT} cs-20040614-1 "Czech" cs 2096 ${DICT} da-1.4.42-1 "Dansk" da 3094
${DICT} da-1.4.42-1 "Danish" da 3094 ${DICT} de-20030222-1 "Deutsch" de 2929
${DICT} nl-0.50-2 "Dutch" nl 1546
${DICT} en-6.0-0 "English" en 1144 ${DICT} en-6.0-0 "English" en 1144
${DICT} es-0.50-2 "Español" es 3018
${DICT} eo-0.50-2 "Esperanto" eo 3863 ${DICT} eo-0.50-2 "Esperanto" eo 3863
${DICT} et-0.1.21-1 "Estonian" et 931 ${DICT} et-0.1.21-1 "Estonian" et 931
${DICT} fi-0.7-0 "Finnish" fi 663 ${DICT} fr-0.50-3 "Français" fr 4428
${DICT} fr-0.50-3 "French" fr 4428 ${DICT} gl-0.50-0 "Galego" gl 3041
${DICT} gl-0.50-0 "Galician" gl 3041
${DICT} de-20030222-1 "German" de 2929
${DICT} el-0.50-3 "Greek" el 3269 ${DICT} el-0.50-3 "Greek" el 3269
${DICT} he-0.9-0 "Hebrew" he 1485 ${DICT} he-0.9-0 "Hebrew" he 1485
${DICT} hu-0.99.4.2-0 "Hungarian" hu 1636 ${DICT} hr-0.51-0 "Hrvatski" hr 2006
${DICT} is-0.51.1-0 "Icelandic" is 1556 ${DICT} is-0.51.1-0 "Icelandic" is 1556
;${DICT} ia-0.50-1 "Interlingua" ia 605 ;${DICT} ia-0.50-1 "Interlingua" ia 605
${DICT} it-2.2_20050523-0 "Italian" it 699 ${DICT} it-2.2_20050523-0 "Italiano" it 699
;${DICT} la-20020503-0 "Latin" la 179 ;${DICT} la-20020503-0 "Latin" la 179
${DICT} no-0.50-2 "Norwegian" no 1300 ${DICT} hu-0.99.4.2-0 "Magyar" hu 1636
${DICT} nn-0.50.1-1 "Norwegian Nynorsk" nn 1962 ${DICT} nl-0.50-2 "Nederlands" nl 1546
${DICT} pl-0.51-0 "Polish" pl 14018 ${DICT} nn-0.50.1-1 "Nynorsk" nn 1962
${DICT} pt-0.50-2 "Portuguese" pt 2326 ${DICT} pl-0.51-0 "Polski" pl 14018
${DICT} ro-0.50-2 "Romanian" ro 338 ${DICT} pt-0.50-2 "Português" pt 2326
${DICT} ro-0.50-2 "Romana" ro 338
${DICT} ru-0.99f7-1 "Russian" ru 1477 ${DICT} ru-0.99f7-1 "Russian" ru 1477
${DICT} gd-0.1.1-1 "Scottish" gd 187 ${DICT} gd-0.1.1-1 "Scottish" gd 187
${DICT} sk-0.52-0 "Slovak" sk 4709
${DICT} sl-0.50-0 "Slovenian" sl 5252
${DICT} sr-0.02 "Serbian" sr 3755 ${DICT} sr-0.02 "Serbian" sr 3755
${DICT} es-0.50-2 "Spanish" es 3018 ${DICT} sk-0.52-0 "Slovenský jazyk" sk 4709
${DICT} sv-0.51-0 "Swedish" sv 1040 ${DICT} sl-0.50-0 "Slovenski jezik" sl 5252
${DICT} tr-0.50-0 "Turkish" tr 548 ${DICT} fi-0.7-0 "Suomi" fi 663
${DICT} sv-0.51-0 "Svenska" sv 1040
${DICT} tr-0.50-0 "Türkçe" tr 548
;${DICT} hsb-0.01-1 "Upper Sorbian" hsb 374 ;${DICT} hsb-0.01-1 "Upper Sorbian" hsb 374
${DICT} uk-1.1-0 "Ukrainian" uk 583 ${DICT} uk-1.1-0 "Ukrainian" uk 583
${DICT} cy-0.50-3 "Welsh" cy 1801 ${DICT} cy-0.50-3 "Welsh" cy 1801

View File

@ -7,31 +7,31 @@ External Components: MiKTeX, ImageMagick, Ghostscript
;-------------------------------- ;--------------------------------
;Macros ;Macros
!macro SetComponentState var component !macro SetComponentState VAR COMPONENT
${if} ${var} == "1" ${if} ${VAR} == "1"
StrCpy $Setup${component} ${TRUE} StrCpy $Setup${COMPONENT} ${TRUE}
StrCpy $R1 $Size${component} StrCpy $R1 $Size${COMPONENT}
${if} $Path${component} == "" ${if} $Path${COMPONENT} == ""
;Add size of component itself ;Add size of component itself
IntOp $R1 $R1 + ${SIZE_${component}} IntOp $R1 $R1 + ${SIZE_${COMPONENT}}
${endif} ${endif}
SectionSetSize ${External${component}} $R1 SectionSetSize ${External${COMPONENT}} $R1
${else} ${else}
StrCpy $Setup${component} ${FALSE} StrCpy $Setup${COMPONENT} ${FALSE}
SectionSetSize ${External${component}} 0 SectionSetSize ${External${COMPONENT}} 0
${endif} ${endif}
!macroend !macroend
!macro ExternalComponent component !macro ExternalComponent COMPONENT
;Action depending on type of installer ;Action depending on type of installer
@ -49,54 +49,54 @@ External Components: MiKTeX, ImageMagick, Ghostscript
!macroend !macroend
!macro SetupComponent component !macro SetupComponent COMPONENT
;Run the setup application for a component ;Run the setup application for a component
install_${component}: install_${COMPONENT}:
ExecWait '"$PLUGINSDIR\${component}Setup.exe"' ExecWait '"$PLUGINSDIR\${COMPONENT}Setup.exe"'
Call UpdatePathEnvironment Call UpdatePathEnvironment
Call Search${component} Call Search${COMPONENT}
${if} $Path${component} == "" ${if} $Path${COMPONENT} == ""
MessageBox MB_YESNO|MB_ICONEXCLAMATION $(TEXT_NOTINSTALLED_${component}) IDYES install_${component} MessageBox MB_YESNO|MB_ICONEXCLAMATION $(TEXT_NOTINSTALLED_${COMPONENT}) IDYES install_${COMPONENT}
${endif} ${endif}
Delete "$PLUGINSDIR\${component}Setup.exe" Delete "$PLUGINSDIR\${COMPONENT}Setup.exe"
!macroend !macroend
!ifndef SETUPTYPE_BUNDLE !ifndef SETUPTYPE_BUNDLE
!macro DownloadComponent component !macro DownloadComponent COMPONENT
download_${component}: download_${COMPONENT}:
;Download using HTTP ;Download using HTTP
NSISdl::download "${DOWNLOAD_${component}}" "$PLUGINSDIR\${component}Setup.exe" NSISdl::download "${DOWNLOAD_${COMPONENT}}" "$PLUGINSDIR\${COMPONENT}Setup.exe"
Pop $R0 Pop $R0
${if} $R0 != "success" ${if} $R0 != "success"
;Download failed ;Download failed
MessageBox MB_YESNO|MB_ICONEXCLAMATION "$(TEXT_DOWNLOAD_FAILED_${component}) ($R0)" IDYES download_${component} MessageBox MB_YESNO|MB_ICONEXCLAMATION "$(TEXT_DOWNLOAD_FAILED_${COMPONENT}) ($R0)" IDYES download_${COMPONENT}
Goto noinstall_${component} Goto noinstall_${COMPONENT}
${endif} ${endif}
!insertmacro SetupComponent ${component} !insertmacro SetupComponent ${COMPONENT}
noinstall_${component}: noinstall_${COMPONENT}:
!macroend !macroend
!else !else
!macro InstallComponent component !macro InstallComponent COMPONENT
;Extract ;Extract
File /oname=$PLUGINSDIR\${component}Setup.exe ${INSTALL_${component}} File /oname=$PLUGINSDIR\${COMPONENT}Setup.exe ${INSTALL_${COMPONENT}}
!insertmacro SetupComponent ${component} !insertmacro SetupComponent ${COMPONENT}
!macroend !macroend
@ -113,38 +113,38 @@ External Components: MiKTeX, ImageMagick, Ghostscript
!macroend !macroend
!macro DialogExternalShow component !macro DialogExternalShow COMPONENT
!insertmacro MUI_HEADER_TEXT $(TEXT_EXTERNAL_${component}_TITLE) $(TEXT_EXTERNAL_${component}_SUBTITLE) !insertmacro MUI_HEADER_TEXT $(TEXT_EXTERNAL_${COMPONENT}_TITLE) $(TEXT_EXTERNAL_${COMPONENT}_SUBTITLE)
!insertmacro MUI_INSTALLOPTIONS_INITDIALOG "external_${component}.ini" !insertmacro MUI_INSTALLOPTIONS_INITDIALOG "external_${COMPONENT}.ini"
!insertmacro DialogExternalControl ${component} !insertmacro DialogExternalControl ${COMPONENT}
!insertmacro MUI_INSTALLOPTIONS_SHOW !insertmacro MUI_INSTALLOPTIONS_SHOW
!macroend !macroend
!macro DialogExternalValidate component !macro DialogExternalValidate COMPONENT
Push $R0 Push $R0
Push $R1 Push $R1
;Next button pressed? ;Next button pressed?
!insertmacro MUI_INSTALLOPTIONS_READ $R0 "external_${component}.ini" "Settings" "State" !insertmacro MUI_INSTALLOPTIONS_READ $R0 "external_${COMPONENT}.ini" "Settings" "State"
${if} $R0 != "0" ${if} $R0 != "0"
!insertmacro DialogExternalControl ${component} !insertmacro DialogExternalControl ${COMPONENT}
Abort Abort
${endif} ${endif}
;Download? ;Download?
!insertmacro MUI_INSTALLOPTIONS_READ $R0 "external_${component}.ini" "Field 2" "State" !insertmacro MUI_INSTALLOPTIONS_READ $R0 "external_${COMPONENT}.ini" "Field 2" "State"
!insertmacro SetComponentState $R0 ${component} !insertmacro SetComponentState $R0 ${COMPONENT}
;Folder? ;Folder?
!insertmacro MUI_INSTALLOPTIONS_READ $R0 "external_${component}.ini" "Field 3" "State" !insertmacro MUI_INSTALLOPTIONS_READ $R0 "external_${COMPONENT}.ini" "Field 3" "State"
${if} $R0 == "1" ${if} $R0 == "1"
!insertmacro MUI_INSTALLOPTIONS_READ $R0 "external_${component}.ini" "Field 4" "State" !insertmacro MUI_INSTALLOPTIONS_READ $R0 "external_${COMPONENT}.ini" "Field 4" "State"
${unless} ${FileExists} "$R0\${BIN_${component}}" ${unless} ${FileExists} "$R0\${BIN_${COMPONENT}}"
MessageBox MB_OK|MB_ICONEXCLAMATION $(TEXT_EXTERNAL_${component}_NOTFOUND) MessageBox MB_OK|MB_ICONEXCLAMATION $(TEXT_EXTERNAL_${COMPONENT}_NOTFOUND)
Abort Abort
${endif} ${endif}
StrCpy $Path${component} $R0 StrCpy $Path${component} $R0

View File

@ -7,44 +7,33 @@ Selection of language for LyX interface
;-------------------------------- ;--------------------------------
;Macros ;Macros
!macro SystemLanguage lang_name lang_code !macro SetSystemLangItem VAR LANGNAME LANGISOCODE LANGID
${if} $R0 == ${lang_code} ${if} $R0 == ${LANGID}
!insertmacro MUI_INSTALLOPTIONS_WRITE "langselect.ini" "Field 2" "State" "${lang_name}" !insertmacro MUI_INSTALLOPTIONS_WRITE "langselect.ini" "Field 2" "State" "${LANGNAME}"
${endif} ${endif}
!macroend !macroend
!macro GetLyXLangCodeItem var_name var_langcode name langcode !macro SetSystemLang VAR
${if} ${var_name} == "${name}" !insertmacro LanguageList '!insertmacro SetSystemLangItem ${VAR}'
StrCpy ${var_langcode} "${langcode}"
!macroend
!macro GetISOLangCodeItem VAR_LANGNAME VAR_LANGISOCODE LANGNAME LANGISOCODE LANGID
${if} ${VAR_LANGNAME} == "${LANGNAME}"
StrCpy ${VAR_LANGISOCODE} "${LANGISOCODE}"
${endif} ${endif}
!macroend !macroend
!macro GetLyXLangCode var_name var_langcode !macro GetISOLangCode VAR_LANGNAME VAR_LANGISOCODE
!define LANGCODE '!insertmacro GetLyXLangCodeItem ${var_name} ${var_langcode}' ;Get the language code for the selected language name
${LANGCODE} "Basque" "eu_EU" !insertmacro LanguageList '!insertmacro GetISOLangCodeItem ${VAR_LANGNAME} ${VAR_LANGISOCODE}'
${LANGCODE} "Dansk" "da_DK"
${LANGCODE} "Dutch" "nl_NL"
${LANGCODE} "English" "en_EN"
${LANGCODE} "Finnish" "fi_FI"
${LANGCODE} "French" "fr_FR"
${LANGCODE} "German" "de_DE"
${LANGCODE} "Hungarian" "hu_HU"
${LANGCODE} "Italian" "it_IT"
${LANGCODE} "Norwegian" "nb_NO"
${LANGCODE} "Norwegian (Nynorsk)" "nn_NO"
${LANGCODE} "Polish" "pl_PL"
${LANGCODE} "Romanish" "ro_RO"
${LANGCODE} "Russian" "ru_RU"
${LANGCODE} "Slovak" "sk_SK"
${LANGCODE} "Slovian" "sl_SI"
${LANGCODE} "Spanish" "es_ES"
${LANGCODE} "Turkish" "tr_TR"
!macroend !macroend
@ -53,30 +42,10 @@ Selection of language for LyX interface
Function InitLanguage Function InitLanguage
;Set the default for the LyX language selection dialog ;Set the default for the language selection dialog to the Windows language
System::Call "kernel32::GetUserDefaultUILanguage()i.R0" System::Call "kernel32::GetUserDefaultUILanguage()i.R0"
!insertmacro SetSystemLang $R0
!define SYSTEM_LANG '!insertmacro SystemLanguage'
${SYSTEM_LANG} "Basque" 1069
${SYSTEM_LANG} "Danish" 1030
${SYSTEM_LANG} "Dutch" 1043
${SYSTEM_LANG} "English" 1033
${SYSTEM_LANG} "Finnish" 1035
${SYSTEM_LANG} "French" 1036
${SYSTEM_LANG} "German" 1031
${SYSTEM_LANG} "Hungarian" 1038
${SYSTEM_LANG} "Italian" 1057
${SYSTEM_LANG} "Norwegian" 1044
${SYSTEM_LANG} "Norwegian (Nynorsk)" 2068
${SYSTEM_LANG} "Polish" 1045
${SYSTEM_LANG} "Romanian" 1048
${SYSTEM_LANG} "Russian" 1049
${SYSTEM_LANG} "Slovak" 1051
${SYSTEM_LANG} "Slovenian" 1060
${SYSTEM_LANG} "Spanish" 1034
${SYSTEM_LANG} "Turkish" 1055
FunctionEnd FunctionEnd
@ -93,6 +62,6 @@ FunctionEnd
Function PageLanguageValidate Function PageLanguageValidate
!insertmacro MUI_INSTALLOPTIONS_READ $LangName "langselect.ini" "Field 2" "State" !insertmacro MUI_INSTALLOPTIONS_READ $LangName "langselect.ini" "Field 2" "State"
!insertmacro GetLyXLangCode $LangName $LangCode !insertmacro GetISOLangCode $LangName $LangISOCode
FunctionEnd FunctionEnd

View File

@ -32,6 +32,4 @@ Function PageReinstallValidate
!insertmacro UnselectSection ${SecCore} !insertmacro UnselectSection ${SecCore}
${endif} ${endif}
Call InitUser
FunctionEnd FunctionEnd

View File

@ -7,14 +7,14 @@ Install type setting (current user/all users)
;-------------------------------- ;--------------------------------
;Macros ;Macros
!macro GetDirExternal component !macro GetDirExternal COMPONENT
ReadRegStr $R0 SHELL_CONTEXT "${APP_REGKEY_SETUP}" "${component} Path" ReadRegStr $R0 SHELL_CONTEXT "${APP_REGKEY_SETUP}" "${COMPONENT} Path"
${if} ${FileExists} "$R0\${BIN_${component}}" ${if} ${FileExists} "$R0\${BIN_${COMPONENT}}"
${if} $R0 != "" ${if} $R0 != ""
StrCpy $Path${component} $R0 StrCpy $Path${COMPONENT} $R0
${endif} ${endif}
${endif} ${endif}
@ -75,10 +75,11 @@ Function PageUserValidate
!insertmacro MUI_INSTALLOPTIONS_READ $R0 "user.ini" "Field 2" "State" !insertmacro MUI_INSTALLOPTIONS_READ $R0 "user.ini" "Field 2" "State"
${if} $R0 == "1" ${if} $R0 == "1"
SetShellVarContext current
${else}
SetShellVarContext all SetShellVarContext all
StrCpy $AllUsersInstall ${TRUE} StrCpy $CurrentUserInstall ${FALSE}
${else}
SetShellVarContext current
StrCpy $CurrentUserInstall ${TRUE}
${endif} ${endif}
Call InitUser Call InitUser

View File

@ -15,5 +15,5 @@ Left=0
Top=30 Top=30
Right=110 Right=110
Bottom=130 Bottom=130
ListItems=Basque|Danish|Dutch|English|Finnish|French|German|Hungarian|Italian|Norwegian|Norwegian (Nynorsk)|Polish|Romanian|Russian|Slovensky|Slovene|Spanish|Turkish ListItems=
State=English State=

View File

@ -6,7 +6,7 @@ Type=Label
Left=0 Left=0
Top=0 Top=0
Right=300 Right=300
Bottom=29 Bottom=40
Text=###TEXT_REINSTALL_INFO### Text=###TEXT_REINSTALL_INFO###
[Field 2] [Field 2]

View File

@ -6,22 +6,24 @@ Type=Label
Left=0 Left=0
Top=0 Top=0
Right=300 Right=300
Bottom=19 Bottom=30
Text=###TEXT_USER_INFO### Text=###TEXT_USER_INFO###
[Field 2]
Type=RadioButton
Left=20
Top=40
Right=290
Bottom=51
Text=###TEXT_USER_CURRENT###
State=1
[Field 3] [Field 3]
Type=RadioButton Type=RadioButton
Left=20 Left=20
Top=60 Top=60
Right=290 Right=300
Bottom=71 Bottom=71
Text=###TEXT_USER_CURRENT###
State=
[Field 2]
Type=RadioButton
Left=20
Top=40
Right=300
Bottom=51
Text=###TEXT_USER_ALL# Text=###TEXT_USER_ALL#
State=

View File

@ -6,7 +6,7 @@ Type=Label
Left=0 Left=0
Top=0 Top=0
Right=300 Right=300
Bottom=30 Bottom=40
Text=###TEXT_VIEWER_INFO### Text=###TEXT_VIEWER_INFO###
[Field 2] [Field 2]

View File

@ -21,6 +21,7 @@ Declarations
!include "MUI.nsh" !include "MUI.nsh"
!include "LogicLib.nsh" !include "LogicLib.nsh"
!include "StrFunc.nsh"
!include "FileFunc.nsh" !include "FileFunc.nsh"
!include "WordFunc.nsh" !include "WordFunc.nsh"
!include "Sections.nsh" !include "Sections.nsh"
@ -47,7 +48,7 @@ ReserveFile "${FILES_DVIPOST_PKG}\dvipost.sty"
;Variables ;Variables
Var AdminOrPowerUser Var AdminOrPowerUser
Var AllUsersInstall Var CurrentUserInstall
Var PathLaTeX Var PathLaTeX
Var PathImageMagick Var PathImageMagick
@ -65,19 +66,16 @@ Var SizeGhostscript
Var SizeViewer Var SizeViewer
Var LangName Var LangName
Var LangCode Var LangISOCode
Var AspellHive Var AspellHive
;--------------------------------
;Generic defines
!define FALSE 0
!define TRUE 1
;-------------------------------- ;--------------------------------
;Include standard functions ;Include standard functions
!insertmacro FUNCTION_STRING_StrStr
!insertmacro FUNCTION_STRING_UnStrStr
!insertmacro GetParent !insertmacro GetParent
!insertmacro VersionCompare !insertmacro VersionCompare
!insertmacro WordFind2X !insertmacro WordFind2X
@ -85,25 +83,25 @@ Var AspellHive
;-------------------------------- ;--------------------------------
;Macros ;Macros
!macro ReDef name value !macro ReDef NAME VALUE
;Redefine a pre-processor definition ;Redefine a pre-processor definition
!ifdef `${name}` !ifdef `${NAME}`
!undef `${name}` !undef `${NAME}`
!endif !endif
!define `${name}` `${value}` !define `${NAME}` `${VALUE}`
!macroend !macroend
!macro CallFunc function input var_output !macro CallFunc FUNCTION INPUT VAROUT
;Calls a function that modifies a single value on the stack ;Calls a function that modifies a single value on the stack
Push ${input} Push ${INPUT}
Call ${function} Call ${FUNCTION}
Pop ${var_output} Pop ${VAROUT}
!macroend !macroend

View File

@ -107,7 +107,7 @@ Function GetPathPrefix
Push $R0 Push $R0
StrCpy $R0 "$INSTDIR\python" StrCpy $R0 "$INSTDIR\bin;$INSTDIR\python"
${if} $PathLaTeX != "" ${if} $PathLaTeX != ""
StrCpy $R0 "$R0;$PathLaTeX" StrCpy $R0 "$R0;$PathLaTeX"

View File

@ -155,10 +155,121 @@ Lists of files to include in the installer
!macro FileListPythonLibEncodings COMMAND DIRECTORY !macro FileListPythonLibEncodings COMMAND DIRECTORY
${COMMAND} "${DIRECTORY}__init__.py"
${COMMAND} "${DIRECTORY}aliases.py" ${COMMAND} "${DIRECTORY}aliases.py"
${COMMAND} "${DIRECTORY}ascii.py"
${COMMAND} "${DIRECTORY}base64_codec.py"
${COMMAND} "${DIRECTORY}big5.py"
${COMMAND} "${DIRECTORY}big5hkscs.py"
${COMMAND} "${DIRECTORY}bz2_codec.py"
${COMMAND} "${DIRECTORY}charmap.py"
${COMMAND} "${DIRECTORY}cp037.py"
${COMMAND} "${DIRECTORY}cp1006.py"
${COMMAND} "${DIRECTORY}cp1026.py"
${COMMAND} "${DIRECTORY}cp1140.py"
${COMMAND} "${DIRECTORY}cp1250.py"
${COMMAND} "${DIRECTORY}cp1251.py"
${COMMAND} "${DIRECTORY}cp1252.py" ${COMMAND} "${DIRECTORY}cp1252.py"
${COMMAND} "${DIRECTORY}cp1253.py"
${COMMAND} "${DIRECTORY}cp1254.py"
${COMMAND} "${DIRECTORY}cp1255.py"
${COMMAND} "${DIRECTORY}cp1256.py"
${COMMAND} "${DIRECTORY}cp1257.py"
${COMMAND} "${DIRECTORY}cp1258.py"
${COMMAND} "${DIRECTORY}cp424.py"
${COMMAND} "${DIRECTORY}cp437.py"
${COMMAND} "${DIRECTORY}cp500.py"
${COMMAND} "${DIRECTORY}cp737.py"
${COMMAND} "${DIRECTORY}cp775.py"
${COMMAND} "${DIRECTORY}cp850.py"
${COMMAND} "${DIRECTORY}cp852.py"
${COMMAND} "${DIRECTORY}cp855.py"
${COMMAND} "${DIRECTORY}cp856.py"
${COMMAND} "${DIRECTORY}cp857.py"
${COMMAND} "${DIRECTORY}cp860.py"
${COMMAND} "${DIRECTORY}cp861.py"
${COMMAND} "${DIRECTORY}cp862.py"
${COMMAND} "${DIRECTORY}cp863.py"
${COMMAND} "${DIRECTORY}cp864.py"
${COMMAND} "${DIRECTORY}cp865.py"
${COMMAND} "${DIRECTORY}cp866.py"
${COMMAND} "${DIRECTORY}cp869.py"
${COMMAND} "${DIRECTORY}cp874.py"
${COMMAND} "${DIRECTORY}cp875.py"
${COMMAND} "${DIRECTORY}cp932.py"
${COMMAND} "${DIRECTORY}cp949.py"
${COMMAND} "${DIRECTORY}cp950.py"
${COMMAND} "${DIRECTORY}euc_jisx0213.py"
${COMMAND} "${DIRECTORY}euc_jis_2004.py"
${COMMAND} "${DIRECTORY}euc_jp.py"
${COMMAND} "${DIRECTORY}euc_kr.py"
${COMMAND} "${DIRECTORY}gb18030.py"
${COMMAND} "${DIRECTORY}gb2312.py"
${COMMAND} "${DIRECTORY}gbk.py"
${COMMAND} "${DIRECTORY}hex_codec.py"
${COMMAND} "${DIRECTORY}hp_roman8.py"
${COMMAND} "${DIRECTORY}hz.py"
${COMMAND} "${DIRECTORY}idna.py"
${COMMAND} "${DIRECTORY}iso2022_jp.py"
${COMMAND} "${DIRECTORY}iso2022_jp_1.py"
${COMMAND} "${DIRECTORY}iso2022_jp_2.py"
${COMMAND} "${DIRECTORY}iso2022_jp_2004.py"
${COMMAND} "${DIRECTORY}iso2022_jp_3.py"
${COMMAND} "${DIRECTORY}iso2022_jp_ext.py"
${COMMAND} "${DIRECTORY}iso2022_kr.py"
${COMMAND} "${DIRECTORY}iso8859_1.py"
${COMMAND} "${DIRECTORY}iso8859_10.py"
${COMMAND} "${DIRECTORY}iso8859_11.py"
${COMMAND} "${DIRECTORY}iso8859_13.py"
${COMMAND} "${DIRECTORY}iso8859_14.py"
${COMMAND} "${DIRECTORY}iso8859_15.py"
${COMMAND} "${DIRECTORY}iso8859_16.py"
${COMMAND} "${DIRECTORY}iso8859_2.py"
${COMMAND} "${DIRECTORY}iso8859_3.py"
${COMMAND} "${DIRECTORY}iso8859_4.py"
${COMMAND} "${DIRECTORY}iso8859_5.py"
${COMMAND} "${DIRECTORY}iso8859_6.py"
${COMMAND} "${DIRECTORY}iso8859_7.py"
${COMMAND} "${DIRECTORY}iso8859_8.py"
${COMMAND} "${DIRECTORY}iso8859_9.py"
${COMMAND} "${DIRECTORY}johab.py"
${COMMAND} "${DIRECTORY}koi8_r.py"
${COMMAND} "${DIRECTORY}koi8_u.py"
${COMMAND} "${DIRECTORY}latin_1.py"
${COMMAND} "${DIRECTORY}mac_arabic.py"
${COMMAND} "${DIRECTORY}mac_centeuro.py"
${COMMAND} "${DIRECTORY}mac_croatian.py"
${COMMAND} "${DIRECTORY}mac_cyrillic.py"
${COMMAND} "${DIRECTORY}mac_farsi.py"
${COMMAND} "${DIRECTORY}mac_greek.py"
${COMMAND} "${DIRECTORY}mac_iceland.py"
${COMMAND} "${DIRECTORY}mac_latin2.py"
${COMMAND} "${DIRECTORY}mac_roman.py"
${COMMAND} "${DIRECTORY}mac_romanian.py"
${COMMAND} "${DIRECTORY}mac_turkish.py"
${COMMAND} "${DIRECTORY}mbcs.py"
${COMMAND} "${DIRECTORY}palmos.py"
${COMMAND} "${DIRECTORY}ptcp154.py"
${COMMAND} "${DIRECTORY}punycode.py"
${COMMAND} "${DIRECTORY}quopri_codec.py"
${COMMAND} "${DIRECTORY}raw_unicode_escape.py"
${COMMAND} "${DIRECTORY}rot_13.py"
${COMMAND} "${DIRECTORY}shift_jis.py"
${COMMAND} "${DIRECTORY}shift_jisx0213.py"
${COMMAND} "${DIRECTORY}shift_jis_2004.py"
${COMMAND} "${DIRECTORY}string_escape.py"
${COMMAND} "${DIRECTORY}tis_620.py"
${COMMAND} "${DIRECTORY}undefined.py"
${COMMAND} "${DIRECTORY}unicode_escape.py"
${COMMAND} "${DIRECTORY}unicode_internal.py"
${COMMAND} "${DIRECTORY}utf_16.py"
${COMMAND} "${DIRECTORY}utf_16_be.py"
${COMMAND} "${DIRECTORY}utf_16_le.py"
${COMMAND} "${DIRECTORY}utf_7.py"
${COMMAND} "${DIRECTORY}utf_8.py"
${COMMAND} "${DIRECTORY}utf_8_sig.py"
${COMMAND} "${DIRECTORY}uu_codec.py"
${COMMAND} "${DIRECTORY}zlib_codec.py" ${COMMAND} "${DIRECTORY}zlib_codec.py"
${COMMAND} "${DIRECTORY}__init__.py"
!macroend !macroend

View File

@ -12,13 +12,6 @@ Name "${APP_NAME} ${APP_VERSION}"
;Default installation folder ;Default installation folder
InstallDir "${SETUP_DEFAULT_DIRECTORY}" InstallDir "${SETUP_DEFAULT_DIRECTORY}"
;--------------------------------
;Installer language
;Get from registry if available
!define MUI_LANGDLL_REGISTRY_ROOT SHELL_CONTEXT
!define MUI_LANGDLL_REGISTRY_KEY "${APP_REGKEY_SETUP}"
!define MUI_LANGDLL_REGISTRY_VALUENAME "Setup Language"
;-------------------------------- ;--------------------------------
;Interface settings ;Interface settings
@ -82,7 +75,7 @@ Page custom PageLanguage PageLanguageValidate
!insertmacro MUI_UNPAGE_FINISH !insertmacro MUI_UNPAGE_FINISH
;-------------------------------- ;--------------------------------
;Languages ;Installer Languages
!insertmacro IncludeLang "english" !insertmacro IncludeLang "english"
!insertmacro IncludeLang "french" !insertmacro IncludeLang "french"
@ -92,53 +85,61 @@ Page custom PageLanguage PageLanguageValidate
;-------------------------------- ;--------------------------------
;Macros ;Macros
!macro InitDialogExternal component currentuser_possible !macro InitDialogExternal COMPONENT CURRENTUSER_POSSIBLE
!insertmacro MUI_INSTALLOPTIONS_WRITE "external_${component}.ini" "Field 1" "Text" $(TEXT_EXTERNAL_${component}_INFO_${SETUPTYPE_NAME}) !insertmacro MUI_INSTALLOPTIONS_WRITE "external_${COMPONENT}.ini" "Field 1" "Text" $(TEXT_EXTERNAL_${COMPONENT}_INFO_${SETUPTYPE_NAME})
!insertmacro MUI_INSTALLOPTIONS_WRITE "external_${component}.ini" "Field 3" "Text" $(TEXT_EXTERNAL_${component}_FOLDER) !insertmacro MUI_INSTALLOPTIONS_WRITE "external_${COMPONENT}.ini" "Field 3" "Text" $(TEXT_EXTERNAL_${COMPONENT}_FOLDER)
!insertmacro MUI_INSTALLOPTIONS_WRITE "external_${component}.ini" "Field 5" "Text" $(TEXT_EXTERNAL_${component}_FOLDER_INFO) !insertmacro MUI_INSTALLOPTIONS_WRITE "external_${COMPONENT}.ini" "Field 5" "Text" $(TEXT_EXTERNAL_${COMPONENT}_FOLDER_INFO)
!insertmacro MUI_INSTALLOPTIONS_WRITE "external_${component}.ini" "Field 6" "Text" $(TEXT_EXTERNAL_${component}_NONE) !insertmacro MUI_INSTALLOPTIONS_WRITE "external_${COMPONENT}.ini" "Field 6" "Text" $(TEXT_EXTERNAL_${COMPONENT}_NONE)
!if ${currentuser_possible} == ${TRUE} !if ${CURRENTUSER_POSSIBLE} == ${TRUE}
!insertmacro MUI_INSTALLOPTIONS_WRITE "external_${component}.ini" "Field 2" "Text" "$(TEXT_EXTERNAL_${component}_${SETUPTYPE_NAME})" !insertmacro MUI_INSTALLOPTIONS_WRITE "external_${COMPONENT}.ini" "Field 2" "Text" "$(TEXT_EXTERNAL_${COMPONENT}_${SETUPTYPE_NAME})"
!else !else
${if} $AdminOrPowerUser == ${TRUE} ${if} $AdminOrPowerUser == ${TRUE}
!insertmacro MUI_INSTALLOPTIONS_WRITE "external_${component}.ini" "Field 2" "Text" "$(TEXT_EXTERNAL_${component}_${SETUPTYPE_NAME})" !insertmacro MUI_INSTALLOPTIONS_WRITE "external_${COMPONENT}.ini" "Field 2" "Text" "$(TEXT_EXTERNAL_${COMPONENT}_${SETUPTYPE_NAME})"
${else} ${else}
!insertmacro MUI_INSTALLOPTIONS_WRITE "external_${component}.ini" "Field 2" "Text" "$(TEXT_EXTERNAL_${component}_${SETUPTYPE_NAME}) $(TEXT_EXTERNAL_NOPRIVILEDGES)" !insertmacro MUI_INSTALLOPTIONS_WRITE "external_${COMPONENT}.ini" "Field 2" "Text" "$(TEXT_EXTERNAL_${COMPONENT}_${SETUPTYPE_NAME}) $(TEXT_EXTERNAL_NOPRIVILEDGES)"
!insertmacro MUI_INSTALLOPTIONS_WRITE "external_${component}.ini" "Field 2" "Flags" "DISABLED" !insertmacro MUI_INSTALLOPTIONS_WRITE "external_${COMPONENT}.ini" "Field 2" "Flags" "DISABLED"
${endif} ${endif}
!endif !endif
!macroend !macroend
!macro InitDialogExternalDir component currentuser_possible !macro InitDialogExternalDir COMPONENT CURRENTUSER_POSSIBLE
!insertmacro MUI_INSTALLOPTIONS_WRITE "external_${component}.ini" "Field 4" "State" $Path${component} !insertmacro MUI_INSTALLOPTIONS_WRITE "external_${COMPONENT}.ini" "Field 4" "State" $Path${COMPONENT}
!if ${currentuser_possible} == ${FALSE} !if ${CURRENTUSER_POSSIBLE} == ${FALSE}
${if} $AdminOrPowerUser == ${TRUE} ${if} $AdminOrPowerUser == ${TRUE}
!endif !endif
${if} $Path${component} == "" ${if} $Path${COMPONENT} == ""
!insertmacro MUI_INSTALLOPTIONS_WRITE "external_${component}.ini" "Field 2" "State" "1" !insertmacro MUI_INSTALLOPTIONS_WRITE "external_${COMPONENT}.ini" "Field 2" "State" "1"
${else} ${else}
!insertmacro MUI_INSTALLOPTIONS_WRITE "external_${component}.ini" "Field 3" "State" "1" !insertmacro MUI_INSTALLOPTIONS_WRITE "external_${COMPONENT}.ini" "Field 3" "State" "1"
${endif} ${endif}
!if ${currentuser_possible} == ${FALSE} !if ${CURRENTUSER_POSSIBLE} == ${FALSE}
${else} ${else}
!insertmacro MUI_INSTALLOPTIONS_WRITE "external_${component}.ini" "Field 3" "State" "1" !insertmacro MUI_INSTALLOPTIONS_WRITE "external_${COMPONENT}.ini" "Field 3" "State" "1"
${endif} ${endif}
!endif !endif
!macroend !macroend
!macro InitDialogLang VAR LANGNAME LANGISOCODE LANGID
StrCpy ${VAR} `${VAR}|${LANGNAME}`
!macroend
;-------------------------------- ;--------------------------------
;Functions ;Functions
Function InitDialogs Function InitDialogs
Push $R0
;Extract dialogs ;Extract dialogs
!insertmacro MUI_INSTALLOPTIONS_EXTRACT_AS "dialogs\user.ini" "user.ini" !insertmacro MUI_INSTALLOPTIONS_EXTRACT_AS "dialogs\user.ini" "user.ini"
@ -152,8 +153,8 @@ Function InitDialogs
;Write texts ;Write texts
!insertmacro MUI_INSTALLOPTIONS_WRITE "user.ini" "Field 1" "Text" $(TEXT_USER_INFO) !insertmacro MUI_INSTALLOPTIONS_WRITE "user.ini" "Field 1" "Text" $(TEXT_USER_INFO)
!insertmacro MUI_INSTALLOPTIONS_WRITE "user.ini" "Field 2" "Text" $(TEXT_USER_CURRENT) !insertmacro MUI_INSTALLOPTIONS_WRITE "user.ini" "Field 2" "Text" $(TEXT_USER_ALL)
!insertmacro MUI_INSTALLOPTIONS_WRITE "user.ini" "Field 3" "Text" $(TEXT_USER_ALL) !insertmacro MUI_INSTALLOPTIONS_WRITE "user.ini" "Field 3" "Text" $(TEXT_USER_CURRENT)
!insertmacro MUI_INSTALLOPTIONS_WRITE "reinstall.ini" "Field 1" "Text" $(TEXT_REINSTALL_INFO) !insertmacro MUI_INSTALLOPTIONS_WRITE "reinstall.ini" "Field 1" "Text" $(TEXT_REINSTALL_INFO)
!insertmacro MUI_INSTALLOPTIONS_WRITE "reinstall.ini" "Field 2" "Text" $(TEXT_REINSTALL_ENABLE) !insertmacro MUI_INSTALLOPTIONS_WRITE "reinstall.ini" "Field 2" "Text" $(TEXT_REINSTALL_ENABLE)
@ -166,12 +167,29 @@ Function InitDialogs
!insertmacro MUI_INSTALLOPTIONS_WRITE "viewer.ini" "Field 2" "Text" $(TEXT_VIEWER_${SETUPTYPE_NAME}) !insertmacro MUI_INSTALLOPTIONS_WRITE "viewer.ini" "Field 2" "Text" $(TEXT_VIEWER_${SETUPTYPE_NAME})
!insertmacro MUI_INSTALLOPTIONS_WRITE "langselect.ini" "Field 1" "Text" $(TEXT_LANGUAGE_INFO) !insertmacro MUI_INSTALLOPTIONS_WRITE "langselect.ini" "Field 1" "Text" $(TEXT_LANGUAGE_INFO)
StrCpy $R0 ""
!insertmacro LanguageList '!insertmacro InitDialogLang $R0'
!insertmacro MUI_INSTALLOPTIONS_WRITE "langselect.ini" "Field 2" "ListItems" $R0
;Set state of user dialog
${if} $CurrentUserInstall == ${TRUE}
!insertmacro MUI_INSTALLOPTIONS_WRITE "user.ini" "Field 2" "State" "0"
!insertmacro MUI_INSTALLOPTIONS_WRITE "user.ini" "Field 3" "State" "1"
${else}
!insertmacro MUI_INSTALLOPTIONS_WRITE "user.ini" "Field 2" "State" "1"
!insertmacro MUI_INSTALLOPTIONS_WRITE "user.ini" "Field 3" "State" "0"
${endif}
Pop $R0
FunctionEnd FunctionEnd
Function InitInterface Function InitInterface
Call CheckPriviledges ${if} $AdminOrPowerUser != ${TRUE}
MessageBox MB_OK|MB_ICONEXCLAMATION $(TEXT_NO_PRIVILEDGES)
${endif}
Banner::show /NOUNLOAD "Preparing wizard" Banner::show /NOUNLOAD "Preparing wizard"

View File

@ -1,9 +1,33 @@
/* /*
Language file handling Translations for installer and LyX itself
*/ */
!macro LanguageList COMMAND
;List of supported LyX languages with ISO code and language identifier
;To be used as input for other macros
${COMMAND} "Basque" eu_EU 1069
${COMMAND} "Bokmål" nb_NO 1044
${COMMAND} "Cesky" cs_CZ 1029
${COMMAND} "Dansk" da_DK 1030
${COMMAND} "Deutsch" de_DE 1031
${COMMAND} "English" en_EN 1033
${COMMAND} "Español" es_ES 1034
${COMMAND} "Français" fr_FR 1036
${COMMAND} "Italiano" it_IT 1057
${COMMAND} "Magyar" hu_HU 1038
${COMMAND} "Nynorsk" nn_NO 2068
${COMMAND} "Polski" pl_PL 1045
${COMMAND} "Russian" ru_RU 1049
${COMMAND} "Slovenský jazyk" sk_SK 1060
${COMMAND} "Suomi" fi_FI 1035
${COMMAND} "Türkçe" tr_TR 1055
!macroend
!macro LanguageString name text !macro LanguageString name text
!ifndef "${name}" !ifndef "${name}"
@ -40,6 +64,8 @@ Language file handling
${LanguageStringAdd} TEXT_NO_PRIVILEDGES ${LanguageStringAdd} TEXT_NO_PRIVILEDGES
${LanguageStringAdd} TEXT_INSTALL_CURRENTUSER
${LanguageStringAdd} TEXT_WELCOME_${SETUPTYPE_NAME} ${LanguageStringAdd} TEXT_WELCOME_${SETUPTYPE_NAME}
${LanguageStringAdd} TEXT_USER_TITLE ${LanguageStringAdd} TEXT_USER_TITLE

View File

@ -4,6 +4,75 @@ Checks for Windows version
*/ */
;--------------------------------
;Macros
!macro CheckPrivileges
Push $R0
UserInfo::GetAccountType
Pop $R0
${if} $R0 == "Admin"
StrCpy $AdminOrPowerUser ${TRUE}
${elseif} $R0 == "Power"
StrCpy $AdminOrPowerUser ${TRUE}
${else}
StrCpy $AdminOrPowerUser ${FALSE}
${endif}
Pop $R0
!macroend
!macro CommandLineParameter UNINSTALL
Exch $R0
Push $R1
Push $R2
StrLen $R1 $R0
Push $CMDLINE
Push $R0
Call ${UNINSTALL}StrStr
Pop $R2
StrCpy $R2 $R2 $R1
${if} $R2 == $R0
StrCpy $R0 ${TRUE}
${else}
StrCpy $R0 ${FALSE}
${endif}
Push $R2
Push $R1
Exch $R0
!macroend
;--------------------------------
;Functions
Function CheckPrivileges
!insertmacro CheckPrivileges
FunctionEnd
Function un.CheckPrivileges
!insertmacro CheckPrivileges
FunctionEnd
Function CommandLineParameter
!insertmacro CommandLineParameter ""
FunctionEnd
Function un.CommandLineParameter
!insertmacro CommandLineParameter un.
FunctionEnd
Function CheckWindows Function CheckWindows
Push $R0 Push $R0
@ -24,29 +93,6 @@ Function CheckWindows
FunctionEnd FunctionEnd
Function CheckPriviledges
Push $R0
UserInfo::GetAccountType
Pop $R0
${if} $R0 == "Admin"
StrCpy $AdminOrPowerUser ${TRUE}
${elseif} $R0 == "Power"
StrCpy $AdminOrPowerUser ${TRUE}
${else}
StrCpy $AdminOrPowerUser ${FALSE}
${endif}
${if} $AdminOrPowerUser != ${TRUE}
MessageBox MB_OK|MB_ICONEXCLAMATION $(TEXT_NO_PRIVILEDGES)
${endif}
Pop $R0
FunctionEnd
Function UpdatePathEnvironment Function UpdatePathEnvironment
Push $R0 Push $R0
@ -64,33 +110,69 @@ Function UpdatePathEnvironment
FunctionEnd FunctionEnd
Function un.SetShellContext Function InitInstaller
Push $R0 Push $R0
;Set the correct shell context depending on whether LyX has been installed for the current user or all users Push "/CurrentUser"
Call CommandLineParameter
Pop $CurrentUserInstall
UserInfo::GetAccountType ${if} $CurrentUserInstall == ${TRUE}
SetShellVarContext current
${else}
${if} $AdminOrPowerUser == ${TRUE}
SetShellVarContext all
${else}
;Display an error when the /AllUsers command line parameter is used
;by a user without Administrator or Power User priviledges
Push "/AllUsers"
Call CommandLineParameter
Pop $R0 Pop $R0
${if} $R0 == "Admin" ${if} $R0 == ${TRUE}
StrCpy $AdminOrPowerUser ${TRUE} MessageBox MB_OK|MB_ICONSTOP "You need Administrator or Power User privileges to install ${APP_NAME} for all users."
Quit
${endif} ${endif}
${if} $R0 == "Power" SetShellVarContext current
StrCpy $AdminOrPowerUser ${TRUE}
${endif} ${endif}
ReadRegStr $R0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${SETUP_UNINSTALLER_KEY}" "UninstallString" ${endif}
${if} $R0 != "" ${if} ${silent}
Call InitUser
${endif}
ReadRegStr $R0 HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\${SETUP_UNINSTALLER_KEY}" "UninstallString" Pop $R0
${if} $R0 != "" FunctionEnd
Function un.InitUnInstaller
;Set the correct shell context depending on whether LyX has been installed
;for the current user or all users
Push "/CurrentUser"
Call un.CommandLineParameter
Pop $CurrentUserInstall
${if} $CurrentUserInstall == ${TRUE}
SetShellVarContext current
${else}
${if} $AdminOrPowerUser == ${FALSE} ${if} $AdminOrPowerUser == ${FALSE}
MessageBox MB_OK|MB_ICONSTOP "${APP_NAME} has been installed for all users. Therefore you need Administrator or Power User Priviledges to uninstall." MessageBox MB_OK|MB_ICONSTOP "${APP_NAME} has been installed for all users. Therefore you need Administrator or Power User privileges to uninstall."
Quit Quit
${else} ${else}
SetShellVarContext all SetShellVarContext all
@ -98,12 +180,5 @@ Function un.SetShellContext
${endif} ${endif}
${else}
SetShellVarContext current
${endif}
Pop $R0
FunctionEnd FunctionEnd

View File

@ -8,6 +8,8 @@ Author: Joost Verburg
!insertmacro LanguageString TEXT_NO_PRIVILEDGES "You do not have Administrator or Power User privileges.$\r$\n$\r$\nAlthough you can install ${APP_NAME} and the typesetting system, the utilities for image conversion and previewing cannot be installed without these priviledges." !insertmacro LanguageString TEXT_NO_PRIVILEDGES "You do not have Administrator or Power User privileges.$\r$\n$\r$\nAlthough you can install ${APP_NAME} and the typesetting system, the utilities for image conversion and previewing cannot be installed without these priviledges."
!insertmacro LanguageString TEXT_INSTALL_CURRENTUSER "(Installed for Current User)"
!insertmacro LanguageString TEXT_WELCOME_DOWNLOAD "This wizard will guide you through the installation of $(^NameDA), the document processor that encourages an approach to writing based on the structure of your documents, not their appearance.\r\n\r\nThis installer will setup a complete environment to use ${APP_NAME} and can download missing components automatically.\r\n\r\n$(^ClickNext)" !insertmacro LanguageString TEXT_WELCOME_DOWNLOAD "This wizard will guide you through the installation of $(^NameDA), the document processor that encourages an approach to writing based on the structure of your documents, not their appearance.\r\n\r\nThis installer will setup a complete environment to use ${APP_NAME} and can download missing components automatically.\r\n\r\n$(^ClickNext)"
!insertmacro LanguageString TEXT_WELCOME_INSTALL "This wizard will guide you through the installation of $(^NameDA), the document processor that encourages an approach to writing based on the structure of your documents, not their appearance.\r\n\r\nThis installer will setup a complete environment to use ${APP_NAME} and can install missing components automatically.\r\n\r\n$(^ClickNext)" !insertmacro LanguageString TEXT_WELCOME_INSTALL "This wizard will guide you through the installation of $(^NameDA), the document processor that encourages an approach to writing based on the structure of your documents, not their appearance.\r\n\r\nThis installer will setup a complete environment to use ${APP_NAME} and can install missing components automatically.\r\n\r\n$(^ClickNext)"

View File

@ -86,6 +86,6 @@ Author: Andreas Deininger
!insertmacro LanguageString TEXT_NOTINSTALLED_DICT "Die Installation der Wörterbucher für die ${DICT_NAME} Rechtschreibprüfung konnte nicht erfolgreich abgeschlossen werden. Möchten Sie die Installation erneut versuchen?" !insertmacro LanguageString TEXT_NOTINSTALLED_DICT "Die Installation der Wörterbucher für die ${DICT_NAME} Rechtschreibprüfung konnte nicht erfolgreich abgeschlossen werden. Möchten Sie die Installation erneut versuchen?"
!insertmacro LanguageString TEXT_FINISH_DESKTOP "Ein Symbol auf der Arbeitsoberfläche erzeugen" !insertmacro LanguageString TEXT_FINISH_DESKTOP "Ein Symbol auf der Arbeitsoberfläche erzeugen"
!insertmacro LanguageString TEXT_FINISH_WEBSITE "Besuchen Sie lyx.org für aktuelle Neuigkeiten, für Tips und Tricks sowie für sonstige Hinweise zur Unterstützung bei der Nutzung des Programms" !insertmacro LanguageString TEXT_FINISH_WEBSITE "Besuchen Sie lyx.org für aktuelle Neuigkeiten, für Tips und Tricks sowie für sonstige Hinweise"
!insertmacro LanguageString UNTEXT_WELCOME "Dieses Installationsprogramm wird Sie durch die Deinstallation von $(^NameDA) leiten. Bitte schließen Sie $(^NameDA) bevor Sie fortfahren.\r\n\r\nBeachten Sie bitte, dass im folgenden nur LyX selbst deinstalliert wird. Falls Sie andere Anwendungen aus ihrem System entfernen möchten, die zur Nutzung von Lyx installiert wurden, benutzen Sie hierzu bitte den Eintrag Software im Menü Systemsteuerung und wählen Sie dort dann den entsprechenden Eintrag für das Programm aus.\r\n\r\n$_CLICK" !insertmacro LanguageString UNTEXT_WELCOME "Dieses Installationsprogramm wird Sie durch die Deinstallation von $(^NameDA) leiten. Bitte schließen Sie $(^NameDA) bevor Sie fortfahren.\r\n\r\nBeachten Sie bitte, dass im folgenden nur LyX selbst deinstalliert wird. Falls Sie andere Anwendungen aus ihrem System entfernen möchten, die zur Nutzung von Lyx installiert wurden, benutzen Sie hierzu bitte den Eintrag Software im Menü Systemsteuerung und wählen Sie dort dann den entsprechenden Eintrag für das Programm aus.\r\n\r\n$_CLICK"

View File

@ -22,6 +22,8 @@ Function .onInit
${endif} ${endif}
Call CheckWindows Call CheckWindows
Call CheckPrivileges
Call InitInstaller
Call SearchAll Call SearchAll
${unless} ${silent} ${unless} ${silent}
@ -30,8 +32,8 @@ Function .onInit
FunctionEnd FunctionEnd
Function un.onInit Function un.onInit
!insertmacro MUI_UNGETLANGUAGE Call un.CheckPrivileges
Call un.SetShellContext Call un.InitUnInstaller
FunctionEnd FunctionEnd
;-------------------------------- ;--------------------------------

View File

@ -35,7 +35,7 @@ Settings for LyX installer
;Locations of components to download ;Locations of components to download
!define DOWNLOAD_LATEX "http://superb-west.dl.sourceforge.net/sourceforge/miktex/basic-miktex-2.5.2449.exe" !define DOWNLOAD_LATEX "http://superb-west.dl.sourceforge.net/sourceforge/miktex/basic-miktex-2.5.2449.exe"
!define DOWNLOAD_IMAGEMAGICK "http://superb-west.dl.sourceforge.net/sourceforge/imagemagick/ImageMagick-6.2.9-6-Q16-windows-dll.exe" !define DOWNLOAD_IMAGEMAGICK "http://superb-west.dl.sourceforge.net/sourceforge/imagemagick/ImageMagick-6.2.9-7-Q16-windows-dll.exe"
!define DOWNLOAD_GHOSTSCRIPT "http://superb-west.dl.sourceforge.net/sourceforge/ghostscript/gs854w32.exe" !define DOWNLOAD_GHOSTSCRIPT "http://superb-west.dl.sourceforge.net/sourceforge/ghostscript/gs854w32.exe"
!define DOWNLOAD_VIEWER "http://tug.ctan.org/tex-archive/nonfree/support/ghostscript/ghostgum/gsv48w32.exe" !define DOWNLOAD_VIEWER "http://tug.ctan.org/tex-archive/nonfree/support/ghostscript/ghostgum/gsv48w32.exe"
@ -59,7 +59,7 @@ Settings for LyX installer
;Locations of setup files for components (for bundled setup) ;Locations of setup files for components (for bundled setup)
!define INSTALL_LATEX "basic-miktex-2.5.2449.exe" !define INSTALL_LATEX "basic-miktex-2.5.2449.exe"
!define INSTALL_IMAGEMAGICK "ImageMagick-6.2.9-6-Q16-windows-dll.exe" !define INSTALL_IMAGEMAGICK "ImageMagick-6.2.9-7-Q16-windows-dll.exe"
!define INSTALL_GHOSTSCRIPT "gs854w32.exe" !define INSTALL_GHOSTSCRIPT "gs854w32.exe"
!define INSTALL_VIEWER "gsv48w32.exe" !define INSTALL_VIEWER "gsv48w32.exe"