diff --git a/development/Win32/packaging/installer/components/configure.nsh b/development/Win32/packaging/installer/components/configure.nsh index a56bc82f75..56b682085e 100644 --- a/development/Win32/packaging/installer/components/configure.nsh +++ b/development/Win32/packaging/installer/components/configure.nsh @@ -48,17 +48,20 @@ Section -InstallData ;Uninstaller information !define REG_UNINSTALL 'WriteRegStr SHELL_CONTEXT "Software\Microsoft\Windows\CurrentVersion\Uninstall\${SETUP_UNINSTALLER_KEY}"' - ${REG_UNINSTALL} "UninstallString" "$\"$INSTDIR\${SETUP_UNINSTALLER}$\"" - ${REG_UNINSTALL} "DisplayName" "${APP_NAME} ${APP_VERSION}" + ${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}" + ${endif} + ${REG_UNINSTALL} "DisplayVersion" "${APP_VERSION}" ${REG_UNINSTALL} "DisplayIcon" "$INSTDIR\bin\lyx_32x32.ico" ${REG_UNINSTALL} "URLUpdateInfo" "http://www.lyx.org/" ${REG_UNINSTALL} "URLInfoAbout" "http://www.lyx.org/about/" ${REG_UNINSTALL} "Publisher" "LyX Team" ${REG_UNINSTALL} "HelpLink" "http://www.lyx.org/internet/mailing.php" - - ;Create uninstaller - WriteUninstaller "$INSTDIR\${SETUP_UNINSTALLER}" SectionEnd @@ -113,7 +116,7 @@ Section -Configure FileOpen $R1 "$INSTDIR\${APP_RUN}" w 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 'start "${APP_NAME}" "$INSTDIR\bin\lyx.exe" %*$\r$\n' diff --git a/development/Win32/packaging/installer/components/core.nsh b/development/Win32/packaging/installer/components/core.nsh index eb0c7e042e..a9f90525f7 100644 --- a/development/Win32/packaging/installer/components/core.nsh +++ b/development/Win32/packaging/installer/components/core.nsh @@ -1,7 +1,7 @@ /* LyX Core -Binaries, resources, MSYS/Python, Aspell +Binaries, Resources, Python, Aspell */ @@ -78,19 +78,22 @@ Section -Core SecCore ;Aspell - File /oname=$PLUGINSDIR\aspelldata.exe "${FILES_ASPELLDATA}\aspelldata-sep06.exe" + File /oname=$PLUGINSDIR\AspellData.exe "${FILES_ASPELLDATA}\AspellData.exe" - ${if} $AllUsersInstall == ${TRUE} - ExecWait '"$PLUGINSDIR\aspelldata.exe" /S /AllUsers' + ${if} $CurrentUserInstall == ${TRUE} + ExecWait '"$PLUGINSDIR\AspellData.exe" /S /CurrentUser' ${else} - ExecWait '"$PLUGINSDIR\aspelldata.exe" /S' + ExecWait '"$PLUGINSDIR\AspellData.exe" /S /AllUsers' ${endif} - Delete "$PLUGINSDIR\aspelldata.exe" + Delete "$PLUGINSDIR\AspellData.exe" ;Aiksarus data SetOutPath "$INSTDIR\aiksaurus" !insertmacro FileListAiksaurusData File "${FILES_AIKSAURUS}\" + + ;Create uninstaller + WriteUninstaller "$INSTDIR\${SETUP_UNINSTALLER}" SectionEnd diff --git a/development/Win32/packaging/installer/components/dicts.nsh b/development/Win32/packaging/installer/components/dicts.nsh index aeddc7cee4..1558fd4b93 100644 --- a/development/Win32/packaging/installer/components/dicts.nsh +++ b/development/Win32/packaging/installer/components/dicts.nsh @@ -7,15 +7,15 @@ Aspell dictionaries ;-------------------------------- ;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 "${lang_name}" - Push ${file} + Push ${LANGCODE} + Push "${LANGNAME}" + Push ${FILE} Call DownloadDictionary @@ -36,39 +36,39 @@ SectionEnd !define DICT '!insertmacro Dictionary' ${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} ca-20040130-1 "Catalan" ca 1107 -${DICT} hr-0.51-0 "Croatian" hr 2006 -${DICT} cs-20040614-1 "Czech" cs 2096 -${DICT} da-1.4.42-1 "Danish" da 3094 -${DICT} nl-0.50-2 "Dutch" nl 1546 +${DICT} ca-20040130-1 "Català" ca 1107 +${DICT} cs-20040614-1 "Cesky" cs 2096 +${DICT} da-1.4.42-1 "Dansk" da 3094 +${DICT} de-20030222-1 "Deutsch" de 2929 ${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} et-0.1.21-1 "Estonian" et 931 -${DICT} fi-0.7-0 "Finnish" fi 663 -${DICT} fr-0.50-3 "French" fr 4428 -${DICT} gl-0.50-0 "Galician" gl 3041 -${DICT} de-20030222-1 "German" de 2929 +${DICT} fr-0.50-3 "Français" fr 4428 +${DICT} gl-0.50-0 "Galego" gl 3041 ${DICT} el-0.50-3 "Greek" el 3269 ${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} 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} no-0.50-2 "Norwegian" no 1300 -${DICT} nn-0.50.1-1 "Norwegian Nynorsk" nn 1962 -${DICT} pl-0.51-0 "Polish" pl 14018 -${DICT} pt-0.50-2 "Portuguese" pt 2326 -${DICT} ro-0.50-2 "Romanian" ro 338 +${DICT} hu-0.99.4.2-0 "Magyar" hu 1636 +${DICT} nl-0.50-2 "Nederlands" nl 1546 +${DICT} nn-0.50.1-1 "Nynorsk" nn 1962 +${DICT} pl-0.51-0 "Polski" pl 14018 +${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} 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} es-0.50-2 "Spanish" es 3018 -${DICT} sv-0.51-0 "Swedish" sv 1040 -${DICT} tr-0.50-0 "Turkish" tr 548 +${DICT} sk-0.52-0 "Slovenský jazyk" sk 4709 +${DICT} sl-0.50-0 "Slovenski jezik" sl 5252 +${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} uk-1.1-0 "Ukrainian" uk 583 ${DICT} cy-0.50-3 "Welsh" cy 1801 diff --git a/development/Win32/packaging/installer/components/external.nsh b/development/Win32/packaging/installer/components/external.nsh index e8d43835b9..5ae079595a 100644 --- a/development/Win32/packaging/installer/components/external.nsh +++ b/development/Win32/packaging/installer/components/external.nsh @@ -7,31 +7,31 @@ External Components: MiKTeX, ImageMagick, Ghostscript ;-------------------------------- ;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 - IntOp $R1 $R1 + ${SIZE_${component}} + IntOp $R1 $R1 + ${SIZE_${COMPONENT}} ${endif} - SectionSetSize ${External${component}} $R1 + SectionSetSize ${External${COMPONENT}} $R1 ${else} - StrCpy $Setup${component} ${FALSE} - SectionSetSize ${External${component}} 0 + StrCpy $Setup${COMPONENT} ${FALSE} + SectionSetSize ${External${COMPONENT}} 0 ${endif} !macroend -!macro ExternalComponent component +!macro ExternalComponent COMPONENT ;Action depending on type of installer @@ -49,54 +49,54 @@ External Components: MiKTeX, ImageMagick, Ghostscript !macroend -!macro SetupComponent component +!macro SetupComponent 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 Search${component} + Call Search${COMPONENT} - ${if} $Path${component} == "" - MessageBox MB_YESNO|MB_ICONEXCLAMATION $(TEXT_NOTINSTALLED_${component}) IDYES install_${component} + ${if} $Path${COMPONENT} == "" + MessageBox MB_YESNO|MB_ICONEXCLAMATION $(TEXT_NOTINSTALLED_${COMPONENT}) IDYES install_${COMPONENT} ${endif} - Delete "$PLUGINSDIR\${component}Setup.exe" + Delete "$PLUGINSDIR\${COMPONENT}Setup.exe" !macroend !ifndef SETUPTYPE_BUNDLE - !macro DownloadComponent component + !macro DownloadComponent COMPONENT - download_${component}: + download_${COMPONENT}: ;Download using HTTP - NSISdl::download "${DOWNLOAD_${component}}" "$PLUGINSDIR\${component}Setup.exe" + NSISdl::download "${DOWNLOAD_${COMPONENT}}" "$PLUGINSDIR\${COMPONENT}Setup.exe" Pop $R0 ${if} $R0 != "success" ;Download failed - MessageBox MB_YESNO|MB_ICONEXCLAMATION "$(TEXT_DOWNLOAD_FAILED_${component}) ($R0)" IDYES download_${component} - Goto noinstall_${component} + MessageBox MB_YESNO|MB_ICONEXCLAMATION "$(TEXT_DOWNLOAD_FAILED_${COMPONENT}) ($R0)" IDYES download_${COMPONENT} + Goto noinstall_${COMPONENT} ${endif} - !insertmacro SetupComponent ${component} + !insertmacro SetupComponent ${COMPONENT} - noinstall_${component}: + noinstall_${COMPONENT}: !macroend !else - !macro InstallComponent component + !macro InstallComponent COMPONENT ;Extract - File /oname=$PLUGINSDIR\${component}Setup.exe ${INSTALL_${component}} + File /oname=$PLUGINSDIR\${COMPONENT}Setup.exe ${INSTALL_${COMPONENT}} - !insertmacro SetupComponent ${component} + !insertmacro SetupComponent ${COMPONENT} !macroend @@ -113,38 +113,38 @@ External Components: MiKTeX, ImageMagick, Ghostscript !macroend -!macro DialogExternalShow component +!macro DialogExternalShow COMPONENT - !insertmacro MUI_HEADER_TEXT $(TEXT_EXTERNAL_${component}_TITLE) $(TEXT_EXTERNAL_${component}_SUBTITLE) - !insertmacro MUI_INSTALLOPTIONS_INITDIALOG "external_${component}.ini" - !insertmacro DialogExternalControl ${component} + !insertmacro MUI_HEADER_TEXT $(TEXT_EXTERNAL_${COMPONENT}_TITLE) $(TEXT_EXTERNAL_${COMPONENT}_SUBTITLE) + !insertmacro MUI_INSTALLOPTIONS_INITDIALOG "external_${COMPONENT}.ini" + !insertmacro DialogExternalControl ${COMPONENT} !insertmacro MUI_INSTALLOPTIONS_SHOW !macroend -!macro DialogExternalValidate component +!macro DialogExternalValidate COMPONENT Push $R0 Push $R1 ;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" - !insertmacro DialogExternalControl ${component} + !insertmacro DialogExternalControl ${COMPONENT} Abort ${endif} ;Download? - !insertmacro MUI_INSTALLOPTIONS_READ $R0 "external_${component}.ini" "Field 2" "State" - !insertmacro SetComponentState $R0 ${component} + !insertmacro MUI_INSTALLOPTIONS_READ $R0 "external_${COMPONENT}.ini" "Field 2" "State" + !insertmacro SetComponentState $R0 ${COMPONENT} ;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" - !insertmacro MUI_INSTALLOPTIONS_READ $R0 "external_${component}.ini" "Field 4" "State" - ${unless} ${FileExists} "$R0\${BIN_${component}}" - MessageBox MB_OK|MB_ICONEXCLAMATION $(TEXT_EXTERNAL_${component}_NOTFOUND) + !insertmacro MUI_INSTALLOPTIONS_READ $R0 "external_${COMPONENT}.ini" "Field 4" "State" + ${unless} ${FileExists} "$R0\${BIN_${COMPONENT}}" + MessageBox MB_OK|MB_ICONEXCLAMATION $(TEXT_EXTERNAL_${COMPONENT}_NOTFOUND) Abort ${endif} StrCpy $Path${component} $R0 diff --git a/development/Win32/packaging/installer/components/langselect.nsh b/development/Win32/packaging/installer/components/langselect.nsh index 57a15d8cb6..5baa50265a 100644 --- a/development/Win32/packaging/installer/components/langselect.nsh +++ b/development/Win32/packaging/installer/components/langselect.nsh @@ -7,44 +7,33 @@ Selection of language for LyX interface ;-------------------------------- ;Macros -!macro SystemLanguage lang_name lang_code +!macro SetSystemLangItem VAR LANGNAME LANGISOCODE LANGID - ${if} $R0 == ${lang_code} - !insertmacro MUI_INSTALLOPTIONS_WRITE "langselect.ini" "Field 2" "State" "${lang_name}" + ${if} $R0 == ${LANGID} + !insertmacro MUI_INSTALLOPTIONS_WRITE "langselect.ini" "Field 2" "State" "${LANGNAME}" ${endif} !macroend -!macro GetLyXLangCodeItem var_name var_langcode name langcode +!macro SetSystemLang VAR - ${if} ${var_name} == "${name}" - StrCpy ${var_langcode} "${langcode}" + !insertmacro LanguageList '!insertmacro SetSystemLangItem ${VAR}' + +!macroend + +!macro GetISOLangCodeItem VAR_LANGNAME VAR_LANGISOCODE LANGNAME LANGISOCODE LANGID + + ${if} ${VAR_LANGNAME} == "${LANGNAME}" + StrCpy ${VAR_LANGISOCODE} "${LANGISOCODE}" ${endif} !macroend -!macro GetLyXLangCode var_name var_langcode - - !define LANGCODE '!insertmacro GetLyXLangCodeItem ${var_name} ${var_langcode}' - - ${LANGCODE} "Basque" "eu_EU" - ${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" +!macro GetISOLangCode VAR_LANGNAME VAR_LANGISOCODE + + ;Get the language code for the selected language name + + !insertmacro LanguageList '!insertmacro GetISOLangCodeItem ${VAR_LANGNAME} ${VAR_LANGISOCODE}' !macroend @@ -53,30 +42,10 @@ Selection of language for LyX interface 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" - - !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 + !insertmacro SetSystemLang $R0 FunctionEnd @@ -93,6 +62,6 @@ FunctionEnd Function PageLanguageValidate !insertmacro MUI_INSTALLOPTIONS_READ $LangName "langselect.ini" "Field 2" "State" - !insertmacro GetLyXLangCode $LangName $LangCode + !insertmacro GetISOLangCode $LangName $LangISOCode FunctionEnd \ No newline at end of file diff --git a/development/Win32/packaging/installer/components/reinstall.nsh b/development/Win32/packaging/installer/components/reinstall.nsh index bd7e418ff8..747c6a09f5 100644 --- a/development/Win32/packaging/installer/components/reinstall.nsh +++ b/development/Win32/packaging/installer/components/reinstall.nsh @@ -32,6 +32,4 @@ Function PageReinstallValidate !insertmacro UnselectSection ${SecCore} ${endif} - Call InitUser - FunctionEnd \ No newline at end of file diff --git a/development/Win32/packaging/installer/components/user.nsh b/development/Win32/packaging/installer/components/user.nsh index 14e696adb9..8a5dec1a58 100644 --- a/development/Win32/packaging/installer/components/user.nsh +++ b/development/Win32/packaging/installer/components/user.nsh @@ -7,14 +7,14 @@ Install type setting (current user/all users) ;-------------------------------- ;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 != "" - StrCpy $Path${component} $R0 + StrCpy $Path${COMPONENT} $R0 ${endif} ${endif} @@ -75,10 +75,11 @@ Function PageUserValidate !insertmacro MUI_INSTALLOPTIONS_READ $R0 "user.ini" "Field 2" "State" ${if} $R0 == "1" - SetShellVarContext current - ${else} SetShellVarContext all - StrCpy $AllUsersInstall ${TRUE} + StrCpy $CurrentUserInstall ${FALSE} + ${else} + SetShellVarContext current + StrCpy $CurrentUserInstall ${TRUE} ${endif} Call InitUser diff --git a/development/Win32/packaging/installer/dialogs/langselect.ini b/development/Win32/packaging/installer/dialogs/langselect.ini index e8f968c060..b03c7fe780 100644 --- a/development/Win32/packaging/installer/dialogs/langselect.ini +++ b/development/Win32/packaging/installer/dialogs/langselect.ini @@ -15,5 +15,5 @@ Left=0 Top=30 Right=110 Bottom=130 -ListItems=Basque|Danish|Dutch|English|Finnish|French|German|Hungarian|Italian|Norwegian|Norwegian (Nynorsk)|Polish|Romanian|Russian|Slovensky|Slovene|Spanish|Turkish -State=English +ListItems= +State= diff --git a/development/Win32/packaging/installer/dialogs/reinstall.ini b/development/Win32/packaging/installer/dialogs/reinstall.ini index b819473c24..8a81ecc8ab 100644 --- a/development/Win32/packaging/installer/dialogs/reinstall.ini +++ b/development/Win32/packaging/installer/dialogs/reinstall.ini @@ -6,7 +6,7 @@ Type=Label Left=0 Top=0 Right=300 -Bottom=29 +Bottom=40 Text=###TEXT_REINSTALL_INFO### [Field 2] diff --git a/development/Win32/packaging/installer/dialogs/user.ini b/development/Win32/packaging/installer/dialogs/user.ini index f2682157b2..705a807e35 100644 --- a/development/Win32/packaging/installer/dialogs/user.ini +++ b/development/Win32/packaging/installer/dialogs/user.ini @@ -6,22 +6,24 @@ Type=Label Left=0 Top=0 Right=300 -Bottom=19 +Bottom=30 Text=###TEXT_USER_INFO### -[Field 2] -Type=RadioButton -Left=20 -Top=40 -Right=290 -Bottom=51 -Text=###TEXT_USER_CURRENT### -State=1 - [Field 3] Type=RadioButton Left=20 Top=60 -Right=290 +Right=300 Bottom=71 +Text=###TEXT_USER_CURRENT### +State= +[Field 2] +Type=RadioButton +Left=20 +Top=40 +Right=300 +Bottom=51 Text=###TEXT_USER_ALL# +State= + + diff --git a/development/Win32/packaging/installer/dialogs/viewer.ini b/development/Win32/packaging/installer/dialogs/viewer.ini index 88af970340..b0108d7b3a 100644 --- a/development/Win32/packaging/installer/dialogs/viewer.ini +++ b/development/Win32/packaging/installer/dialogs/viewer.ini @@ -6,7 +6,7 @@ Type=Label Left=0 Top=0 Right=300 -Bottom=30 +Bottom=40 Text=###TEXT_VIEWER_INFO### [Field 2] diff --git a/development/Win32/packaging/installer/include/declarations.nsh b/development/Win32/packaging/installer/include/declarations.nsh index 096f807104..01115ead7c 100644 --- a/development/Win32/packaging/installer/include/declarations.nsh +++ b/development/Win32/packaging/installer/include/declarations.nsh @@ -21,6 +21,7 @@ Declarations !include "MUI.nsh" !include "LogicLib.nsh" +!include "StrFunc.nsh" !include "FileFunc.nsh" !include "WordFunc.nsh" !include "Sections.nsh" @@ -47,7 +48,7 @@ ReserveFile "${FILES_DVIPOST_PKG}\dvipost.sty" ;Variables Var AdminOrPowerUser -Var AllUsersInstall +Var CurrentUserInstall Var PathLaTeX Var PathImageMagick @@ -65,19 +66,16 @@ Var SizeGhostscript Var SizeViewer Var LangName -Var LangCode +Var LangISOCode Var AspellHive - -;-------------------------------- -;Generic defines - -!define FALSE 0 -!define TRUE 1 ;-------------------------------- ;Include standard functions +!insertmacro FUNCTION_STRING_StrStr +!insertmacro FUNCTION_STRING_UnStrStr + !insertmacro GetParent !insertmacro VersionCompare !insertmacro WordFind2X @@ -85,25 +83,25 @@ Var AspellHive ;-------------------------------- ;Macros -!macro ReDef name value +!macro ReDef NAME VALUE ;Redefine a pre-processor definition - !ifdef `${name}` - !undef `${name}` + !ifdef `${NAME}` + !undef `${NAME}` !endif - !define `${name}` `${value}` + !define `${NAME}` `${VALUE}` !macroend -!macro CallFunc function input var_output +!macro CallFunc FUNCTION INPUT VAROUT ;Calls a function that modifies a single value on the stack - Push ${input} - Call ${function} - Pop ${var_output} + Push ${INPUT} + Call ${FUNCTION} + Pop ${VAROUT} !macroend diff --git a/development/Win32/packaging/installer/include/detection.nsh b/development/Win32/packaging/installer/include/detection.nsh index e95c3672a6..757ec58d2c 100644 --- a/development/Win32/packaging/installer/include/detection.nsh +++ b/development/Win32/packaging/installer/include/detection.nsh @@ -107,7 +107,7 @@ Function GetPathPrefix Push $R0 - StrCpy $R0 "$INSTDIR\python" + StrCpy $R0 "$INSTDIR\bin;$INSTDIR\python" ${if} $PathLaTeX != "" StrCpy $R0 "$R0;$PathLaTeX" diff --git a/development/Win32/packaging/installer/include/filelists.nsh b/development/Win32/packaging/installer/include/filelists.nsh index c34a2fa3ef..993870e9ec 100644 --- a/development/Win32/packaging/installer/include/filelists.nsh +++ b/development/Win32/packaging/installer/include/filelists.nsh @@ -155,10 +155,121 @@ Lists of files to include in the installer !macro FileListPythonLibEncodings COMMAND DIRECTORY - ${COMMAND} "${DIRECTORY}__init__.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}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}__init__.py" !macroend diff --git a/development/Win32/packaging/installer/include/gui.nsh b/development/Win32/packaging/installer/include/gui.nsh index b51d34f71a..401969a86e 100644 --- a/development/Win32/packaging/installer/include/gui.nsh +++ b/development/Win32/packaging/installer/include/gui.nsh @@ -12,13 +12,6 @@ Name "${APP_NAME} ${APP_VERSION}" ;Default installation folder 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 @@ -82,7 +75,7 @@ Page custom PageLanguage PageLanguageValidate !insertmacro MUI_UNPAGE_FINISH ;-------------------------------- -;Languages +;Installer Languages !insertmacro IncludeLang "english" !insertmacro IncludeLang "french" @@ -92,53 +85,61 @@ Page custom PageLanguage PageLanguageValidate ;-------------------------------- ;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 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 6" "Text" $(TEXT_EXTERNAL_${component}_NONE) + !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 5" "Text" $(TEXT_EXTERNAL_${COMPONENT}_FOLDER_INFO) + !insertmacro MUI_INSTALLOPTIONS_WRITE "external_${COMPONENT}.ini" "Field 6" "Text" $(TEXT_EXTERNAL_${COMPONENT}_NONE) - !if ${currentuser_possible} == ${TRUE} - !insertmacro MUI_INSTALLOPTIONS_WRITE "external_${component}.ini" "Field 2" "Text" "$(TEXT_EXTERNAL_${component}_${SETUPTYPE_NAME})" + !if ${CURRENTUSER_POSSIBLE} == ${TRUE} + !insertmacro MUI_INSTALLOPTIONS_WRITE "external_${COMPONENT}.ini" "Field 2" "Text" "$(TEXT_EXTERNAL_${COMPONENT}_${SETUPTYPE_NAME})" !else ${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} - !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" "Text" "$(TEXT_EXTERNAL_${COMPONENT}_${SETUPTYPE_NAME}) $(TEXT_EXTERNAL_NOPRIVILEDGES)" + !insertmacro MUI_INSTALLOPTIONS_WRITE "external_${COMPONENT}.ini" "Field 2" "Flags" "DISABLED" ${endif} !endif !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} !endif - ${if} $Path${component} == "" - !insertmacro MUI_INSTALLOPTIONS_WRITE "external_${component}.ini" "Field 2" "State" "1" + ${if} $Path${COMPONENT} == "" + !insertmacro MUI_INSTALLOPTIONS_WRITE "external_${COMPONENT}.ini" "Field 2" "State" "1" ${else} - !insertmacro MUI_INSTALLOPTIONS_WRITE "external_${component}.ini" "Field 3" "State" "1" + !insertmacro MUI_INSTALLOPTIONS_WRITE "external_${COMPONENT}.ini" "Field 3" "State" "1" ${endif} - !if ${currentuser_possible} == ${FALSE} + !if ${CURRENTUSER_POSSIBLE} == ${FALSE} ${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 !macroend +!macro InitDialogLang VAR LANGNAME LANGISOCODE LANGID + + StrCpy ${VAR} `${VAR}|${LANGNAME}` + +!macroend + ;-------------------------------- ;Functions Function InitDialogs + Push $R0 + ;Extract dialogs !insertmacro MUI_INSTALLOPTIONS_EXTRACT_AS "dialogs\user.ini" "user.ini" @@ -152,8 +153,8 @@ Function InitDialogs ;Write texts !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 3" "Text" $(TEXT_USER_ALL) + !insertmacro MUI_INSTALLOPTIONS_WRITE "user.ini" "Field 2" "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 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 "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 Function InitInterface - Call CheckPriviledges + ${if} $AdminOrPowerUser != ${TRUE} + MessageBox MB_OK|MB_ICONEXCLAMATION $(TEXT_NO_PRIVILEDGES) + ${endif} Banner::show /NOUNLOAD "Preparing wizard" diff --git a/development/Win32/packaging/installer/include/lang.nsh b/development/Win32/packaging/installer/include/lang.nsh index 011c307414..f82c72566b 100644 --- a/development/Win32/packaging/installer/include/lang.nsh +++ b/development/Win32/packaging/installer/include/lang.nsh @@ -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 !ifndef "${name}" @@ -39,6 +63,8 @@ Language file handling !insertmacro ReDef LanguageStringAdd '!insertmacro LanguageStringAdd "${lang_name}"' ${LanguageStringAdd} TEXT_NO_PRIVILEDGES + + ${LanguageStringAdd} TEXT_INSTALL_CURRENTUSER ${LanguageStringAdd} TEXT_WELCOME_${SETUPTYPE_NAME} diff --git a/development/Win32/packaging/installer/include/windows.nsh b/development/Win32/packaging/installer/include/windows.nsh index 6cb2b93712..dd420064e0 100644 --- a/development/Win32/packaging/installer/include/windows.nsh +++ b/development/Win32/packaging/installer/include/windows.nsh @@ -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 Push $R0 @@ -24,29 +93,6 @@ Function CheckWindows 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 Push $R0 @@ -64,46 +110,75 @@ Function UpdatePathEnvironment FunctionEnd -Function un.SetShellContext +Function InitInstaller 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 - Pop $R0 - - ${if} $R0 == "Admin" - StrCpy $AdminOrPowerUser ${TRUE} - ${endif} - - ${if} $R0 == "Power" - StrCpy $AdminOrPowerUser ${TRUE} - ${endif} - - ReadRegStr $R0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${SETUP_UNINSTALLER_KEY}" "UninstallString" - - ${if} $R0 != "" - - ReadRegStr $R0 HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\${SETUP_UNINSTALLER_KEY}" "UninstallString" - - ${if} $R0 != "" - - ${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." - Quit - ${else} - SetShellVarContext all - ${endif} - - ${endif} - - ${else} + ${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 + + ${if} $R0 == ${TRUE} + MessageBox MB_OK|MB_ICONSTOP "You need Administrator or Power User privileges to install ${APP_NAME} for all users." + Quit + ${endif} + + SetShellVarContext current + + ${endif} + + ${endif} + + ${if} ${silent} + Call InitUser ${endif} Pop $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} + MessageBox MB_OK|MB_ICONSTOP "${APP_NAME} has been installed for all users. Therefore you need Administrator or Power User privileges to uninstall." + Quit + ${else} + SetShellVarContext all + ${endif} + + ${endif} + +FunctionEnd + diff --git a/development/Win32/packaging/installer/lang/english.nsh b/development/Win32/packaging/installer/lang/english.nsh index c7e937041f..fbadbf6bfc 100644 --- a/development/Win32/packaging/installer/lang/english.nsh +++ b/development/Win32/packaging/installer/lang/english.nsh @@ -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_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_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)" diff --git a/development/Win32/packaging/installer/lang/german.nsh b/development/Win32/packaging/installer/lang/german.nsh index dd36338504..f58471fc7a 100644 --- a/development/Win32/packaging/installer/lang/german.nsh +++ b/development/Win32/packaging/installer/lang/german.nsh @@ -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_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" diff --git a/development/Win32/packaging/installer/lyx.nsi b/development/Win32/packaging/installer/lyx.nsi index 9ec5c833ac..a467169023 100644 --- a/development/Win32/packaging/installer/lyx.nsi +++ b/development/Win32/packaging/installer/lyx.nsi @@ -22,6 +22,8 @@ Function .onInit ${endif} Call CheckWindows + Call CheckPrivileges + Call InitInstaller Call SearchAll ${unless} ${silent} @@ -30,8 +32,8 @@ Function .onInit FunctionEnd Function un.onInit - !insertmacro MUI_UNGETLANGUAGE - Call un.SetShellContext + Call un.CheckPrivileges + Call un.InitUnInstaller FunctionEnd ;-------------------------------- diff --git a/development/Win32/packaging/installer/settings.nsh b/development/Win32/packaging/installer/settings.nsh index 25964bd04a..627e1a52d2 100644 --- a/development/Win32/packaging/installer/settings.nsh +++ b/development/Win32/packaging/installer/settings.nsh @@ -35,7 +35,7 @@ Settings for LyX installer ;Locations of components to download !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_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) !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_VIEWER "gsv48w32.exe"