]> git.sesse.net Git - vlc/commitdiff
* add "remove prefs and cache" option in installer and uninstaller
authorAntoine Cellerier <dionoea@videolan.org>
Sun, 7 Aug 2005 02:59:04 +0000 (02:59 +0000)
committerAntoine Cellerier <dionoea@videolan.org>
Sun, 7 Aug 2005 02:59:04 +0000 (02:59 +0000)
vlc.win32.nsi

index 22e502552dd8d674497c08e5fe19938c03c262ac..71f8fd90f4527cb708747aadfad96f6fa547ac5b 100644 (file)
@@ -39,38 +39,41 @@ InstType "Full"
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\r
 \r
 ; MUI 1.67 compatible ------\r
-!include "MUI.nsh"\r
+  !include "MUI.nsh"\r
 \r
 ; MUI Settings\r
-!define MUI_ABORTWARNING\r
-!define MUI_ICON "vlc48x48new.ico"\r
-!define MUI_UNICON "vlc48x48new.ico"\r
-!define MUI_COMPONENTSPAGE_SMALLDESC\r
-\r
-; Welcome page\r
-!define MUI_WELCOMEPAGE_TITLE_3LINES\r
-!insertmacro MUI_PAGE_WELCOME\r
-; License page\r
-!insertmacro MUI_PAGE_LICENSE "COPYING.txt"\r
-; Components page\r
-!insertmacro MUI_PAGE_COMPONENTS\r
-; Directory page\r
-!insertmacro MUI_PAGE_DIRECTORY\r
-; Instfiles page\r
-!insertmacro MUI_PAGE_INSTFILES\r
-; Finish page\r
-!define MUI_FINISHPAGE_RUN "$INSTDIR\vlc.exe"\r
-!define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\NEWS.txt"\r
-!define MUI_FINISHPAGE_SHOWREADME_TEXT "View changelog"\r
-!define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED\r
-!define MUI_FINISHPAGE_LINK "Visit the VideoLAN VLC media player Website"\r
-!define MUI_FINISHPAGE_LINK_LOCATION "http://www.videolan.org/vlc/"\r
-!define MUI_FINISHPAGE_NOREBOOTSUPPORT\r
-!insertmacro MUI_PAGE_FINISH\r
+  !define MUI_ABORTWARNING\r
+  !define MUI_ICON "vlc48x48new.ico"\r
+  !define MUI_UNICON "vlc48x48new.ico"\r
+  !define MUI_COMPONENTSPAGE_SMALLDESC\r
+\r
+; Installer pages\r
+  ; Welcome page\r
+    !define MUI_WELCOMEPAGE_TITLE_3LINES\r
+    !insertmacro MUI_PAGE_WELCOME\r
+  ; License page\r
+    !insertmacro MUI_PAGE_LICENSE "COPYING.txt"\r
+  ; Components page\r
+    !insertmacro MUI_PAGE_COMPONENTS\r
+  ; Directory page\r
+    !insertmacro MUI_PAGE_DIRECTORY\r
+  ; Instfiles page\r
+    !insertmacro MUI_PAGE_INSTFILES\r
+  ; Finish page\r
+    !define MUI_FINISHPAGE_RUN "$INSTDIR\vlc.exe"\r
+    !define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\NEWS.txt"\r
+    !define MUI_FINISHPAGE_SHOWREADME_TEXT "View changelog"\r
+    !define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED\r
+    !define MUI_FINISHPAGE_LINK "Visit the VideoLAN VLC media player Website"\r
+    !define MUI_FINISHPAGE_LINK_LOCATION "http://www.videolan.org/vlc/"\r
+    !define MUI_FINISHPAGE_NOREBOOTSUPPORT\r
+    !insertmacro MUI_PAGE_FINISH\r
 \r
 ; Uninstaller pages\r
-!insertmacro MUI_UNPAGE_CONFIRM\r
-!insertmacro MUI_UNPAGE_INSTFILES\r
+    !insertmacro MUI_UNPAGE_CONFIRM\r
+    !insertmacro MUI_UNPAGE_COMPONENTS\r
+    !insertmacro MUI_UNPAGE_INSTFILES\r
+    !insertmacro MUI_UNPAGE_FINISH\r
 \r
 ; Language files\r
   !insertmacro MUI_LANGUAGE "English" # first language is the default language\r
@@ -95,13 +98,14 @@ InstType "Full"
 !insertmacro MUI_RESERVEFILE_LANGDLL\r
 \r
 ; Reserve files\r
-!insertmacro MUI_RESERVEFILE_INSTALLOPTIONS\r
+  !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS\r
 \r
 ; MUI end ------\r
 \r
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;\r
-; Push extensions on stack ;\r
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;\r
+;;;;;;;;;;;;;;;;;;;\r
+; Extension lists ;\r
+;;;;;;;;;;;;;;;;;;;\r
+\r
 !macro MacroAudioExtensions _action\r
   !insertmacro ${_action} ".a52"\r
   !insertmacro ${_action} ".aac"\r
@@ -227,6 +231,30 @@ FunctionEnd
   DeleteRegKey HKCR ${EXT}\shell\AddToPlaylistVLC\r
 !macroend\r
 \r
