Add a link to the finish page, allow running gpa after the installer,
authorWerner Koch <wk@gnupg.org>
Tue, 8 Nov 2005 12:18:10 +0000 (12:18 +0000)
committerWerner Koch <wk@gnupg.org>
Tue, 8 Nov 2005 12:18:10 +0000 (12:18 +0000)
properly cleanup the start menu, display toolstips for all start menu items, better descriptions for the selection dialog and fixed the too big title on the first page.

13 files changed:
ChangeLog
TODO
src/gpg4win-src.nsi
src/gpg4win.nsi
src/inst-gnupg.nsi
src/inst-gpa.nsi
src/inst-gpgee.nsi
src/inst-man_advanced_de.nsi
src/inst-man_novice_de.nsi
src/inst-sections.nsi
src/inst-winpt.nsi
src/installer-finish.nsi
src/installer.nsi

index 0add5e4..a059cba 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2005-11-08  Werner Koch  <wk@g10code.com>
+
+       * src/installer.nsi (T_WelcomeTitle): New.
+       (MUI_WELCOMEPAGE_TITLE): New.
+       (MUI_FINISHPAGE): Enhanced.
+
+       * src/installer-finish.nsi (Uninstall): use a loop to delete the
+       startmenu.  Fixed Registry cleaning.
+
+       * src/inst-sections.nsi (onInit): Make sure that only one
+       installer is running.
+
 2005-11-07  Werner Koch  <wk@g10code.com>
 
        * src/installer-finish.nsi: Fixed dereferencing of variable.
diff --git a/TODO b/TODO
index 918547b..0cd64a5 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,15 +1,19 @@
                                                           -*- outline -*-
 
 * Missing stuff
-** No sources yet for WinPT due to current changes in its build system
 ** WinPT signature file should better be named .sig
+** System.dll is unsuable under DLL.
+    We should write a custom Plugin DLL for gpg4win to collect
+    function we need. This can also do the check for existing versions
+    of GnuPG etc.  And maybe to display a jpeg splash screen and to
+    play continuesly an ogg encoded tune.
+
 
 * Component related issues:
 ** Check out which locale files to install and where. !!!
 ** Check which iconv to use !!
 ** Finish integration of GnuPG.
-** Add the missing packages: gpgee, Sylpheed, WinPT, Eudore extensions.
-** gpgol needs to be registered. !!!
+** Add the missing packages: Sylpheed Eudore extensions.
 
 * The following items are related to package auto-detection and
    configuration.  They are not critical.
index cef8dbc..92b9328 100644 (file)
 
 !define INSTALL_DIR "GnuPG\Source"
 
+!define WELCOME_TITLE_ENGLISH \
+ "Welcome to the installation of the Gpg4Win sources"
+!define WELCOME_TITLE_GERMAN \
+ "Willkommen bei der Installation der Gpg4Win Quellen"
+
 !define ABOUT_ENGLISH \
  "GnuPG is GNU's tool for secure communication and data storage. \
   It can be used to encrypt data and to create digital signatures. \
index 57d0d88..5346801 100644 (file)
 
 !define INSTALL_DIR "GnuPG"
 
+!define WELCOME_TITLE_ENGLISH \
+ "Welcome to the installation of Gpg4Win"
+
+!define WELCOME_TITLE_GERMAN \
+ "Willkommen bei der Installation von Gpg4Win"
+
 !define ABOUT_ENGLISH \
  "GnuPG is GNU's tool for secure communication and data storage. \
   It can be used to encrypt data and to create digital signatures. \
index e2b6766..6d9e050 100644 (file)
@@ -59,3 +59,9 @@ LangString DESC_SEC_gnupg ${LANG_GERMAN} \
    "Der GNU Privacy Guard (GnuPG) ist der Kernbestandteil \
     dieser Software.  GnuPG stellt die eigentlichen \
     Verschlüsselungsfunktionen sowie die Schlüsselverwaltung bereit."
+
+LangString DESC_Menu_gnupg_faq ${LANG_ENGLISH} \
+   "Show the Frequently Asked Questions Document for GnuPG"
+LangString DESC_Menu_gnupg_faq ${LANG_GERMAN} \
+   "Das Dokument mit den häufig gestellten Fragen (FAQ) zu GnuPG anzeigen"
+
index ea1b7d9..4b9032d 100644 (file)
@@ -43,4 +43,14 @@ SectionEnd
 LangString DESC_SEC_gpa ${LANG_ENGLISH} \
    "GNU Privacy Assistant"
 LangString DESC_SEC_gpa ${LANG_GERMAN} \
