diff --git a/build-aux/windows/Contrib/Dutch_Belgium.nlf b/build-aux/windows/Contrib/Dutch_Belgium.nlf deleted file mode 100644 index bbb36cff1..000000000 --- a/build-aux/windows/Contrib/Dutch_Belgium.nlf +++ /dev/null @@ -1,191 +0,0 @@ -# Header, don't edit -NLF v6 -# Start editing here -# Language ID -2067 -# Font and size - dash (-) means default -- -- -# Codepage - dash (-) means ANSI code page -1252 -# RTL - anything else than RTL means LTR -- -# Translation by Ronny Desmedt (any credits should go here) -# ^Branding -Nullsoft Install System %s -# ^SetupCaption -$(^Name) Installatie -# ^UninstallCaption -$(^Name) Deïnstallatie -# ^LicenseSubCaption -: Licentie overeenkomst -# ^ComponentsSubCaption -: Installatie Opties -# ^DirSubCaption -: Installatie Map -# ^InstallingSubCaption -: Installeren -# ^CompletedSubCaption -: Voltooid -# ^UnComponentsSubCaption -: Deïnstallatie Opties -# ^UnDirSubCaption -: Deïnstallatie Map -# ^ConfirmSubCaption -: Bevestigen -# ^UninstallingSubCaption -: Deïnstalleren -# ^UnCompletedSubCaption -: Voltooid -# ^BackBtn -< &Terug -# ^NextBtn -&Volgende > -# ^AgreeBtn -Ik ben &Akkoord -# ^AcceptBtn -Ik &Accepteer de licentie overeenkomst -# ^DontAcceptBtn -Ik &Accepteer de licentie overeenkomst niet -# ^InstallBtn -&Installeer -# ^UninstallBtn -&Deïnstalleer -# ^CancelBtn -Afbreken -# ^CloseBtn -&Sluiten -# ^BrowseBtn -B&laderen... -# ^ShowDetailsBtn -Toon &details -# ^ClickNext -Klik op volgende om verder te gaan. -# ^ClickInstall -Klik op installeren om de installatie te starten. -# ^ClickUninstall -Klik op deïnstalleren om de installatie te verwijderen. -# ^Name -Naam -# ^Completed -Voltooid -# ^LicenseText -Gelieve de licentie overeenkomst te lezen alvorens $(^NameDA) te installeren. Als u akkord bent met de licentie overeenkomst, klik op akkoord. -# ^LicenseTextCB -Gelieve de licentie overeenkomst te lezen alvorens $(^NameDA) te installeren. Als u akkord bent met de licentie overeenkomst, klik op onderstaande selectievakje. $_CLICK -# ^LicenseTextRB -Gelieve de licentie overeenkomst te lezen alvorens $(^NameDA) te installeren. Als u akkord bent met de licentie overeenkomst, selecteer de eerste onderstaande optie. $_CLICK -# ^UnLicenseText -Gelieve de licentie overeenkomst te lezen alvorens $(^NameDA) te deïnstalleren. Als u akkord bent met de licentie overeenkomst, klik op akkoord. -# ^UnLicenseTextCB -Gelieve de licentie overeenkomst te lezen alvorens $(^NameDA) te deïnstalleren. Als u akkord bent met de licentie overeenkomst, klik op onderstaande selectievakje. $_CLICK -# ^UnLicenseTextRB -Gelieve de licentie overeenkomst te lezen alvorens $(^NameDA) te deïnstalleren. Als u akkord bent met de licentie overeenkomst, selecteer de eerste onderstaande optie. $_CLICK -# ^Custom -Aangepast -# ^ComponentsText -Selecteer de onderdelen die u wilt installeren en deselecteer de onderdelen die u niet wilt installeren. $_CLICK -# ^ComponentsSubText1 -Selecteer een installatie type: -# ^ComponentsSubText2_NoInstTypes -Selecteer de onderdelen om te installeren: -# ^ComponentsSubText2 -Of, selecteer optionelen onderdelen die u wilt installeren: -# ^UnComponentsText -Selecteer de onderdelen die u wilt deïnstalleren en deselecteer de onderdelen die u niet wilt deïinstalleren. $_CLICK -# ^UnComponentsSubText1 -Selecteer een deïnstallatie type: -# ^UnComponentsSubText2_NoInstTypes -Selecteer de onderdelen om te deïnstalleren: -# ^UnComponentsSubText2 -Of, selecteer optionelen onderdelen die u wilt deïnstalleren: -# ^DirText -De installatie van $(^NameDA) wordt in volgende map uitgevoerd. Om in een andere map te installeren, klik op bladeren om een andere map te selecteren. $_CLICK -# ^DirSubText -Installatie map -# ^DirBrowseText -Selecteerd de map om $(^NameDA) in te installeren: -# ^UnDirText -De deïnstallatie van $(^NameDA) in de volgende map. Om een andere map te deïnstalleren, klik op bladren om een andere map te selecteren. $_CLICK -# ^UnDirSubText -"" -# ^UnDirBrowseText -Selecteer en map om $(^NameDA) van te deînstalleren: -# ^SpaceAvailable -"Beschikbare ruimte: " -# ^SpaceRequired -"Benodigde ruimte: " -# ^UninstallingText -$(^NameDA) wordt gedeïnstalleerd uit volgende map. $_CLICK -# ^UninstallingSubText -Deïnstalleren van: -# ^FileError -Fout bij openen van bestand om te schrijven: \r\n\r\n$0\r\n\r\nKlik op afbreken om de installatie te stoppen,\r\nOpnieuw om te proberen, of\r\nNegeren om dit bestand over te slaan. -# ^FileError_NoIgnore -Fout bij openen van bestand om te schrijven: \r\n\r\n$0\r\n\r\nOpnieuw om te proberen, of\r\nAfbreken om de installatie te stoppen. -# ^CantWrite -"Kan niet schrijven: " -# ^CopyFailed -Kopieren mislukt -# ^CopyTo -"Copier naar " -# ^Registering -"Registreren: " -# ^Unregistering -"Deregistreren: " -# ^SymbolNotFound -"Kan symbool niet vinden: " -# ^CouldNotLoad -"Kan niet laden: " -# ^CreateFolder -"Map maken: " -# ^CreateShortcut -"Snelkoppeling maken: " -# ^CreatedUninstaller -"Doe deïnstallatie: " -# ^Delete -"Verwijder bestanden: " -# ^DeleteOnReboot -Verwijder bij herstarten: " -# ^ErrorCreatingShortcut -"Fout bij maken snelkoppeling: " -# ^ErrorCreating -"Fout bij maken: " -# ^ErrorDecompressing -Fout bij uitpakken gegevens! Beschadigd bestand? -# ^ErrorRegistering -Fout bij registreren DLL -# ^ExecShell -"ExecShell: " -# ^Exec -"Uitvoeren: " -# ^Extract -"Extract: " -# ^ErrorWriting -Fout: fout bij schrijven naar bestand " -# ^InvalidOpcode -Installie beschadigd: niet toegestane opcode -# ^NoOLE -"Geen OLE voor: " -# ^OutputFolder -"Bestemmings map: " -# ^RemoveFolder -"Verwijder mapr: " -# ^RenameOnReboot -"Hernoem bij opstarten: " -# ^Rename -"Hernoem: " -# ^Skipped -Overgeslagen: " -# ^CopyDetails -Copier details naar klembord -# ^LogInstall -Log instaltie proces -# ^Byte -B -# ^Kilo -K -# ^Mega -M -# ^Giga -G diff --git a/build-aux/windows/Contrib/Dutch_Belgium.nsh b/build-aux/windows/Contrib/Dutch_Belgium.nsh deleted file mode 100644 index d2e85217f..000000000 --- a/build-aux/windows/Contrib/Dutch_Belgium.nsh +++ /dev/null @@ -1,128 +0,0 @@ -;Language:Dutch_Belgium (2067) -;By Ronny Desmedt - -!insertmacro LANGFILE "Dutch_Belgium" "Dutch_Belgium" - -!ifdef MUI_WELCOMEPAGE - ${LangFileString} MUI_TEXT_WELCOME_INFO_TITLE "Welkom bij $(^NameDA) installatie Wizard" - ${LangFileString} MUI_TEXT_WELCOME_INFO_TEXT "Deze wizard zal u begeleiden bij de installatie van $(^NameDA).$\r$\n$\r$\nHet is aanbevol dat u alle andere programmas afsluit voordat u deze installatie uitvoerd. Dit geeft de mogelijkheid om relevante systeem bestanden bij te werken zonder dat uw systeem terug moet opstarten.$\r$\n$\r$\n$_CLICK" -!endif - -!ifdef MUI_UNWELCOMEPAGE - ${LangFileString} MUI_UNTEXT_WELCOME_INFO_TITLE "Welkom bij de $(^NameDA) deïnstallatie wizard" - ${LangFileString} MUI_UNTEXT_WELCOME_INFO_TEXT "Deze wizard zal u begeleiden bij de deïnstallatie van $(^NameDA).$\r$\n$\r$\nControleer of $(^NameDA) is afgesloten alvorens de deïnstallatie te starten.$\r$\n$\r$\n$_CLICK" -!endif - -!ifdef MUI_LICENSEPAGE - ${LangFileString} MUI_TEXT_LICENSE_TITLE "Licentie overeenkomst" - ${LangFileString} MUI_TEXT_LICENSE_SUBTITLE "Gelieve de licentie te lezen alvorens U $(^NameDA) installeert." - ${LangFileString} MUI_INNERTEXT_LICENSE_BOTTOM "Klik op akkoord om de overeenkomst te aanvaarden. U moet de overeenkomst aanvaarden om $(^NameDA) te installeren." - ${LangFileString} MUI_INNERTEXT_LICENSE_BOTTOM_CHECKBOX "Als u de voorwaarden van de overeenkomst aanvaard, Klik op onderstaande selectievakje. U moet de overeenkomst aanvaarden om $(^NameDA) te installeren. $_CLICK" - ${LangFileString} MUI_INNERTEXT_LICENSE_BOTTOM_RADIOBUTTONS "Als u de voorwaarden van de overeenkomst aanvaard, selecteer de eerste onderstaande optie. U moet de overeenkomst aanvaarden om $(^NameDA) te installeren. $_CLICK" -!endif - -!ifdef MUI_UNLICENSEPAGE - ${LangFileString} MUI_UNTEXT_LICENSE_TITLE "Licentie overeenkomst" - ${LangFileString} MUI_UNTEXT_LICENSE_SUBTITLE "Gelieve de licentie overeenkomst te herlezen alvorens met de deïnstallatie van $(^NameDA) verder te doen." - ${LangFileString} MUI_UNINNERTEXT_LICENSE_BOTTOM "Klik op akkoord om de overeenkomst te aanvaarden. U moet de overeenkomst aanvaarden om $(^NameDA) te deïnstalleren." - ${LangFileString} MUI_UNINNERTEXT_LICENSE_BOTTOM_CHECKBOX "Als u de voorwaarden van de overeenkomst aanvaard, Klik op onderstaande selectievakje. U moet de overeenkomst aanvaarden om $(^NameDA) te deïnstalleren. $_CLICK" - ${LangFileString} MUI_UNINNERTEXT_LICENSE_BOTTOM_RADIOBUTTONS "Als u de voorwaarden van de overeenkomst aanvaard, selecteer de eerste onderstaande optie. U moet de overeenkomst aanvaarden om $(^NameDA) te deïnstalleren. $_CLICK" -!endif - -!ifdef MUI_LICENSEPAGE | MUI_UNLICENSEPAGE - ${LangFileString} MUI_INNERTEXT_LICENSE_TOP "Gebruik pagina neer om de rest van de overeenkomst te lezen." -!endif - -!ifdef MUI_COMPONENTSPAGE - ${LangFileString} MUI_TEXT_COMPONENTS_TITLE "Kies onderdelen" - ${LangFileString} MUI_TEXT_COMPONENTS_SUBTITLE "Kies de onderdelen van $(^NameDA) die u wilt installeren." -!endif - -!ifdef MUI_UNCOMPONENTSPAGE - ${LangFileString} MUI_UNTEXT_COMPONENTS_TITLE "Kies onderdelen" - ${LangFileString} MUI_UNTEXT_COMPONENTS_SUBTITLE "Kies de onderdelen van $(^NameDA) die u wilt deïnstalleren." -!endif - -!ifdef MUI_COMPONENTSPAGE | MUI_UNCOMPONENTSPAGE - ${LangFileString} MUI_INNERTEXT_COMPONENTS_DESCRIPTION_TITLE "Beschrijving" - !ifndef NSIS_CONFIG_COMPONENTPAGE_ALTERNATIVE - ${LangFileString} MUI_INNERTEXT_COMPONENTS_DESCRIPTION_INFO "Beweeg de muisaanwijzer over de onderdelen om de beschrijving te zien." - !else - ${LangFileString} MUI_INNERTEXT_COMPONENTS_DESCRIPTION_INFO "Beweeg de muisaanwijzer over de onderdelen om de beschrijving te zien." - !endif -!endif - -!ifdef MUI_DIRECTORYPAGE - ${LangFileString} MUI_TEXT_DIRECTORY_TITLE "Kies een installatie locatie" - ${LangFileString} MUI_TEXT_DIRECTORY_SUBTITLE "Kies een map waar U $(^NameDA) wilt installeren." -!endif - -!ifdef MUI_UNDIRECTORYPAGE - ${LangFileString} MUI_UNTEXT_DIRECTORY_TITLE "Kies een deïnstallatie locatie" - ${LangFileString} MUI_UNTEXT_DIRECTORY_SUBTITLE "Kies een map waar U $(^NameDA) wilt deïnstalleren." -!endif - -!ifdef MUI_INSTFILESPAGE - ${LangFileString} MUI_TEXT_INSTALLING_TITLE "Installeren" - ${LangFileString} MUI_TEXT_INSTALLING_SUBTITLE "Even gedult terwijl $(^NameDA) wordt geinstalleerd." - ${LangFileString} MUI_TEXT_FINISH_TITLE "Installatie voltooid" - ${LangFileString} MUI_TEXT_FINISH_SUBTITLE "De installatie is succesvol afgerond." - ${LangFileString} MUI_TEXT_ABORT_TITLE "Installatie is afgebroken" - ${LangFileString} MUI_TEXT_ABORT_SUBTITLE "De installatie is niet voltooid." -!endif - -!ifdef MUI_UNINSTFILESPAGE - ${LangFileString} MUI_UNTEXT_UNINSTALLING_TITLE "DeïnEven geduld terwijl $(^NameDA) wordt gedeïnstalleerd." - ${LangFileString} MUI_UNTEXT_FINISH_TITLE "Deïnstallatie voltooid" - ${LangFileString} MUI_UNTEXT_FINISH_SUBTITLE "Deïnstallatie succesvol afgerond." - ${LangFileString} MUI_UNTEXT_ABORT_TITLE "Deïnstallatie onderbroken" - ${LangFileString} MUI_UNTEXT_ABORT_SUBTITLE "Deïnstallatie is niet voltooid." -!endif - -!ifdef MUI_FINISHPAGE - ${LangFileString} MUI_TEXT_FINISH_INFO_TITLE "Voltooien van de $(^NameDA) installatie Wizard" - ${LangFileString} MUI_TEXT_FINISH_INFO_TEXT "$(^NameDA) is geinstalleerd op uw computer.$\r$\n$\r$\nKlik op einde om de installatie wizard af te sluiten." - ${LangFileString} MUI_TEXT_FINISH_INFO_REBOOT "Uw computer moet herstarten op de installatie van $(^NameDA) te voltooien. Wilt u nu opnieuw opstarten?" -!endif - -!ifdef MUI_UNFINISHPAGE - ${LangFileString} MUI_UNTEXT_FINISH_INFO_TITLE "Voltooien van de $(^NameDA) deïnstallatie wizard" - ${LangFileString} MUI_UNTEXT_FINISH_INFO_TEXT "$(^NameDA) is gedeïnstalleerd op uw computer.$\r$\n$\r$\nKlik op einde om de installatie wizard af te sluiten." - ${LangFileString} MUI_UNTEXT_FINISH_INFO_REBOOT "Uw computer moet herstarten op de deïnstallatie van $(^NameDA)te voltooien. Wilt u nu opnieuw opstarten?" -!endif - -!ifdef MUI_FINISHPAGE | MUI_UNFINISHPAGE - ${LangFileString} MUI_TEXT_FINISH_REBOOTNOW "Nu herstarten" - ${LangFileString} MUI_TEXT_FINISH_REBOOTLATER "Ik wil later herstarten" - ${LangFileString} MUI_TEXT_FINISH_RUN "&Starten $(^NameDA)" - ${LangFileString} MUI_TEXT_FINISH_SHOWREADME "&Toon leesmij" - ${LangFileString} MUI_BUTTONTEXT_FINISH "&Einde" -!endif - -!ifdef MUI_STARTMENUPAGE - ${LangFileString} MUI_TEXT_STARTMENU_TITLE "Kies start menu map" - ${LangFileString} MUI_TEXT_STARTMENU_SUBTITLE "Kies een map in start menu voor de snelkoppeling van $(^NameDA)." - ${LangFileString} MUI_INNERTEXT_STARTMENU_TOP "Kies een map in start menu waar u de programma snelkoppelingen wilt aanmaken. U kan ook de naam van een nieuwe map opgeven." - ${LangFileString} MUI_INNERTEXT_STARTMENU_CHECKBOX "Maak geen snelkoppelingen" -!endif - -!ifdef MUI_UNCONFIRMPAGE - ${LangFileString} MUI_UNTEXT_CONFIRM_TITLE "Deïnstalleer$(^NameDA)" - ${LangFileString} MUI_UNTEXT_CONFIRM_SUBTITLE "Verwijder $(^NameDA) van uw computer." -!endif - -!ifdef MUI_ABORTWARNING - ${LangFileString} MUI_TEXT_ABORTWARNING "Weet u zeker dat U installatie van $(^Name) wilt afbreken?" -!endif - -!ifdef MUI_UNABORTWARNING - ${LangFileString} MUI_UNTEXT_ABORTWARNING "Weet u zeker dat U de deïnstallatie van $(^Name)wilt afbreken?" -!endif - -!ifdef MULTIUSER_INSTALLMODEPAGE - ${LangFileString} MULTIUSER_TEXT_INSTALLMODE_TITLE "Kies gebruikers" - ${LangFileString} MULTIUSER_TEXT_INSTALLMODE_SUBTITLE "Kies voor welke gebruikers U $(^NameDA) wilt installeren." - ${LangFileString} MULTIUSER_INNERTEXT_INSTALLMODE_TOP "Kies of U $(^NameDA) alleen voor u zelf of voor alle gebruikers op deze computer wilt installeren. $(^ClickNext)" - ${LangFileString} MULTIUSER_INNERTEXT_INSTALLMODE_ALLUSERS "Installeer voor iedereen die deze computer gebruikt" - ${LangFileString} MULTIUSER_INNERTEXT_INSTALLMODE_CURRENTUSER "Installeer alleen voor mij" -!endif diff --git a/build-aux/windows/QET64.nsi b/build-aux/windows/QET64.nsi index d33a635d2..d03a24dfb 100644 --- a/build-aux/windows/QET64.nsi +++ b/build-aux/windows/QET64.nsi @@ -1,410 +1,485 @@ -; this file is part of installer for QElectroTech -; Copyright (C)2015 QElectroTech Team -; -; This program is free software; you can redistribute it and/or -; modify it under the terms of the GNU General Public License -; as published by the Free Software Foundation; either -; version 2 of the License, or (at your option) any later version. -; -; This program is distributed in the hope that it will be useful, -; but WITHOUT ANY WARRANTY; without even the implied warranty of -; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -; GNU General Public License for more details. -; -; You should have received a copy of the GNU General Public License -; along with this program; if not, write to the Free Software -; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -; WebSite : http://qelectrotech.org/ - -;-------------------------------- -;Include Modern UI - !include x64.nsh - !include "MUI2.nsh" - !include "FileFunc.nsh" - !insertmacro Locate - !include FileFunc.nsh - !insertmacro GetParameters - !insertmacro GetOptions - - -!ifndef PROC - !define PROC 32 ; -!endif - - - -; MUI Settings -;-------------------------------- -;General - ; General Product Description Definitions - !define SOFT_NAME "QElectroTech" - !define SOFT_VERSION "0.5-dev_x86_64-win64+4094" - !define SOFT_WEB_SITE "http://qelectrotech.org/" - !define SOFT_BUILD "1" - - - SetCompressor /final /solid lzma - CRCCheck force - XPStyle on - BrandingText "${SOFT_NAME}-${SOFT_VERSION}-${SOFT_BUILD}" ; Shows in the Bottom Left of the installer - - - ;Name and file - Name "${SOFT_NAME} ${SOFT_VERSION}" - OutFile "Installer_${SOFT_NAME}-${SOFT_VERSION}-${SOFT_BUILD}.exe" - - ;Default installation folder - InstallDir "$PROGRAMFILES64\${SOFT_NAME}" - - ;Get installation folder from registry if available - InstallDirRegKey HKCU "Software\${SOFT_NAME}" "" - - ;Request application privileges for Windows Vista - ; we request for admin because we write stuff into the registry - RequestExecutionLevel admin - -;-------------------------------- -;Interface Settings - !define MUI_ABORTWARNING - !define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\XPUI-install.ico" - !define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\XPUI-uninstall.ico" - - !define MUI_WELCOMEFINISHPAGE_BITMAP ".\images\wizard.bmp" - !define MUI_WELCOMEFINISHPAGE_BITMAP_NOSTRETCH - - !define MUI_HEADERIMAGE - !define MUI_HEADERIMAGE_BITMAP ".\images\header.bmp" ; optional -;-------------------------------- -;Language Selection Dialog Settings - - ;Remember the installer language - !define MUI_LANGDLL_REGISTRY_ROOT "HKCU" - !define MUI_LANGDLL_REGISTRY_KEY "Software\${SOFT_NAME}" - !define MUI_LANGDLL_REGISTRY_VALUENAME "Installer Language" - -;-------------------------------- -;Pages - - !define MUI_COMPONENTSPAGE_SMALLDESC - !insertmacro MUI_PAGE_WELCOME - !insertmacro MUI_PAGE_LICENSE "files\LICENSE" - !insertmacro MUI_PAGE_COMPONENTS - !insertmacro MUI_PAGE_DIRECTORY - !insertmacro MUI_PAGE_INSTFILES - - !insertmacro MUI_UNPAGE_CONFIRM - !insertmacro MUI_UNPAGE_INSTFILES - -; Finish page and checkbox to run QElectroTech - !define MUI_FINISHPAGE_RUN "$INSTDIR\Lancer QET.bat" - !define MUI_FINISHPAGE_RUN_NOTCHECKED - !define MUI_FINISHPAGE_RUN_TEXT "$(Check)" - !insertmacro MUI_PAGE_FINISH -;-------------------------------- -;Languages - ;Since NSIS 2.26, the language selection dialog of Modern UI hides languages unsupported by the user's selected codepage by default. - ;To revert to the old behavior and display all languages, no matter what the user will see when they're selected, use MUI_LANGDLL_ALLLANGUAGES. - !define MUI_LANGDLL_ALLLANGUAGES - - ; For consistency, we limit the installer to languages supported by QElectroTech itself - !insertmacro MUI_LANGUAGE "English" ;first language is the default language - !insertmacro MUI_LANGUAGE "Korean" - !insertmacro MUI_LANGUAGE "French" - !insertmacro MUI_LANGUAGE "Spanish" - !insertmacro MUI_LANGUAGE "Russian" - !insertmacro MUI_LANGUAGE "Portuguese" - !insertmacro MUI_LANGUAGE "Czech" - !insertmacro MUI_LANGUAGE "Polish" - !insertmacro MUI_LANGUAGE "Greek" - !insertmacro MUI_LANGUAGE "Arabic" - !insertmacro MUI_LANGUAGE "German" - !insertmacro MUI_LANGUAGE "Italian" - !insertmacro MUI_LANGUAGE "Romanian" - !insertmacro MUI_LANGUAGE "Catalan" - !insertmacro MUI_LANGUAGE "Croatian" - !insertmacro MUI_LANGUAGE "Dutch" - !insertmacro MUI_LANGUAGE "Dutch_Belgium" - !insertmacro MUI_LANGUAGE "Danish" - !insertmacro MUI_RESERVEFILE_LANGDLL - - !include lang_extra.nsh - !include lang_extra_fr.nsh - - - -SetOverwrite on -Section "Main Program" -SectionIn RO ; Read only, always installed - -Setoutpath "$INSTDIR\bin\" -File "./files/bin/${SOFT_NAME}.exe" - -Setoutpath "$INSTDIR" -File "./files/ChangeLog" -File "./files/CREDIT" -File "./files/ELEMENTS.LICENSE" -File "./files/LICENSE" -File "./files/qet_uninstall_file_associations.reg" -File "./files/README" -File "./files/register_filetypes.bat" -File "Lancer QET.bat" - -SetOutPath "$INSTDIR" -File /r "./files/ico" - -SectionEnd - -;--------------------------- -SetOverwrite on -SubSection "$(Elements)" SEC01 - -SetOverwrite on -Section "$(Electric)" - SetOutPath "$INSTDIR\elements" - File /r "./files/elements/10_electric" -SectionEnd - -SetOverwrite on -Section "$(Logic)" - SetOutPath "$INSTDIR\elements" - File /r "./files/elements/20_logic" -SectionEnd - -SetOverwrite on -Section "$(Hydraulic)" - SetOutPath "$INSTDIR\elements" - File /r "./files/elements/30_hydraulic" -SectionEnd - - -SetOverwrite on -Section "$(Pneumatic)" - SetOutPath "$INSTDIR\elements" - File /r "./files/elements/50_pneumatic" -SectionEnd - - -;--------------------------------- -SubSection "$(Energy)" - -SetOverwrite on -Section "$(water)" - SetOutPath "$INSTDIR\elements\60_energy" - File /r "./files/elements/60_energy/11_water" - File /r "./files/elements/60_energy/" -SectionEnd - -SetOverwrite on -Section "$(Refrigeration)" - SetOutPath "$INSTDIR\elements\60_energy" - File /r "./files/elements/60_energy/21_refrigeration" - File /r "./files/elements/60_energy/" -SectionEnd - -SetOverwrite on -Section "$(Solar_thermal)" - SetOutPath "$INSTDIR\elements\60_energy" - File /r "./files/elements/60_energy/31_solar_thermal" - File /r "./files/elements/60_energy/" -SectionEnd - -SubSectionEnd -SubSectionEnd -;------------------------------- - -SetOverwrite on -Section "$(Lang)" SEC02 - SetOutPath "$INSTDIR\lang" - File "./files/lang/*.qm" -SectionEnd - -SetOverwrite on -Section "$(Titleblocks)" SEC03 - SetOutPath "$INSTDIR" - File /r "./files/titleblocks" -SectionEnd - -SetOverwrite on -Section "$(Examples)" SEC04 - SetOutPath "$INSTDIR" - File /r "./files/examples" -SectionEnd - -;-------------------------------- -!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN -!insertmacro MUI_DESCRIPTION_TEXT ${SEC01} $(var1) -!insertmacro MUI_DESCRIPTION_TEXT ${SEC02} $(var2) -!insertmacro MUI_DESCRIPTION_TEXT ${SEC03} $(var3) -!insertmacro MUI_DESCRIPTION_TEXT ${SEC04} $(var4) -!insertmacro MUI_FUNCTION_DESCRIPTION_END -;-------------------------------- - -;Installer Sections - -Section "" - SetOutPath "$INSTDIR" - ;Store installation folder - WriteRegStr HKCU "Software\${SOFT_NAME}" "" $INSTDIR - ; write uninstall strings - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${SOFT_NAME}" "DisplayName" "${SOFT_NAME} (remove only)" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${SOFT_NAME}" "UninstallString" '"$INSTDIR\Uninstall.exe"' - ;Create uninstaller - WriteUninstaller "$INSTDIR\Uninstall.exe" - SetRegView 64 - - ; get the final path for the icons and the launch script - Var /GLOBAL final_qet_exe - Var /GLOBAL final_project_ico - Var /GLOBAL final_element_ico - Var /GLOBAL final_titleblock_ico - - StrCpy $final_qet_exe "$INSTDIR\Lancer QET.bat" - StrCpy $final_project_ico "$INSTDIR\ico\application-x-qet-project.ico" - StrCpy $final_element_ico "$INSTDIR\ico\application-x-qet-element.ico" - StrCpy $final_titleblock_ico "$INSTDIR\ico\application-x-qet-titleblock.ico" - - ; write file associations registry keys - WriteRegStr HKEY_CLASSES_ROOT "Applications\qelectrotech.exe\shell\open\command" "" "$\"$final_qet_exe$\" $\"%1$\"" - WriteRegStr HKEY_CLASSES_ROOT ".qet" "" "qet_diagram_file" - WriteRegStr HKEY_CLASSES_ROOT "qet_diagram_file" "" "Diagram QET" - WriteRegDWORD HKEY_CLASSES_ROOT "qet_diagram_file" "EditFlags" 0x00000000 - WriteRegDWORD HKEY_CLASSES_ROOT "qet_diagram_file" "BrowserFlags" 0x00000008 - WriteRegStr HKEY_CLASSES_ROOT "qet_diagram_file\DefaultIcon" "" "$final_project_ico" - WriteRegStr HKEY_CLASSES_ROOT "qet_diagram_file\shell\open\command" "" "$\"$final_qet_exe$\" $\"%1$\"" - WriteRegStr HKEY_CLASSES_ROOT ".elmt" "" "qet_element_file" - WriteRegStr HKEY_CLASSES_ROOT "qet_element_file" "" "Element QET" - WriteRegDWORD HKEY_CLASSES_ROOT "qet_element_file" "EditFlags" 0x00000000 - WriteRegDWORD HKEY_CLASSES_ROOT "qet_element_file" "BrowserFlags" 0x00000008 - WriteRegStr HKEY_CLASSES_ROOT "qet_element_file\DefaultIcon" "" "$final_element_ico" - WriteRegStr HKEY_CLASSES_ROOT "qet_element_file\shell\open\command" "" "$\"$final_qet_exe$\" $\"%1$\"" - WriteRegStr HKEY_CLASSES_ROOT ".titleblock" "" "qet_titleblock_file" - WriteRegStr HKEY_CLASSES_ROOT "qet_titleblock_file" "" "Titleblock QET" - WriteRegDWORD HKEY_CLASSES_ROOT "qet_titleblock_file" "EditFlags" 0x00000000 - WriteRegDWORD HKEY_CLASSES_ROOT "qet_titleblock_file" "BrowserFlags" 0x00000008 - WriteRegStr HKEY_CLASSES_ROOT "qet_titleblock_file\DefaultIcon" "" "$final_titleblock_ico" - WriteRegStr HKEY_CLASSES_ROOT "qet_titleblock_file\shell\open\command" "" "$\"$final_qet_exe$\" $\"%1$\"" - - SetShellVarContext all ; all users - ; shortcuts in the start menu - CreateDirectory "$SMPROGRAMS\${SOFT_NAME}" - CreateDirectory "$SMPROGRAMS\${SOFT_NAME}\Manual" - CreateDirectory "$SMPROGRAMS\${SOFT_NAME}\Upgrade" - CreateShortCut "$SMPROGRAMS\${SOFT_NAME}\QElectroTech.lnk" "$INSTDIR\Lancer QET.bat" 0 "$INSTDIR\ico\qelectrotech.ico" - CreateShortCut "$SMPROGRAMS\${SOFT_NAME}\Uninstall QElectroTech.lnk" "$INSTDIR\Uninstall.exe" - ; TODO : add the QuickStart Guide (or any other documentation) when available - - ; shortcut on the desktop - CreateShortCut "$DESKTOP\QElectroTech.lnk" "$INSTDIR\Lancer QET.bat" 0 "$INSTDIR\ico\qelectrotech.ico" - WriteINIStr "$SMPROGRAMS\${SOFT_NAME}\Manual\Manual_English.url" "InternetShortcut" "URL" "https://download.qelectrotech.org/qet/manual_0.7/build/index.html" - WriteINIStr "$SMPROGRAMS\${SOFT_NAME}\Manual\Manual_Russian.url" "InternetShortcut" "URL" "https://download.qelectrotech.org/qet/joshua/html/QET_ru.html" - WriteINIStr "$SMPROGRAMS\${SOFT_NAME}\Upgrade\Download.url" "InternetShortcut" "URL" "https://download.qelectrotech.org/qet/builds/nightly/" - WriteINIStr "$SMPROGRAMS\${SOFT_NAME}\Donate.url" "InternetShortcut" "URL" "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=ZZHC9D7C3MDPC" - - ;changing $INSTDIR\elements\ *.elmt to read-only attribute - - ${Locate} "$INSTDIR\elements\" "/L=FD /M=*.elmt" "LocateCallback" - IfErrors 0 +2 - ;MessageBox MB_OK "Error" -SectionEnd - -Function LocateCallback - SetFileAttributes $R9 FILE_ATTRIBUTE_READONLY - Push $0 -FunctionEnd - -;-------------------------------- -;Installer Functions - -Function .onInit - !insertmacro MUI_LANGDLL_DISPLAY - -${If} ${RunningX64} -${Else} - - MessageBox MB_OK|MB_ICONSTOP $(wrongArch) - Abort $(wrongArch) -${EndIf} - -;Auto-uninstall old before installing new - ReadRegStr $R0 HKLM \ - "Software\Microsoft\Windows\CurrentVersion\Uninstall\${SOFT_NAME}" \ - "UninstallString" - StrCmp $R0 "" done - - MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION \ - "$(installed)" \ - IDOK uninst - Abort - -;Run the uninstaller -uninst: - ClearErrors - ExecWait '$R0 _?=$INSTDIR' ;Do not copy the uninstaller to a temp file - - IfErrors no_remove_uninstaller done - ;You can either use Delete /REBOOTOK in the uninstaller or add some code - ;here to remove the uninstaller. Use a registry key to check - ;whether the user has chosen to uninstall. If you are using an uninstaller - ;components page, make sure all sections are uninstalled. - no_remove_uninstaller: - -done: - -FunctionEnd - -;-------------------------------- -;Descriptions - - ;USE A LANGUAGE STRING IF YOU WANT YOUR DESCRIPTIONS TO BE LANGAUGE SPECIFIC - - ;Assign descriptions to sections - ;!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN - ; !insertmacro MUI_DESCRIPTION_TEXT ${CopyFiles} "CopyFiles" - ;!insertmacro MUI_FUNCTION_DESCRIPTION_END - -;-------------------------------- -;Uninstaller Section - -Section "Uninstall" - SetShellVarContext all ; all users - ; remove start menu shortcuts - RMDir /r "$SMPROGRAMS\${SOFT_NAME}" - ; remove shortcut on the desktop - Delete "$DESKTOP\QElectroTech.lnk" - - ; remove the application files - Delete "$INSTDIR\*.*" - RMDir /r "$INSTDIR" - - ;remove installation registry keys - DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${SOFT_NAME}" - DeleteRegKey /ifempty HKCU "Software\${SOFT_NAME}" - - ; remove file associations registry keys - DeleteRegKey HKEY_CLASSES_ROOT "Applications\qelectrotech.exe" - DeleteRegKey HKEY_CLASSES_ROOT ".qet" - DeleteRegKey HKEY_CLASSES_ROOT "qet_diagram_file" - DeleteRegKey HKEY_CLASSES_ROOT ".elmt" - DeleteRegKey HKEY_CLASSES_ROOT "qet_element_file" - DeleteRegKey HKEY_CLASSES_ROOT ".titleblock" - DeleteRegKey HKEY_CLASSES_ROOT "qet_titleblock_file" - - IfFileExists "$INSTDIR" 0 NoErrorMsg - ;MessageBox MB_OK "Note: $INSTDIR could not be removed!" IDOK 0 ; skipped if file doesn't exist - NoErrorMsg: -SectionEnd - -;-------------------------------- -;Uninstaller Functions - -Function un.onInit - - !insertmacro MUI_UNGETLANGUAGE - -FunctionEnd - - - - - +; this file is part of installer for QElectroTech +; Copyright (C)2015 QElectroTech Team +; +; This program is free software; you can redistribute it and/or +; modify it under the terms of the GNU General Public License +; as published by the Free Software Foundation; either +; version 2 of the License, or (at your option) any later version. +; +; This program is distributed in the hope that it will be useful, +; but WITHOUT ANY WARRANTY; without even the implied warranty of +; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +; GNU General Public License for more details. +; +; You should have received a copy of the GNU General Public License +; along with this program; if not, write to the Free Software +; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +; WebSite : https://qelectrotech.org/ + +;============================================================================== +; NSIS 3.x compatibility notes: +; - Unicode is native in NSIS 3 (no need for Unicode installer plugin) +; - XPStyle is deprecated/removed; ManifestSupportedOS replaces it +; - SetCompressor must appear before any Section/Function +; - SetRegView 64 moved to top of the hidden section (before WriteRegStr) +; - x64.nsh is still available but ${RunningX64} is now also in x64.nsh +; - MUI2.nsh is unchanged; MUI_LANGDLL_ALLLANGUAGES is still valid +; - FileFunc.nsh / Locate macro: unchanged +; - Var /GLOBAL must be declared at global scope, not inside a Section +;============================================================================== + +;-------------------------------- +; NSIS 3 requires SetCompressor BEFORE any Section or Function +SetCompressor /FINAL /SOLID lzma + +;-------------------------------- +; Includes +!include x64.nsh +!include "MUI2.nsh" +!include "FileFunc.nsh" +!insertmacro Locate +!insertmacro GetParameters +!insertmacro GetOptions + +;-------------------------------- +; NSIS 3: Unicode is the default. The installer binary will be Unicode. +; No extra plugin needed. + +!ifndef PROC + !define PROC 64 +!endif + +;-------------------------------- +; General Product Description Definitions +!define SOFT_NAME "QElectroTech" +!define SOFT_VERSION "0.5-dev_x86_64-win64+4094" +!define SOFT_WEB_SITE "https://qelectrotech.org/" +!define SOFT_BUILD "1" + +;-------------------------------- +; General settings +CRCCheck force +BrandingText "${SOFT_NAME}-${SOFT_VERSION}-${SOFT_BUILD}" + +; NSIS 3: XPStyle is removed. Use ManifestSupportedOS to declare modern OS support. +; This replaces "XPStyle on" and enables proper DPI awareness + visual styles. +ManifestSupportedOS all +ManifestDPIAware true + +; Name and output file +Name "${SOFT_NAME} ${SOFT_VERSION}" +OutFile "Installer_${SOFT_NAME}-${SOFT_VERSION}-${SOFT_BUILD}.exe" + +; Default installation folder +InstallDir "$PROGRAMFILES64\${SOFT_NAME}" + +; Get installation folder from registry if available +; NSIS 3: InstallDirRegKey still works, but SetRegView 64 must be set at +; runtime (in .onInit) to read 64-bit registry hive correctly. +InstallDirRegKey HKCU "Software\${SOFT_NAME}" "" + +; Request admin privileges (required for HKLM / file associations) +RequestExecutionLevel admin + +;-------------------------------- +; Declare global variables at script scope (NSIS 3 requirement) +; In NSIS 2 these could be declared inside a Section; that still compiles +; in NSIS 3 but triggers a warning. Declare them here. +Var final_qet_exe +Var final_project_ico +Var final_element_ico +Var final_titleblock_ico + +;-------------------------------- +; MUI Interface Settings +!define MUI_ABORTWARNING + +; NSIS 3 ships updated icons; XPUI icons are still present for compatibility. +; You may switch to the modern ones: +!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\nsis3-install.ico" +!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\nsis3-uninstall.ico" + +!define MUI_WELCOMEFINISHPAGE_BITMAP ".\images\wizard.bmp" +!define MUI_WELCOMEFINISHPAGE_BITMAP_NOSTRETCH + +!define MUI_HEADERIMAGE +!define MUI_HEADERIMAGE_BITMAP ".\images\header.bmp" + +;-------------------------------- +; Language Selection Dialog Settings (remember chosen language in registry) +!define MUI_LANGDLL_REGISTRY_ROOT "HKCU" +!define MUI_LANGDLL_REGISTRY_KEY "Software\${SOFT_NAME}" +!define MUI_LANGDLL_REGISTRY_VALUENAME "Installer Language" + +;-------------------------------- +; Pages +!define MUI_COMPONENTSPAGE_SMALLDESC +!insertmacro MUI_PAGE_WELCOME +!insertmacro MUI_PAGE_LICENSE "files\LICENSE" +!insertmacro MUI_PAGE_COMPONENTS +!insertmacro MUI_PAGE_DIRECTORY +!insertmacro MUI_PAGE_INSTFILES + +!insertmacro MUI_UNPAGE_CONFIRM +!insertmacro MUI_UNPAGE_INSTFILES + +; Finish page – checkbox to launch QElectroTech +!define MUI_FINISHPAGE_RUN "$INSTDIR\Lancer QET.bat" +!define MUI_FINISHPAGE_RUN_NOTCHECKED +!define MUI_FINISHPAGE_RUN_TEXT "$(Check)" +!insertmacro MUI_PAGE_FINISH + +;-------------------------------- +; Languages +; NSIS 3: MUI_LANGDLL_ALLLANGUAGES is still supported and works as before. +!define MUI_LANGDLL_ALLLANGUAGES + +!insertmacro MUI_LANGUAGE "English" ; first = default + !insertmacro MUI_LANGUAGE "Korean" + !insertmacro MUI_LANGUAGE "French" + !insertmacro MUI_LANGUAGE "Spanish" + !insertmacro MUI_LANGUAGE "Russian" + !insertmacro MUI_LANGUAGE "Portuguese" + !insertmacro MUI_LANGUAGE "Czech" + !insertmacro MUI_LANGUAGE "Polish" + !insertmacro MUI_LANGUAGE "Greek" + !insertmacro MUI_LANGUAGE "Arabic" + !insertmacro MUI_LANGUAGE "German" + !insertmacro MUI_LANGUAGE "Italian" + !insertmacro MUI_LANGUAGE "Romanian" + !insertmacro MUI_LANGUAGE "Catalan" + !insertmacro MUI_LANGUAGE "Croatian" + !insertmacro MUI_LANGUAGE "Dutch" + !insertmacro MUI_LANGUAGE "Danish" +!insertmacro MUI_RESERVEFILE_LANGDLL + +; Language strings for all supported locales +!include lang_extra.nsh +!include lang_extra_fr.nsh +; NOTE: The string "uninstFailed" must be defined in lang_extra.nsh and +; lang_extra_fr.nsh (and any other lang_extra_*.nsh) like so: +; LangString uninstFailed ${LANG_ENGLISH} "Uninstallation of the previous version failed.$\nPlease uninstall QElectroTech manually before continuing." +; LangString uninstFailed ${LANG_FRENCH} "La désinstallation de la version précédente a échoué.$\nVeuillez désinstaller QElectroTech manuellement avant de continuer." + +;============================================================================== +; SECTIONS +;============================================================================== + +SetOverwrite on + +Section "Main Program" +SectionIn RO ; Read-only – always installed + + SetOutPath "$INSTDIR\bin\" + File "./files/bin/${SOFT_NAME}.exe" + + SetOutPath "$INSTDIR" + File "./files/ChangeLog" + File "./files/CREDIT" + File "./files/ELEMENTS.LICENSE" + File "./files/LICENSE" + File "./files/qet_uninstall_file_associations.reg" + File "./files/README" + File "./files/register_filetypes.bat" + File "Lancer QET.bat" + + SetOutPath "$INSTDIR" + File /r "./files/ico" + +SectionEnd + +;--------------------------- +SetOverwrite on +SubSection "$(Elements)" SEC01 + + SetOverwrite on + Section "$(Electric)" + SetOutPath "$INSTDIR\elements" + File /r "./files/elements/10_electric" + SectionEnd + + SetOverwrite on + Section "$(Logic)" + SetOutPath "$INSTDIR\elements" + File /r "./files/elements/20_logic" + SectionEnd + + SetOverwrite on + Section "$(Hydraulic)" + SetOutPath "$INSTDIR\elements" + File /r "./files/elements/30_hydraulic" + SectionEnd + + SetOverwrite on + Section "$(Pneumatic)" + SetOutPath "$INSTDIR\elements" + File /r "./files/elements/50_pneumatic" + SectionEnd + + ;--------------------------------- + SubSection "$(Energy)" + + SetOverwrite on + Section "$(water)" + SetOutPath "$INSTDIR\elements\60_energy" + File /r "./files/elements/60_energy/11_water" + File /r "./files/elements/60_energy/" + SectionEnd + + SetOverwrite on + Section "$(Refrigeration)" + SetOutPath "$INSTDIR\elements\60_energy" + File /r "./files/elements/60_energy/21_refrigeration" + File /r "./files/elements/60_energy/" + SectionEnd + + SetOverwrite on + Section "$(Solar_thermal)" + SetOutPath "$INSTDIR\elements\60_energy" + File /r "./files/elements/60_energy/31_solar_thermal" + File /r "./files/elements/60_energy/" + SectionEnd + + SubSectionEnd + +SubSectionEnd + +;------------------------------- +SetOverwrite on +Section "$(Lang)" SEC02 + SetOutPath "$INSTDIR\lang" + File "./files/lang/*.qm" +SectionEnd + +SetOverwrite on +Section "$(Titleblocks)" SEC03 + SetOutPath "$INSTDIR" + File /r "./files/titleblocks" +SectionEnd + +SetOverwrite on +Section "$(Examples)" SEC04 + SetOutPath "$INSTDIR" + File /r "./files/examples" +SectionEnd + +;-------------------------------- +; Component descriptions +!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN + !insertmacro MUI_DESCRIPTION_TEXT ${SEC01} $(var1) + !insertmacro MUI_DESCRIPTION_TEXT ${SEC02} $(var2) + !insertmacro MUI_DESCRIPTION_TEXT ${SEC03} $(var3) + !insertmacro MUI_DESCRIPTION_TEXT ${SEC04} $(var4) +!insertmacro MUI_FUNCTION_DESCRIPTION_END + +;-------------------------------- +; Hidden section: registry, shortcuts, file associations +Section "" + SetOutPath "$INSTDIR" + + ; NSIS 3 on 64-bit Windows: set 64-bit registry view BEFORE any WriteRegStr + ; so keys land in HKLM\SOFTWARE (not the Wow6432Node redirect). + SetRegView 64 + + ; Store installation folder + WriteRegStr HKCU "Software\${SOFT_NAME}" "" $INSTDIR + + ; Uninstall registry entries + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${SOFT_NAME}" \ + "DisplayName" "${SOFT_NAME} (remove only)" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${SOFT_NAME}" \ + "UninstallString" '"$INSTDIR\Uninstall.exe"' + + ; Create uninstaller + WriteUninstaller "$INSTDIR\Uninstall.exe" + + ; Build paths for icons and launch script + StrCpy $final_qet_exe "$INSTDIR\Lancer QET.bat" + StrCpy $final_project_ico "$INSTDIR\ico\application-x-qet-project.ico" + StrCpy $final_element_ico "$INSTDIR\ico\application-x-qet-element.ico" + StrCpy $final_titleblock_ico "$INSTDIR\ico\application-x-qet-titleblock.ico" + + ; File associations – .qet + WriteRegStr HKEY_CLASSES_ROOT "Applications\qelectrotech.exe\shell\open\command" "" \ + '"$final_qet_exe" "%1"' + WriteRegStr HKEY_CLASSES_ROOT ".qet" "" "qet_diagram_file" + WriteRegStr HKEY_CLASSES_ROOT "qet_diagram_file" "" "Diagram QET" + WriteRegDWORD HKEY_CLASSES_ROOT "qet_diagram_file" "EditFlags" 0x00000000 + WriteRegDWORD HKEY_CLASSES_ROOT "qet_diagram_file" "BrowserFlags" 0x00000008 + WriteRegStr HKEY_CLASSES_ROOT "qet_diagram_file\DefaultIcon" "" "$final_project_ico" + WriteRegStr HKEY_CLASSES_ROOT "qet_diagram_file\shell\open\command" "" '"$final_qet_exe" "%1"' + + ; File associations – .elmt + WriteRegStr HKEY_CLASSES_ROOT ".elmt" "" "qet_element_file" + WriteRegStr HKEY_CLASSES_ROOT "qet_element_file" "" "Element QET" + WriteRegDWORD HKEY_CLASSES_ROOT "qet_element_file" "EditFlags" 0x00000000 + WriteRegDWORD HKEY_CLASSES_ROOT "qet_element_file" "BrowserFlags" 0x00000008 + WriteRegStr HKEY_CLASSES_ROOT "qet_element_file\DefaultIcon" "" "$final_element_ico" + WriteRegStr HKEY_CLASSES_ROOT "qet_element_file\shell\open\command" "" '"$final_qet_exe" "%1"' + + ; File associations – .titleblock + WriteRegStr HKEY_CLASSES_ROOT ".titleblock" "" "qet_titleblock_file" + WriteRegStr HKEY_CLASSES_ROOT "qet_titleblock_file" "" "Titleblock QET" + WriteRegDWORD HKEY_CLASSES_ROOT "qet_titleblock_file" "EditFlags" 0x00000000 + WriteRegDWORD HKEY_CLASSES_ROOT "qet_titleblock_file" "BrowserFlags" 0x00000008 + WriteRegStr HKEY_CLASSES_ROOT "qet_titleblock_file\DefaultIcon" "" "$final_titleblock_ico" + WriteRegStr HKEY_CLASSES_ROOT "qet_titleblock_file\shell\open\command" "" '"$final_qet_exe" "%1"' + + SetShellVarContext all ; apply shortcuts for all users + + ; Start Menu shortcuts + CreateDirectory "$SMPROGRAMS\${SOFT_NAME}" + CreateDirectory "$SMPROGRAMS\${SOFT_NAME}\Manual" + CreateDirectory "$SMPROGRAMS\${SOFT_NAME}\Upgrade" + CreateShortCut "$SMPROGRAMS\${SOFT_NAME}\QElectroTech.lnk" \ + "$INSTDIR\Lancer QET.bat" 0 "$INSTDIR\ico\qelectrotech.ico" + CreateShortCut "$SMPROGRAMS\${SOFT_NAME}\Uninstall QElectroTech.lnk" \ + "$INSTDIR\Uninstall.exe" + + ; Desktop shortcut + CreateShortCut "$DESKTOP\QElectroTech.lnk" \ + "$INSTDIR\Lancer QET.bat" 0 "$INSTDIR\ico\qelectrotech.ico" + + ; Internet shortcuts + WriteINIStr "$SMPROGRAMS\${SOFT_NAME}\Manual\Manual_English.url" \ + "InternetShortcut" "URL" "https://download.qelectrotech.org/qet/manual_0.7/build/index.html" + WriteINIStr "$SMPROGRAMS\${SOFT_NAME}\Manual\Manual_Russian.url" \ + "InternetShortcut" "URL" "https://download.qelectrotech.org/qet/joshua/html/QET_ru.html" + WriteINIStr "$SMPROGRAMS\${SOFT_NAME}\Upgrade\Download.url" \ + "InternetShortcut" "URL" "https://download.qelectrotech.org/qet/builds/nightly/" + WriteINIStr "$SMPROGRAMS\${SOFT_NAME}\Donate.url" \ + "InternetShortcut" "URL" "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=ZZHC9D7C3MDPC" + + ; Mark installed elements as read-only + ${Locate} "$INSTDIR\elements\" "/L=FD /M=*.elmt" "LocateCallback" + IfErrors 0 +2 + ; MessageBox MB_OK "Error in Locate" ; uncomment for debugging + +SectionEnd + +;-------------------------------- +; Locate callback – sets FILE_ATTRIBUTE_READONLY on each .elmt file +Function LocateCallback + SetFileAttributes $R9 FILE_ATTRIBUTE_READONLY + Push $0 +FunctionEnd + +;============================================================================== +; INSTALLER FUNCTIONS +;============================================================================== + +Function .onInit + ; NSIS 3: SetRegView in .onInit ensures InstallDirRegKey reads the right hive + SetRegView 64 + + !insertmacro MUI_LANGDLL_DISPLAY + + ; Abort if not running on a 64-bit OS + ${IfNot} ${RunningX64} + MessageBox MB_OK|MB_ICONSTOP $(wrongArch) + Abort + ${EndIf} + + ; ---------------------------------------------------------------- + ; Auto-uninstall previous version before installing new one + ; ---------------------------------------------------------------- + ReadRegStr $R0 HKLM \ + "Software\Microsoft\Windows\CurrentVersion\Uninstall\${SOFT_NAME}" \ + "UninstallString" + + ; No previous installation found → proceed normally + StrCmp $R0 "" done + + ; Also read the install dir of the previous version + ReadRegStr $R1 HKCU "Software\${SOFT_NAME}" "" + + ; Ask user whether to uninstall the existing version + MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION "$(installed)" IDOK uninst + Abort ; user clicked Cancel → stop the installer + +uninst: + ; Remove surrounding quotes from the UninstallString if present + ; (some installers write: "C:\path\Uninstall.exe" — ExecWait needs clean path) + StrCpy $R2 $R0 1 ; first character + StrCmp $R2 '"' 0 unquoted + ; Strip leading and trailing quote + StrCpy $R0 $R0 "" 1 ; remove leading " + StrLen $R3 $R0 + IntOp $R3 $R3 - 1 + StrCpy $R0 $R0 $R3 ; remove trailing " +unquoted: + + ; Run the uninstaller silently, keeping it in its own directory + ; _?= prevents NSIS from copying the uninstaller to a temp folder, + ; so it can delete itself and the whole $INSTDIR tree. + ClearErrors + ${If} $R1 != "" + ExecWait '"$R0" /S _?=$R1' ; silent uninstall using saved install dir + ${Else} + ExecWait '"$R0" /S' ; fallback if install dir unknown + ${EndIf} + + IfErrors uninstall_failed + + ; Verify the old installation is gone before continuing + ${If} $R1 != "" + IfFileExists "$R1\${SOFT_NAME}.exe" uninstall_failed + IfFileExists "$R1\bin\${SOFT_NAME}.exe" uninstall_failed + ${EndIf} + + Goto done + +uninstall_failed: + MessageBox MB_OK|MB_ICONSTOP "$(uninstFailed)" + Abort + +done: + +FunctionEnd + +;============================================================================== +; UNINSTALLER SECTION +;============================================================================== + +Section "Uninstall" + SetRegView 64 ; NSIS 3: required so we delete from the correct hive + SetShellVarContext all + + ; Remove Start Menu shortcuts + RMDir /r "$SMPROGRAMS\${SOFT_NAME}" + + ; Remove Desktop shortcut + Delete "$DESKTOP\QElectroTech.lnk" + + ; Remove application files + Delete "$INSTDIR\*.*" + RMDir /r "$INSTDIR" + + ; Remove installation registry keys + DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${SOFT_NAME}" + DeleteRegKey /ifempty HKCU "Software\${SOFT_NAME}" + + ; Remove file associations registry keys + DeleteRegKey HKEY_CLASSES_ROOT "Applications\qelectrotech.exe" + DeleteRegKey HKEY_CLASSES_ROOT ".qet" + DeleteRegKey HKEY_CLASSES_ROOT "qet_diagram_file" + DeleteRegKey HKEY_CLASSES_ROOT ".elmt" + DeleteRegKey HKEY_CLASSES_ROOT "qet_element_file" + DeleteRegKey HKEY_CLASSES_ROOT ".titleblock" + DeleteRegKey HKEY_CLASSES_ROOT "qet_titleblock_file" + + IfFileExists "$INSTDIR" 0 NoErrorMsg + ; MessageBox MB_OK "Note: $INSTDIR could not be removed!" + NoErrorMsg: + +SectionEnd + +;============================================================================== +; UNINSTALLER FUNCTIONS +;============================================================================== + +Function un.onInit + SetRegView 64 ; NSIS 3: match the view used during install + !insertmacro MUI_UNGETLANGUAGE +FunctionEnd diff --git a/build-aux/windows/lang_extra.nsh b/build-aux/windows/lang_extra.nsh index bc4776cf2..4513a00c4 100644 --- a/build-aux/windows/lang_extra.nsh +++ b/build-aux/windows/lang_extra.nsh @@ -17,6 +17,7 @@ LangString var2 ${LANG_ENGLISH} "languagues files" LangString var3 ${LANG_ENGLISH} "Examples of cartridges" LangString var4 ${LANG_ENGLISH} "Examples of diagrams" + LangString uninstFailed ${LANG_ENGLISH} "Uninstallation of the previous version failed.$\nPlease uninstall ${SOFT_NAME} manually before continuing." LangString installed ${LANG_KOREAN} "${SOFT_NAME}이(가) 이미 설치되어 있습니다. $\n$\n이전 버전을 제거하려면 `OK`를, 업그레이드를 취소하려면 `Cancel`을 클릭하세요." @@ -38,6 +39,7 @@ LangString var2 ${LANG_KOREAN} "언어 파일" LangString var3 ${LANG_KOREAN} "표제란 예제" LangString var4 ${LANG_KOREAN} "도면 예제" + LangString uninstFailed ${LANG_KOREAN} "이전 버전을 제거하지 못했습니다.$\n계속하기 전에 ${SOFT_NAME}을(를) 수동으로 제거해 주세요." LangString installed ${LANG_POLISH} "${SOFT_NAME} jest już zainstalowany. $\n$\nKliknij `OK` aby odinstalować poprzednią wersję lub `Anuluj` aby przerwać aktualizację." @@ -59,6 +61,7 @@ LangString var2 ${LANG_POLISH} "languagues files" LangString var3 ${LANG_POLISH} "Examples of cartridges" LangString var4 ${LANG_POLISH} "Examples of diagrams" + LangString uninstFailed ${LANG_POLISH} "Odinstalowanie poprzedniej wersji nie powiodło się.$\nPrzed kontynuowaniem odinstaluj ręcznie program ${SOFT_NAME}." LangString installed ${LANG_GREEK} "${SOFT_NAME} είναι ήδη εγκατεστημένο. $\n$\nΠάτησε `OK` για αφαίρεση της προηγούμενης έκδοσης ή `Cancel` για ακύρωση της αναβάθμισης." @@ -80,6 +83,7 @@ LangString var2 ${LANG_GREEK} "Αρχεία γλωσσών" LangString var3 ${LANG_GREEK} "Examples of cartridges" LangString var4 ${LANG_GREEK} "Παραδείγματα διαγραμμάτων" + LangString uninstFailed ${LANG_GREEK} "Η απεγκατάσταση της προηγούμενης έκδοσης απέτυχε.$\nΠαρακαλώ απεγκαταστήστε χειροκίνητα το ${SOFT_NAME} πριν συνεχίσετε." LangString installed ${LANG_CZECH} "${SOFT_NAME} is already installed. $\n$\nClick `OK` to remove the previous version or `Cancel` to cancel this upgrade." @@ -101,6 +105,7 @@ LangString var2 ${LANG_CZECH} "languagues files" LangString var3 ${LANG_CZECH} "Examples of cartridges" LangString var4 ${LANG_CZECH} "Examples of diagrams" + LangString uninstFailed ${LANG_CZECH} "Odinstalování předchozí verze se nezdařilo.$\nPřed pokračováním prosím odinstalujte ${SOFT_NAME} ručně." LangString installed ${LANG_SPANISH} "${SOFT_NAME} is already installed. $\n$\nClick `OK` to remove the previous version or `Cancel` to cancel this upgrade." @@ -122,6 +127,7 @@ LangString var2 ${LANG_SPANISH} "languagues files" LangString var3 ${LANG_SPANISH} "Examples of cartridges" LangString var4 ${LANG_SPANISH} "Examples of diagrams" + LangString uninstFailed ${LANG_SPANISH} "La desinstalación de la versión anterior ha fallado.$\nPor favor, desinstale ${SOFT_NAME} manualmente antes de continuar." LangString installed ${LANG_GERMAN} "${SOFT_NAME} ist bereits installiert. $\n$\nKlicken Sie auf `OK`, um die alte Version zu deinstallieren, oder auf `Abbrechen`, um das Upgrade abzubrechen." @@ -143,6 +149,7 @@ LangString var2 ${LANG_GERMAN} "Sprachdateien" LangString var3 ${LANG_GERMAN} "Schriftfeld-Beispiele" LangString var4 ${LANG_GERMAN} "Schaltplan-Beispiele" + LangString uninstFailed ${LANG_GERMAN} "Die Deinstallation der vorherigen Version ist fehlgeschlagen.$\nBitte deinstallieren Sie ${SOFT_NAME} manuell, bevor Sie fortfahren." LangString installed ${LANG_RUSSIAN} "${SOFT_NAME} уже установлен. $\n$\nДля удаления предыдущей версии нажмите `OK` или `Cancel` для отмены обновления." @@ -164,6 +171,7 @@ LangString var2 ${LANG_RUSSIAN} "языковые файлы" LangString var3 ${LANG_RUSSIAN} "Примеры штампов" LangString var4 ${LANG_RUSSIAN} "Примеры схем" + LangString uninstFailed ${LANG_RUSSIAN} "Удаление предыдущей версии завершилось с ошибкой.$\nПожалуйста, удалите ${SOFT_NAME} вручную перед продолжением." LangString installed ${LANG_ARABIC} "${SOFT_NAME} is already installed. $\n$\nClick `OK` to remove the previous version or `Cancel` to cancel this upgrade." @@ -185,6 +193,7 @@ LangString var2 ${LANG_ARABIC} "languagues files" LangString var3 ${LANG_ARABIC} "Examples of cartridges" LangString var4 ${LANG_ARABIC} "Examples of diagrams" + LangString uninstFailed ${LANG_ARABIC} "فشل إلغاء تثبيت الإصدار السابق. يرجى إلغاء تثبيت ${SOFT_NAME} يدويًا قبل المتابعة." LangString installed ${LANG_CATALAN} "${SOFT_NAME} is already installed. $\n$\nClick `OK` to remove the previous version or `Cancel` to cancel this upgrade." @@ -206,6 +215,7 @@ LangString var2 ${LANG_CATALAN} "languagues files" LangString var3 ${LANG_CATALAN} "Examples of cartridges" LangString var4 ${LANG_CATALAN} "Examples of diagrams" + LangString uninstFailed ${LANG_CATALAN} "La desinstal·lació de la versió anterior ha fallat.$\nSi us plau, desinstal·leu ${SOFT_NAME} manualment abans de continuar." LangString installed ${LANG_ITALIAN} "${SOFT_NAME} è già installato. $\n$\nFare click su `OK` per rimuovere la versione precedente o su `Annulla` per annullare questo aggiornamento." @@ -227,6 +237,7 @@ LangString var2 ${LANG_ITALIAN} "File della lingua" LangString var3 ${LANG_ITALIAN} "Cartigli di esempio" LangString var4 ${LANG_ITALIAN} "Schemi di esempio" + LangString uninstFailed ${LANG_ITALIAN} "La disinstallazione della versione precedente non è riuscita.$\nSi prega di disinstallare ${SOFT_NAME} manualmente prima di continuare." LangString installed ${LANG_PORTUGUESE} "${SOFT_NAME} is already installed. $\n$\nClick `OK` to remove the previous version or `Cancel` to cancel this upgrade." @@ -248,6 +259,7 @@ LangString var2 ${LANG_PORTUGUESE} "languagues files" LangString var3 ${LANG_PORTUGUESE} "Examples of cartridges" LangString var4 ${LANG_PORTUGUESE} "Examples of diagrams" + LangString uninstFailed ${LANG_PORTUGUESE} "A desinstalação da versão anterior falhou.$\nPor favor, desinstale ${SOFT_NAME} manualmente antes de continuar." LangString installed ${LANG_ROMANIAN} "${SOFT_NAME} is already installed. $\n$\nClick `OK` to remove the previous version or `Cancel` to cancel this upgrade." @@ -269,6 +281,7 @@ LangString var2 ${LANG_ROMANIAN} "languagues files" LangString var3 ${LANG_ROMANIAN} "Examples of cartridges" LangString var4 ${LANG_ROMANIAN} "Examples of diagrams" + LangString uninstFailed ${LANG_ROMANIAN} "Dezinstalarea versiunii anterioare a eșuat.$\nVă rugăm să dezinstalați ${SOFT_NAME} manual înainte de a continua." LangString installed ${LANG_CROATIAN} "${SOFT_NAME} is already installed. $\n$\nClick `OK` to remove the previous version or `Cancel` to cancel this upgrade." @@ -290,6 +303,7 @@ LangString var2 ${LANG_CROATIAN} "languagues files" LangString var3 ${LANG_CROATIAN} "Examples of cartridges" LangString var4 ${LANG_CROATIAN} "Examples of diagrams" + LangString uninstFailed ${LANG_CROATIAN} "Deinstalacija prethodne verzije nije uspjela.$\nMolimo deinstalirajte ${SOFT_NAME} ručno prije nastavka." LangString installed ${LANG_DUTCH} "${SOFT_NAME} is al geinstalleerd. $\n$\nklik `OK` om vorige versie te verwijderen of `annuleer` om deze upgrade te annuleren." @@ -307,31 +321,11 @@ LangString Titleblocks ${LANG_DUTCH} "Titelblok" LangString Examples ${LANG_DUTCH} "Voorbeelden" LangString Check ${LANG_DUTCH} "Check to start ${SOFT_NAME}" - LangString Check ${LANG_DUTCH} "Check to start ${SOFT_NAME}" LangString var1 ${LANG_DUTCH} "Elements of the official collection" LangString var2 ${LANG_DUTCH} "languagues files" LangString var3 ${LANG_DUTCH} "Examples of cartridges" LangString var4 ${LANG_DUTCH} "Examples of diagrams" - - LangString installed ${LANG_DUTCH_BELGIUM} "${SOFT_NAME} is reeds geinstallerd. $\n$\nKlik`OK` om vorige versie te verwijderen of `Afbreken` om de upgrade niet uit te voeren." - LangString wrongArch ${LANG_DUTCH_BELGIUM} "Deze distributie werkt enkel op 64 bits computers." - LangString Elements ${LANG_DUTCH_BELGIUM} "Elementen" - LangString Electric ${LANG_DUTCH_BELGIUM} "Electrisch" - LangString Logic ${LANG_DUTCH_BELGIUM} "Logica" - LangString Hydraulic ${LANG_DUTCH_BELGIUM} "Hydraulisch" - LangString Pneumatic ${LANG_DUTCH_BELGIUM} "Pneumatisch" - LangString Energy ${LANG_DUTCH_BELGIUM} "Energie" - LangString water ${LANG_DUTCH_BELGIUM} "Water" - LangString Refrigeration ${LANG_DUTCH_BELGIUM} "Klimatisatie" - LangString Solar_thermal ${LANG_DUTCH_BELGIUM} "Termisch & zonlicht" - LangString Lang ${LANG_DUTCH_BELGIUM} "Taal" - LangString Titleblocks ${LANG_DUTCH_BELGIUM} "Titelhoek" - LangString Examples ${LANG_DUTCH_BELGIUM} "Voorbeelden" - LangString Check ${LANG_DUTCH_BELGIUM} "Controleer om te beginnen ${SOFT_NAME}" - LangString var1 ${LANG_DUTCH_BELGIUM} "Symbolen van de officielen verzameling" - LangString var2 ${LANG_DUTCH_BELGIUM} "taal bestanden" - LangString var3 ${LANG_DUTCH_BELGIUM} "Voorbeel titelhoeken" - LangString var4 ${LANG_DUTCH_BELGIUM} "Voorbeeld schema's" + LangString uninstFailed ${LANG_DUTCH} "Het verwijderen van de vorige versie is mislukt.$\nVerwijder ${SOFT_NAME} handmatig voordat u verdergaat." LangString installed ${LANG_DANISH} "${SOFT_NAME} er allerede installeret. $\n$\nKlik `Ok` for at fjerne foregående version eller `Annuller` for at annullere opgraderingen." @@ -353,5 +347,6 @@ LangString var2 ${LANG_DANISH} "Sprog filer" LangString var3 ${LANG_DANISH} "Titel blokke eksempler" LangString var4 ${LANG_DANISH} "Diagram eksempler" + LangString uninstFailed ${LANG_DANISH} "Afinstallation af den tidligere version mislykkedes.$\nAfinstaller venligst ${SOFT_NAME} manuelt, inden du fortsætter." diff --git a/build-aux/windows/lang_extra_fr.nsh b/build-aux/windows/lang_extra_fr.nsh index 3c0be6760..674d8a0c0 100644 --- a/build-aux/windows/lang_extra_fr.nsh +++ b/build-aux/windows/lang_extra_fr.nsh @@ -1,6 +1,6 @@ LangString wrongArch ${LANG_FRENCH} "Ce programme est pour Windows 64 bits seulement." - LangString installed ${LANG_FRENCH} "${SOFT_NAME} est dja install. $\n$\nCliquer sur `OK` pour dsinstaller l'ancienne version `Annuler` pour annuler cet upgrade." - LangString Elements ${LANG_FRENCH} "Elments" + LangString installed ${LANG_FRENCH} "${SOFT_NAME} est déja installé. $\n$\nCliquer sur `OK` pour désinstaller l'ancienne version `Annuler` pour annuler cet upgrade." + LangString Elements ${LANG_FRENCH} "Eléments" LangString Electric ${LANG_FRENCH} "Electrique" LangString Logic ${LANG_FRENCH} "Logique" LangString Hydraulic ${LANG_FRENCH} "Hydraulique" @@ -13,7 +13,8 @@ LangString Titleblocks ${LANG_FRENCH} "Cartouches" LangString Examples ${LANG_FRENCH} "Exemples" LangString Check ${LANG_FRENCH} "Cocher pour lancer ${SOFT_NAME}" - LangString var1 ${LANG_FRENCH} "Elments de la collection officielle" + LangString var1 ${LANG_FRENCH} "Eléments de la collection officielle" LangString var2 ${LANG_FRENCH} "Fichiers de langues" LangString var3 ${LANG_FRENCH} "Exemples de cartouches" - LangString var4 ${LANG_FRENCH} "Exemples de schmas" + LangString var4 ${LANG_FRENCH} "Exemples de schémas" + LangString uninstFailed ${LANG_FRENCH} "La désinstallation de la version précédente a échoué.$\nVeuillez désinstaller ${SOFT_NAME} manuellement avant de continuer."