+;;;;;;;;;;;;;;;;;;;;;;;;;;\r
+; Delete prefs and cache ;\r
+;;;;;;;;;;;;;;;;;;;;;;;;;;\r
+\r
+!macro delprefs\r
+  SectionIn 2 3\r
+  StrCpy $0 0\r
+  !define Index 'Line${__LINE__}'\r
+  "${Index}-Loop:"\r
+  ; FIXME\r
+  ; this will loop through all the logged users and "virtual" windows users\r
+  ; (it looks like users are only present in HKEY_USERS when they are logged in)\r
+    ClearErrors\r
+    EnumRegKey $1 HKU "" $0\r
+    StrCmp $1 "" "${Index}-End"\r
+    IntOp $0 $0 + 1\r
+    ReadRegStr $2 HKU "$1\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" AppData\r
+    StrCmp $2 "" "${Index}-Loop"\r
+    RMDir /r "$2\vlc"\r
+    Goto "${Index}-Loop"\r
+  "${Index}-End:"\r
+  !undef Index\r
+!macroend\r
+\r
 ;;;;;;;;;;;;;;;;;;;;;;\r
 ; Installer sections ;\r
 ;;;;;;;;;;;;;;;;;;;;;;\r
@@ -372,27 +400,11 @@ SectionGroup "File type associations" SEC06
   SectionGroupEnd\r
 SectionGroupEnd\r
 \r
-Section -Post\r
-  WriteUninstaller "$INSTDIR\uninstall.exe"\r
-  WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "InstallDir" $INSTDIR\r
-  WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "Version" "${VERSION}"\r
-  WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\vlc.exe"\r
-\r
-  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \\r
-    "DisplayName" "$(^Name)"\r
-  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \\r
-    "UninstallString" "$INSTDIR\uninstall.exe"\r
-  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \\r
-    "DisplayIcon" "$INSTDIR\vlc.exe"\r
-  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \\r
-    "DisplayVersion" "${PRODUCT_VERSION}"\r
-  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \\r
-    "URLInfoAbout" "${PRODUCT_WEB_SITE}"\r
-  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \\r
-    "Publisher" "${PRODUCT_PUBLISHER}"\r
+Section /o "Delete preferences and cache" SEC07\r
+  !insertmacro delprefs\r
 SectionEnd\r
 \r
-; Section descriptions\r
+; Installer section descriptions\r
 !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN\r
   !insertmacro MUI_DESCRIPTION_TEXT ${SEC01} \\r
     "The media player itself"\r
@@ -406,6 +418,8 @@ SectionEnd
     "Add context menu items ('Play With VLC' and 'Add To VLC's Playlist')"\r
   !insertmacro MUI_DESCRIPTION_TEXT ${SEC06} \\r
     "Sets VLC media player as the default application for the specified file type"\r
+  !insertmacro MUI_DESCRIPTION_TEXT ${SEC07} \\r
+    "Deletes VLC media player preferences and cache files leftover from previous installations"\r
 !insertmacro MUI_FUNCTION_DESCRIPTION_END\r
 \r
 Function .onInit\r
@@ -426,17 +440,32 @@ Function .onInit
   !insertmacro MUI_LANGDLL_DISPLAY\r
 FunctionEnd\r
 \r
-Function un.onUninstSuccess\r
-  HideWindow\r
-  MessageBox MB_ICONINFORMATION|MB_OK \\r
-    "$(^Name) was successfully removed from your computer."\r
-FunctionEnd\r
+Section -Post\r
+  WriteUninstaller "$INSTDIR\uninstall.exe"\r
+  WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "InstallDir" $INSTDIR\r
+  WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "Version" "${VERSION}"\r
+  WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\vlc.exe"\r
 \r
-Function un.onInit\r
-  !insertmacro MUI_LANGDLL_DISPLAY\r
-FunctionEnd\r
+  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \\r
+    "DisplayName" "$(^Name)"\r
+  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \\r
+    "UninstallString" "$INSTDIR\uninstall.exe"\r
+  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \\r
+    "DisplayIcon" "$INSTDIR\vlc.exe"\r
+  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \\r
+    "DisplayVersion" "${PRODUCT_VERSION}"\r
+  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \\r
+    "URLInfoAbout" "${PRODUCT_WEB_SITE}"\r
+  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \\r
+    "Publisher" "${PRODUCT_PUBLISHER}"\r
+SectionEnd\r
 \r
-Section Uninstall\r
+;;;;;;;;;;;;;;;;;;;;;;;;\r
+; Uninstaller sections ;\r
+;;;;;;;;;;;;;;;;;;;;;;;;\r
+\r
+Section "Uninstall" SEC91\r
+  SectionIn 1 2 3 RO\r
   SetShellVarContext all\r
 \r
   !insertmacro MacroAllExtensions DeleteContextMenu\r
@@ -496,3 +525,25 @@ Section Uninstall
   DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"\r
   SetAutoClose true\r
 SectionEnd\r
+\r
+Section /o "un.Delete preferences and cache" SEC92\r
+  !insertmacro delprefs\r
+SectionEnd\r
+\r
+; Uninstaller section descriptions\r
+!insertmacro MUI_UNFUNCTION_DESCRIPTION_BEGIN\r
+  !insertmacro MUI_DESCRIPTION_TEXT ${SEC91} \\r
+    "Uninstall VLC media player and all its components"\r
+  !insertmacro MUI_DESCRIPTION_TEXT ${SEC92} \\r
+    "Deletes VLC media player preferences and cache files"\r
+!insertmacro MUI_UNFUNCTION_DESCRIPTION_END\r
+\r
+;Function un.onUninstSuccess\r
+;  HideWindow\r
+;  MessageBox MB_ICONINFORMATION|MB_OK \\r
+;    "$(^Name) was successfully removed from your computer."\r
+;FunctionEnd\r
+\r
+Function un.onInit\r
+  !insertmacro MUI_LANGDLL_DISPLAY\r
+FunctionEnd\r