-   "GNU Privacy Assistent"
+   "GNU Privacy Assistent (GPA) ist ein Schlüsselverwaltungsprogramm \
+    welches für mehrere Betriebsysteme verfügbar ist.  Es kann zusammen \
+    oder anstatt von WinPT benutzt werden."
+
+
+LangString DESC_Menu_gpa ${LANG_ENGLISH} \
+   "Run the GNU Privacy Assistant key management tool. \
+    This is an alternative to the WinPT key management tool."
+LangString DESC_Menu_gpa ${LANG_GERMAN} \
+   "Das Schlüsselverwaltungsprogramm GNU Privacy Assistent aufrufen. \
+    Dies ist eine Alternative zu dem WinPT Programm."
index b46cd2e..d410dcf 100644 (file)
@@ -51,7 +51,7 @@ LangString DESC_SEC_gpgee ${LANG_GERMAN} \
     verschlüsseln."
 
 LangString DESC_Menu_gpgee_hlp ${LANG_ENGLISH} \
-   "Show the online manula of GPGee"
-LangString DESC_Menu_gpgee_hlp ${LANG_German} \
+   "Show the online manual of GPGee"
+LangString DESC_Menu_gpgee_hlp ${LANG_GERMAN} \
    "Das englische Handbuch zu GPGee anzeigen"
 
index 081b0f4..2258c55 100644 (file)
@@ -40,3 +40,9 @@ LangString DESC_SEC_man_advanced_de ${LANG_ENGLISH} \
    "Gpg4Win Manual for the Advanced User (German)"
 LangString DESC_SEC_man_advanced_de ${LANG_GERMAN} \
    "Gpg4Win Handbuch für den Durchblicker"
+
+
+LangString DESC_Menu_man_advanced_de ${LANG_ENGLISH} \
+   "Show the German online manual of Gpg4Win for advanced users"
+LangString DESC_Menu_man_advanced_de ${LANG_GERMAN} \
+   "Das Online-Handbuch von Gpg4Win für den Durchblicker anzeigen"
index fc138d8..65a2601 100644 (file)
@@ -40,3 +40,8 @@ LangString DESC_SEC_man_novice_de ${LANG_ENGLISH} \
    "Gpg4Win Manual for the Novice User (German)"
 LangString DESC_SEC_man_novice_de ${LANG_GERMAN} \
    "Gpg4Win Handbuch für den Einsteiger"
+
+LangString DESC_Menu_man_novice_de ${LANG_ENGLISH} \
+   "Show the German online manual of Gpg4Win for novice users"
+LangString DESC_Menu_man_novice_de ${LANG_GERMAN} \
+   "Das Online-Handbuch von Gpg4Win für den Einsteiger anzeigen"
index 7e681fd..a041042 100644 (file)
@@ -285,7 +285,20 @@ Function CalcDepends
 
 FunctionEnd
 
+#LangString T_AlreadyRunning ${LANG_ENGLISH} \
+#   "An instance of this installer is already running."
+#LangString T_AlreadyRunning ${LANG_GERMAN} \
+#   "Ein Exemplar dieses Installers läuft bereits."
+
 Function .onInit
+  # Debian's NSIS package comes without System.dll because it can't be
+  # compiled with mingw.  Thus we can't use the code below.
+  #System::Call 'kernel32::CreateMutexA(i 0, i 0, t "gpg4win") i .r1 ?e'
+  #Pop $R0
+  #StrCmp $R0 0 +3
+  #  MessageBox MB_OK $(T_AlreadyRunning)
+  #  Abort
+
   SetOutPath $TEMP
   File /oname=gpgspltmp.bmp "${TOP_SRCDIR}/src/gpg4win-splash.bmp"
   File /oname=gpgspltmp.wav "${TOP_SRCDIR}/src/gpg4win-splash.wav"
@@ -349,7 +362,8 @@ Section "-startmenu"
     IntOp $R0 $R0 & ${SF_SELECTED} 
     IntCmp $R0 ${SF_SELECTED} 0 no_winpt_menu 
     CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\WINPT.lnk" \
-       "$INSTDIR\winpt.exe"
+       "$INSTDIR\winpt.exe" \
+        "" "$INSTDIR\winpt.exe" "" SW_SHOWNORMAL "" $(DESC_Menu_winpt)
    no_winpt_menu:
 !endif
 
