FreeCAD WebAssembly development snapshot
Some checks failed
FreeCAD master CI / Prepare (push) Has been cancelled
FreeCAD master CI / Pixi (push) Has been cancelled
FreeCAD master CI / Ubuntu (push) Has been cancelled
FreeCAD master CI / Windows (push) Has been cancelled
FreeCAD master CI / Lint (push) Has been cancelled
FreeCAD master CI / WrapUp (push) Has been cancelled
CodeQL Advanced / Analyze (actions) (push) Has been cancelled
CodeQL Advanced / Analyze (python) (push) Has been cancelled
Scorecard supply-chain security / Scorecard analysis (push) Has been cancelled
Stale Issues / stale (push) Has been cancelled
Some checks failed
FreeCAD master CI / Prepare (push) Has been cancelled
FreeCAD master CI / Pixi (push) Has been cancelled
FreeCAD master CI / Ubuntu (push) Has been cancelled
FreeCAD master CI / Windows (push) Has been cancelled
FreeCAD master CI / Lint (push) Has been cancelled
FreeCAD master CI / WrapUp (push) Has been cancelled
CodeQL Advanced / Analyze (actions) (push) Has been cancelled
CodeQL Advanced / Analyze (python) (push) Has been cancelled
Scorecard supply-chain security / Scorecard analysis (push) Has been cancelled
Stale Issues / stale (push) Has been cancelled
This commit is contained in:
99
package/WindowsInstaller/setup/uninstall.nsh
Normal file
99
package/WindowsInstaller/setup/uninstall.nsh
Normal file
@@ -0,0 +1,99 @@
|
||||
/*
|
||||
|
||||
uninstall.nsh
|
||||
|
||||
Uninstall
|
||||
|
||||
*/
|
||||
|
||||
Var FileAssociation
|
||||
|
||||
# ----------------------------------
|
||||
|
||||
Section "un.FreeCAD" un.SecUnProgramFiles
|
||||
|
||||
SectionIn RO
|
||||
|
||||
# delete start menu folder
|
||||
ReadRegStr $0 SHCTX "${APP_UNINST_KEY}" "StartMenu"
|
||||
RMDir /r "$0"
|
||||
# delete desktop icon
|
||||
Delete "$DESKTOP\${APP_NAME} ${APP_SERIES_NAME}.lnk"
|
||||
|
||||
# remove file extension .FCStd
|
||||
ReadRegStr $R0 SHCTX "Software\Classes\${APP_EXT}" ""
|
||||
${if} $R0 == "${APP_REGNAME_DOC}"
|
||||
DeleteRegKey SHCTX "Software\Classes\${APP_EXT}"
|
||||
${endif}
|
||||
DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\${APP_EXT}"
|
||||
|
||||
# remove further FC-specific file extension
|
||||
DeleteRegKey SHCTX "Software\Classes\${APP_EXT1}" # .FCStd1
|
||||
DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\${APP_EXT1}"
|
||||
DeleteRegKey SHCTX "Software\Classes\${APP_EXT_BAK}" # .FCBak
|
||||
DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\${APP_EXT_BAK}"
|
||||
DeleteRegKey SHCTX "Software\Classes\${APP_EXT_MACRO}" # .FCMacro
|
||||
DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\${APP_EXT_MACRO}"
|
||||
DeleteRegKey SHCTX "Software\Classes\${APP_EXT_MAT}" # .FCMat
|
||||
DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\${APP_EXT_MAT}"
|
||||
DeleteRegKey SHCTX "Software\Classes\${APP_EXT_SCRIPT}" # .FCScript
|
||||
DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\${APP_EXT_SCRIPT}"
|
||||
|
||||
${if} $MultiUser.Privileges == "Admin"
|
||||
DeleteRegKey HKCR "${APP_REGNAME_DOC}"
|
||||
# see https://nsis.sourceforge.io/Docs/AppendixB.html#library_install for a description of UnInstallLib
|
||||
!insertmacro UnInstallLib REGDLL NOTSHARED NOREBOOT_NOTPROTECTED $SYSDIR\FCStdThumbnail.dll
|
||||
${endif}
|
||||
|
||||
# Uninstaller itself
|
||||
Delete "$INSTDIR\${SETUP_UNINSTALLER}"
|
||||
|
||||
# Application folder
|
||||
SetOutPath "$TEMP"
|
||||
RMDir /r "$INSTDIR"
|
||||
|
||||
# Registry keys and values
|
||||
DeleteRegKey SHCTX "${APP_REGKEY_SETUP}"
|
||||
DeleteRegKey SHCTX "${APP_REGKEY}"
|
||||
DeleteRegKey SHCTX "${APP_UNINST_KEY}"
|
||||
DeleteRegKey HKCR "Applications\${BIN_FREECAD}"
|
||||
DeleteRegValue HKCR "${APP_NAME}.Document\Shell\open\command" ""
|
||||
DeleteRegValue HKCR "${APP_NAME}.Document\DefaultIcon" ""
|
||||
|
||||
# File associations
|
||||
ReadRegStr $FileAssociation SHELL_CONTEXT "Software\Classes\${APP_EXT}" ""
|
||||
|
||||
${If} $FileAssociation == "${APP_REGNAME_DOC}"
|
||||
DeleteRegKey SHELL_CONTEXT "Software\Classes\${APP_EXT}"
|
||||
${EndIf}
|
||||
|
||||
# clean other registry entry
|
||||
DeleteRegKey SHCTX "SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\${APP_NAME}.exe"
|
||||
|
||||
# Eventually refresh shell icons
|
||||
${RefreshShellIcons}
|
||||
|
||||
SectionEnd
|
||||
|
||||
#---------------------------------
|
||||
# user preferences
|
||||
Section /o "un.$(UnFreeCADPreferencesTitle)" un.SecUnPreferences
|
||||
|
||||
# issue a warning dialog
|
||||
MessageBox MB_YESNO|MB_DEFBUTTON2|MB_ICONEXCLAMATION $(DialogUnPreferences) /SD IDYES IDYES +2 # continue if yes
|
||||
Goto NotPreferences
|
||||
# remove FreeCAD's config files
|
||||
StrCpy $AppSubfolder ${APP_DIR_USERDATA}
|
||||
Call un.DelAppPathSub # function from Utils.nsh
|
||||
# remove the registry key that stores the main window parameters
|
||||
DeleteRegKey HKCU "SOFTWARE\${APP_NAME}"
|
||||
NotPreferences:
|
||||
|
||||
SectionEnd
|
||||
|
||||
#---------------------------------
|
||||
# Section descriptions
|
||||
!insertmacro MUI_UNFUNCTION_DESCRIPTION_BEGIN
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${un.SecUnPreferences} "$(SecUnPreferencesDescription)"
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${un.SecUnProgramFiles} "$(SecUnProgramFilesDescription)"
|
||||
!insertmacro MUI_UNFUNCTION_DESCRIPTION_END
|
||||
Reference in New Issue
Block a user