From f497a30629320ea8f2a3ac292bbf5b1b0a8b39a2 Mon Sep 17 00:00:00 2001 From: matzman666 Date: Wed, 11 Jan 2017 02:06:20 +0100 Subject: [PATCH] Improved and fixed installer. No more indiscriminately deleting files. --- installer.nsi => installer/installer.nsi | 66 +++- installer/listUninstallFiles.sh | 27 ++ installer/uninstallFiles.list | 467 +++++++++++++++++++++++ 3 files changed, 546 insertions(+), 14 deletions(-) rename installer.nsi => installer/installer.nsi (64%) create mode 100644 installer/listUninstallFiles.sh create mode 100644 installer/uninstallFiles.list diff --git a/installer.nsi b/installer/installer.nsi similarity index 64% rename from installer.nsi rename to installer/installer.nsi index a270ec2..b2ade6f 100644 --- a/installer.nsi +++ b/installer/installer.nsi @@ -6,7 +6,7 @@ ;-------------------------------- ;General - !define BASEDIR "bin\win64" + !define BASEDIR "..\bin\win64" ;Name and file Name "OpenVR Advanced Settings" @@ -20,6 +20,11 @@ ;Request application privileges for Windows Vista RequestExecutionLevel admin + +;-------------------------------- +;Variables + +VAR upgradeInstallation ;-------------------------------- ;Interface Settings @@ -29,7 +34,8 @@ ;-------------------------------- ;Pages - !insertmacro MUI_PAGE_LICENSE "LICENSE" + !insertmacro MUI_PAGE_LICENSE "..\LICENSE" + !define MUI_PAGE_CUSTOMFUNCTION_PRE dirPre !insertmacro MUI_PAGE_DIRECTORY !insertmacro MUI_PAGE_INSTFILES @@ -46,27 +52,56 @@ !macro TerminateOverlay DetailPrint "Terminating OpenVR Advanced Settings overlay..." - nsExec::ExecToLog '"taskkill" /F /IM AdvancedSettings.exe' + ExecWait '"taskkill" /F /IM AdvancedSettings.exe' Sleep 2000 ; give 2 seconds for the application to finish exiting !macroend ;-------------------------------- +;Functions +Function dirPre + StrCmp $upgradeInstallation "true" 0 +2 + Abort +FunctionEnd + +Function .onInit + StrCpy $upgradeInstallation "false" + + ReadRegStr $R0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenVRAdvancedSettings" "UninstallString" + StrCmp $R0 "" done + + MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION \ + "OpenVR Advanced Settings is already installed. $\n$\nClick `OK` to upgrade the \ + existing installation or `Cancel` to cancel this upgrade." \ + IDOK upgrade + Abort + + upgrade: + StrCpy $upgradeInstallation "true" + done: +FunctionEnd + +;-------------------------------- ;Installer Sections Section "Install" SecInstall - IfSilent install - !insertmacro TerminateOverlay - - install: + !insertmacro TerminateOverlay + + StrCmp $upgradeInstallation "true" 0 noupgrade + DetailPrint "Uninstall previous version..." + ExecWait '"$INSTDIR\Uninstall.exe" /S _?=$INSTDIR' + Delete $INSTDIR\Uninstall.exe + Goto afterupgrade + + noupgrade: + + afterupgrade: SetOutPath "$INSTDIR" - - RMDir /r "$INSTDIR\" ;ADD YOUR OWN FILES HERE... - File "LICENSE" + File "${BASEDIR}\LICENSE" File "${BASEDIR}\*.exe" File "${BASEDIR}\*.dll" File "${BASEDIR}\*.bat" @@ -82,7 +117,7 @@ Section "Install" SecInstall nsExec::ExecToLog '"$INSTDIR\AdvancedSettings.exe" -installmanifest' ;Store installation folder - WriteRegStr HKCU "Software\OpenVR-AdvancedSettings" "" $INSTDIR + WriteRegStr HKLM "Software\OpenVR-AdvancedSettings" "" $INSTDIR ;Create uninstaller WriteUninstaller "$INSTDIR\Uninstall.exe" @@ -92,7 +127,7 @@ Section "Install" SecInstall ; If SteamVR is already running, execute the dashboard as the user FindWindow $0 "Qt5QWindowIcon" "SteamVR Status" StrCmp $0 0 +2 - Exec '"$INSTDIR\AdvancedSettings.exe"' + Exec '"$INSTDIR\AdvancedSettings.exe"' SectionEnd @@ -106,10 +141,13 @@ Section "Uninstall" ; Remove the vrmanifest nsExec::ExecToLog '"$INSTDIR\AdvancedSettings.exe" -removemanifest' - RMDir /r "$INSTDIR" + ; Delete installed files + !include uninstallFiles.list - DeleteRegKey /ifempty HKCU "Software\OpenVR-AdvancedSettings" + DeleteRegKey HKLM "Software\OpenVR-AdvancedSettings" DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenVRAdvancedSettings" + + SectionEnd diff --git a/installer/listUninstallFiles.sh b/installer/listUninstallFiles.sh new file mode 100644 index 0000000..8c102e3 --- /dev/null +++ b/installer/listUninstallFiles.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +# Execute this script in the root folder of the install dir +# Dont't forget to set OUTPUTFILE to a path that is writeable + +OUTPUTFILE=../../installed_files.txt +INSTALLDIR=. + +# Get command line arguments +if [ $# -eq 1 ]; then + OUTPUTFILE=$1 +elif [ $# -gt 1 ]; then + OUTPUTFILE=$1 + INSTALLDIR=$2 +fi + +# Find all files +find "$INSTALLDIR" -iname '*' -type f -exec echo "Delete \$INSTDIR/{}" \; > $OUTPUTFILE + +# Find all directories and print them out in reverse order +find "$INSTALLDIR" -iname '*' -type d -exec echo "RMdir \$INSTDIR/{}" \; | tac.exe >> $OUTPUTFILE + +# Remove "/./" from the file paths +sed -i 's/\/\.//g' $OUTPUTFILE + +# Replace "/" with "\" +sed -i 's/\//\\/g' $OUTPUTFILE diff --git a/installer/uninstallFiles.list b/installer/uninstallFiles.list new file mode 100644 index 0000000..6ea3392 --- /dev/null +++ b/installer/uninstallFiles.list @@ -0,0 +1,467 @@ +Delete $INSTDIR\AdvancedSettings.exe +Delete $INSTDIR\libEGL.dll +Delete $INSTDIR\libGLESV2.dll +Delete $INSTDIR\LICENSE +Delete $INSTDIR\logging.conf +Delete $INSTDIR\manifest.vrmanifest +Delete $INSTDIR\openvr_api.dll +Delete $INSTDIR\qt.conf +Delete $INSTDIR\Qt5Core.dll +Delete $INSTDIR\Qt5Gui.dll +Delete $INSTDIR\Qt5Multimedia.dll +Delete $INSTDIR\Qt5MultimediaQuick_p.dll +Delete $INSTDIR\Qt5Network.dll +Delete $INSTDIR\Qt5Qml.dll +Delete $INSTDIR\Qt5Quick.dll +Delete $INSTDIR\Qt5QuickControls2.dll +Delete $INSTDIR\Qt5QuickTemplates2.dll +Delete $INSTDIR\Qt5Svg.dll +Delete $INSTDIR\Qt5Widgets.dll +Delete $INSTDIR\qtdata\Material\ApplicationWindow.qml +Delete $INSTDIR\qtdata\Material\BoxShadow.qml +Delete $INSTDIR\qtdata\Material\BusyIndicator.qml +Delete $INSTDIR\qtdata\Material\Button.qml +Delete $INSTDIR\qtdata\Material\CheckBox.qml +Delete $INSTDIR\qtdata\Material\CheckDelegate.qml +Delete $INSTDIR\qtdata\Material\CheckIndicator.qml +Delete $INSTDIR\qtdata\Material\ComboBox.qml +Delete $INSTDIR\qtdata\Material\Dial.qml +Delete $INSTDIR\qtdata\Material\Drawer.qml +Delete $INSTDIR\qtdata\Material\ElevationEffect.qml +Delete $INSTDIR\qtdata\Material\Frame.qml +Delete $INSTDIR\qtdata\Material\GroupBox.qml +Delete $INSTDIR\qtdata\Material\ItemDelegate.qml +Delete $INSTDIR\qtdata\Material\Label.qml +Delete $INSTDIR\qtdata\Material\Menu.qml +Delete $INSTDIR\qtdata\Material\MenuItem.qml +Delete $INSTDIR\qtdata\Material\Page.qml +Delete $INSTDIR\qtdata\Material\PageIndicator.qml +Delete $INSTDIR\qtdata\Material\Pane.qml +Delete $INSTDIR\qtdata\Material\plugins.qmltypes +Delete $INSTDIR\qtdata\Material\Popup.qml +Delete $INSTDIR\qtdata\Material\ProgressBar.qml +Delete $INSTDIR\qtdata\Material\qmldir +Delete $INSTDIR\qtdata\Material\qtquickcontrols2materialstyleplugin.dll +Delete $INSTDIR\qtdata\Material\RadioButton.qml +Delete $INSTDIR\qtdata\Material\RadioDelegate.qml +Delete $INSTDIR\qtdata\Material\RadioIndicator.qml +Delete $INSTDIR\qtdata\Material\RangeSlider.qml +Delete $INSTDIR\qtdata\Material\Ripple.qml +Delete $INSTDIR\qtdata\Material\ScrollBar.qml +Delete $INSTDIR\qtdata\Material\ScrollIndicator.qml +Delete $INSTDIR\qtdata\Material\Slider.qml +Delete $INSTDIR\qtdata\Material\SliderHandle.qml +Delete $INSTDIR\qtdata\Material\SpinBox.qml +Delete $INSTDIR\qtdata\Material\StackView.qml +Delete $INSTDIR\qtdata\Material\SwipeDelegate.qml +Delete $INSTDIR\qtdata\Material\SwipeView.qml +Delete $INSTDIR\qtdata\Material\Switch.qml +Delete $INSTDIR\qtdata\Material\SwitchDelegate.qml +Delete $INSTDIR\qtdata\Material\SwitchIndicator.qml +Delete $INSTDIR\qtdata\Material\TabBar.qml +Delete $INSTDIR\qtdata\Material\TabButton.qml +Delete $INSTDIR\qtdata\Material\TextArea.qml +Delete $INSTDIR\qtdata\Material\TextField.qml +Delete $INSTDIR\qtdata\Material\ToolBar.qml +Delete $INSTDIR\qtdata\Material\ToolButton.qml +Delete $INSTDIR\qtdata\Material\ToolTip.qml +Delete $INSTDIR\qtdata\Material\Tumbler.qml +Delete $INSTDIR\qtdata\plugins\audio\qtaudio_windows.dll +Delete $INSTDIR\qtdata\plugins\bearer\qgenericbearer.dll +Delete $INSTDIR\qtdata\plugins\bearer\qnativewifibearer.dll +Delete $INSTDIR\qtdata\plugins\iconengines\qsvgicon.dll +Delete $INSTDIR\qtdata\plugins\imageformats\qdds.dll +Delete $INSTDIR\qtdata\plugins\imageformats\qgif.dll +Delete $INSTDIR\qtdata\plugins\imageformats\qicns.dll +Delete $INSTDIR\qtdata\plugins\imageformats\qico.dll +Delete $INSTDIR\qtdata\plugins\imageformats\qjpeg.dll +Delete $INSTDIR\qtdata\plugins\imageformats\qsvg.dll +Delete $INSTDIR\qtdata\plugins\imageformats\qtga.dll +Delete $INSTDIR\qtdata\plugins\imageformats\qtiff.dll +Delete $INSTDIR\qtdata\plugins\imageformats\qwbmp.dll +Delete $INSTDIR\qtdata\plugins\imageformats\qwebp.dll +Delete $INSTDIR\qtdata\plugins\mediaservice\dsengine.dll +Delete $INSTDIR\qtdata\plugins\mediaservice\qtmedia_audioengine.dll +Delete $INSTDIR\qtdata\plugins\platforminputcontexts\qtvirtualkeyboardplugin.dll +Delete $INSTDIR\qtdata\plugins\platforms\qwindows.dll +Delete $INSTDIR\qtdata\plugins\playlistformats\qtmultimedia_m3u.dll +Delete $INSTDIR\qtdata\plugins\qmltooling\qmldbg_debugger.dll +Delete $INSTDIR\qtdata\plugins\qmltooling\qmldbg_inspector.dll +Delete $INSTDIR\qtdata\plugins\qmltooling\qmldbg_local.dll +Delete $INSTDIR\qtdata\plugins\qmltooling\qmldbg_native.dll +Delete $INSTDIR\qtdata\plugins\qmltooling\qmldbg_profiler.dll +Delete $INSTDIR\qtdata\plugins\qmltooling\qmldbg_quickprofiler.dll +Delete $INSTDIR\qtdata\plugins\qmltooling\qmldbg_server.dll +Delete $INSTDIR\qtdata\plugins\qmltooling\qmldbg_tcp.dll +Delete $INSTDIR\qtdata\plugins\scenegraph\softwarecontext.dll +Delete $INSTDIR\qtdata\private\DropShadowBase.qml +Delete $INSTDIR\qtdata\private\FastGlow.qml +Delete $INSTDIR\qtdata\private\FastInnerShadow.qml +Delete $INSTDIR\qtdata\private\FastMaskedBlur.qml +Delete $INSTDIR\qtdata\private\GaussianDirectionalBlur.qml +Delete $INSTDIR\qtdata\private\GaussianGlow.qml +Delete $INSTDIR\qtdata\private\GaussianInnerShadow.qml +Delete $INSTDIR\qtdata\private\GaussianMaskedBlur.qml +Delete $INSTDIR\qtdata\private\qmldir +Delete $INSTDIR\qtdata\private\qtgraphicaleffectsprivate.dll +Delete $INSTDIR\qtdata\Qt\labs\folderlistmodel\plugins.qmltypes +Delete $INSTDIR\qtdata\Qt\labs\folderlistmodel\qmldir +Delete $INSTDIR\qtdata\Qt\labs\folderlistmodel\qmlfolderlistmodelplugin.dll +Delete $INSTDIR\qtdata\Qt\labs\settings\plugins.qmltypes +Delete $INSTDIR\qtdata\Qt\labs\settings\qmldir +Delete $INSTDIR\qtdata\Qt\labs\settings\qmlsettingsplugin.dll +Delete $INSTDIR\qtdata\QtGraphicalEffects\Blend.qml +Delete $INSTDIR\qtdata\QtGraphicalEffects\BrightnessContrast.qml +Delete $INSTDIR\qtdata\QtGraphicalEffects\Colorize.qml +Delete $INSTDIR\qtdata\QtGraphicalEffects\ColorOverlay.qml +Delete $INSTDIR\qtdata\QtGraphicalEffects\ConicalGradient.qml +Delete $INSTDIR\qtdata\QtGraphicalEffects\Desaturate.qml +Delete $INSTDIR\qtdata\QtGraphicalEffects\DirectionalBlur.qml +Delete $INSTDIR\qtdata\QtGraphicalEffects\Displace.qml +Delete $INSTDIR\qtdata\QtGraphicalEffects\DropShadow.qml +Delete $INSTDIR\qtdata\QtGraphicalEffects\FastBlur.qml +Delete $INSTDIR\qtdata\QtGraphicalEffects\GammaAdjust.qml +Delete $INSTDIR\qtdata\QtGraphicalEffects\GaussianBlur.qml +Delete $INSTDIR\qtdata\QtGraphicalEffects\Glow.qml +Delete $INSTDIR\qtdata\QtGraphicalEffects\HueSaturation.qml +Delete $INSTDIR\qtdata\QtGraphicalEffects\InnerShadow.qml +Delete $INSTDIR\qtdata\QtGraphicalEffects\LevelAdjust.qml +Delete $INSTDIR\qtdata\QtGraphicalEffects\LinearGradient.qml +Delete $INSTDIR\qtdata\QtGraphicalEffects\MaskedBlur.qml +Delete $INSTDIR\qtdata\QtGraphicalEffects\OpacityMask.qml +Delete $INSTDIR\qtdata\QtGraphicalEffects\private\DropShadowBase.qml +Delete $INSTDIR\qtdata\QtGraphicalEffects\private\FastGlow.qml +Delete $INSTDIR\qtdata\QtGraphicalEffects\private\FastInnerShadow.qml +Delete $INSTDIR\qtdata\QtGraphicalEffects\private\FastMaskedBlur.qml +Delete $INSTDIR\qtdata\QtGraphicalEffects\private\GaussianDirectionalBlur.qml +Delete $INSTDIR\qtdata\QtGraphicalEffects\private\GaussianGlow.qml +Delete $INSTDIR\qtdata\QtGraphicalEffects\private\GaussianInnerShadow.qml +Delete $INSTDIR\qtdata\QtGraphicalEffects\private\GaussianMaskedBlur.qml +Delete $INSTDIR\qtdata\QtGraphicalEffects\private\qmldir +Delete $INSTDIR\qtdata\QtGraphicalEffects\private\qtgraphicaleffectsprivate.dll +Delete $INSTDIR\qtdata\QtGraphicalEffects\qmldir +Delete $INSTDIR\qtdata\QtGraphicalEffects\qtgraphicaleffectsplugin.dll +Delete $INSTDIR\qtdata\QtGraphicalEffects\RadialBlur.qml +Delete $INSTDIR\qtdata\QtGraphicalEffects\RadialGradient.qml +Delete $INSTDIR\qtdata\QtGraphicalEffects\RectangularGlow.qml +Delete $INSTDIR\qtdata\QtGraphicalEffects\RecursiveBlur.qml +Delete $INSTDIR\qtdata\QtGraphicalEffects\ThresholdMask.qml +Delete $INSTDIR\qtdata\QtGraphicalEffects\ZoomBlur.qml +Delete $INSTDIR\qtdata\QtMultimedia\declarative_multimedia.dll +Delete $INSTDIR\qtdata\QtMultimedia\plugins.qmltypes +Delete $INSTDIR\qtdata\QtMultimedia\qmldir +Delete $INSTDIR\qtdata\QtMultimedia\Video.qml +Delete $INSTDIR\qtdata\QtQml\Models.2\modelsplugin.dll +Delete $INSTDIR\qtdata\QtQml\Models.2\plugins.qmltypes +Delete $INSTDIR\qtdata\QtQml\Models.2\qmldir +Delete $INSTDIR\qtdata\QtQuick\Controls\Styles\Flat\qmldir +Delete $INSTDIR\qtdata\QtQuick\Controls\Styles\Flat\qtquickextrasflatplugin.dll +Delete $INSTDIR\qtdata\QtQuick\Controls\Styles\qmldir +Delete $INSTDIR\qtdata\QtQuick\Controls.2\ApplicationWindow.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\BusyIndicator.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Button.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\CheckBox.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\CheckDelegate.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\CheckIndicator.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\ComboBox.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Dial.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Drawer.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Frame.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\GroupBox.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\ItemDelegate.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Label.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Material\ApplicationWindow.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Material\BoxShadow.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Material\BusyIndicator.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Material\Button.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Material\CheckBox.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Material\CheckDelegate.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Material\CheckIndicator.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Material\ComboBox.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Material\Dial.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Material\Drawer.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Material\ElevationEffect.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Material\Frame.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Material\GroupBox.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Material\ItemDelegate.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Material\Label.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Material\Menu.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Material\MenuItem.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Material\Page.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Material\PageIndicator.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Material\Pane.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Material\plugins.qmltypes +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Material\Popup.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Material\ProgressBar.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Material\qmldir +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Material\qtquickcontrols2materialstyleplugin.dll +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Material\RadioButton.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Material\RadioDelegate.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Material\RadioIndicator.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Material\RangeSlider.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Material\Ripple.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Material\ScrollBar.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Material\ScrollIndicator.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Material\Slider.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Material\SliderHandle.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Material\SpinBox.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Material\StackView.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Material\SwipeDelegate.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Material\SwipeView.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Material\Switch.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Material\SwitchDelegate.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Material\SwitchIndicator.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Material\TabBar.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Material\TabButton.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Material\TextArea.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Material\TextField.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Material\ToolBar.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Material\ToolButton.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Material\ToolTip.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Material\Tumbler.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Menu.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\MenuItem.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Page.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\PageIndicator.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Pane.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\plugins.qmltypes +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Popup.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\ProgressBar.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\qmldir +Delete $INSTDIR\qtdata\QtQuick\Controls.2\qtquickcontrols2plugin.dll +Delete $INSTDIR\qtdata\QtQuick\Controls.2\RadioButton.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\RadioDelegate.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\RadioIndicator.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\RangeSlider.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\ScrollBar.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\ScrollIndicator.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Slider.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\SpinBox.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\StackView.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\SwipeDelegate.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\SwipeView.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Switch.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\SwitchDelegate.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\SwitchIndicator.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\TabBar.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\TabButton.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\TextArea.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\TextField.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\ToolBar.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\ToolButton.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\ToolTip.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Tumbler.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Universal\ApplicationWindow.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Universal\BusyIndicator.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Universal\Button.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Universal\CheckBox.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Universal\CheckDelegate.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Universal\CheckIndicator.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Universal\ComboBox.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Universal\Dial.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Universal\Drawer.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Universal\Frame.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Universal\GroupBox.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Universal\ItemDelegate.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Universal\Label.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Universal\Menu.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Universal\MenuItem.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Universal\Page.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Universal\PageIndicator.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Universal\Pane.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Universal\plugins.qmltypes +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Universal\Popup.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Universal\ProgressBar.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Universal\qmldir +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Universal\qtquickcontrols2universalstyleplugin.dll +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Universal\RadioButton.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Universal\RadioDelegate.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Universal\RadioIndicator.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Universal\RangeSlider.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Universal\ScrollBar.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Universal\ScrollIndicator.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Universal\Slider.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Universal\SpinBox.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Universal\StackView.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Universal\SwipeDelegate.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Universal\Switch.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Universal\SwitchDelegate.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Universal\SwitchIndicator.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Universal\TabBar.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Universal\TabButton.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Universal\TextArea.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Universal\TextField.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Universal\ToolBar.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Universal\ToolButton.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Universal\ToolTip.qml +Delete $INSTDIR\qtdata\QtQuick\Controls.2\Universal\Tumbler.qml +Delete $INSTDIR\qtdata\QtQuick\Dialogs\dialogplugin.dll +Delete $INSTDIR\qtdata\QtQuick\Dialogs\plugins.qmltypes +Delete $INSTDIR\qtdata\QtQuick\Dialogs\Private\dialogsprivateplugin.dll +Delete $INSTDIR\qtdata\QtQuick\Dialogs\Private\plugins.qmltypes +Delete $INSTDIR\qtdata\QtQuick\Dialogs\Private\qmldir +Delete $INSTDIR\qtdata\QtQuick\Dialogs\qmldir +Delete $INSTDIR\qtdata\QtQuick\Extras\plugins.qmltypes +Delete $INSTDIR\qtdata\QtQuick\Extras\Private\CircularButton.qml +Delete $INSTDIR\qtdata\QtQuick\Extras\Private\CircularButtonStyleHelper.qml +Delete $INSTDIR\qtdata\QtQuick\Extras\Private\CircularTickmarkLabel.qml +Delete $INSTDIR\qtdata\QtQuick\Extras\Private\Handle.qml +Delete $INSTDIR\qtdata\QtQuick\Extras\Private\PieMenuIcon.qml +Delete $INSTDIR\qtdata\QtQuick\Extras\Private\qmldir +Delete $INSTDIR\qtdata\QtQuick\Extras\Private\TextSingleton.qml +Delete $INSTDIR\qtdata\QtQuick\Extras\qmldir +Delete $INSTDIR\qtdata\QtQuick\Extras\qtquickextrasplugin.dll +Delete $INSTDIR\qtdata\QtQuick\Layouts\plugins.qmltypes +Delete $INSTDIR\qtdata\QtQuick\Layouts\qmldir +Delete $INSTDIR\qtdata\QtQuick\Layouts\qquicklayoutsplugin.dll +Delete $INSTDIR\qtdata\QtQuick\PrivateWidgets\plugins.qmltypes +Delete $INSTDIR\qtdata\QtQuick\PrivateWidgets\qmldir +Delete $INSTDIR\qtdata\QtQuick\PrivateWidgets\widgetsplugin.dll +Delete $INSTDIR\qtdata\QtQuick\Templates.2\plugins.qmltypes +Delete $INSTDIR\qtdata\QtQuick\Templates.2\qmldir +Delete $INSTDIR\qtdata\QtQuick\Templates.2\qtquicktemplates2plugin.dll +Delete $INSTDIR\qtdata\QtQuick\Window.2\plugins.qmltypes +Delete $INSTDIR\qtdata\QtQuick\Window.2\qmldir +Delete $INSTDIR\qtdata\QtQuick\Window.2\windowplugin.dll +Delete $INSTDIR\qtdata\QtQuick.2\plugins.qmltypes +Delete $INSTDIR\qtdata\QtQuick.2\qmldir +Delete $INSTDIR\qtdata\QtQuick.2\qtquick2plugin.dll +Delete $INSTDIR\qtdata\translations\qt_ca.qm +Delete $INSTDIR\qtdata\translations\qt_cs.qm +Delete $INSTDIR\qtdata\translations\qt_de.qm +Delete $INSTDIR\qtdata\translations\qt_en.qm +Delete $INSTDIR\qtdata\translations\qt_fi.qm +Delete $INSTDIR\qtdata\translations\qt_fr.qm +Delete $INSTDIR\qtdata\translations\qt_he.qm +Delete $INSTDIR\qtdata\translations\qt_hu.qm +Delete $INSTDIR\qtdata\translations\qt_it.qm +Delete $INSTDIR\qtdata\translations\qt_ja.qm +Delete $INSTDIR\qtdata\translations\qt_ko.qm +Delete $INSTDIR\qtdata\translations\qt_lv.qm +Delete $INSTDIR\qtdata\translations\qt_pl.qm +Delete $INSTDIR\qtdata\translations\qt_ru.qm +Delete $INSTDIR\qtdata\translations\qt_sk.qm +Delete $INSTDIR\qtdata\translations\qt_uk.qm +Delete $INSTDIR\qtdata\Universal\ApplicationWindow.qml +Delete $INSTDIR\qtdata\Universal\BusyIndicator.qml +Delete $INSTDIR\qtdata\Universal\Button.qml +Delete $INSTDIR\qtdata\Universal\CheckBox.qml +Delete $INSTDIR\qtdata\Universal\CheckDelegate.qml +Delete $INSTDIR\qtdata\Universal\CheckIndicator.qml +Delete $INSTDIR\qtdata\Universal\ComboBox.qml +Delete $INSTDIR\qtdata\Universal\Dial.qml +Delete $INSTDIR\qtdata\Universal\Drawer.qml +Delete $INSTDIR\qtdata\Universal\Frame.qml +Delete $INSTDIR\qtdata\Universal\GroupBox.qml +Delete $INSTDIR\qtdata\Universal\ItemDelegate.qml +Delete $INSTDIR\qtdata\Universal\Label.qml +Delete $INSTDIR\qtdata\Universal\Menu.qml +Delete $INSTDIR\qtdata\Universal\MenuItem.qml +Delete $INSTDIR\qtdata\Universal\Page.qml +Delete $INSTDIR\qtdata\Universal\PageIndicator.qml +Delete $INSTDIR\qtdata\Universal\Pane.qml +Delete $INSTDIR\qtdata\Universal\plugins.qmltypes +Delete $INSTDIR\qtdata\Universal\Popup.qml +Delete $INSTDIR\qtdata\Universal\ProgressBar.qml +Delete $INSTDIR\qtdata\Universal\qmldir +Delete $INSTDIR\qtdata\Universal\qtquickcontrols2universalstyleplugin.dll +Delete $INSTDIR\qtdata\Universal\RadioButton.qml +Delete $INSTDIR\qtdata\Universal\RadioDelegate.qml +Delete $INSTDIR\qtdata\Universal\RadioIndicator.qml +Delete $INSTDIR\qtdata\Universal\RangeSlider.qml +Delete $INSTDIR\qtdata\Universal\ScrollBar.qml +Delete $INSTDIR\qtdata\Universal\ScrollIndicator.qml +Delete $INSTDIR\qtdata\Universal\Slider.qml +Delete $INSTDIR\qtdata\Universal\SpinBox.qml +Delete $INSTDIR\qtdata\Universal\StackView.qml +Delete $INSTDIR\qtdata\Universal\SwipeDelegate.qml +Delete $INSTDIR\qtdata\Universal\Switch.qml +Delete $INSTDIR\qtdata\Universal\SwitchDelegate.qml +Delete $INSTDIR\qtdata\Universal\SwitchIndicator.qml +Delete $INSTDIR\qtdata\Universal\TabBar.qml +Delete $INSTDIR\qtdata\Universal\TabButton.qml +Delete $INSTDIR\qtdata\Universal\TextArea.qml +Delete $INSTDIR\qtdata\Universal\TextField.qml +Delete $INSTDIR\qtdata\Universal\ToolBar.qml +Delete $INSTDIR\qtdata\Universal\ToolButton.qml +Delete $INSTDIR\qtdata\Universal\ToolTip.qml +Delete $INSTDIR\qtdata\Universal\Tumbler.qml +Delete $INSTDIR\res\qml\AudioPage.qml +Delete $INSTDIR\res\qml\backarrow.svg +Delete $INSTDIR\res\qml\ChaperonePage.qml +Delete $INSTDIR\res\qml\FixFloorPage.qml +Delete $INSTDIR\res\qml\mainwidget.qml +Delete $INSTDIR\res\qml\mic_off.svg +Delete $INSTDIR\res\qml\mic_on.svg +Delete $INSTDIR\res\qml\MyComboBox.qml +Delete $INSTDIR\res\qml\MyDialogOkCancelPopup.qml +Delete $INSTDIR\res\qml\MyDialogOkPopup.qml +Delete $INSTDIR\res\qml\MyPushButton.qml +Delete $INSTDIR\res\qml\MyPushButton2.qml +Delete $INSTDIR\res\qml\MyResources.qml +Delete $INSTDIR\res\qml\MySlider.qml +Delete $INSTDIR\res\qml\MyStackViewPage.qml +Delete $INSTDIR\res\qml\MyText.qml +Delete $INSTDIR\res\qml\MyTextField.qml +Delete $INSTDIR\res\qml\MyToggleButton.qml +Delete $INSTDIR\res\qml\PlayspacePage.qml +Delete $INSTDIR\res\qml\ptt_notification.png +Delete $INSTDIR\res\qml\ptt_notification.svg +Delete $INSTDIR\res\qml\qmldir +Delete $INSTDIR\res\qml\RevivePage.qml +Delete $INSTDIR\res\qml\RootPage.qml +Delete $INSTDIR\res\qml\SettingsPage.qml +Delete $INSTDIR\res\qml\speaker_off.svg +Delete $INSTDIR\res\qml\speaker_on.svg +Delete $INSTDIR\res\qml\StatisticsPage.qml +Delete $INSTDIR\res\qml\SteamVRPage.qml +Delete $INSTDIR\res\qml\UtilitiesPage.qml +Delete $INSTDIR\res\thumbicon.png +Delete $INSTDIR\restartvrserver.bat +Delete $INSTDIR\startdesktopmode.bat +Delete $INSTDIR\Uninstall.exe +Delete $INSTDIR\vcredist_x64.exe +RMdir $INSTDIR\res\qml +RMdir $INSTDIR\res +RMdir $INSTDIR\qtdata\Universal +RMdir $INSTDIR\qtdata\translations +RMdir $INSTDIR\qtdata\QtQuick.2 +RMdir $INSTDIR\qtdata\QtQuick\Window.2 +RMdir $INSTDIR\qtdata\QtQuick\Templates.2 +RMdir $INSTDIR\qtdata\QtQuick\PrivateWidgets +RMdir $INSTDIR\qtdata\QtQuick\Layouts +RMdir $INSTDIR\qtdata\QtQuick\Extras\Private +RMdir $INSTDIR\qtdata\QtQuick\Extras +RMdir $INSTDIR\qtdata\QtQuick\Dialogs\Private +RMdir $INSTDIR\qtdata\QtQuick\Dialogs +RMdir $INSTDIR\qtdata\QtQuick\Controls.2\Universal +RMdir $INSTDIR\qtdata\QtQuick\Controls.2\Material +RMdir $INSTDIR\qtdata\QtQuick\Controls.2 +RMdir $INSTDIR\qtdata\QtQuick\Controls\Styles\Flat +RMdir $INSTDIR\qtdata\QtQuick\Controls\Styles +RMdir $INSTDIR\qtdata\QtQuick\Controls +RMdir $INSTDIR\qtdata\QtQuick +RMdir $INSTDIR\qtdata\QtQml\Models.2 +RMdir $INSTDIR\qtdata\QtQml +RMdir $INSTDIR\qtdata\QtMultimedia +RMdir $INSTDIR\qtdata\QtGraphicalEffects\private +RMdir $INSTDIR\qtdata\QtGraphicalEffects +RMdir $INSTDIR\qtdata\Qt\labs\settings +RMdir $INSTDIR\qtdata\Qt\labs\folderlistmodel +RMdir $INSTDIR\qtdata\Qt\labs +RMdir $INSTDIR\qtdata\Qt +RMdir $INSTDIR\qtdata\private +RMdir $INSTDIR\qtdata\plugins\scenegraph +RMdir $INSTDIR\qtdata\plugins\qmltooling +RMdir $INSTDIR\qtdata\plugins\playlistformats +RMdir $INSTDIR\qtdata\plugins\platforms +RMdir $INSTDIR\qtdata\plugins\platforminputcontexts +RMdir $INSTDIR\qtdata\plugins\mediaservice +RMdir $INSTDIR\qtdata\plugins\imageformats +RMdir $INSTDIR\qtdata\plugins\iconengines +RMdir $INSTDIR\qtdata\plugins\bearer +RMdir $INSTDIR\qtdata\plugins\audio +RMdir $INSTDIR\qtdata\plugins +RMdir $INSTDIR\qtdata\Material +RMdir $INSTDIR\qtdata +RMdir $INSTDIR