@@ -358,7 +372,8 @@ Section "-startmenu"
     IntOp $R0 $R0 & ${SF_SELECTED} 
     IntCmp $R0 ${SF_SELECTED} 0 no_gpa_menu 
     CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\GPA.lnk" \
-       "$INSTDIR\gpa.exe"
+       "$INSTDIR\gpa.exe" \
+        "" "" "" SW_SHOWNORMAL "" $(DESC_Menu_gpa)
   no_gpa_menu:
 !endif
 
@@ -367,7 +382,8 @@ Section "-startmenu"
     IntOp $R0 $R0 & ${SF_SELECTED} 
     IntCmp $R0 ${SF_SELECTED} 0 no_man_novice_de_menu 
     CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Novice Manual.lnk" \
-       "$INSTDIR\share\gpg4win\man_novice_de.html"
+       "$INSTDIR\share\gpg4win\man_novice_de.html" \
+        "" "" "" SW_SHOWNORMAL "" $(DESC_Menu_man_novice_de)
   no_man_novice_de_menu:
 !endif
 
@@ -376,7 +392,8 @@ Section "-startmenu"
     IntOp $R0 $R0 & ${SF_SELECTED} 
     IntCmp $R0 ${SF_SELECTED} 0 no_man_advanced_de_menu 
     CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Advanced Manual.lnk" \
-       "$INSTDIR\share\gpg4win\man_novice_de.html"
+       "$INSTDIR\share\gpg4win\man_novice_de.html" \
+        "" "" "" SW_SHOWNORMAL "" $(DESC_Menu_man_advanced_de)
   no_man_advanced_de_menu:
 !endif
 
@@ -391,7 +408,8 @@ Section "-startmenu"
 
 
     CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\GnuPG FAQ.lnk" \
-                   "$INSTDIR\share\gnupg\faq.html"
+                   "$INSTDIR\share\gnupg\faq.html" \
+                   "" "" "" SW_SHOWNORMAL "" $(DESC_Menu_gnupg_faq)
 
     CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Uninstall.lnk" \
        "$INSTDIR\${PACKAGE}-uninstall.exe"
index 0eee890..0ab9bd1 100644 (file)
@@ -44,4 +44,14 @@ SectionEnd
 LangString DESC_SEC_winpt ${LANG_ENGLISH} \
    "Windows Privacy Tray"
 LangString DESC_SEC_winpt ${LANG_GERMAN} \
-   "Windows Privacy Tray"
+   "Windows Privacy Tray (WinPT) ist ein vielseitiges Programm zur \
+   Schlüsselverwaltung sowie aller anderen Funktionen von GnuPG.  Es \
+   installiert sich in die Startleiste."
+
+LangString DESC_Menu_winpt ${LANG_ENGLISH} \
+   "Run the Windows Privacy Tray key management tool. \
+    This is a versatile key management and encryption tool."
+LangString DESC_Menu_winpt ${LANG_GERMAN} \
+   "Das Schlüsselverwaltungsprogramm Windows Privacy Tray aufrufen. \
+    Dies ist ein vielseitiges Programm zur Schlüsselverwaltung und \
+    Verschlüsselung.  Es installiert sich in die Startleiste."
index e8d5acb..44ade1f 100644 (file)
@@ -46,26 +46,20 @@ Section Uninstall
   # we printed a warning that installation will not succeed.
   SetShellVarContext all
 
-!insertmacro MUI_STARTMENU_GETFOLDER ${STARTMENU_FOLDER} $R0
-!ifdef HAVE_PKG_WINPT
-  Delete "$SMPROGRAMS\$R0\WinPT.lnk"
-!endif
-!ifdef HAVE_PKG_GPA
-  Delete "$SMPROGRAMS\$R0\GPA.lnk"
-!endif
-!ifdef HAVE_PKG_MAN_NOVICE_DE
-  Delete "$SMPROGRAMS\$R0\Novice Manual.lnk"
-!endif
-!ifdef HAVE_PKG_MAN_ADVANCED_DE
-  Delete "$SMPROGRAMS\$R0\Advanced Manual.lnk"
-!endif
-!ifdef HAVE_PKG_GPGEE
-  Delete "$SMPROGRAMS\$R0\GPGee Manual.lnk"
-!endif
-
+  #---------------------------------------------------
+  # Delete the menu entries and any empty parent menus
+  #---------------------------------------------------
+  !insertmacro MUI_STARTMENU_GETFOLDER Application $MYTMP
+  Delete "$SMPROGRAMS\$MYTMP\*.lnk"
+  StrCpy $MYTMP "$SMPROGRAMS\$MYTMP"
+  startMenuDeleteLoop:
+    ClearErrors
+    RMDir $MYTMP
+    GetFullPathName $MYTMP "$MYTMP\.."
+    IfErrors startMenuDeleteLoopDone
+    StrCmp $MYTMP $SMPROGRAMS startMenuDeleteLoopDone startMenuDeleteLoop
+  startMenuDeleteLoopDone:
 
-  Delete "$SMPROGRAMS\$R0\Uninstall.lnk"
-  RMDir "$SMPROGRAMS\$R0"
   DeleteRegValue HKLM "Software\GNU\${PRETTY_PACKAGE_SHORT}" \
         "Start Menu Folder"
 !endif
@@ -78,5 +72,5 @@ Section Uninstall
         "Install Directory"
   DeleteRegKey /ifempty HKLM "Software\GNU\${PRETTY_PACKAGE_SHORT}" \
   # Remove Windows Add/Remove Programs support.
-  DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\GnuPG"
+  DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRETTY_PACKAGE_SHORT}"
 SectionEnd
index efe121d..9f2ed19 100644 (file)
@@ -96,7 +96,8 @@ VIAddVersionKey "FileVersion" "${PROD_VERSION}"
 
 # The list of wizard pages.
 
-!define MUI_WELCOMEPAGE_TEXT "$(T_About)"
+!define MUI_WELCOMEPAGE_TITLE "$(T_WelcomeTitle)"
+!define MUI_WELCOMEPAGE_TEXT  "$(T_About)"
 !insertmacro MUI_PAGE_WELCOME
 
 !define MUI_LICENSEPAGE_BUTTON "$(^NextBtn)"
@@ -118,6 +119,12 @@ Var STARTMENU_FOLDER
 
 !insertmacro MUI_PAGE_INSTFILES
 
+!define MUI_FINISHPAGE_RUN "$INSTDIR\gpa.exe"
+!define MUI_FINISHPAGE_RUN_PARAMETERS "--keyring"
+!define MUI_FINISHPAGE_RUN_TEXT "$(T_RunKeyManager)"
+!define MUI_FINISHPAGE_RUN_NOTCHECKED
+!define MUI_FINISHPAGE_LINK "$(T_MoreInfo)"
+!define MUI_FINISHPAGE_LINK_LOCATION http://www.gpg4win.org
 !insertmacro MUI_PAGE_FINISH
 
 
@@ -144,12 +151,17 @@ Var STARTMENU_FOLDER
 !insertmacro MUI_RESERVEFILE_LANGDLL
 !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
 ReserveFile "${NSISDIR}\Plugins\advsplash.dll"
+#ReserveFile "${NSISDIR}\Plugins\System.dll"
 ReserveFile "${TOP_SRCDIR}\src\gpg4win-splash.bmp"
 ReserveFile "${TOP_SRCDIR}\src\gpg4win-splash.wav"
 ReserveFile "${TOP_SRCDIR}\COPYING"
 
 # Language support
 
+# The WelcomeTitle is displayed on the first page.
+LangString T_WelcomeTitle ${LANG_ENGLISH} "${WELCOME_TITLE_ENGLISH}"
+LangString T_WelcomeTitle ${LANG_GERMAN} "${WELCOME_TITLE_GERMAN}"
+
 # The About string as displayed on the first page.
 LangString T_About ${LANG_ENGLISH} "${ABOUT_ENGLISH}"
 LangString T_About ${LANG_GERMAN} "${ABOUT_GERMAN}"
@@ -173,6 +185,16 @@ LangString T_GPLShort ${LANG_GERMAN} \
    einzusetzen.  Sie können die Software weitergeben, sofern Sie dem \
    Empfänger dieselben Rechte einräumen, die auch Sie erhalten haben."
 
+LangString T_RunKeyManager ${LANG_ENGLISH} \
+   "Run the key manager"
+LangString T_RunKeyManager ${LANG_GERMAN} \
+   "Die Schlüsselverwaltung aufrufen"
+
+LangString T_MoreInfo ${LANG_ENGLISH} \
+   "Click here for the project's homepage"
+LangString T_MoreInfo ${LANG_GERMAN} \
+   "Hier klicken um zur Homepage des Projekts zu gelangen"
+
 
 # Functions