From deb45fa2485c7e317f69308397db5c0bccb9eeb2 Mon Sep 17 00:00:00 2001 From: oxmc <67136658+oxmc@users.noreply.github.com> Date: Wed, 28 Jun 2023 20:57:34 -0700 Subject: [PATCH] Update filenames --- build.bat | 13 + src/CMakeLists.txt | 62 +- ...i-imager_ca.ts => hooverhigh-imager_ca.ts} | 0 ...i-imager_de.ts => hooverhigh-imager_de.ts} | 0 ...i-imager_en.ts => hooverhigh-imager_en.ts} | 0 ...i-imager_fr.ts => hooverhigh-imager_fr.ts} | 0 ...i-imager_it.ts => hooverhigh-imager_it.ts} | 0 ...i-imager_ja.ts => hooverhigh-imager_ja.ts} | 0 ...i-imager_ko.ts => hooverhigh-imager_ko.ts} | 0 ...i-imager_nl.ts => hooverhigh-imager_nl.ts} | 0 ...i-imager_ru.ts => hooverhigh-imager_ru.ts} | 0 ...i-imager_sk.ts => hooverhigh-imager_sk.ts} | 0 ...i-imager_sl.ts => hooverhigh-imager_sl.ts} | 0 ...i-imager_tr.ts => hooverhigh-imager_tr.ts} | 0 ...i-imager_zh.ts => hooverhigh-imager_zh.ts} | 0 src/i18n/translations.qrc | 26 +- ...rpi-imager.icns => hooverhigh-imager.icns} | Bin src/icons/hooverhigh-imager.ico | Bin 0 -> 44346 bytes .../{rpi-imager.png => hooverhigh-imager.png} | Bin src/main.cpp | 32 +- src/qml.qrc | 2 +- ...ager-cli.cmd => hooverhigh-imager-cli.cmd} | 4 +- ...er.manifest => hooverhigh-imager.manifest} | 0 ...imager.nsi.in => hooverhigh-imager.nsi.in} | 2294 ++++++++--------- .../{rpi-imager.rc => hooverhigh-imager.rc} | 4 +- 25 files changed, 1226 insertions(+), 1211 deletions(-) create mode 100644 build.bat rename src/i18n/{rpi-imager_ca.ts => hooverhigh-imager_ca.ts} (100%) rename src/i18n/{rpi-imager_de.ts => hooverhigh-imager_de.ts} (100%) rename src/i18n/{rpi-imager_en.ts => hooverhigh-imager_en.ts} (100%) rename src/i18n/{rpi-imager_fr.ts => hooverhigh-imager_fr.ts} (100%) rename src/i18n/{rpi-imager_it.ts => hooverhigh-imager_it.ts} (100%) rename src/i18n/{rpi-imager_ja.ts => hooverhigh-imager_ja.ts} (100%) rename src/i18n/{rpi-imager_ko.ts => hooverhigh-imager_ko.ts} (100%) rename src/i18n/{rpi-imager_nl.ts => hooverhigh-imager_nl.ts} (100%) rename src/i18n/{rpi-imager_ru.ts => hooverhigh-imager_ru.ts} (100%) rename src/i18n/{rpi-imager_sk.ts => hooverhigh-imager_sk.ts} (100%) rename src/i18n/{rpi-imager_sl.ts => hooverhigh-imager_sl.ts} (100%) rename src/i18n/{rpi-imager_tr.ts => hooverhigh-imager_tr.ts} (100%) rename src/i18n/{rpi-imager_zh.ts => hooverhigh-imager_zh.ts} (100%) rename src/icons/{rpi-imager.icns => hooverhigh-imager.icns} (100%) create mode 100644 src/icons/hooverhigh-imager.ico rename src/icons/{rpi-imager.png => hooverhigh-imager.png} (100%) rename src/windows/{rpi-imager-cli.cmd => hooverhigh-imager-cli.cmd} (51%) rename src/windows/{rpi-imager.manifest => hooverhigh-imager.manifest} (100%) rename src/windows/{rpi-imager.nsi.in => hooverhigh-imager.nsi.in} (97%) rename src/windows/{rpi-imager.rc => hooverhigh-imager.rc} (73%) diff --git a/build.bat b/build.bat new file mode 100644 index 0000000..dbfc97f --- /dev/null +++ b/build.bat @@ -0,0 +1,13 @@ +@echo off + +set CMAKE_PREFIX_PATH=C:\Qt\Qt5.14.2\5.14.2\mingw73_32 +set CMAKE_MAKE_PROGRAM=C:\ProgramData\chocolatey\bin\make.exe +set OPENSSL_ROOT_DIR=C:\dev-lib\openssl + +cd build + +cmake -G "MinGW Makefiles" ..\src + +make + +cd .. \ No newline at end of file diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 170ce7a..960dfeb 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -5,7 +5,7 @@ cmake_minimum_required(VERSION 3.9.4) OPTION (ENABLE_CHECK_VERSION "Check for version updates" ON) OPTION (ENABLE_TELEMETRY "Enable sending telemetry" ON) -project(rpi-imager LANGUAGES CXX C) +project(hooverhigh-imager LANGUAGES CXX C) set(IMAGER_VERSION_MAJOR 1) set(IMAGER_VERSION_MINOR 7) set(IMAGER_VERSION_STR "${IMAGER_VERSION_MAJOR}.${IMAGER_VERSION_MINOR}.5") @@ -21,10 +21,10 @@ set(HEADERS config.h imagewriter.h networkaccessmanagerfactory.h nan.h drivelist # Add dependencies if (APPLE) - set_source_files_properties("icons/rpi-imager.icns" PROPERTIES MACOSX_PACKAGE_LOCATION "Resources") + set_source_files_properties("icons/hooverhigh-imager.icns" PROPERTIES MACOSX_PACKAGE_LOCATION "Resources") set(DEPENDENCIES acceleratedcryptographichash.cpp mac/macfile.cpp mac/macfile.h dependencies/mountutils/src/darwin/functions.cpp mac/macwlancredentials.h mac/macwlancredentials.cpp - dependencies/drivelist/src/darwin/list.mm dependencies/drivelist/src/darwin/REDiskList.m icons/rpi-imager.icns) + dependencies/drivelist/src/darwin/list.mm dependencies/drivelist/src/darwin/REDiskList.m icons/hooverhigh-imager.icns) enable_language(OBJC C) elseif (UNIX) set(DEPENDENCIES dependencies/mountutils/src/linux/functions.cpp linux/linuxdrivelist.cpp linux/networkmanagerapi.h linux/networkmanagerapi.cpp) @@ -48,7 +48,7 @@ elseif (UNIX) elseif (WIN32) set(DEPENDENCIES acceleratedcryptographichash.cpp dependencies/mountutils/src/windows/functions.cpp dependencies/drivelist/src/windows/list.cpp windows/winfile.cpp windows/winfile.h windows/winwlancredentials.h windows/winwlancredentials.cpp - windows/rpi-imager.rc wlanapi_delayed.lib) + windows/hooverhigh-imager.rc wlanapi_delayed.lib) set(EXTRALIBS setupapi ${CMAKE_CURRENT_BINARY_DIR}/wlanapi_delayed.lib) add_custom_command( OUTPUT wlanapi_delayed.lib @@ -122,10 +122,10 @@ if(${QT}WinExtras_FOUND) set(EXTRALIBS ${EXTRALIBS} ${QT}::WinExtras) endif() -set(TRANSLATIONS i18n/rpi-imager_en.ts i18n/rpi-imager_nl.ts i18n/rpi-imager_zh.ts i18n/rpi-imager_tr.ts - i18n/rpi-imager_fr.ts i18n/rpi-imager_de.ts i18n/rpi-imager_sk.ts i18n/rpi-imager_it.ts - i18n/rpi-imager_ca.ts i18n/rpi-imager_sl.ts i18n/rpi-imager_ko.ts i18n/rpi-imager_ja.ts - i18n/rpi-imager_ru.ts) +set(TRANSLATIONS i18n/hooverhigh-imager_en.ts i18n/hooverhigh-imager_nl.ts i18n/hooverhigh-imager_zh.ts i18n/hooverhigh-imager_tr.ts + i18n/hooverhigh-imager_fr.ts i18n/hooverhigh-imager_de.ts i18n/hooverhigh-imager_sk.ts i18n/hooverhigh-imager_it.ts + i18n/hooverhigh-imager_ca.ts i18n/hooverhigh-imager_sl.ts i18n/hooverhigh-imager_ko.ts i18n/hooverhigh-imager_ja.ts + i18n/hooverhigh-imager_ru.ts) #qt5_create_translation(QM_FILES ${CMAKE_SOURCE_DIR} ${TRANSLATIONS}) if (Qt5_FOUND) qt5_add_translation(QM_FILES ${TRANSLATIONS}) @@ -222,21 +222,21 @@ if (WIN32) COMMAND ${CMAKE_STRIP} "${CMAKE_BINARY_DIR}/${PROJECT_NAME}.exe") # Code signing - find_program(SIGNTOOL "signtool.exe" PATHS - "c:/Program Files (x86)/Microsoft SDKs/ClickOnce/SignTool" - "c:/Program Files (x86)/Windows Kits/10/bin/10.0.22621.0/x64") - if (NOT SIGNTOOL) - message(FATAL_ERROR "Unable to locate signtool.exe used for code signing") - endif() - add_definitions(-DSIGNTOOL="${SIGNTOOL}") + #find_program(SIGNTOOL "signtool.exe" PATHS + # "c:/Program Files (x86)/Microsoft SDKs/ClickOnce/SignTool" + # "c:/Program Files (x86)/Windows Kits/10/bin/10.0.22621.0/x64") + #if (NOT SIGNTOOL) + # message(FATAL_ERROR "Unable to locate signtool.exe used for code signing") + #endif() + #add_definitions(-DSIGNTOOL="${SIGNTOOL}") - add_custom_command(TARGET ${PROJECT_NAME} - POST_BUILD - COMMAND "${SIGNTOOL}" sign /tr http://timestamp.digicert.com /td sha256 /fd sha256 /a "${CMAKE_BINARY_DIR}/${PROJECT_NAME}.exe") + #add_custom_command(TARGET ${PROJECT_NAME} + # POST_BUILD + # COMMAND "${SIGNTOOL}" sign /tr http://timestamp.digicert.com /td sha256 /fd sha256 /a "${CMAKE_BINARY_DIR}/${PROJECT_NAME}.exe") - add_custom_command(TARGET ${PROJECT_NAME} - POST_BUILD - COMMAND "${SIGNTOOL}" sign /tr http://timestamp.digicert.com /td sha256 /fd sha256 /a "${CMAKE_BINARY_DIR}/dependencies/fat32format/fat32format.exe") + #add_custom_command(TARGET ${PROJECT_NAME} + # POST_BUILD + # COMMAND "${SIGNTOOL}" sign /tr http://timestamp.digicert.com /td sha256 /fd sha256 /a "${CMAKE_BINARY_DIR}/dependencies/fat32format/fat32format.exe") # Windeploy find_program(WINDEPLOYQT "windeployqt.exe" PATHS "${${QT}_DIR}/../../../bin") @@ -250,7 +250,7 @@ if (WIN32) POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_BINARY_DIR}/${PROJECT_NAME}.exe" "${CMAKE_BINARY_DIR}/dependencies/fat32format/fat32format.exe" - "${CMAKE_SOURCE_DIR}/../license.txt" "${CMAKE_SOURCE_DIR}/windows/rpi-imager-cli.cmd" + "${CMAKE_SOURCE_DIR}/../license.txt" "${CMAKE_SOURCE_DIR}/windows/hooverhigh-imager-cli.cmd" "${CMAKE_BINARY_DIR}/deploy") add_custom_command(TARGET ${PROJECT_NAME} @@ -260,13 +260,13 @@ if (WIN32) "${CMAKE_BINARY_DIR}/deploy") configure_file( - "${CMAKE_CURRENT_SOURCE_DIR}/windows/rpi-imager.nsi.in" - "${CMAKE_CURRENT_BINARY_DIR}/rpi-imager.nsi" + "${CMAKE_CURRENT_SOURCE_DIR}/windows/hooverhigh-imager.nsi.in" + "${CMAKE_CURRENT_BINARY_DIR}/hooverhigh-imager.nsi" @ONLY) add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD - COMMAND "${WINDEPLOYQT}" --no-translations --no-webkit2 --no-opengl-sw --angle --qmldir "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_BINARY_DIR}/deploy/rpi-imager.exe") + COMMAND "${WINDEPLOYQT}" --no-translations --no-webkit2 --no-opengl-sw --angle --qmldir "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_BINARY_DIR}/deploy/hooverhigh-imager.exe") # Remove excess files add_custom_command(TARGET ${PROJECT_NAME} @@ -340,14 +340,14 @@ else() endif() configure_file( - "${CMAKE_CURRENT_SOURCE_DIR}/linux/rpi-imager.metainfo.xml.in" - "${CMAKE_CURRENT_BINARY_DIR}/rpi-imager.metainfo.xml" + "${CMAKE_CURRENT_SOURCE_DIR}/linux/hooverhigh-imager.metainfo.xml.in" + "${CMAKE_CURRENT_BINARY_DIR}/hooverhigh-imager.metainfo.xml" @ONLY) - install(TARGETS rpi-imager DESTINATION bin) - install(FILES icons/rpi-imager.png DESTINATION share/icons/hicolor/128x128/apps) - install(FILES linux/rpi-imager.desktop DESTINATION share/applications) - install(FILES "${CMAKE_CURRENT_BINARY_DIR}/rpi-imager.metainfo.xml" DESTINATION share/metainfo) + install(TARGETS hooverhigh-imager DESTINATION bin) + install(FILES icons/hooverhigh-imager.png DESTINATION share/icons/hicolor/128x128/apps) + install(FILES linux/hooverhigh-imager.desktop DESTINATION share/applications) + install(FILES "${CMAKE_CURRENT_BINARY_DIR}/hooverhigh-imager.metainfo.xml" DESTINATION share/metainfo) endif() include_directories(${CURL_INCLUDE_DIR} ${LibArchive_INCLUDE_DIR} ${OPENSSL_INCLUDE_DIR}) diff --git a/src/i18n/rpi-imager_ca.ts b/src/i18n/hooverhigh-imager_ca.ts similarity index 100% rename from src/i18n/rpi-imager_ca.ts rename to src/i18n/hooverhigh-imager_ca.ts diff --git a/src/i18n/rpi-imager_de.ts b/src/i18n/hooverhigh-imager_de.ts similarity index 100% rename from src/i18n/rpi-imager_de.ts rename to src/i18n/hooverhigh-imager_de.ts diff --git a/src/i18n/rpi-imager_en.ts b/src/i18n/hooverhigh-imager_en.ts similarity index 100% rename from src/i18n/rpi-imager_en.ts rename to src/i18n/hooverhigh-imager_en.ts diff --git a/src/i18n/rpi-imager_fr.ts b/src/i18n/hooverhigh-imager_fr.ts similarity index 100% rename from src/i18n/rpi-imager_fr.ts rename to src/i18n/hooverhigh-imager_fr.ts diff --git a/src/i18n/rpi-imager_it.ts b/src/i18n/hooverhigh-imager_it.ts similarity index 100% rename from src/i18n/rpi-imager_it.ts rename to src/i18n/hooverhigh-imager_it.ts diff --git a/src/i18n/rpi-imager_ja.ts b/src/i18n/hooverhigh-imager_ja.ts similarity index 100% rename from src/i18n/rpi-imager_ja.ts rename to src/i18n/hooverhigh-imager_ja.ts diff --git a/src/i18n/rpi-imager_ko.ts b/src/i18n/hooverhigh-imager_ko.ts similarity index 100% rename from src/i18n/rpi-imager_ko.ts rename to src/i18n/hooverhigh-imager_ko.ts diff --git a/src/i18n/rpi-imager_nl.ts b/src/i18n/hooverhigh-imager_nl.ts similarity index 100% rename from src/i18n/rpi-imager_nl.ts rename to src/i18n/hooverhigh-imager_nl.ts diff --git a/src/i18n/rpi-imager_ru.ts b/src/i18n/hooverhigh-imager_ru.ts similarity index 100% rename from src/i18n/rpi-imager_ru.ts rename to src/i18n/hooverhigh-imager_ru.ts diff --git a/src/i18n/rpi-imager_sk.ts b/src/i18n/hooverhigh-imager_sk.ts similarity index 100% rename from src/i18n/rpi-imager_sk.ts rename to src/i18n/hooverhigh-imager_sk.ts diff --git a/src/i18n/rpi-imager_sl.ts b/src/i18n/hooverhigh-imager_sl.ts similarity index 100% rename from src/i18n/rpi-imager_sl.ts rename to src/i18n/hooverhigh-imager_sl.ts diff --git a/src/i18n/rpi-imager_tr.ts b/src/i18n/hooverhigh-imager_tr.ts similarity index 100% rename from src/i18n/rpi-imager_tr.ts rename to src/i18n/hooverhigh-imager_tr.ts diff --git a/src/i18n/rpi-imager_zh.ts b/src/i18n/hooverhigh-imager_zh.ts similarity index 100% rename from src/i18n/rpi-imager_zh.ts rename to src/i18n/hooverhigh-imager_zh.ts diff --git a/src/i18n/translations.qrc b/src/i18n/translations.qrc index 093726b..2d0603a 100644 --- a/src/i18n/translations.qrc +++ b/src/i18n/translations.qrc @@ -1,17 +1,17 @@ - rpi-imager_de.qm - rpi-imager_en.qm - rpi-imager_fr.qm - rpi-imager_it.qm - rpi-imager_ko.qm - rpi-imager_nl.qm - rpi-imager_ru.qm - rpi-imager_sl.qm - rpi-imager_sk.qm - rpi-imager_tr.qm - rpi-imager_zh.qm - rpi-imager_ca.qm - rpi-imager_ja.qm + hooverhigh-imager_de.qm + hooverhigh-imager_en.qm + hooverhigh-imager_fr.qm + hooverhigh-imager_it.qm + hooverhigh-imager_ko.qm + hooverhigh-imager_nl.qm + hooverhigh-imager_ru.qm + hooverhigh-imager_sl.qm + hooverhigh-imager_sk.qm + hooverhigh-imager_tr.qm + hooverhigh-imager_zh.qm + hooverhigh-imager_ca.qm + hooverhigh-imager_ja.qm diff --git a/src/icons/rpi-imager.icns b/src/icons/hooverhigh-imager.icns similarity index 100% rename from src/icons/rpi-imager.icns rename to src/icons/hooverhigh-imager.icns diff --git a/src/icons/hooverhigh-imager.ico b/src/icons/hooverhigh-imager.ico new file mode 100644 index 0000000000000000000000000000000000000000..fd2b93e3e63948ea8102153ec858f58b71d876a1 GIT binary patch literal 44346 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 literal 0 HcmV?d00001 diff --git a/src/icons/rpi-imager.png b/src/icons/hooverhigh-imager.png similarity index 100% rename from src/icons/rpi-imager.png rename to src/icons/hooverhigh-imager.png diff --git a/src/main.cpp b/src/main.cpp index 31e04f4..8cb4071 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -34,12 +34,14 @@ static QTextStream cerr(stderr); /* Newer Qt versions throw warnings if using ::endl instead of Qt::endl Older versions lack Qt::endl */ #if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0) -//using Qt::endl; -#define endl Qt::endl +// using Qt::endl; +#define endl Qt::endl #endif #ifdef Q_OS_WIN -static void consoleMsgHandler(QtMsgType, const QMessageLogContext &, const QString &str) { +#include +static void consoleMsgHandler(QtMsgType, const QMessageLogContext &, const QString &str) +{ cerr << str << endl; } #endif @@ -77,7 +79,7 @@ int main(int argc, char *argv[]) QStringList fontList = QFontDatabase::applicationFontFamilies(QFontDatabase::addApplicationFont(":/fonts/Roboto-Regular.ttf")); QGuiApplication::setFont(QFont(fontList.first(), 10)); if (QFile::exists("/usr/share/fonts/truetype/droid/DroidSansFallback.ttf")) - QFontDatabase::addApplicationFont("/usr/share/fonts/truetype/droid/DroidSansFallback.ttf"); + QFontDatabase::addApplicationFont("/usr/share/fonts/truetype/droid/DroidSansFallback.ttf"); QLocale::Language l = QLocale::system().language(); if (l == QLocale::AnyLanguage || l == QLocale::C) @@ -99,7 +101,7 @@ int main(int argc, char *argv[]) QString customRepo; QUrl url; QStringList args = app.arguments(); - for (int i=1; i < args.size(); i++) + for (int i = 1; i < args.size(); i++) { if (!args[i].startsWith("-") && url.isEmpty()) { @@ -117,13 +119,14 @@ int main(int argc, char *argv[]) } else { - cerr << "Argument ignored because it is not a regular file: " << args[i] << endl;; + cerr << "Argument ignored because it is not a regular file: " << args[i] << endl; + ; } } } else if (args[i] == "--repo") { - if (args.size()-i < 2 || args[i+1].startsWith("-")) + if (args.size() - i < 2 || args[i + 1].startsWith("-")) { cerr << "Missing URL or file path after --repo" << endl; return 1; @@ -148,7 +151,7 @@ int main(int argc, char *argv[]) } else if (args[i] == "--qm") { - if (args.size()-i < 2 || args[i+1].startsWith("-")) + if (args.size() - i < 2 || args[i + 1].startsWith("-")) { cerr << "Missing QM file after --qm" << endl; return 1; @@ -214,7 +217,7 @@ int main(int argc, char *argv[]) if (CFArrayGetCount(prefLangs)) { char buf[32] = {0}; - CFStringRef strRef = (CFStringRef) CFArrayGetValueAtIndex(prefLangs, 0); + CFStringRef strRef = (CFStringRef)CFArrayGetValueAtIndex(prefLangs, 0); CFStringGetCString(strRef, buf, sizeof(buf), kCFStringEncodingUTF8); langcode = buf; langcode.replace('-', '_'); @@ -250,8 +253,8 @@ int main(int argc, char *argv[]) return -1; QObject *qmlwindow = engine.rootObjects().value(0); - qmlwindow->connect(&imageWriter, SIGNAL(downloadProgress(QVariant,QVariant)), qmlwindow, SLOT(onDownloadProgress(QVariant,QVariant))); - qmlwindow->connect(&imageWriter, SIGNAL(verifyProgress(QVariant,QVariant)), qmlwindow, SLOT(onVerifyProgress(QVariant,QVariant))); + qmlwindow->connect(&imageWriter, SIGNAL(downloadProgress(QVariant, QVariant)), qmlwindow, SLOT(onDownloadProgress(QVariant, QVariant))); + qmlwindow->connect(&imageWriter, SIGNAL(verifyProgress(QVariant, QVariant)), qmlwindow, SLOT(onVerifyProgress(QVariant, QVariant))); qmlwindow->connect(&imageWriter, SIGNAL(preparationStatusUpdate(QVariant)), qmlwindow, SLOT(onPreparationStatusUpdate(QVariant))); qmlwindow->connect(&imageWriter, SIGNAL(error(QVariant)), qmlwindow, SLOT(onError(QVariant))); qmlwindow->connect(&imageWriter, SIGNAL(success()), qmlwindow, SLOT(onSuccess())); @@ -270,7 +273,7 @@ int main(int argc, char *argv[]) if (x != -1 && y != -1) { - if ( !app.screenAt(QPoint(x,y)) || !app.screenAt(QPoint(x+w,y+h)) ) + if (!app.screenAt(QPoint(x, y)) || !app.screenAt(QPoint(x + w, y + h))) { qDebug() << "Not restoring saved window position as it falls outside any currently attached screen"; x = y = -1; @@ -279,8 +282,8 @@ int main(int argc, char *argv[]) if (x == -1 || y == -1) { - x = qMax(1, (screensize.width()-w)/2); - y = qMax(1, (screensize.height()-h)/2); + x = qMax(1, (screensize.width() - w) / 2); + y = qMax(1, (screensize.height() - h) / 2); } qmlwindow->setProperty("x", x); @@ -302,4 +305,3 @@ int main(int argc, char *argv[]) return rc; } - diff --git a/src/qml.qrc b/src/qml.qrc index 6ce41e6..a14bdd0 100644 --- a/src/qml.qrc +++ b/src/qml.qrc @@ -2,7 +2,7 @@ main.qml qtquickcontrols2.conf - icons/rpi-imager.ico + icons/hooverhigh-imager.ico fonts/Roboto-Bold.ttf fonts/Roboto-Light.ttf fonts/Roboto-Regular.ttf diff --git a/src/windows/rpi-imager-cli.cmd b/src/windows/hooverhigh-imager-cli.cmd similarity index 51% rename from src/windows/rpi-imager-cli.cmd rename to src/windows/hooverhigh-imager-cli.cmd index 99c15f7..b177757 100644 --- a/src/windows/rpi-imager-cli.cmd +++ b/src/windows/hooverhigh-imager-cli.cmd @@ -1,9 +1,9 @@ @echo off rem -rem For scripting: call rpi-imager.exe and wait until it finished before continuing +rem For scripting: call hooverhigh-imager.exe and wait until it finished before continuing rem This is necessary because it is compiled as GUI application, and Windows rem normalling does not wait until those exit rem -start /WAIT rpi-imager.exe --cli %* +start /WAIT hooverhigh-imager.exe --cli %* diff --git a/src/windows/rpi-imager.manifest b/src/windows/hooverhigh-imager.manifest similarity index 100% rename from src/windows/rpi-imager.manifest rename to src/windows/hooverhigh-imager.manifest diff --git a/src/windows/rpi-imager.nsi.in b/src/windows/hooverhigh-imager.nsi.in similarity index 97% rename from src/windows/rpi-imager.nsi.in rename to src/windows/hooverhigh-imager.nsi.in index 4f8a066..f677fe8 100644 --- a/src/windows/rpi-imager.nsi.in +++ b/src/windows/hooverhigh-imager.nsi.in @@ -1,1147 +1,1147 @@ -############################################################################################ -# NSIS Installation Script created by NSIS Quick Setup Script Generator v1.09.18 -# Entirely Edited with NullSoft Scriptable Installation System -# by Vlasis K. Barkas aka Red Wine red_wine@freemail.gr Sep 2006 -############################################################################################ - -!define APP_NAME "Raspberry Pi Imager" -!define COMP_NAME "Raspberry Pi Ltd" -!define VERSION "@IMAGER_VERSION_STR@" -!define INSTALLER_NAME "imager-${VERSION}.exe" -!define COPYRIGHT "Raspberry Pi Ltd" -!define DESCRIPTION "Raspberry Pi Imager" -!define MAIN_APP_EXE "rpi-imager.exe" -!define INSTALL_TYPE "SetShellVarContext current" -!define REG_ROOT "HKCU" -!define REG_APP_PATH "Software\Microsoft\Windows\CurrentVersion\App Paths\${MAIN_APP_EXE}" -!define UNINSTALL_PATH "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APP_NAME}" - -# Window to close if running -!define EXE_TO_TERMINATE "rpi-imager.exe" - -###################################################################### - -VIProductVersion "@IMAGER_VERSION_MAJOR@.@IMAGER_VERSION_MINOR@.0.0" -VIAddVersionKey "ProductName" "${APP_NAME}" -VIAddVersionKey "CompanyName" "${COMP_NAME}" -VIAddVersionKey "LegalCopyright" "${COPYRIGHT}" -VIAddVersionKey "FileDescription" "${DESCRIPTION}" -VIAddVersionKey "FileVersion" "${VERSION}" -VIAddVersionKey "ProductVersion" "${VERSION}" - -###################################################################### - -SetCompressor LZMA -Name "${APP_NAME}" -Caption "${APP_NAME} ${VERSION}" -OutFile "${INSTALLER_NAME}" -BrandingText "${APP_NAME}" -XPStyle on -InstallDirRegKey "${REG_ROOT}" "${REG_APP_PATH}" "" -InstallDir "$PROGRAMFILES\Raspberry Pi Imager" - -###################################################################### - -### Stuff for signing uninstaller -!ifdef INNER - !echo "Inner invocation" ; just to see what's going on - OutFile "$%TEMP%\tempinstaller.exe" ; not really important where this is - SetCompress off -!else - !echo "Outer invocation" - - ; Call makensis again against current file, defining INNER. This writes an installer for us which, when - ; it is invoked, will just write the uninstaller to some location, and then exit. - - !makensis '/DINNER "${__FILE__}"' = 0 - - ; So now run that installer we just created as %TEMP%\tempinstaller.exe. Since it - ; calls quit the return value isn't zero. - - !system 'set __COMPAT_LAYER=RunAsInvoker &"$%TEMP%\tempinstaller.exe"' = 2 - - ; That will have written an uninstaller binary for us. Now we sign it with your - ; favorite code signing tool. - - !system '"@SIGNTOOL@" sign /tr http://timestamp.digicert.com /td sha256 /fd sha256 /a "$%TEMP%\uninstall.exe"' = 0 - - ; Good. Now we can carry on writing the real installer. - - OutFile "${INSTALLER_NAME}" - SetCompressor /SOLID lzma - !finalize '"@SIGNTOOL@" sign /tr http://timestamp.digicert.com /td sha256 /fd sha256 /a "%1"' -!endif - -### - - -!include "MUI.nsh" -!include "WinVer.nsh" - -!define MUI_ABORTWARNING -!define MUI_UNABORTWARNING - -!insertmacro MUI_PAGE_WELCOME - -!ifdef LICENSE_TXT -!insertmacro MUI_PAGE_LICENSE "${LICENSE_TXT}" -!endif - -!ifdef REG_START_MENU -!define MUI_STARTMENUPAGE_NODISABLE -!define MUI_STARTMENUPAGE_DEFAULTFOLDER "Raspberry Pi" -!define MUI_STARTMENUPAGE_REGISTRY_ROOT "${REG_ROOT}" -!define MUI_STARTMENUPAGE_REGISTRY_KEY "${UNINSTALL_PATH}" -!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "${REG_START_MENU}" -!insertmacro MUI_PAGE_STARTMENU Application $SM_Folder -!endif - -!insertmacro MUI_PAGE_INSTFILES - -!define MUI_FINISHPAGE_RUN "$INSTDIR\${MAIN_APP_EXE}" -!insertmacro MUI_PAGE_FINISH - -!insertmacro MUI_UNPAGE_CONFIRM - -!insertmacro MUI_UNPAGE_INSTFILES - -!insertmacro MUI_UNPAGE_FINISH - -###################################################################### -# TRANSLATIONS -###################################################################### - -!insertmacro MUI_LANGUAGE "English" -!insertmacro MUI_LANGUAGE "Dutch" -!insertmacro MUI_LANGUAGE "Italian" - -LangString termMsg ${LANG_ENGLISH} "Raspberry Pi Imager seems to be running and busy.$\nDo you want to terminate process?" -LangString stopMsg ${LANG_ENGLISH} "Stopping Raspberry Pi Imager" -LangString win7Msg ${LANG_ENGLISH} "Windows 7 or above required" -LangString termMsg ${LANG_DUTCH} "Raspberry Pi Imager is momenteel actief.$\nWilt u het programma afsluiten?" -LangString stopMsg ${LANG_DUTCH} "Bezig met afsluiten Raspberry Pi Imager" -LangString win7Msg ${LANG_DUTCH} "Minimaal Windows 7 is vereist" -LangString termMsg ${LANG_ITALIAN} "Raspberry Pi Imager sembra essere in esecuzione e occupato.$\nVuoi terminare il processo Raspberry Pi Imager?" -LangString stopMsg ${LANG_ITALIAN} "Chiusura processo Raspberry Pi Imager" -LangString win7Msg ${LANG_ITALIAN} "Per l'esecuzione del programma รจ richiesto Windows 7 o versioni successive" - -###################################################################### - -!include WinMessages.nsh -!include Logiclib.nsh - -!macro FindWindowOfExe Exe - Push $1 - Push $2 - Push $3 - Push $R0 - Push $R1 - - SetPluginUnload alwaysoff - Push "0" ; Result code - System::Get "(i.r1, i) iss" - Pop $R0 - System::Call "user32::EnumWindows(k R0, i) i.s" - - loop: - Pop $0 - StrCmp $0 "callback1" 0 doneloop - System::Call 'user32.dll::GetWindowThreadProcessId(i r1, *i .r3) i .r2' - System::Call 'kernel32.dll::OpenProcess(i 1040, i 0, i r3) i .r2' - ${IfNot} $2 = 0 - System::Alloc 1024 - Pop $R1 - System::Call "Psapi::EnumProcessModules(i r2, i R1, i 1024, *i .r3) i .r0" - ${IfNot} $0 = 0 - System::Call "*$R1(i .r0)" - System::Call "Psapi::GetModuleBaseName(i r2, i r0, t .r3, i ${NSIS_MAX_STRLEN}) i .r0" - ${IfNot} $0 = 0 - ${If} $3 == "${Exe}" - # Only replace result value if it is first match - Pop $3 - ${If} $3 == 0 - Push $1 - ${Else} - Push $3 - ${EndIf} - ${EndIf} - ${EndIf} - ${EndIf} - System::Free $R1 - System::Call "kernel32::CloseHandle(i r2)" - ${EndIf} - - Push 1 - System::Call "$R0" - Goto loop - doneloop: - SetPluginUnload manual - - System::Free $R0 - Pop $0 - - Pop $R1 - Pop $R0 - Pop $3 - Pop $2 - Pop $1 -!macroend - -!macro TerminateApp - Push $0 ; window handle - Push $1 - Push $2 ; process handle - DetailPrint "$(stopMsg)" - #FindWindow $0 '' '${WND_TITLE}' - !insertmacro FindWindowOfExe '${EXE_TO_TERMINATE}' - IntCmp $0 0 done - System::Call 'user32.dll::GetWindowThreadProcessId(i r0, *i .r1) i .r2' - System::Call 'kernel32.dll::OpenProcess(i 0x00100001, i 0, i r1) i .r2' - SendMessage $0 ${WM_CLOSE} 0 0 /TIMEOUT=2000 - System::Call 'kernel32.dll::WaitForSingleObject(i r2, i 2000) i .r1' - IntCmp $1 0 close - MessageBox MB_YESNOCANCEL|MB_ICONEXCLAMATION "$(termMsg)" /SD IDYES IDYES terminate IDNO close - System::Call 'kernel32.dll::CloseHandle(i r2) i .r1' - Quit - terminate: - System::Call 'kernel32.dll::TerminateProcess(i r2, i 0) i .r1' - close: - System::Call 'kernel32.dll::CloseHandle(i r2) i .r1' - done: - Pop $2 - Pop $1 - Pop $0 -!macroend - -###################################################################### - -Section -MainProgram -${INSTALL_TYPE} -!insertmacro TerminateApp -SetOverwrite ifnewer -SetOutPath "$INSTDIR" -File "deploy\D3Dcompiler_47.dll" -#File "deploy\opengl32sw.dll" -File "deploy\libssl-1_1.dll" -File "deploy\libcrypto-1_1.dll" -File "deploy\fat32format.exe" -File "deploy\libEGL.dll" -File "deploy\libgcc_s_dw2-1.dll" -File "deploy\libGLESV2.dll" -File "deploy\libstdc++-6.dll" -File "deploy\libwinpthread-1.dll" -File "deploy\license.txt" -File "deploy\Qt5Core.dll" -File "deploy\Qt5Gui.dll" -File "deploy\Qt5Network.dll" -File "deploy\Qt5Qml.dll" -File "deploy\Qt5QmlModels.dll" -File "deploy\Qt5QmlWorkerScript.dll" -File "deploy\Qt5Quick.dll" -File "deploy\Qt5QuickControls2.dll" -File "deploy\Qt5QuickTemplates2.dll" -File "deploy\Qt5Svg.dll" -File "deploy\Qt5Widgets.dll" -File "deploy\Qt5WinExtras.dll" -File "deploy\rpi-imager.exe" -File "deploy\rpi-imager-cli.cmd" -SetOutPath "$INSTDIR\styles" -File "deploy\styles\qwindowsvistastyle.dll" -SetOutPath "$INSTDIR\QtQuick.2" -File "deploy\QtQuick.2\plugins.qmltypes" -File "deploy\QtQuick.2\qmldir" -File "deploy\QtQuick.2\qtquick2plugin.dll" -SetOutPath "$INSTDIR\QtQuick\Window.2" -File "deploy\QtQuick\Window.2\plugins.qmltypes" -File "deploy\QtQuick\Window.2\qmldir" -File "deploy\QtQuick\Window.2\windowplugin.dll" -SetOutPath "$INSTDIR\QtQuick\Templates.2" -File "deploy\QtQuick\Templates.2\plugins.qmltypes" -File "deploy\QtQuick\Templates.2\qmldir" -File "deploy\QtQuick\Templates.2\qtquicktemplates2plugin.dll" -SetOutPath "$INSTDIR\QtQuick\Layouts" -File "deploy\QtQuick\Layouts\plugins.qmltypes" -File "deploy\QtQuick\Layouts\qmldir" -File "deploy\QtQuick\Layouts\qquicklayoutsplugin.dll" -SetOutPath "$INSTDIR\QtQuick\Controls.2" -File "deploy\QtQuick\Controls.2\AbstractButton.qml" -File "deploy\QtQuick\Controls.2\Action.qml" -File "deploy\QtQuick\Controls.2\ActionGroup.qml" -File "deploy\QtQuick\Controls.2\ApplicationWindow.qml" -File "deploy\QtQuick\Controls.2\BusyIndicator.qml" -File "deploy\QtQuick\Controls.2\Button.qml" -File "deploy\QtQuick\Controls.2\ButtonGroup.qml" -File "deploy\QtQuick\Controls.2\CheckBox.qml" -File "deploy\QtQuick\Controls.2\CheckDelegate.qml" -File "deploy\QtQuick\Controls.2\ComboBox.qml" -File "deploy\QtQuick\Controls.2\Container.qml" -File "deploy\QtQuick\Controls.2\Control.qml" -File "deploy\QtQuick\Controls.2\DelayButton.qml" -File "deploy\QtQuick\Controls.2\Dial.qml" -File "deploy\QtQuick\Controls.2\Dialog.qml" -File "deploy\QtQuick\Controls.2\DialogButtonBox.qml" -File "deploy\QtQuick\Controls.2\Drawer.qml" -File "deploy\QtQuick\Controls.2\Frame.qml" -File "deploy\QtQuick\Controls.2\GroupBox.qml" -File "deploy\QtQuick\Controls.2\ItemDelegate.qml" -File "deploy\QtQuick\Controls.2\Label.qml" -File "deploy\QtQuick\Controls.2\Menu.qml" -File "deploy\QtQuick\Controls.2\MenuBar.qml" -File "deploy\QtQuick\Controls.2\MenuBarItem.qml" -File "deploy\QtQuick\Controls.2\MenuItem.qml" -File "deploy\QtQuick\Controls.2\MenuSeparator.qml" -File "deploy\QtQuick\Controls.2\Page.qml" -File "deploy\QtQuick\Controls.2\PageIndicator.qml" -File "deploy\QtQuick\Controls.2\Pane.qml" -File "deploy\QtQuick\Controls.2\plugins.qmltypes" -File "deploy\QtQuick\Controls.2\Popup.qml" -File "deploy\QtQuick\Controls.2\ProgressBar.qml" -File "deploy\QtQuick\Controls.2\qmldir" -File "deploy\QtQuick\Controls.2\qtquickcontrols2plugin.dll" -File "deploy\QtQuick\Controls.2\RadioButton.qml" -File "deploy\QtQuick\Controls.2\RadioDelegate.qml" -File "deploy\QtQuick\Controls.2\RangeSlider.qml" -File "deploy\QtQuick\Controls.2\RoundButton.qml" -File "deploy\QtQuick\Controls.2\ScrollBar.qml" -File "deploy\QtQuick\Controls.2\ScrollIndicator.qml" -File "deploy\QtQuick\Controls.2\ScrollView.qml" -File "deploy\QtQuick\Controls.2\Slider.qml" -File "deploy\QtQuick\Controls.2\SpinBox.qml" -File "deploy\QtQuick\Controls.2\SplitView.qml" -File "deploy\QtQuick\Controls.2\StackView.qml" -File "deploy\QtQuick\Controls.2\SwipeDelegate.qml" -File "deploy\QtQuick\Controls.2\SwipeView.qml" -File "deploy\QtQuick\Controls.2\Switch.qml" -File "deploy\QtQuick\Controls.2\SwitchDelegate.qml" -File "deploy\QtQuick\Controls.2\TabBar.qml" -File "deploy\QtQuick\Controls.2\TabButton.qml" -File "deploy\QtQuick\Controls.2\TextArea.qml" -File "deploy\QtQuick\Controls.2\TextField.qml" -File "deploy\QtQuick\Controls.2\ToolBar.qml" -File "deploy\QtQuick\Controls.2\ToolButton.qml" -File "deploy\QtQuick\Controls.2\ToolSeparator.qml" -File "deploy\QtQuick\Controls.2\ToolTip.qml" -File "deploy\QtQuick\Controls.2\Tumbler.qml" -SetOutPath "$INSTDIR\QtQuick\Controls.2\Universal" -File "deploy\QtQuick\Controls.2\Universal\ApplicationWindow.qml" -File "deploy\QtQuick\Controls.2\Universal\BusyIndicator.qml" -File "deploy\QtQuick\Controls.2\Universal\Button.qml" -File "deploy\QtQuick\Controls.2\Universal\CheckBox.qml" -File "deploy\QtQuick\Controls.2\Universal\CheckDelegate.qml" -File "deploy\QtQuick\Controls.2\Universal\CheckIndicator.qml" -File "deploy\QtQuick\Controls.2\Universal\ComboBox.qml" -File "deploy\QtQuick\Controls.2\Universal\DelayButton.qml" -File "deploy\QtQuick\Controls.2\Universal\Dial.qml" -File "deploy\QtQuick\Controls.2\Universal\Dialog.qml" -File "deploy\QtQuick\Controls.2\Universal\DialogButtonBox.qml" -File "deploy\QtQuick\Controls.2\Universal\Drawer.qml" -File "deploy\QtQuick\Controls.2\Universal\Frame.qml" -File "deploy\QtQuick\Controls.2\Universal\GroupBox.qml" -File "deploy\QtQuick\Controls.2\Universal\ItemDelegate.qml" -File "deploy\QtQuick\Controls.2\Universal\Label.qml" -File "deploy\QtQuick\Controls.2\Universal\Menu.qml" -File "deploy\QtQuick\Controls.2\Universal\MenuBar.qml" -File "deploy\QtQuick\Controls.2\Universal\MenuBarItem.qml" -File "deploy\QtQuick\Controls.2\Universal\MenuItem.qml" -File "deploy\QtQuick\Controls.2\Universal\MenuSeparator.qml" -File "deploy\QtQuick\Controls.2\Universal\Page.qml" -File "deploy\QtQuick\Controls.2\Universal\PageIndicator.qml" -File "deploy\QtQuick\Controls.2\Universal\Pane.qml" -File "deploy\QtQuick\Controls.2\Universal\plugins.qmltypes" -File "deploy\QtQuick\Controls.2\Universal\Popup.qml" -File "deploy\QtQuick\Controls.2\Universal\ProgressBar.qml" -File "deploy\QtQuick\Controls.2\Universal\qmldir" -File "deploy\QtQuick\Controls.2\Universal\qtquickcontrols2universalstyleplugin.dll" -File "deploy\QtQuick\Controls.2\Universal\RadioButton.qml" -File "deploy\QtQuick\Controls.2\Universal\RadioDelegate.qml" -File "deploy\QtQuick\Controls.2\Universal\RadioIndicator.qml" -File "deploy\QtQuick\Controls.2\Universal\RangeSlider.qml" -File "deploy\QtQuick\Controls.2\Universal\RoundButton.qml" -File "deploy\QtQuick\Controls.2\Universal\ScrollBar.qml" -File "deploy\QtQuick\Controls.2\Universal\ScrollIndicator.qml" -File "deploy\QtQuick\Controls.2\Universal\Slider.qml" -File "deploy\QtQuick\Controls.2\Universal\SpinBox.qml" -File "deploy\QtQuick\Controls.2\Universal\SplitView.qml" -File "deploy\QtQuick\Controls.2\Universal\StackView.qml" -File "deploy\QtQuick\Controls.2\Universal\SwipeDelegate.qml" -File "deploy\QtQuick\Controls.2\Universal\Switch.qml" -File "deploy\QtQuick\Controls.2\Universal\SwitchDelegate.qml" -File "deploy\QtQuick\Controls.2\Universal\SwitchIndicator.qml" -File "deploy\QtQuick\Controls.2\Universal\TabBar.qml" -File "deploy\QtQuick\Controls.2\Universal\TabButton.qml" -File "deploy\QtQuick\Controls.2\Universal\TextArea.qml" -File "deploy\QtQuick\Controls.2\Universal\TextField.qml" -File "deploy\QtQuick\Controls.2\Universal\ToolBar.qml" -File "deploy\QtQuick\Controls.2\Universal\ToolButton.qml" -File "deploy\QtQuick\Controls.2\Universal\ToolSeparator.qml" -File "deploy\QtQuick\Controls.2\Universal\ToolTip.qml" -File "deploy\QtQuick\Controls.2\Universal\Tumbler.qml" -SetOutPath "$INSTDIR\QtQuick\Controls.2\Material" -File "deploy\QtQuick\Controls.2\Material\ApplicationWindow.qml" -File "deploy\QtQuick\Controls.2\Material\BoxShadow.qml" -File "deploy\QtQuick\Controls.2\Material\BusyIndicator.qml" -File "deploy\QtQuick\Controls.2\Material\Button.qml" -File "deploy\QtQuick\Controls.2\Material\CheckBox.qml" -File "deploy\QtQuick\Controls.2\Material\CheckDelegate.qml" -File "deploy\QtQuick\Controls.2\Material\CheckIndicator.qml" -File "deploy\QtQuick\Controls.2\Material\ComboBox.qml" -File "deploy\QtQuick\Controls.2\Material\CursorDelegate.qml" -File "deploy\QtQuick\Controls.2\Material\DelayButton.qml" -File "deploy\QtQuick\Controls.2\Material\Dial.qml" -File "deploy\QtQuick\Controls.2\Material\Dialog.qml" -File "deploy\QtQuick\Controls.2\Material\DialogButtonBox.qml" -File "deploy\QtQuick\Controls.2\Material\Drawer.qml" -File "deploy\QtQuick\Controls.2\Material\ElevationEffect.qml" -File "deploy\QtQuick\Controls.2\Material\Frame.qml" -File "deploy\QtQuick\Controls.2\Material\GroupBox.qml" -File "deploy\QtQuick\Controls.2\Material\ItemDelegate.qml" -File "deploy\QtQuick\Controls.2\Material\Label.qml" -File "deploy\QtQuick\Controls.2\Material\Menu.qml" -File "deploy\QtQuick\Controls.2\Material\MenuBar.qml" -File "deploy\QtQuick\Controls.2\Material\MenuBarItem.qml" -File "deploy\QtQuick\Controls.2\Material\MenuItem.qml" -File "deploy\QtQuick\Controls.2\Material\MenuSeparator.qml" -File "deploy\QtQuick\Controls.2\Material\Page.qml" -File "deploy\QtQuick\Controls.2\Material\PageIndicator.qml" -File "deploy\QtQuick\Controls.2\Material\Pane.qml" -File "deploy\QtQuick\Controls.2\Material\plugins.qmltypes" -File "deploy\QtQuick\Controls.2\Material\Popup.qml" -File "deploy\QtQuick\Controls.2\Material\ProgressBar.qml" -File "deploy\QtQuick\Controls.2\Material\qmldir" -File "deploy\QtQuick\Controls.2\Material\qtquickcontrols2materialstyleplugin.dll" -File "deploy\QtQuick\Controls.2\Material\RadioButton.qml" -File "deploy\QtQuick\Controls.2\Material\RadioDelegate.qml" -File "deploy\QtQuick\Controls.2\Material\RadioIndicator.qml" -File "deploy\QtQuick\Controls.2\Material\RangeSlider.qml" -File "deploy\QtQuick\Controls.2\Material\RectangularGlow.qml" -File "deploy\QtQuick\Controls.2\Material\RoundButton.qml" -File "deploy\QtQuick\Controls.2\Material\ScrollBar.qml" -File "deploy\QtQuick\Controls.2\Material\ScrollIndicator.qml" -File "deploy\QtQuick\Controls.2\Material\Slider.qml" -File "deploy\QtQuick\Controls.2\Material\SliderHandle.qml" -File "deploy\QtQuick\Controls.2\Material\SpinBox.qml" -File "deploy\QtQuick\Controls.2\Material\SplitView.qml" -File "deploy\QtQuick\Controls.2\Material\StackView.qml" -File "deploy\QtQuick\Controls.2\Material\SwipeDelegate.qml" -File "deploy\QtQuick\Controls.2\Material\SwipeView.qml" -File "deploy\QtQuick\Controls.2\Material\Switch.qml" -File "deploy\QtQuick\Controls.2\Material\SwitchDelegate.qml" -File "deploy\QtQuick\Controls.2\Material\SwitchIndicator.qml" -File "deploy\QtQuick\Controls.2\Material\TabBar.qml" -File "deploy\QtQuick\Controls.2\Material\TabButton.qml" -File "deploy\QtQuick\Controls.2\Material\TextArea.qml" -File "deploy\QtQuick\Controls.2\Material\TextField.qml" -File "deploy\QtQuick\Controls.2\Material\ToolBar.qml" -File "deploy\QtQuick\Controls.2\Material\ToolButton.qml" -File "deploy\QtQuick\Controls.2\Material\ToolSeparator.qml" -File "deploy\QtQuick\Controls.2\Material\ToolTip.qml" -File "deploy\QtQuick\Controls.2\Material\Tumbler.qml" -SetOutPath "$INSTDIR\QtQuick\Controls.2\Imagine" -File "deploy\QtQuick\Controls.2\Imagine\ApplicationWindow.qml" -File "deploy\QtQuick\Controls.2\Imagine\BusyIndicator.qml" -File "deploy\QtQuick\Controls.2\Imagine\Button.qml" -File "deploy\QtQuick\Controls.2\Imagine\CheckBox.qml" -File "deploy\QtQuick\Controls.2\Imagine\CheckDelegate.qml" -File "deploy\QtQuick\Controls.2\Imagine\ComboBox.qml" -File "deploy\QtQuick\Controls.2\Imagine\DelayButton.qml" -File "deploy\QtQuick\Controls.2\Imagine\Dial.qml" -File "deploy\QtQuick\Controls.2\Imagine\Dialog.qml" -File "deploy\QtQuick\Controls.2\Imagine\DialogButtonBox.qml" -File "deploy\QtQuick\Controls.2\Imagine\Drawer.qml" -File "deploy\QtQuick\Controls.2\Imagine\Frame.qml" -File "deploy\QtQuick\Controls.2\Imagine\GroupBox.qml" -File "deploy\QtQuick\Controls.2\Imagine\ItemDelegate.qml" -File "deploy\QtQuick\Controls.2\Imagine\Label.qml" -File "deploy\QtQuick\Controls.2\Imagine\Menu.qml" -File "deploy\QtQuick\Controls.2\Imagine\MenuItem.qml" -File "deploy\QtQuick\Controls.2\Imagine\MenuSeparator.qml" -File "deploy\QtQuick\Controls.2\Imagine\Page.qml" -File "deploy\QtQuick\Controls.2\Imagine\PageIndicator.qml" -File "deploy\QtQuick\Controls.2\Imagine\Pane.qml" -File "deploy\QtQuick\Controls.2\Imagine\plugins.qmltypes" -File "deploy\QtQuick\Controls.2\Imagine\Popup.qml" -File "deploy\QtQuick\Controls.2\Imagine\ProgressBar.qml" -File "deploy\QtQuick\Controls.2\Imagine\qmldir" -File "deploy\QtQuick\Controls.2\Imagine\qtquickcontrols2imaginestyleplugin.dll" -File "deploy\QtQuick\Controls.2\Imagine\RadioButton.qml" -File "deploy\QtQuick\Controls.2\Imagine\RadioDelegate.qml" -File "deploy\QtQuick\Controls.2\Imagine\RangeSlider.qml" -File "deploy\QtQuick\Controls.2\Imagine\RoundButton.qml" -File "deploy\QtQuick\Controls.2\Imagine\ScrollBar.qml" -File "deploy\QtQuick\Controls.2\Imagine\ScrollIndicator.qml" -File "deploy\QtQuick\Controls.2\Imagine\Slider.qml" -File "deploy\QtQuick\Controls.2\Imagine\SpinBox.qml" -File "deploy\QtQuick\Controls.2\Imagine\SplitView.qml" -File "deploy\QtQuick\Controls.2\Imagine\StackView.qml" -File "deploy\QtQuick\Controls.2\Imagine\SwipeDelegate.qml" -File "deploy\QtQuick\Controls.2\Imagine\SwipeView.qml" -File "deploy\QtQuick\Controls.2\Imagine\Switch.qml" -File "deploy\QtQuick\Controls.2\Imagine\SwitchDelegate.qml" -File "deploy\QtQuick\Controls.2\Imagine\TabBar.qml" -File "deploy\QtQuick\Controls.2\Imagine\TabButton.qml" -File "deploy\QtQuick\Controls.2\Imagine\TextArea.qml" -File "deploy\QtQuick\Controls.2\Imagine\TextField.qml" -File "deploy\QtQuick\Controls.2\Imagine\ToolBar.qml" -File "deploy\QtQuick\Controls.2\Imagine\ToolButton.qml" -File "deploy\QtQuick\Controls.2\Imagine\ToolSeparator.qml" -File "deploy\QtQuick\Controls.2\Imagine\ToolTip.qml" -File "deploy\QtQuick\Controls.2\Imagine\Tumbler.qml" -SetOutPath "$INSTDIR\QtQuick\Controls.2\Fusion" -File "deploy\QtQuick\Controls.2\Fusion\ApplicationWindow.qml" -File "deploy\QtQuick\Controls.2\Fusion\BusyIndicator.qml" -File "deploy\QtQuick\Controls.2\Fusion\Button.qml" -File "deploy\QtQuick\Controls.2\Fusion\ButtonPanel.qml" -File "deploy\QtQuick\Controls.2\Fusion\CheckBox.qml" -File "deploy\QtQuick\Controls.2\Fusion\CheckDelegate.qml" -File "deploy\QtQuick\Controls.2\Fusion\CheckIndicator.qml" -File "deploy\QtQuick\Controls.2\Fusion\ComboBox.qml" -File "deploy\QtQuick\Controls.2\Fusion\DelayButton.qml" -File "deploy\QtQuick\Controls.2\Fusion\Dial.qml" -File "deploy\QtQuick\Controls.2\Fusion\Dialog.qml" -File "deploy\QtQuick\Controls.2\Fusion\DialogButtonBox.qml" -File "deploy\QtQuick\Controls.2\Fusion\Drawer.qml" -File "deploy\QtQuick\Controls.2\Fusion\Frame.qml" -File "deploy\QtQuick\Controls.2\Fusion\GroupBox.qml" -File "deploy\QtQuick\Controls.2\Fusion\ItemDelegate.qml" -File "deploy\QtQuick\Controls.2\Fusion\Label.qml" -File "deploy\QtQuick\Controls.2\Fusion\Menu.qml" -File "deploy\QtQuick\Controls.2\Fusion\MenuBar.qml" -File "deploy\QtQuick\Controls.2\Fusion\MenuBarItem.qml" -File "deploy\QtQuick\Controls.2\Fusion\MenuItem.qml" -File "deploy\QtQuick\Controls.2\Fusion\MenuSeparator.qml" -File "deploy\QtQuick\Controls.2\Fusion\Page.qml" -File "deploy\QtQuick\Controls.2\Fusion\PageIndicator.qml" -File "deploy\QtQuick\Controls.2\Fusion\Pane.qml" -File "deploy\QtQuick\Controls.2\Fusion\plugins.qmltypes" -File "deploy\QtQuick\Controls.2\Fusion\Popup.qml" -File "deploy\QtQuick\Controls.2\Fusion\ProgressBar.qml" -File "deploy\QtQuick\Controls.2\Fusion\qmldir" -File "deploy\QtQuick\Controls.2\Fusion\qtquickcontrols2fusionstyleplugin.dll" -File "deploy\QtQuick\Controls.2\Fusion\RadioButton.qml" -File "deploy\QtQuick\Controls.2\Fusion\RadioDelegate.qml" -File "deploy\QtQuick\Controls.2\Fusion\RadioIndicator.qml" -File "deploy\QtQuick\Controls.2\Fusion\RangeSlider.qml" -File "deploy\QtQuick\Controls.2\Fusion\RoundButton.qml" -File "deploy\QtQuick\Controls.2\Fusion\ScrollBar.qml" -File "deploy\QtQuick\Controls.2\Fusion\ScrollIndicator.qml" -File "deploy\QtQuick\Controls.2\Fusion\Slider.qml" -File "deploy\QtQuick\Controls.2\Fusion\SliderGroove.qml" -File "deploy\QtQuick\Controls.2\Fusion\SliderHandle.qml" -File "deploy\QtQuick\Controls.2\Fusion\SpinBox.qml" -File "deploy\QtQuick\Controls.2\Fusion\SplitView.qml" -File "deploy\QtQuick\Controls.2\Fusion\SwipeDelegate.qml" -File "deploy\QtQuick\Controls.2\Fusion\Switch.qml" -File "deploy\QtQuick\Controls.2\Fusion\SwitchDelegate.qml" -File "deploy\QtQuick\Controls.2\Fusion\SwitchIndicator.qml" -File "deploy\QtQuick\Controls.2\Fusion\TabBar.qml" -File "deploy\QtQuick\Controls.2\Fusion\TabButton.qml" -File "deploy\QtQuick\Controls.2\Fusion\TextArea.qml" -File "deploy\QtQuick\Controls.2\Fusion\TextField.qml" -File "deploy\QtQuick\Controls.2\Fusion\ToolBar.qml" -File "deploy\QtQuick\Controls.2\Fusion\ToolButton.qml" -File "deploy\QtQuick\Controls.2\Fusion\ToolSeparator.qml" -File "deploy\QtQuick\Controls.2\Fusion\ToolTip.qml" -File "deploy\QtQuick\Controls.2\Fusion\Tumbler.qml" -SetOutPath "$INSTDIR\QtGraphicalEffects" -File "deploy\QtGraphicalEffects\Blend.qml" -File "deploy\QtGraphicalEffects\BrightnessContrast.qml" -File "deploy\QtGraphicalEffects\Colorize.qml" -File "deploy\QtGraphicalEffects\ColorOverlay.qml" -File "deploy\QtGraphicalEffects\ConicalGradient.qml" -File "deploy\QtGraphicalEffects\Desaturate.qml" -File "deploy\QtGraphicalEffects\DirectionalBlur.qml" -File "deploy\QtGraphicalEffects\Displace.qml" -File "deploy\QtGraphicalEffects\DropShadow.qml" -File "deploy\QtGraphicalEffects\FastBlur.qml" -File "deploy\QtGraphicalEffects\GammaAdjust.qml" -File "deploy\QtGraphicalEffects\GaussianBlur.qml" -File "deploy\QtGraphicalEffects\Glow.qml" -File "deploy\QtGraphicalEffects\HueSaturation.qml" -File "deploy\QtGraphicalEffects\InnerShadow.qml" -File "deploy\QtGraphicalEffects\LevelAdjust.qml" -File "deploy\QtGraphicalEffects\LinearGradient.qml" -File "deploy\QtGraphicalEffects\MaskedBlur.qml" -File "deploy\QtGraphicalEffects\OpacityMask.qml" -File "deploy\QtGraphicalEffects\plugins.qmltypes" -File "deploy\QtGraphicalEffects\qmldir" -File "deploy\QtGraphicalEffects\qtgraphicaleffectsplugin.dll" -File "deploy\QtGraphicalEffects\RadialBlur.qml" -File "deploy\QtGraphicalEffects\RadialGradient.qml" -File "deploy\QtGraphicalEffects\RectangularGlow.qml" -File "deploy\QtGraphicalEffects\RecursiveBlur.qml" -File "deploy\QtGraphicalEffects\ThresholdMask.qml" -File "deploy\QtGraphicalEffects\ZoomBlur.qml" -SetOutPath "$INSTDIR\QtGraphicalEffects\private" -File "deploy\QtGraphicalEffects\private\DropShadowBase.qml" -File "deploy\QtGraphicalEffects\private\DropShadowBase.qmlc" -File "deploy\QtGraphicalEffects\private\FastGlow.qml" -File "deploy\QtGraphicalEffects\private\FastGlow.qmlc" -File "deploy\QtGraphicalEffects\private\FastInnerShadow.qml" -File "deploy\QtGraphicalEffects\private\FastInnerShadow.qmlc" -File "deploy\QtGraphicalEffects\private\FastMaskedBlur.qml" -File "deploy\QtGraphicalEffects\private\FastMaskedBlur.qmlc" -File "deploy\QtGraphicalEffects\private\GaussianDirectionalBlur.qml" -File "deploy\QtGraphicalEffects\private\GaussianDirectionalBlur.qmlc" -File "deploy\QtGraphicalEffects\private\GaussianGlow.qml" -File "deploy\QtGraphicalEffects\private\GaussianGlow.qmlc" -File "deploy\QtGraphicalEffects\private\GaussianInnerShadow.qml" -File "deploy\QtGraphicalEffects\private\GaussianInnerShadow.qmlc" -File "deploy\QtGraphicalEffects\private\GaussianMaskedBlur.qml" -File "deploy\QtGraphicalEffects\private\GaussianMaskedBlur.qmlc" -File "deploy\QtGraphicalEffects\private\qmldir" -File "deploy\QtGraphicalEffects\private\qtgraphicaleffectsprivate.dll" -#SetOutPath "$INSTDIR\Qt\labs\settings" -#File "deploy\Qt\labs\settings\plugins.qmltypes" -#File "deploy\Qt\labs\settings\qmldir" -#File "deploy\Qt\labs\settings\qmlsettingsplugin.dll" -#SetOutPath "$INSTDIR\qmltooling" -#File "deploy\qmltooling\qmldbg_debugger.dll" -#File "deploy\qmltooling\qmldbg_inspector.dll" -#File "deploy\qmltooling\qmldbg_local.dll" -#File "deploy\qmltooling\qmldbg_messages.dll" -#File "deploy\qmltooling\qmldbg_native.dll" -#File "deploy\qmltooling\qmldbg_nativedebugger.dll" -#File "deploy\qmltooling\qmldbg_preview.dll" -#File "deploy\qmltooling\qmldbg_profiler.dll" -#File "deploy\qmltooling\qmldbg_quickprofiler.dll" -#File "deploy\qmltooling\qmldbg_server.dll" -#File "deploy\qmltooling\qmldbg_tcp.dll" -SetOutPath "$INSTDIR\platforms" -File "deploy\platforms\qwindows.dll" -SetOutPath "$INSTDIR\imageformats" -File "deploy\imageformats\qicns.dll" -File "deploy\imageformats\qico.dll" -File "deploy\imageformats\qjpeg.dll" -File "deploy\imageformats\qsvg.dll" -File "deploy\imageformats\qtga.dll" -File "deploy\imageformats\qwbmp.dll" -SetOutPath "$INSTDIR\iconengines" -File "deploy\iconengines\qsvgicon.dll" -SetOutPath "$INSTDIR\bearer" -File "deploy\bearer\qgenericbearer.dll" -SectionEnd - -###################################################################### - -Section -Icons_Reg - -!ifndef INNER -SetOutPath "$INSTDIR" -File "$%TEMP%\uninstall.exe" -!endif - -!ifdef REG_START_MENU -!insertmacro MUI_STARTMENU_WRITE_BEGIN Application -CreateDirectory "$SMPROGRAMS\$SM_Folder" -CreateShortCut "$SMPROGRAMS\$SM_Folder\${APP_NAME}.lnk" "$INSTDIR\${MAIN_APP_EXE}" -!ifdef WEB_SITE -WriteIniStr "$INSTDIR\${APP_NAME} website.url" "InternetShortcut" "URL" "${WEB_SITE}" -CreateShortCut "$SMPROGRAMS\$SM_Folder\${APP_NAME} Website.lnk" "$INSTDIR\${APP_NAME} website.url" -!endif -!insertmacro MUI_STARTMENU_WRITE_END -!endif - -!ifndef REG_START_MENU -CreateDirectory "$SMPROGRAMS\Raspberry Pi" -CreateShortCut "$SMPROGRAMS\Raspberry Pi\${APP_NAME}.lnk" "$INSTDIR\${MAIN_APP_EXE}" -!ifdef WEB_SITE -WriteIniStr "$INSTDIR\${APP_NAME} website.url" "InternetShortcut" "URL" "${WEB_SITE}" -CreateShortCut "$SMPROGRAMS\Raspberry Pi\${APP_NAME} Website.lnk" "$INSTDIR\${APP_NAME} website.url" -!endif -!endif - -WriteRegStr ${REG_ROOT} "${REG_APP_PATH}" "" "$INSTDIR\${MAIN_APP_EXE}" -WriteRegStr ${REG_ROOT} "${UNINSTALL_PATH}" "DisplayName" "${APP_NAME}" -WriteRegStr ${REG_ROOT} "${UNINSTALL_PATH}" "UninstallString" "$INSTDIR\uninstall.exe" -WriteRegStr ${REG_ROOT} "${UNINSTALL_PATH}" "DisplayIcon" "$INSTDIR\${MAIN_APP_EXE}" -WriteRegStr ${REG_ROOT} "${UNINSTALL_PATH}" "DisplayVersion" "${VERSION}" -WriteRegStr ${REG_ROOT} "${UNINSTALL_PATH}" "Publisher" "${COMP_NAME}" - -!ifdef WEB_SITE -WriteRegStr ${REG_ROOT} "${UNINSTALL_PATH}" "URLInfoAbout" "${WEB_SITE}" -!endif - - -WriteRegStr SHCTX "Software\Classes\.zip\OpenWithProgIds" "RPI_IMAGINGUTILITY" "" -WriteRegStr SHCTX "Software\Classes\.gz\OpenWithProgIds" "RPI_IMAGINGUTILITY" "" -WriteRegStr SHCTX "Software\Classes\.xz\OpenWithProgIds" "RPI_IMAGINGUTILITY" "" -WriteRegStr SHCTX "Software\Classes\.img\OpenWithProgIds" "RPI_IMAGINGUTILITY" "" -WriteRegStr SHCTX "Software\Classes\.zstd\OpenWithProgIds" "RPI_IMAGINGUTILITY" "" -WriteRegStr SHCTX "Software\Classes\RPI_IMAGINGUTILITY\shell\open" "FriendlyAppName" "Raspberry Pi Imager" -WriteRegStr SHCTX "Software\Classes\RPI_IMAGINGUTILITY\shell\open\command" "" '"$INSTDIR\rpi-imager.exe" "%1"' - -SectionEnd - -###################################################################### - -Section Uninstall -${INSTALL_TYPE} -Delete "$INSTDIR\D3Dcompiler_47.dll" -Delete "$INSTDIR\opengl32sw.dll" -Delete "$INSTDIR\libssl-1_1.dll" -Delete "$INSTDIR\libcrypto-1_1.dll" -Delete "$INSTDIR\fat32format.exe" -Delete "$INSTDIR\libEGL.dll" -Delete "$INSTDIR\libgcc_s_dw2-1.dll" -Delete "$INSTDIR\libGLESV2.dll" -Delete "$INSTDIR\libstdc++-6.dll" -Delete "$INSTDIR\libwinpthread-1.dll" -Delete "$INSTDIR\license.txt" -Delete "$INSTDIR\Qt5Core.dll" -Delete "$INSTDIR\Qt5Gui.dll" -Delete "$INSTDIR\Qt5Network.dll" -Delete "$INSTDIR\Qt5Qml.dll" -Delete "$INSTDIR\Qt5QmlModels.dll" -Delete "$INSTDIR\Qt5QmlWorkerScript.dll" -Delete "$INSTDIR\Qt5Quick.dll" -Delete "$INSTDIR\Qt5QuickControls2.dll" -Delete "$INSTDIR\Qt5QuickTemplates2.dll" -Delete "$INSTDIR\Qt5Svg.dll" -Delete "$INSTDIR\Qt5Widgets.dll" -Delete "$INSTDIR\Qt5WinExtras.dll" -# Old name -Delete "$INSTDIR\imagingutility.exe" -Delete "$INSTDIR\rpi-imager.exe" -Delete "$INSTDIR\rpi-imager-cli.cmd" -Delete "$INSTDIR\styles\qwindowsvistastyle.dll" -Delete "$INSTDIR\QtQuick.2\plugins.qmltypes" -Delete "$INSTDIR\QtQuick.2\qmldir" -Delete "$INSTDIR\QtQuick.2\qtquick2plugin.dll" -Delete "$INSTDIR\QtQuick\Window.2\plugins.qmltypes" -Delete "$INSTDIR\QtQuick\Window.2\qmldir" -Delete "$INSTDIR\QtQuick\Window.2\windowplugin.dll" -Delete "$INSTDIR\QtQuick\Templates.2\plugins.qmltypes" -Delete "$INSTDIR\QtQuick\Templates.2\qmldir" -Delete "$INSTDIR\QtQuick\Templates.2\qtquicktemplates2plugin.dll" -Delete "$INSTDIR\QtQuick\Layouts\plugins.qmltypes" -Delete "$INSTDIR\QtQuick\Layouts\qmldir" -Delete "$INSTDIR\QtQuick\Layouts\qquicklayoutsplugin.dll" -Delete "$INSTDIR\QtQuick\Controls.2\AbstractButton.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Action.qml" -Delete "$INSTDIR\QtQuick\Controls.2\ActionGroup.qml" -Delete "$INSTDIR\QtQuick\Controls.2\ApplicationWindow.qml" -Delete "$INSTDIR\QtQuick\Controls.2\BusyIndicator.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Button.qml" -Delete "$INSTDIR\QtQuick\Controls.2\ButtonGroup.qml" -Delete "$INSTDIR\QtQuick\Controls.2\CheckBox.qml" -Delete "$INSTDIR\QtQuick\Controls.2\CheckDelegate.qml" -Delete "$INSTDIR\QtQuick\Controls.2\ComboBox.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Container.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Control.qml" -Delete "$INSTDIR\QtQuick\Controls.2\DelayButton.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Dial.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Dialog.qml" -Delete "$INSTDIR\QtQuick\Controls.2\DialogButtonBox.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Drawer.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Frame.qml" -Delete "$INSTDIR\QtQuick\Controls.2\GroupBox.qml" -Delete "$INSTDIR\QtQuick\Controls.2\ItemDelegate.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Label.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Menu.qml" -Delete "$INSTDIR\QtQuick\Controls.2\MenuBar.qml" -Delete "$INSTDIR\QtQuick\Controls.2\MenuBarItem.qml" -Delete "$INSTDIR\QtQuick\Controls.2\MenuItem.qml" -Delete "$INSTDIR\QtQuick\Controls.2\MenuSeparator.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Page.qml" -Delete "$INSTDIR\QtQuick\Controls.2\PageIndicator.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Pane.qml" -Delete "$INSTDIR\QtQuick\Controls.2\plugins.qmltypes" -Delete "$INSTDIR\QtQuick\Controls.2\Popup.qml" -Delete "$INSTDIR\QtQuick\Controls.2\ProgressBar.qml" -Delete "$INSTDIR\QtQuick\Controls.2\qmldir" -Delete "$INSTDIR\QtQuick\Controls.2\qtquickcontrols2plugin.dll" -Delete "$INSTDIR\QtQuick\Controls.2\RadioButton.qml" -Delete "$INSTDIR\QtQuick\Controls.2\RadioDelegate.qml" -Delete "$INSTDIR\QtQuick\Controls.2\RangeSlider.qml" -Delete "$INSTDIR\QtQuick\Controls.2\RoundButton.qml" -Delete "$INSTDIR\QtQuick\Controls.2\ScrollBar.qml" -Delete "$INSTDIR\QtQuick\Controls.2\ScrollIndicator.qml" -Delete "$INSTDIR\QtQuick\Controls.2\ScrollView.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Slider.qml" -Delete "$INSTDIR\QtQuick\Controls.2\SpinBox.qml" -Delete "$INSTDIR\QtQuick\Controls.2\SplitView.qml" -Delete "$INSTDIR\QtQuick\Controls.2\StackView.qml" -Delete "$INSTDIR\QtQuick\Controls.2\SwipeDelegate.qml" -Delete "$INSTDIR\QtQuick\Controls.2\SwipeView.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Switch.qml" -Delete "$INSTDIR\QtQuick\Controls.2\SwitchDelegate.qml" -Delete "$INSTDIR\QtQuick\Controls.2\TabBar.qml" -Delete "$INSTDIR\QtQuick\Controls.2\TabButton.qml" -Delete "$INSTDIR\QtQuick\Controls.2\TextArea.qml" -Delete "$INSTDIR\QtQuick\Controls.2\TextField.qml" -Delete "$INSTDIR\QtQuick\Controls.2\ToolBar.qml" -Delete "$INSTDIR\QtQuick\Controls.2\ToolButton.qml" -Delete "$INSTDIR\QtQuick\Controls.2\ToolSeparator.qml" -Delete "$INSTDIR\QtQuick\Controls.2\ToolTip.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Tumbler.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Universal\ApplicationWindow.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Universal\BusyIndicator.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Universal\Button.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Universal\CheckBox.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Universal\CheckDelegate.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Universal\CheckIndicator.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Universal\ComboBox.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Universal\DelayButton.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Universal\Dial.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Universal\Dialog.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Universal\DialogButtonBox.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Universal\Drawer.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Universal\Frame.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Universal\GroupBox.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Universal\ItemDelegate.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Universal\Label.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Universal\Menu.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Universal\MenuBar.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Universal\MenuBarItem.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Universal\MenuItem.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Universal\MenuSeparator.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Universal\Page.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Universal\PageIndicator.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Universal\Pane.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Universal\plugins.qmltypes" -Delete "$INSTDIR\QtQuick\Controls.2\Universal\Popup.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Universal\ProgressBar.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Universal\qmldir" -Delete "$INSTDIR\QtQuick\Controls.2\Universal\qtquickcontrols2universalstyleplugin.dll" -Delete "$INSTDIR\QtQuick\Controls.2\Universal\RadioButton.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Universal\RadioDelegate.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Universal\RadioIndicator.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Universal\RangeSlider.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Universal\RoundButton.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Universal\ScrollBar.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Universal\ScrollIndicator.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Universal\Slider.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Universal\SpinBox.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Universal\SplitView.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Universal\StackView.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Universal\SwipeDelegate.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Universal\Switch.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Universal\SwitchDelegate.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Universal\SwitchIndicator.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Universal\TabBar.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Universal\TabButton.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Universal\TextArea.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Universal\TextField.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Universal\ToolBar.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Universal\ToolButton.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Universal\ToolSeparator.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Universal\ToolTip.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Universal\Tumbler.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Material\ApplicationWindow.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Material\BoxShadow.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Material\BusyIndicator.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Material\Button.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Material\CheckBox.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Material\CheckDelegate.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Material\CheckIndicator.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Material\ComboBox.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Material\CursorDelegate.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Material\DelayButton.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Material\Dial.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Material\Dialog.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Material\DialogButtonBox.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Material\Drawer.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Material\ElevationEffect.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Material\Frame.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Material\GroupBox.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Material\ItemDelegate.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Material\Label.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Material\Menu.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Material\MenuBar.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Material\MenuBarItem.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Material\MenuItem.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Material\MenuSeparator.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Material\Page.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Material\PageIndicator.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Material\Pane.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Material\plugins.qmltypes" -Delete "$INSTDIR\QtQuick\Controls.2\Material\Popup.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Material\ProgressBar.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Material\qmldir" -Delete "$INSTDIR\QtQuick\Controls.2\Material\qtquickcontrols2materialstyleplugin.dll" -Delete "$INSTDIR\QtQuick\Controls.2\Material\RadioButton.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Material\RadioDelegate.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Material\RadioIndicator.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Material\RangeSlider.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Material\RectangularGlow.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Material\RoundButton.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Material\ScrollBar.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Material\ScrollIndicator.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Material\Slider.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Material\SliderHandle.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Material\SpinBox.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Material\SplitView.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Material\StackView.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Material\SwipeDelegate.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Material\SwipeView.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Material\Switch.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Material\SwitchDelegate.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Material\SwitchIndicator.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Material\TabBar.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Material\TabButton.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Material\TextArea.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Material\TextField.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Material\ToolBar.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Material\ToolButton.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Material\ToolSeparator.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Material\ToolTip.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Material\Tumbler.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Imagine\ApplicationWindow.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Imagine\BusyIndicator.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Imagine\Button.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Imagine\CheckBox.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Imagine\CheckDelegate.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Imagine\ComboBox.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Imagine\DelayButton.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Imagine\Dial.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Imagine\Dialog.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Imagine\DialogButtonBox.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Imagine\Drawer.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Imagine\Frame.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Imagine\GroupBox.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Imagine\ItemDelegate.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Imagine\Label.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Imagine\Menu.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Imagine\MenuItem.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Imagine\MenuSeparator.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Imagine\Page.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Imagine\PageIndicator.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Imagine\Pane.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Imagine\plugins.qmltypes" -Delete "$INSTDIR\QtQuick\Controls.2\Imagine\Popup.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Imagine\ProgressBar.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Imagine\qmldir" -Delete "$INSTDIR\QtQuick\Controls.2\Imagine\qtquickcontrols2imaginestyleplugin.dll" -Delete "$INSTDIR\QtQuick\Controls.2\Imagine\RadioButton.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Imagine\RadioDelegate.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Imagine\RangeSlider.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Imagine\RoundButton.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Imagine\ScrollBar.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Imagine\ScrollIndicator.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Imagine\Slider.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Imagine\SpinBox.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Imagine\SplitView.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Imagine\StackView.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Imagine\SwipeDelegate.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Imagine\SwipeView.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Imagine\Switch.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Imagine\SwitchDelegate.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Imagine\TabBar.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Imagine\TabButton.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Imagine\TextArea.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Imagine\TextField.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Imagine\ToolBar.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Imagine\ToolButton.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Imagine\ToolSeparator.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Imagine\ToolTip.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Imagine\Tumbler.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Fusion\ApplicationWindow.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Fusion\BusyIndicator.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Fusion\Button.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Fusion\ButtonPanel.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Fusion\CheckBox.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Fusion\CheckDelegate.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Fusion\CheckIndicator.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Fusion\ComboBox.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Fusion\DelayButton.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Fusion\Dial.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Fusion\Dialog.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Fusion\DialogButtonBox.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Fusion\Drawer.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Fusion\Frame.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Fusion\GroupBox.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Fusion\ItemDelegate.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Fusion\Label.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Fusion\Menu.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Fusion\MenuBar.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Fusion\MenuBarItem.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Fusion\MenuItem.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Fusion\MenuSeparator.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Fusion\Page.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Fusion\PageIndicator.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Fusion\Pane.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Fusion\plugins.qmltypes" -Delete "$INSTDIR\QtQuick\Controls.2\Fusion\Popup.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Fusion\ProgressBar.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Fusion\qmldir" -Delete "$INSTDIR\QtQuick\Controls.2\Fusion\qtquickcontrols2fusionstyleplugin.dll" -Delete "$INSTDIR\QtQuick\Controls.2\Fusion\RadioButton.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Fusion\RadioDelegate.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Fusion\RadioIndicator.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Fusion\RangeSlider.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Fusion\RoundButton.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Fusion\ScrollBar.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Fusion\ScrollIndicator.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Fusion\Slider.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Fusion\SliderGroove.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Fusion\SliderHandle.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Fusion\SpinBox.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Fusion\SplitView.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Fusion\SwipeDelegate.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Fusion\Switch.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Fusion\SwitchDelegate.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Fusion\SwitchIndicator.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Fusion\TabBar.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Fusion\TabButton.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Fusion\TextArea.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Fusion\TextField.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Fusion\ToolBar.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Fusion\ToolButton.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Fusion\ToolSeparator.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Fusion\ToolTip.qml" -Delete "$INSTDIR\QtQuick\Controls.2\Fusion\Tumbler.qml" -Delete "$INSTDIR\QtGraphicalEffects\Blend.qml" -Delete "$INSTDIR\QtGraphicalEffects\BrightnessContrast.qml" -Delete "$INSTDIR\QtGraphicalEffects\Colorize.qml" -Delete "$INSTDIR\QtGraphicalEffects\ColorOverlay.qml" -Delete "$INSTDIR\QtGraphicalEffects\ConicalGradient.qml" -Delete "$INSTDIR\QtGraphicalEffects\Desaturate.qml" -Delete "$INSTDIR\QtGraphicalEffects\DirectionalBlur.qml" -Delete "$INSTDIR\QtGraphicalEffects\Displace.qml" -Delete "$INSTDIR\QtGraphicalEffects\DropShadow.qml" -Delete "$INSTDIR\QtGraphicalEffects\FastBlur.qml" -Delete "$INSTDIR\QtGraphicalEffects\GammaAdjust.qml" -Delete "$INSTDIR\QtGraphicalEffects\GaussianBlur.qml" -Delete "$INSTDIR\QtGraphicalEffects\Glow.qml" -Delete "$INSTDIR\QtGraphicalEffects\HueSaturation.qml" -Delete "$INSTDIR\QtGraphicalEffects\InnerShadow.qml" -Delete "$INSTDIR\QtGraphicalEffects\LevelAdjust.qml" -Delete "$INSTDIR\QtGraphicalEffects\LinearGradient.qml" -Delete "$INSTDIR\QtGraphicalEffects\MaskedBlur.qml" -Delete "$INSTDIR\QtGraphicalEffects\OpacityMask.qml" -Delete "$INSTDIR\QtGraphicalEffects\plugins.qmltypes" -Delete "$INSTDIR\QtGraphicalEffects\qmldir" -Delete "$INSTDIR\QtGraphicalEffects\qtgraphicaleffectsplugin.dll" -Delete "$INSTDIR\QtGraphicalEffects\RadialBlur.qml" -Delete "$INSTDIR\QtGraphicalEffects\RadialGradient.qml" -Delete "$INSTDIR\QtGraphicalEffects\RectangularGlow.qml" -Delete "$INSTDIR\QtGraphicalEffects\RecursiveBlur.qml" -Delete "$INSTDIR\QtGraphicalEffects\ThresholdMask.qml" -Delete "$INSTDIR\QtGraphicalEffects\ZoomBlur.qml" -Delete "$INSTDIR\QtGraphicalEffects\private\DropShadowBase.qml" -Delete "$INSTDIR\QtGraphicalEffects\private\DropShadowBase.qmlc" -Delete "$INSTDIR\QtGraphicalEffects\private\FastGlow.qml" -Delete "$INSTDIR\QtGraphicalEffects\private\FastGlow.qmlc" -Delete "$INSTDIR\QtGraphicalEffects\private\FastInnerShadow.qml" -Delete "$INSTDIR\QtGraphicalEffects\private\FastInnerShadow.qmlc" -Delete "$INSTDIR\QtGraphicalEffects\private\FastMaskedBlur.qml" -Delete "$INSTDIR\QtGraphicalEffects\private\FastMaskedBlur.qmlc" -Delete "$INSTDIR\QtGraphicalEffects\private\GaussianDirectionalBlur.qml" -Delete "$INSTDIR\QtGraphicalEffects\private\GaussianDirectionalBlur.qmlc" -Delete "$INSTDIR\QtGraphicalEffects\private\GaussianGlow.qml" -Delete "$INSTDIR\QtGraphicalEffects\private\GaussianGlow.qmlc" -Delete "$INSTDIR\QtGraphicalEffects\private\GaussianInnerShadow.qml" -Delete "$INSTDIR\QtGraphicalEffects\private\GaussianInnerShadow.qmlc" -Delete "$INSTDIR\QtGraphicalEffects\private\GaussianMaskedBlur.qml" -Delete "$INSTDIR\QtGraphicalEffects\private\GaussianMaskedBlur.qmlc" -Delete "$INSTDIR\QtGraphicalEffects\private\qmldir" -Delete "$INSTDIR\QtGraphicalEffects\private\qtgraphicaleffectsprivate.dll" -Delete "$INSTDIR\Qt\labs\settings\plugins.qmltypes" -Delete "$INSTDIR\Qt\labs\settings\qmldir" -Delete "$INSTDIR\Qt\labs\settings\qmlsettingsplugin.dll" -Delete "$INSTDIR\qmltooling\qmldbg_debugger.dll" -Delete "$INSTDIR\qmltooling\qmldbg_inspector.dll" -Delete "$INSTDIR\qmltooling\qmldbg_local.dll" -Delete "$INSTDIR\qmltooling\qmldbg_messages.dll" -Delete "$INSTDIR\qmltooling\qmldbg_native.dll" -Delete "$INSTDIR\qmltooling\qmldbg_nativedebugger.dll" -Delete "$INSTDIR\qmltooling\qmldbg_preview.dll" -Delete "$INSTDIR\qmltooling\qmldbg_profiler.dll" -Delete "$INSTDIR\qmltooling\qmldbg_quickprofiler.dll" -Delete "$INSTDIR\qmltooling\qmldbg_server.dll" -Delete "$INSTDIR\qmltooling\qmldbg_tcp.dll" -Delete "$INSTDIR\platforms\qwindows.dll" -Delete "$INSTDIR\imageformats\qicns.dll" -Delete "$INSTDIR\imageformats\qico.dll" -Delete "$INSTDIR\imageformats\qjpeg.dll" -Delete "$INSTDIR\imageformats\qsvg.dll" -Delete "$INSTDIR\imageformats\qtga.dll" -Delete "$INSTDIR\imageformats\qwbmp.dll" -Delete "$INSTDIR\iconengines\qsvgicon.dll" -Delete "$INSTDIR\bearer\qgenericbearer.dll" - -RmDir "$INSTDIR\bearer" -RmDir "$INSTDIR\iconengines" -RmDir "$INSTDIR\imageformats" -RmDir "$INSTDIR\platforms" -RmDir "$INSTDIR\qmltooling" -RmDir "$INSTDIR\Qt\labs\settings" -RmDir "$INSTDIR\Qt\labs" -RmDir "$INSTDIR\Qt" -RmDir "$INSTDIR\QtGraphicalEffects\private" -RmDir "$INSTDIR\QtGraphicalEffects" -RmDir "$INSTDIR\QtQuick\Controls.2\Fusion" -RmDir "$INSTDIR\QtQuick\Controls.2\Imagine" -RmDir "$INSTDIR\QtQuick\Controls.2\Material" -RmDir "$INSTDIR\QtQuick\Controls.2\Universal" -RmDir "$INSTDIR\QtQuick\Controls.2" -RmDir "$INSTDIR\QtQuick\Layouts" -RmDir "$INSTDIR\QtQuick\Templates.2" -RmDir "$INSTDIR\QtQuick\Window.2" -RmDir "$INSTDIR\QtQuick" -RmDir "$INSTDIR\QtQuick.2" -RmDir "$INSTDIR\styles" - -Delete "$INSTDIR\uninstall.exe" -!ifdef WEB_SITE -Delete "$INSTDIR\${APP_NAME} website.url" -!endif - -RmDir "$INSTDIR" - -!ifdef REG_START_MENU -!insertmacro MUI_STARTMENU_GETFOLDER "Application" $SM_Folder -Delete "$SMPROGRAMS\$SM_Folder\${APP_NAME}.lnk" -!ifdef WEB_SITE -Delete "$SMPROGRAMS\$SM_Folder\${APP_NAME} Website.lnk" -!endif -RmDir "$SMPROGRAMS\$SM_Folder" -!endif - -!ifndef REG_START_MENU -Delete "$SMPROGRAMS\Raspberry Pi\${APP_NAME}.lnk" -!ifdef WEB_SITE -Delete "$SMPROGRAMS\Raspberry Pi\${APP_NAME} Website.lnk" -!endif -RmDir "$SMPROGRAMS\Raspberry Pi" -!endif - -DeleteRegKey ${REG_ROOT} "${REG_APP_PATH}" -DeleteRegKey ${REG_ROOT} "${UNINSTALL_PATH}" - -# File associations -DeleteRegValue SHCTX "Software\Classes\.zip\OpenWithProgIds" "RPI_IMAGINGUTILITY" -DeleteRegValue SHCTX "Software\Classes\.gz\OpenWithProgIds" "RPI_IMAGINGUTILITY" -DeleteRegValue SHCTX "Software\Classes\.xz\OpenWithProgIds" "RPI_IMAGINGUTILITY" -DeleteRegValue SHCTX "Software\Classes\.img\OpenWithProgIds" "RPI_IMAGINGUTILITY" -DeleteRegValue SHCTX "Software\Classes\.zstd\OpenWithProgIds" "RPI_IMAGINGUTILITY" -DeleteRegKey SHCTX "Software\Classes\RPI_IMAGINGUTILITY" - -DeleteRegKey ${REG_ROOT} "" - -RMDir /r "$APPDATA\Raspberry Pi\Imager" -RMDir "$APPDATA\Raspberry Pi" -RMDir /r "$LOCALAPPDATA\Raspberry Pi\Imager" -RMDir "$LOCALAPPDATA\Raspberry Pi" - -SectionEnd - -###################################################################### - - -Function .onInit -!ifdef INNER - - ; If INNER is defined, then we aren't supposed to do anything except write out - ; the uninstaller. This is better than processing a command line option as it means - ; this entire code path is not present in the final (real) installer. - SetSilent silent - WriteUninstaller "$%TEMP%\uninstall.exe" - Quit ; just bail out quickly when running the "inner" installer -!else - ${IfNot} ${AtLeastWin7} - MessageBox MB_OK "$(win7Msg)" - Quit - ${EndIf} -!endif -FunctionEnd +############################################################################################ +# NSIS Installation Script created by NSIS Quick Setup Script Generator v1.09.18 +# Entirely Edited with NullSoft Scriptable Installation System +# by Vlasis K. Barkas aka Red Wine red_wine@freemail.gr Sep 2006 +############################################################################################ + +!define APP_NAME "Raspberry Pi Imager" +!define COMP_NAME "Raspberry Pi Ltd" +!define VERSION "@IMAGER_VERSION_STR@" +!define INSTALLER_NAME "imager-${VERSION}.exe" +!define COPYRIGHT "Raspberry Pi Ltd" +!define DESCRIPTION "Raspberry Pi Imager" +!define MAIN_APP_EXE "rpi-imager.exe" +!define INSTALL_TYPE "SetShellVarContext current" +!define REG_ROOT "HKCU" +!define REG_APP_PATH "Software\Microsoft\Windows\CurrentVersion\App Paths\${MAIN_APP_EXE}" +!define UNINSTALL_PATH "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APP_NAME}" + +# Window to close if running +!define EXE_TO_TERMINATE "rpi-imager.exe" + +###################################################################### + +VIProductVersion "@IMAGER_VERSION_MAJOR@.@IMAGER_VERSION_MINOR@.0.0" +VIAddVersionKey "ProductName" "${APP_NAME}" +VIAddVersionKey "CompanyName" "${COMP_NAME}" +VIAddVersionKey "LegalCopyright" "${COPYRIGHT}" +VIAddVersionKey "FileDescription" "${DESCRIPTION}" +VIAddVersionKey "FileVersion" "${VERSION}" +VIAddVersionKey "ProductVersion" "${VERSION}" + +###################################################################### + +SetCompressor LZMA +Name "${APP_NAME}" +Caption "${APP_NAME} ${VERSION}" +OutFile "${INSTALLER_NAME}" +BrandingText "${APP_NAME}" +XPStyle on +InstallDirRegKey "${REG_ROOT}" "${REG_APP_PATH}" "" +InstallDir "$PROGRAMFILES\Raspberry Pi Imager" + +###################################################################### + +### Stuff for signing uninstaller +!ifdef INNER + !echo "Inner invocation" ; just to see what's going on + OutFile "$%TEMP%\tempinstaller.exe" ; not really important where this is + SetCompress off +!else + !echo "Outer invocation" + + ; Call makensis again against current file, defining INNER. This writes an installer for us which, when + ; it is invoked, will just write the uninstaller to some location, and then exit. + + !makensis '/DINNER "${__FILE__}"' = 0 + + ; So now run that installer we just created as %TEMP%\tempinstaller.exe. Since it + ; calls quit the return value isn't zero. + + !system 'set __COMPAT_LAYER=RunAsInvoker &"$%TEMP%\tempinstaller.exe"' = 2 + + ; That will have written an uninstaller binary for us. Now we sign it with your + ; favorite code signing tool. + + !system '"@SIGNTOOL@" sign /tr http://timestamp.digicert.com /td sha256 /fd sha256 /a "$%TEMP%\uninstall.exe"' = 0 + + ; Good. Now we can carry on writing the real installer. + + OutFile "${INSTALLER_NAME}" + SetCompressor /SOLID lzma + !finalize '"@SIGNTOOL@" sign /tr http://timestamp.digicert.com /td sha256 /fd sha256 /a "%1"' +!endif + +### + + +!include "MUI.nsh" +!include "WinVer.nsh" + +!define MUI_ABORTWARNING +!define MUI_UNABORTWARNING + +!insertmacro MUI_PAGE_WELCOME + +!ifdef LICENSE_TXT +!insertmacro MUI_PAGE_LICENSE "${LICENSE_TXT}" +!endif + +!ifdef REG_START_MENU +!define MUI_STARTMENUPAGE_NODISABLE +!define MUI_STARTMENUPAGE_DEFAULTFOLDER "Raspberry Pi" +!define MUI_STARTMENUPAGE_REGISTRY_ROOT "${REG_ROOT}" +!define MUI_STARTMENUPAGE_REGISTRY_KEY "${UNINSTALL_PATH}" +!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "${REG_START_MENU}" +!insertmacro MUI_PAGE_STARTMENU Application $SM_Folder +!endif + +!insertmacro MUI_PAGE_INSTFILES + +!define MUI_FINISHPAGE_RUN "$INSTDIR\${MAIN_APP_EXE}" +!insertmacro MUI_PAGE_FINISH + +!insertmacro MUI_UNPAGE_CONFIRM + +!insertmacro MUI_UNPAGE_INSTFILES + +!insertmacro MUI_UNPAGE_FINISH + +###################################################################### +# TRANSLATIONS +###################################################################### + +!insertmacro MUI_LANGUAGE "English" +!insertmacro MUI_LANGUAGE "Dutch" +!insertmacro MUI_LANGUAGE "Italian" + +LangString termMsg ${LANG_ENGLISH} "Raspberry Pi Imager seems to be running and busy.$\nDo you want to terminate process?" +LangString stopMsg ${LANG_ENGLISH} "Stopping Raspberry Pi Imager" +LangString win7Msg ${LANG_ENGLISH} "Windows 7 or above required" +LangString termMsg ${LANG_DUTCH} "Raspberry Pi Imager is momenteel actief.$\nWilt u het programma afsluiten?" +LangString stopMsg ${LANG_DUTCH} "Bezig met afsluiten Raspberry Pi Imager" +LangString win7Msg ${LANG_DUTCH} "Minimaal Windows 7 is vereist" +LangString termMsg ${LANG_ITALIAN} "Raspberry Pi Imager sembra essere in esecuzione e occupato.$\nVuoi terminare il processo Raspberry Pi Imager?" +LangString stopMsg ${LANG_ITALIAN} "Chiusura processo Raspberry Pi Imager" +LangString win7Msg ${LANG_ITALIAN} "Per l'esecuzione del programma รจ richiesto Windows 7 o versioni successive" + +###################################################################### + +!include WinMessages.nsh +!include Logiclib.nsh + +!macro FindWindowOfExe Exe + Push $1 + Push $2 + Push $3 + Push $R0 + Push $R1 + + SetPluginUnload alwaysoff + Push "0" ; Result code + System::Get "(i.r1, i) iss" + Pop $R0 + System::Call "user32::EnumWindows(k R0, i) i.s" + + loop: + Pop $0 + StrCmp $0 "callback1" 0 doneloop + System::Call 'user32.dll::GetWindowThreadProcessId(i r1, *i .r3) i .r2' + System::Call 'kernel32.dll::OpenProcess(i 1040, i 0, i r3) i .r2' + ${IfNot} $2 = 0 + System::Alloc 1024 + Pop $R1 + System::Call "Psapi::EnumProcessModules(i r2, i R1, i 1024, *i .r3) i .r0" + ${IfNot} $0 = 0 + System::Call "*$R1(i .r0)" + System::Call "Psapi::GetModuleBaseName(i r2, i r0, t .r3, i ${NSIS_MAX_STRLEN}) i .r0" + ${IfNot} $0 = 0 + ${If} $3 == "${Exe}" + # Only replace result value if it is first match + Pop $3 + ${If} $3 == 0 + Push $1 + ${Else} + Push $3 + ${EndIf} + ${EndIf} + ${EndIf} + ${EndIf} + System::Free $R1 + System::Call "kernel32::CloseHandle(i r2)" + ${EndIf} + + Push 1 + System::Call "$R0" + Goto loop + doneloop: + SetPluginUnload manual + + System::Free $R0 + Pop $0 + + Pop $R1 + Pop $R0 + Pop $3 + Pop $2 + Pop $1 +!macroend + +!macro TerminateApp + Push $0 ; window handle + Push $1 + Push $2 ; process handle + DetailPrint "$(stopMsg)" + #FindWindow $0 '' '${WND_TITLE}' + !insertmacro FindWindowOfExe '${EXE_TO_TERMINATE}' + IntCmp $0 0 done + System::Call 'user32.dll::GetWindowThreadProcessId(i r0, *i .r1) i .r2' + System::Call 'kernel32.dll::OpenProcess(i 0x00100001, i 0, i r1) i .r2' + SendMessage $0 ${WM_CLOSE} 0 0 /TIMEOUT=2000 + System::Call 'kernel32.dll::WaitForSingleObject(i r2, i 2000) i .r1' + IntCmp $1 0 close + MessageBox MB_YESNOCANCEL|MB_ICONEXCLAMATION "$(termMsg)" /SD IDYES IDYES terminate IDNO close + System::Call 'kernel32.dll::CloseHandle(i r2) i .r1' + Quit + terminate: + System::Call 'kernel32.dll::TerminateProcess(i r2, i 0) i .r1' + close: + System::Call 'kernel32.dll::CloseHandle(i r2) i .r1' + done: + Pop $2 + Pop $1 + Pop $0 +!macroend + +###################################################################### + +Section -MainProgram +${INSTALL_TYPE} +!insertmacro TerminateApp +SetOverwrite ifnewer +SetOutPath "$INSTDIR" +File "deploy\D3Dcompiler_47.dll" +#File "deploy\opengl32sw.dll" +File "deploy\libssl-1_1.dll" +File "deploy\libcrypto-1_1.dll" +File "deploy\fat32format.exe" +File "deploy\libEGL.dll" +File "deploy\libgcc_s_dw2-1.dll" +File "deploy\libGLESV2.dll" +File "deploy\libstdc++-6.dll" +File "deploy\libwinpthread-1.dll" +File "deploy\license.txt" +File "deploy\Qt5Core.dll" +File "deploy\Qt5Gui.dll" +File "deploy\Qt5Network.dll" +File "deploy\Qt5Qml.dll" +File "deploy\Qt5QmlModels.dll" +File "deploy\Qt5QmlWorkerScript.dll" +File "deploy\Qt5Quick.dll" +File "deploy\Qt5QuickControls2.dll" +File "deploy\Qt5QuickTemplates2.dll" +File "deploy\Qt5Svg.dll" +File "deploy\Qt5Widgets.dll" +File "deploy\Qt5WinExtras.dll" +File "deploy\rpi-imager.exe" +File "deploy\rpi-imager-cli.cmd" +SetOutPath "$INSTDIR\styles" +File "deploy\styles\qwindowsvistastyle.dll" +SetOutPath "$INSTDIR\QtQuick.2" +File "deploy\QtQuick.2\plugins.qmltypes" +File "deploy\QtQuick.2\qmldir" +File "deploy\QtQuick.2\qtquick2plugin.dll" +SetOutPath "$INSTDIR\QtQuick\Window.2" +File "deploy\QtQuick\Window.2\plugins.qmltypes" +File "deploy\QtQuick\Window.2\qmldir" +File "deploy\QtQuick\Window.2\windowplugin.dll" +SetOutPath "$INSTDIR\QtQuick\Templates.2" +File "deploy\QtQuick\Templates.2\plugins.qmltypes" +File "deploy\QtQuick\Templates.2\qmldir" +File "deploy\QtQuick\Templates.2\qtquicktemplates2plugin.dll" +SetOutPath "$INSTDIR\QtQuick\Layouts" +File "deploy\QtQuick\Layouts\plugins.qmltypes" +File "deploy\QtQuick\Layouts\qmldir" +File "deploy\QtQuick\Layouts\qquicklayoutsplugin.dll" +SetOutPath "$INSTDIR\QtQuick\Controls.2" +File "deploy\QtQuick\Controls.2\AbstractButton.qml" +File "deploy\QtQuick\Controls.2\Action.qml" +File "deploy\QtQuick\Controls.2\ActionGroup.qml" +File "deploy\QtQuick\Controls.2\ApplicationWindow.qml" +File "deploy\QtQuick\Controls.2\BusyIndicator.qml" +File "deploy\QtQuick\Controls.2\Button.qml" +File "deploy\QtQuick\Controls.2\ButtonGroup.qml" +File "deploy\QtQuick\Controls.2\CheckBox.qml" +File "deploy\QtQuick\Controls.2\CheckDelegate.qml" +File "deploy\QtQuick\Controls.2\ComboBox.qml" +File "deploy\QtQuick\Controls.2\Container.qml" +File "deploy\QtQuick\Controls.2\Control.qml" +File "deploy\QtQuick\Controls.2\DelayButton.qml" +File "deploy\QtQuick\Controls.2\Dial.qml" +File "deploy\QtQuick\Controls.2\Dialog.qml" +File "deploy\QtQuick\Controls.2\DialogButtonBox.qml" +File "deploy\QtQuick\Controls.2\Drawer.qml" +File "deploy\QtQuick\Controls.2\Frame.qml" +File "deploy\QtQuick\Controls.2\GroupBox.qml" +File "deploy\QtQuick\Controls.2\ItemDelegate.qml" +File "deploy\QtQuick\Controls.2\Label.qml" +File "deploy\QtQuick\Controls.2\Menu.qml" +File "deploy\QtQuick\Controls.2\MenuBar.qml" +File "deploy\QtQuick\Controls.2\MenuBarItem.qml" +File "deploy\QtQuick\Controls.2\MenuItem.qml" +File "deploy\QtQuick\Controls.2\MenuSeparator.qml" +File "deploy\QtQuick\Controls.2\Page.qml" +File "deploy\QtQuick\Controls.2\PageIndicator.qml" +File "deploy\QtQuick\Controls.2\Pane.qml" +File "deploy\QtQuick\Controls.2\plugins.qmltypes" +File "deploy\QtQuick\Controls.2\Popup.qml" +File "deploy\QtQuick\Controls.2\ProgressBar.qml" +File "deploy\QtQuick\Controls.2\qmldir" +File "deploy\QtQuick\Controls.2\qtquickcontrols2plugin.dll" +File "deploy\QtQuick\Controls.2\RadioButton.qml" +File "deploy\QtQuick\Controls.2\RadioDelegate.qml" +File "deploy\QtQuick\Controls.2\RangeSlider.qml" +File "deploy\QtQuick\Controls.2\RoundButton.qml" +File "deploy\QtQuick\Controls.2\ScrollBar.qml" +File "deploy\QtQuick\Controls.2\ScrollIndicator.qml" +File "deploy\QtQuick\Controls.2\ScrollView.qml" +File "deploy\QtQuick\Controls.2\Slider.qml" +File "deploy\QtQuick\Controls.2\SpinBox.qml" +File "deploy\QtQuick\Controls.2\SplitView.qml" +File "deploy\QtQuick\Controls.2\StackView.qml" +File "deploy\QtQuick\Controls.2\SwipeDelegate.qml" +File "deploy\QtQuick\Controls.2\SwipeView.qml" +File "deploy\QtQuick\Controls.2\Switch.qml" +File "deploy\QtQuick\Controls.2\SwitchDelegate.qml" +File "deploy\QtQuick\Controls.2\TabBar.qml" +File "deploy\QtQuick\Controls.2\TabButton.qml" +File "deploy\QtQuick\Controls.2\TextArea.qml" +File "deploy\QtQuick\Controls.2\TextField.qml" +File "deploy\QtQuick\Controls.2\ToolBar.qml" +File "deploy\QtQuick\Controls.2\ToolButton.qml" +File "deploy\QtQuick\Controls.2\ToolSeparator.qml" +File "deploy\QtQuick\Controls.2\ToolTip.qml" +File "deploy\QtQuick\Controls.2\Tumbler.qml" +SetOutPath "$INSTDIR\QtQuick\Controls.2\Universal" +File "deploy\QtQuick\Controls.2\Universal\ApplicationWindow.qml" +File "deploy\QtQuick\Controls.2\Universal\BusyIndicator.qml" +File "deploy\QtQuick\Controls.2\Universal\Button.qml" +File "deploy\QtQuick\Controls.2\Universal\CheckBox.qml" +File "deploy\QtQuick\Controls.2\Universal\CheckDelegate.qml" +File "deploy\QtQuick\Controls.2\Universal\CheckIndicator.qml" +File "deploy\QtQuick\Controls.2\Universal\ComboBox.qml" +File "deploy\QtQuick\Controls.2\Universal\DelayButton.qml" +File "deploy\QtQuick\Controls.2\Universal\Dial.qml" +File "deploy\QtQuick\Controls.2\Universal\Dialog.qml" +File "deploy\QtQuick\Controls.2\Universal\DialogButtonBox.qml" +File "deploy\QtQuick\Controls.2\Universal\Drawer.qml" +File "deploy\QtQuick\Controls.2\Universal\Frame.qml" +File "deploy\QtQuick\Controls.2\Universal\GroupBox.qml" +File "deploy\QtQuick\Controls.2\Universal\ItemDelegate.qml" +File "deploy\QtQuick\Controls.2\Universal\Label.qml" +File "deploy\QtQuick\Controls.2\Universal\Menu.qml" +File "deploy\QtQuick\Controls.2\Universal\MenuBar.qml" +File "deploy\QtQuick\Controls.2\Universal\MenuBarItem.qml" +File "deploy\QtQuick\Controls.2\Universal\MenuItem.qml" +File "deploy\QtQuick\Controls.2\Universal\MenuSeparator.qml" +File "deploy\QtQuick\Controls.2\Universal\Page.qml" +File "deploy\QtQuick\Controls.2\Universal\PageIndicator.qml" +File "deploy\QtQuick\Controls.2\Universal\Pane.qml" +File "deploy\QtQuick\Controls.2\Universal\plugins.qmltypes" +File "deploy\QtQuick\Controls.2\Universal\Popup.qml" +File "deploy\QtQuick\Controls.2\Universal\ProgressBar.qml" +File "deploy\QtQuick\Controls.2\Universal\qmldir" +File "deploy\QtQuick\Controls.2\Universal\qtquickcontrols2universalstyleplugin.dll" +File "deploy\QtQuick\Controls.2\Universal\RadioButton.qml" +File "deploy\QtQuick\Controls.2\Universal\RadioDelegate.qml" +File "deploy\QtQuick\Controls.2\Universal\RadioIndicator.qml" +File "deploy\QtQuick\Controls.2\Universal\RangeSlider.qml" +File "deploy\QtQuick\Controls.2\Universal\RoundButton.qml" +File "deploy\QtQuick\Controls.2\Universal\ScrollBar.qml" +File "deploy\QtQuick\Controls.2\Universal\ScrollIndicator.qml" +File "deploy\QtQuick\Controls.2\Universal\Slider.qml" +File "deploy\QtQuick\Controls.2\Universal\SpinBox.qml" +File "deploy\QtQuick\Controls.2\Universal\SplitView.qml" +File "deploy\QtQuick\Controls.2\Universal\StackView.qml" +File "deploy\QtQuick\Controls.2\Universal\SwipeDelegate.qml" +File "deploy\QtQuick\Controls.2\Universal\Switch.qml" +File "deploy\QtQuick\Controls.2\Universal\SwitchDelegate.qml" +File "deploy\QtQuick\Controls.2\Universal\SwitchIndicator.qml" +File "deploy\QtQuick\Controls.2\Universal\TabBar.qml" +File "deploy\QtQuick\Controls.2\Universal\TabButton.qml" +File "deploy\QtQuick\Controls.2\Universal\TextArea.qml" +File "deploy\QtQuick\Controls.2\Universal\TextField.qml" +File "deploy\QtQuick\Controls.2\Universal\ToolBar.qml" +File "deploy\QtQuick\Controls.2\Universal\ToolButton.qml" +File "deploy\QtQuick\Controls.2\Universal\ToolSeparator.qml" +File "deploy\QtQuick\Controls.2\Universal\ToolTip.qml" +File "deploy\QtQuick\Controls.2\Universal\Tumbler.qml" +SetOutPath "$INSTDIR\QtQuick\Controls.2\Material" +File "deploy\QtQuick\Controls.2\Material\ApplicationWindow.qml" +File "deploy\QtQuick\Controls.2\Material\BoxShadow.qml" +File "deploy\QtQuick\Controls.2\Material\BusyIndicator.qml" +File "deploy\QtQuick\Controls.2\Material\Button.qml" +File "deploy\QtQuick\Controls.2\Material\CheckBox.qml" +File "deploy\QtQuick\Controls.2\Material\CheckDelegate.qml" +File "deploy\QtQuick\Controls.2\Material\CheckIndicator.qml" +File "deploy\QtQuick\Controls.2\Material\ComboBox.qml" +File "deploy\QtQuick\Controls.2\Material\CursorDelegate.qml" +File "deploy\QtQuick\Controls.2\Material\DelayButton.qml" +File "deploy\QtQuick\Controls.2\Material\Dial.qml" +File "deploy\QtQuick\Controls.2\Material\Dialog.qml" +File "deploy\QtQuick\Controls.2\Material\DialogButtonBox.qml" +File "deploy\QtQuick\Controls.2\Material\Drawer.qml" +File "deploy\QtQuick\Controls.2\Material\ElevationEffect.qml" +File "deploy\QtQuick\Controls.2\Material\Frame.qml" +File "deploy\QtQuick\Controls.2\Material\GroupBox.qml" +File "deploy\QtQuick\Controls.2\Material\ItemDelegate.qml" +File "deploy\QtQuick\Controls.2\Material\Label.qml" +File "deploy\QtQuick\Controls.2\Material\Menu.qml" +File "deploy\QtQuick\Controls.2\Material\MenuBar.qml" +File "deploy\QtQuick\Controls.2\Material\MenuBarItem.qml" +File "deploy\QtQuick\Controls.2\Material\MenuItem.qml" +File "deploy\QtQuick\Controls.2\Material\MenuSeparator.qml" +File "deploy\QtQuick\Controls.2\Material\Page.qml" +File "deploy\QtQuick\Controls.2\Material\PageIndicator.qml" +File "deploy\QtQuick\Controls.2\Material\Pane.qml" +File "deploy\QtQuick\Controls.2\Material\plugins.qmltypes" +File "deploy\QtQuick\Controls.2\Material\Popup.qml" +File "deploy\QtQuick\Controls.2\Material\ProgressBar.qml" +File "deploy\QtQuick\Controls.2\Material\qmldir" +File "deploy\QtQuick\Controls.2\Material\qtquickcontrols2materialstyleplugin.dll" +File "deploy\QtQuick\Controls.2\Material\RadioButton.qml" +File "deploy\QtQuick\Controls.2\Material\RadioDelegate.qml" +File "deploy\QtQuick\Controls.2\Material\RadioIndicator.qml" +File "deploy\QtQuick\Controls.2\Material\RangeSlider.qml" +File "deploy\QtQuick\Controls.2\Material\RectangularGlow.qml" +File "deploy\QtQuick\Controls.2\Material\RoundButton.qml" +File "deploy\QtQuick\Controls.2\Material\ScrollBar.qml" +File "deploy\QtQuick\Controls.2\Material\ScrollIndicator.qml" +File "deploy\QtQuick\Controls.2\Material\Slider.qml" +File "deploy\QtQuick\Controls.2\Material\SliderHandle.qml" +File "deploy\QtQuick\Controls.2\Material\SpinBox.qml" +File "deploy\QtQuick\Controls.2\Material\SplitView.qml" +File "deploy\QtQuick\Controls.2\Material\StackView.qml" +File "deploy\QtQuick\Controls.2\Material\SwipeDelegate.qml" +File "deploy\QtQuick\Controls.2\Material\SwipeView.qml" +File "deploy\QtQuick\Controls.2\Material\Switch.qml" +File "deploy\QtQuick\Controls.2\Material\SwitchDelegate.qml" +File "deploy\QtQuick\Controls.2\Material\SwitchIndicator.qml" +File "deploy\QtQuick\Controls.2\Material\TabBar.qml" +File "deploy\QtQuick\Controls.2\Material\TabButton.qml" +File "deploy\QtQuick\Controls.2\Material\TextArea.qml" +File "deploy\QtQuick\Controls.2\Material\TextField.qml" +File "deploy\QtQuick\Controls.2\Material\ToolBar.qml" +File "deploy\QtQuick\Controls.2\Material\ToolButton.qml" +File "deploy\QtQuick\Controls.2\Material\ToolSeparator.qml" +File "deploy\QtQuick\Controls.2\Material\ToolTip.qml" +File "deploy\QtQuick\Controls.2\Material\Tumbler.qml" +SetOutPath "$INSTDIR\QtQuick\Controls.2\Imagine" +File "deploy\QtQuick\Controls.2\Imagine\ApplicationWindow.qml" +File "deploy\QtQuick\Controls.2\Imagine\BusyIndicator.qml" +File "deploy\QtQuick\Controls.2\Imagine\Button.qml" +File "deploy\QtQuick\Controls.2\Imagine\CheckBox.qml" +File "deploy\QtQuick\Controls.2\Imagine\CheckDelegate.qml" +File "deploy\QtQuick\Controls.2\Imagine\ComboBox.qml" +File "deploy\QtQuick\Controls.2\Imagine\DelayButton.qml" +File "deploy\QtQuick\Controls.2\Imagine\Dial.qml" +File "deploy\QtQuick\Controls.2\Imagine\Dialog.qml" +File "deploy\QtQuick\Controls.2\Imagine\DialogButtonBox.qml" +File "deploy\QtQuick\Controls.2\Imagine\Drawer.qml" +File "deploy\QtQuick\Controls.2\Imagine\Frame.qml" +File "deploy\QtQuick\Controls.2\Imagine\GroupBox.qml" +File "deploy\QtQuick\Controls.2\Imagine\ItemDelegate.qml" +File "deploy\QtQuick\Controls.2\Imagine\Label.qml" +File "deploy\QtQuick\Controls.2\Imagine\Menu.qml" +File "deploy\QtQuick\Controls.2\Imagine\MenuItem.qml" +File "deploy\QtQuick\Controls.2\Imagine\MenuSeparator.qml" +File "deploy\QtQuick\Controls.2\Imagine\Page.qml" +File "deploy\QtQuick\Controls.2\Imagine\PageIndicator.qml" +File "deploy\QtQuick\Controls.2\Imagine\Pane.qml" +File "deploy\QtQuick\Controls.2\Imagine\plugins.qmltypes" +File "deploy\QtQuick\Controls.2\Imagine\Popup.qml" +File "deploy\QtQuick\Controls.2\Imagine\ProgressBar.qml" +File "deploy\QtQuick\Controls.2\Imagine\qmldir" +File "deploy\QtQuick\Controls.2\Imagine\qtquickcontrols2imaginestyleplugin.dll" +File "deploy\QtQuick\Controls.2\Imagine\RadioButton.qml" +File "deploy\QtQuick\Controls.2\Imagine\RadioDelegate.qml" +File "deploy\QtQuick\Controls.2\Imagine\RangeSlider.qml" +File "deploy\QtQuick\Controls.2\Imagine\RoundButton.qml" +File "deploy\QtQuick\Controls.2\Imagine\ScrollBar.qml" +File "deploy\QtQuick\Controls.2\Imagine\ScrollIndicator.qml" +File "deploy\QtQuick\Controls.2\Imagine\Slider.qml" +File "deploy\QtQuick\Controls.2\Imagine\SpinBox.qml" +File "deploy\QtQuick\Controls.2\Imagine\SplitView.qml" +File "deploy\QtQuick\Controls.2\Imagine\StackView.qml" +File "deploy\QtQuick\Controls.2\Imagine\SwipeDelegate.qml" +File "deploy\QtQuick\Controls.2\Imagine\SwipeView.qml" +File "deploy\QtQuick\Controls.2\Imagine\Switch.qml" +File "deploy\QtQuick\Controls.2\Imagine\SwitchDelegate.qml" +File "deploy\QtQuick\Controls.2\Imagine\TabBar.qml" +File "deploy\QtQuick\Controls.2\Imagine\TabButton.qml" +File "deploy\QtQuick\Controls.2\Imagine\TextArea.qml" +File "deploy\QtQuick\Controls.2\Imagine\TextField.qml" +File "deploy\QtQuick\Controls.2\Imagine\ToolBar.qml" +File "deploy\QtQuick\Controls.2\Imagine\ToolButton.qml" +File "deploy\QtQuick\Controls.2\Imagine\ToolSeparator.qml" +File "deploy\QtQuick\Controls.2\Imagine\ToolTip.qml" +File "deploy\QtQuick\Controls.2\Imagine\Tumbler.qml" +SetOutPath "$INSTDIR\QtQuick\Controls.2\Fusion" +File "deploy\QtQuick\Controls.2\Fusion\ApplicationWindow.qml" +File "deploy\QtQuick\Controls.2\Fusion\BusyIndicator.qml" +File "deploy\QtQuick\Controls.2\Fusion\Button.qml" +File "deploy\QtQuick\Controls.2\Fusion\ButtonPanel.qml" +File "deploy\QtQuick\Controls.2\Fusion\CheckBox.qml" +File "deploy\QtQuick\Controls.2\Fusion\CheckDelegate.qml" +File "deploy\QtQuick\Controls.2\Fusion\CheckIndicator.qml" +File "deploy\QtQuick\Controls.2\Fusion\ComboBox.qml" +File "deploy\QtQuick\Controls.2\Fusion\DelayButton.qml" +File "deploy\QtQuick\Controls.2\Fusion\Dial.qml" +File "deploy\QtQuick\Controls.2\Fusion\Dialog.qml" +File "deploy\QtQuick\Controls.2\Fusion\DialogButtonBox.qml" +File "deploy\QtQuick\Controls.2\Fusion\Drawer.qml" +File "deploy\QtQuick\Controls.2\Fusion\Frame.qml" +File "deploy\QtQuick\Controls.2\Fusion\GroupBox.qml" +File "deploy\QtQuick\Controls.2\Fusion\ItemDelegate.qml" +File "deploy\QtQuick\Controls.2\Fusion\Label.qml" +File "deploy\QtQuick\Controls.2\Fusion\Menu.qml" +File "deploy\QtQuick\Controls.2\Fusion\MenuBar.qml" +File "deploy\QtQuick\Controls.2\Fusion\MenuBarItem.qml" +File "deploy\QtQuick\Controls.2\Fusion\MenuItem.qml" +File "deploy\QtQuick\Controls.2\Fusion\MenuSeparator.qml" +File "deploy\QtQuick\Controls.2\Fusion\Page.qml" +File "deploy\QtQuick\Controls.2\Fusion\PageIndicator.qml" +File "deploy\QtQuick\Controls.2\Fusion\Pane.qml" +File "deploy\QtQuick\Controls.2\Fusion\plugins.qmltypes" +File "deploy\QtQuick\Controls.2\Fusion\Popup.qml" +File "deploy\QtQuick\Controls.2\Fusion\ProgressBar.qml" +File "deploy\QtQuick\Controls.2\Fusion\qmldir" +File "deploy\QtQuick\Controls.2\Fusion\qtquickcontrols2fusionstyleplugin.dll" +File "deploy\QtQuick\Controls.2\Fusion\RadioButton.qml" +File "deploy\QtQuick\Controls.2\Fusion\RadioDelegate.qml" +File "deploy\QtQuick\Controls.2\Fusion\RadioIndicator.qml" +File "deploy\QtQuick\Controls.2\Fusion\RangeSlider.qml" +File "deploy\QtQuick\Controls.2\Fusion\RoundButton.qml" +File "deploy\QtQuick\Controls.2\Fusion\ScrollBar.qml" +File "deploy\QtQuick\Controls.2\Fusion\ScrollIndicator.qml" +File "deploy\QtQuick\Controls.2\Fusion\Slider.qml" +File "deploy\QtQuick\Controls.2\Fusion\SliderGroove.qml" +File "deploy\QtQuick\Controls.2\Fusion\SliderHandle.qml" +File "deploy\QtQuick\Controls.2\Fusion\SpinBox.qml" +File "deploy\QtQuick\Controls.2\Fusion\SplitView.qml" +File "deploy\QtQuick\Controls.2\Fusion\SwipeDelegate.qml" +File "deploy\QtQuick\Controls.2\Fusion\Switch.qml" +File "deploy\QtQuick\Controls.2\Fusion\SwitchDelegate.qml" +File "deploy\QtQuick\Controls.2\Fusion\SwitchIndicator.qml" +File "deploy\QtQuick\Controls.2\Fusion\TabBar.qml" +File "deploy\QtQuick\Controls.2\Fusion\TabButton.qml" +File "deploy\QtQuick\Controls.2\Fusion\TextArea.qml" +File "deploy\QtQuick\Controls.2\Fusion\TextField.qml" +File "deploy\QtQuick\Controls.2\Fusion\ToolBar.qml" +File "deploy\QtQuick\Controls.2\Fusion\ToolButton.qml" +File "deploy\QtQuick\Controls.2\Fusion\ToolSeparator.qml" +File "deploy\QtQuick\Controls.2\Fusion\ToolTip.qml" +File "deploy\QtQuick\Controls.2\Fusion\Tumbler.qml" +SetOutPath "$INSTDIR\QtGraphicalEffects" +File "deploy\QtGraphicalEffects\Blend.qml" +File "deploy\QtGraphicalEffects\BrightnessContrast.qml" +File "deploy\QtGraphicalEffects\Colorize.qml" +File "deploy\QtGraphicalEffects\ColorOverlay.qml" +File "deploy\QtGraphicalEffects\ConicalGradient.qml" +File "deploy\QtGraphicalEffects\Desaturate.qml" +File "deploy\QtGraphicalEffects\DirectionalBlur.qml" +File "deploy\QtGraphicalEffects\Displace.qml" +File "deploy\QtGraphicalEffects\DropShadow.qml" +File "deploy\QtGraphicalEffects\FastBlur.qml" +File "deploy\QtGraphicalEffects\GammaAdjust.qml" +File "deploy\QtGraphicalEffects\GaussianBlur.qml" +File "deploy\QtGraphicalEffects\Glow.qml" +File "deploy\QtGraphicalEffects\HueSaturation.qml" +File "deploy\QtGraphicalEffects\InnerShadow.qml" +File "deploy\QtGraphicalEffects\LevelAdjust.qml" +File "deploy\QtGraphicalEffects\LinearGradient.qml" +File "deploy\QtGraphicalEffects\MaskedBlur.qml" +File "deploy\QtGraphicalEffects\OpacityMask.qml" +File "deploy\QtGraphicalEffects\plugins.qmltypes" +File "deploy\QtGraphicalEffects\qmldir" +File "deploy\QtGraphicalEffects\qtgraphicaleffectsplugin.dll" +File "deploy\QtGraphicalEffects\RadialBlur.qml" +File "deploy\QtGraphicalEffects\RadialGradient.qml" +File "deploy\QtGraphicalEffects\RectangularGlow.qml" +File "deploy\QtGraphicalEffects\RecursiveBlur.qml" +File "deploy\QtGraphicalEffects\ThresholdMask.qml" +File "deploy\QtGraphicalEffects\ZoomBlur.qml" +SetOutPath "$INSTDIR\QtGraphicalEffects\private" +File "deploy\QtGraphicalEffects\private\DropShadowBase.qml" +File "deploy\QtGraphicalEffects\private\DropShadowBase.qmlc" +File "deploy\QtGraphicalEffects\private\FastGlow.qml" +File "deploy\QtGraphicalEffects\private\FastGlow.qmlc" +File "deploy\QtGraphicalEffects\private\FastInnerShadow.qml" +File "deploy\QtGraphicalEffects\private\FastInnerShadow.qmlc" +File "deploy\QtGraphicalEffects\private\FastMaskedBlur.qml" +File "deploy\QtGraphicalEffects\private\FastMaskedBlur.qmlc" +File "deploy\QtGraphicalEffects\private\GaussianDirectionalBlur.qml" +File "deploy\QtGraphicalEffects\private\GaussianDirectionalBlur.qmlc" +File "deploy\QtGraphicalEffects\private\GaussianGlow.qml" +File "deploy\QtGraphicalEffects\private\GaussianGlow.qmlc" +File "deploy\QtGraphicalEffects\private\GaussianInnerShadow.qml" +File "deploy\QtGraphicalEffects\private\GaussianInnerShadow.qmlc" +File "deploy\QtGraphicalEffects\private\GaussianMaskedBlur.qml" +File "deploy\QtGraphicalEffects\private\GaussianMaskedBlur.qmlc" +File "deploy\QtGraphicalEffects\private\qmldir" +File "deploy\QtGraphicalEffects\private\qtgraphicaleffectsprivate.dll" +#SetOutPath "$INSTDIR\Qt\labs\settings" +#File "deploy\Qt\labs\settings\plugins.qmltypes" +#File "deploy\Qt\labs\settings\qmldir" +#File "deploy\Qt\labs\settings\qmlsettingsplugin.dll" +#SetOutPath "$INSTDIR\qmltooling" +#File "deploy\qmltooling\qmldbg_debugger.dll" +#File "deploy\qmltooling\qmldbg_inspector.dll" +#File "deploy\qmltooling\qmldbg_local.dll" +#File "deploy\qmltooling\qmldbg_messages.dll" +#File "deploy\qmltooling\qmldbg_native.dll" +#File "deploy\qmltooling\qmldbg_nativedebugger.dll" +#File "deploy\qmltooling\qmldbg_preview.dll" +#File "deploy\qmltooling\qmldbg_profiler.dll" +#File "deploy\qmltooling\qmldbg_quickprofiler.dll" +#File "deploy\qmltooling\qmldbg_server.dll" +#File "deploy\qmltooling\qmldbg_tcp.dll" +SetOutPath "$INSTDIR\platforms" +File "deploy\platforms\qwindows.dll" +SetOutPath "$INSTDIR\imageformats" +File "deploy\imageformats\qicns.dll" +File "deploy\imageformats\qico.dll" +File "deploy\imageformats\qjpeg.dll" +File "deploy\imageformats\qsvg.dll" +File "deploy\imageformats\qtga.dll" +File "deploy\imageformats\qwbmp.dll" +SetOutPath "$INSTDIR\iconengines" +File "deploy\iconengines\qsvgicon.dll" +SetOutPath "$INSTDIR\bearer" +File "deploy\bearer\qgenericbearer.dll" +SectionEnd + +###################################################################### + +Section -Icons_Reg + +!ifndef INNER +SetOutPath "$INSTDIR" +File "$%TEMP%\uninstall.exe" +!endif + +!ifdef REG_START_MENU +!insertmacro MUI_STARTMENU_WRITE_BEGIN Application +CreateDirectory "$SMPROGRAMS\$SM_Folder" +CreateShortCut "$SMPROGRAMS\$SM_Folder\${APP_NAME}.lnk" "$INSTDIR\${MAIN_APP_EXE}" +!ifdef WEB_SITE +WriteIniStr "$INSTDIR\${APP_NAME} website.url" "InternetShortcut" "URL" "${WEB_SITE}" +CreateShortCut "$SMPROGRAMS\$SM_Folder\${APP_NAME} Website.lnk" "$INSTDIR\${APP_NAME} website.url" +!endif +!insertmacro MUI_STARTMENU_WRITE_END +!endif + +!ifndef REG_START_MENU +CreateDirectory "$SMPROGRAMS\Raspberry Pi" +CreateShortCut "$SMPROGRAMS\Raspberry Pi\${APP_NAME}.lnk" "$INSTDIR\${MAIN_APP_EXE}" +!ifdef WEB_SITE +WriteIniStr "$INSTDIR\${APP_NAME} website.url" "InternetShortcut" "URL" "${WEB_SITE}" +CreateShortCut "$SMPROGRAMS\Raspberry Pi\${APP_NAME} Website.lnk" "$INSTDIR\${APP_NAME} website.url" +!endif +!endif + +WriteRegStr ${REG_ROOT} "${REG_APP_PATH}" "" "$INSTDIR\${MAIN_APP_EXE}" +WriteRegStr ${REG_ROOT} "${UNINSTALL_PATH}" "DisplayName" "${APP_NAME}" +WriteRegStr ${REG_ROOT} "${UNINSTALL_PATH}" "UninstallString" "$INSTDIR\uninstall.exe" +WriteRegStr ${REG_ROOT} "${UNINSTALL_PATH}" "DisplayIcon" "$INSTDIR\${MAIN_APP_EXE}" +WriteRegStr ${REG_ROOT} "${UNINSTALL_PATH}" "DisplayVersion" "${VERSION}" +WriteRegStr ${REG_ROOT} "${UNINSTALL_PATH}" "Publisher" "${COMP_NAME}" + +!ifdef WEB_SITE +WriteRegStr ${REG_ROOT} "${UNINSTALL_PATH}" "URLInfoAbout" "${WEB_SITE}" +!endif + + +WriteRegStr SHCTX "Software\Classes\.zip\OpenWithProgIds" "RPI_IMAGINGUTILITY" "" +WriteRegStr SHCTX "Software\Classes\.gz\OpenWithProgIds" "RPI_IMAGINGUTILITY" "" +WriteRegStr SHCTX "Software\Classes\.xz\OpenWithProgIds" "RPI_IMAGINGUTILITY" "" +WriteRegStr SHCTX "Software\Classes\.img\OpenWithProgIds" "RPI_IMAGINGUTILITY" "" +WriteRegStr SHCTX "Software\Classes\.zstd\OpenWithProgIds" "RPI_IMAGINGUTILITY" "" +WriteRegStr SHCTX "Software\Classes\RPI_IMAGINGUTILITY\shell\open" "FriendlyAppName" "Raspberry Pi Imager" +WriteRegStr SHCTX "Software\Classes\RPI_IMAGINGUTILITY\shell\open\command" "" '"$INSTDIR\rpi-imager.exe" "%1"' + +SectionEnd + +###################################################################### + +Section Uninstall +${INSTALL_TYPE} +Delete "$INSTDIR\D3Dcompiler_47.dll" +Delete "$INSTDIR\opengl32sw.dll" +Delete "$INSTDIR\libssl-1_1.dll" +Delete "$INSTDIR\libcrypto-1_1.dll" +Delete "$INSTDIR\fat32format.exe" +Delete "$INSTDIR\libEGL.dll" +Delete "$INSTDIR\libgcc_s_dw2-1.dll" +Delete "$INSTDIR\libGLESV2.dll" +Delete "$INSTDIR\libstdc++-6.dll" +Delete "$INSTDIR\libwinpthread-1.dll" +Delete "$INSTDIR\license.txt" +Delete "$INSTDIR\Qt5Core.dll" +Delete "$INSTDIR\Qt5Gui.dll" +Delete "$INSTDIR\Qt5Network.dll" +Delete "$INSTDIR\Qt5Qml.dll" +Delete "$INSTDIR\Qt5QmlModels.dll" +Delete "$INSTDIR\Qt5QmlWorkerScript.dll" +Delete "$INSTDIR\Qt5Quick.dll" +Delete "$INSTDIR\Qt5QuickControls2.dll" +Delete "$INSTDIR\Qt5QuickTemplates2.dll" +Delete "$INSTDIR\Qt5Svg.dll" +Delete "$INSTDIR\Qt5Widgets.dll" +Delete "$INSTDIR\Qt5WinExtras.dll" +# Old name +Delete "$INSTDIR\imagingutility.exe" +Delete "$INSTDIR\rpi-imager.exe" +Delete "$INSTDIR\rpi-imager-cli.cmd" +Delete "$INSTDIR\styles\qwindowsvistastyle.dll" +Delete "$INSTDIR\QtQuick.2\plugins.qmltypes" +Delete "$INSTDIR\QtQuick.2\qmldir" +Delete "$INSTDIR\QtQuick.2\qtquick2plugin.dll" +Delete "$INSTDIR\QtQuick\Window.2\plugins.qmltypes" +Delete "$INSTDIR\QtQuick\Window.2\qmldir" +Delete "$INSTDIR\QtQuick\Window.2\windowplugin.dll" +Delete "$INSTDIR\QtQuick\Templates.2\plugins.qmltypes" +Delete "$INSTDIR\QtQuick\Templates.2\qmldir" +Delete "$INSTDIR\QtQuick\Templates.2\qtquicktemplates2plugin.dll" +Delete "$INSTDIR\QtQuick\Layouts\plugins.qmltypes" +Delete "$INSTDIR\QtQuick\Layouts\qmldir" +Delete "$INSTDIR\QtQuick\Layouts\qquicklayoutsplugin.dll" +Delete "$INSTDIR\QtQuick\Controls.2\AbstractButton.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Action.qml" +Delete "$INSTDIR\QtQuick\Controls.2\ActionGroup.qml" +Delete "$INSTDIR\QtQuick\Controls.2\ApplicationWindow.qml" +Delete "$INSTDIR\QtQuick\Controls.2\BusyIndicator.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Button.qml" +Delete "$INSTDIR\QtQuick\Controls.2\ButtonGroup.qml" +Delete "$INSTDIR\QtQuick\Controls.2\CheckBox.qml" +Delete "$INSTDIR\QtQuick\Controls.2\CheckDelegate.qml" +Delete "$INSTDIR\QtQuick\Controls.2\ComboBox.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Container.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Control.qml" +Delete "$INSTDIR\QtQuick\Controls.2\DelayButton.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Dial.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Dialog.qml" +Delete "$INSTDIR\QtQuick\Controls.2\DialogButtonBox.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Drawer.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Frame.qml" +Delete "$INSTDIR\QtQuick\Controls.2\GroupBox.qml" +Delete "$INSTDIR\QtQuick\Controls.2\ItemDelegate.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Label.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Menu.qml" +Delete "$INSTDIR\QtQuick\Controls.2\MenuBar.qml" +Delete "$INSTDIR\QtQuick\Controls.2\MenuBarItem.qml" +Delete "$INSTDIR\QtQuick\Controls.2\MenuItem.qml" +Delete "$INSTDIR\QtQuick\Controls.2\MenuSeparator.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Page.qml" +Delete "$INSTDIR\QtQuick\Controls.2\PageIndicator.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Pane.qml" +Delete "$INSTDIR\QtQuick\Controls.2\plugins.qmltypes" +Delete "$INSTDIR\QtQuick\Controls.2\Popup.qml" +Delete "$INSTDIR\QtQuick\Controls.2\ProgressBar.qml" +Delete "$INSTDIR\QtQuick\Controls.2\qmldir" +Delete "$INSTDIR\QtQuick\Controls.2\qtquickcontrols2plugin.dll" +Delete "$INSTDIR\QtQuick\Controls.2\RadioButton.qml" +Delete "$INSTDIR\QtQuick\Controls.2\RadioDelegate.qml" +Delete "$INSTDIR\QtQuick\Controls.2\RangeSlider.qml" +Delete "$INSTDIR\QtQuick\Controls.2\RoundButton.qml" +Delete "$INSTDIR\QtQuick\Controls.2\ScrollBar.qml" +Delete "$INSTDIR\QtQuick\Controls.2\ScrollIndicator.qml" +Delete "$INSTDIR\QtQuick\Controls.2\ScrollView.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Slider.qml" +Delete "$INSTDIR\QtQuick\Controls.2\SpinBox.qml" +Delete "$INSTDIR\QtQuick\Controls.2\SplitView.qml" +Delete "$INSTDIR\QtQuick\Controls.2\StackView.qml" +Delete "$INSTDIR\QtQuick\Controls.2\SwipeDelegate.qml" +Delete "$INSTDIR\QtQuick\Controls.2\SwipeView.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Switch.qml" +Delete "$INSTDIR\QtQuick\Controls.2\SwitchDelegate.qml" +Delete "$INSTDIR\QtQuick\Controls.2\TabBar.qml" +Delete "$INSTDIR\QtQuick\Controls.2\TabButton.qml" +Delete "$INSTDIR\QtQuick\Controls.2\TextArea.qml" +Delete "$INSTDIR\QtQuick\Controls.2\TextField.qml" +Delete "$INSTDIR\QtQuick\Controls.2\ToolBar.qml" +Delete "$INSTDIR\QtQuick\Controls.2\ToolButton.qml" +Delete "$INSTDIR\QtQuick\Controls.2\ToolSeparator.qml" +Delete "$INSTDIR\QtQuick\Controls.2\ToolTip.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Tumbler.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Universal\ApplicationWindow.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Universal\BusyIndicator.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Universal\Button.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Universal\CheckBox.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Universal\CheckDelegate.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Universal\CheckIndicator.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Universal\ComboBox.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Universal\DelayButton.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Universal\Dial.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Universal\Dialog.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Universal\DialogButtonBox.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Universal\Drawer.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Universal\Frame.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Universal\GroupBox.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Universal\ItemDelegate.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Universal\Label.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Universal\Menu.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Universal\MenuBar.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Universal\MenuBarItem.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Universal\MenuItem.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Universal\MenuSeparator.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Universal\Page.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Universal\PageIndicator.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Universal\Pane.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Universal\plugins.qmltypes" +Delete "$INSTDIR\QtQuick\Controls.2\Universal\Popup.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Universal\ProgressBar.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Universal\qmldir" +Delete "$INSTDIR\QtQuick\Controls.2\Universal\qtquickcontrols2universalstyleplugin.dll" +Delete "$INSTDIR\QtQuick\Controls.2\Universal\RadioButton.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Universal\RadioDelegate.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Universal\RadioIndicator.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Universal\RangeSlider.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Universal\RoundButton.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Universal\ScrollBar.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Universal\ScrollIndicator.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Universal\Slider.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Universal\SpinBox.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Universal\SplitView.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Universal\StackView.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Universal\SwipeDelegate.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Universal\Switch.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Universal\SwitchDelegate.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Universal\SwitchIndicator.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Universal\TabBar.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Universal\TabButton.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Universal\TextArea.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Universal\TextField.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Universal\ToolBar.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Universal\ToolButton.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Universal\ToolSeparator.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Universal\ToolTip.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Universal\Tumbler.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Material\ApplicationWindow.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Material\BoxShadow.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Material\BusyIndicator.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Material\Button.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Material\CheckBox.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Material\CheckDelegate.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Material\CheckIndicator.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Material\ComboBox.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Material\CursorDelegate.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Material\DelayButton.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Material\Dial.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Material\Dialog.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Material\DialogButtonBox.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Material\Drawer.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Material\ElevationEffect.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Material\Frame.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Material\GroupBox.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Material\ItemDelegate.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Material\Label.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Material\Menu.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Material\MenuBar.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Material\MenuBarItem.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Material\MenuItem.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Material\MenuSeparator.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Material\Page.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Material\PageIndicator.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Material\Pane.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Material\plugins.qmltypes" +Delete "$INSTDIR\QtQuick\Controls.2\Material\Popup.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Material\ProgressBar.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Material\qmldir" +Delete "$INSTDIR\QtQuick\Controls.2\Material\qtquickcontrols2materialstyleplugin.dll" +Delete "$INSTDIR\QtQuick\Controls.2\Material\RadioButton.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Material\RadioDelegate.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Material\RadioIndicator.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Material\RangeSlider.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Material\RectangularGlow.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Material\RoundButton.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Material\ScrollBar.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Material\ScrollIndicator.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Material\Slider.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Material\SliderHandle.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Material\SpinBox.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Material\SplitView.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Material\StackView.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Material\SwipeDelegate.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Material\SwipeView.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Material\Switch.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Material\SwitchDelegate.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Material\SwitchIndicator.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Material\TabBar.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Material\TabButton.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Material\TextArea.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Material\TextField.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Material\ToolBar.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Material\ToolButton.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Material\ToolSeparator.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Material\ToolTip.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Material\Tumbler.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Imagine\ApplicationWindow.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Imagine\BusyIndicator.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Imagine\Button.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Imagine\CheckBox.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Imagine\CheckDelegate.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Imagine\ComboBox.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Imagine\DelayButton.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Imagine\Dial.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Imagine\Dialog.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Imagine\DialogButtonBox.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Imagine\Drawer.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Imagine\Frame.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Imagine\GroupBox.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Imagine\ItemDelegate.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Imagine\Label.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Imagine\Menu.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Imagine\MenuItem.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Imagine\MenuSeparator.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Imagine\Page.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Imagine\PageIndicator.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Imagine\Pane.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Imagine\plugins.qmltypes" +Delete "$INSTDIR\QtQuick\Controls.2\Imagine\Popup.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Imagine\ProgressBar.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Imagine\qmldir" +Delete "$INSTDIR\QtQuick\Controls.2\Imagine\qtquickcontrols2imaginestyleplugin.dll" +Delete "$INSTDIR\QtQuick\Controls.2\Imagine\RadioButton.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Imagine\RadioDelegate.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Imagine\RangeSlider.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Imagine\RoundButton.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Imagine\ScrollBar.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Imagine\ScrollIndicator.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Imagine\Slider.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Imagine\SpinBox.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Imagine\SplitView.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Imagine\StackView.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Imagine\SwipeDelegate.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Imagine\SwipeView.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Imagine\Switch.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Imagine\SwitchDelegate.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Imagine\TabBar.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Imagine\TabButton.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Imagine\TextArea.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Imagine\TextField.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Imagine\ToolBar.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Imagine\ToolButton.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Imagine\ToolSeparator.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Imagine\ToolTip.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Imagine\Tumbler.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Fusion\ApplicationWindow.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Fusion\BusyIndicator.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Fusion\Button.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Fusion\ButtonPanel.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Fusion\CheckBox.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Fusion\CheckDelegate.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Fusion\CheckIndicator.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Fusion\ComboBox.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Fusion\DelayButton.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Fusion\Dial.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Fusion\Dialog.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Fusion\DialogButtonBox.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Fusion\Drawer.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Fusion\Frame.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Fusion\GroupBox.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Fusion\ItemDelegate.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Fusion\Label.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Fusion\Menu.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Fusion\MenuBar.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Fusion\MenuBarItem.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Fusion\MenuItem.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Fusion\MenuSeparator.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Fusion\Page.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Fusion\PageIndicator.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Fusion\Pane.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Fusion\plugins.qmltypes" +Delete "$INSTDIR\QtQuick\Controls.2\Fusion\Popup.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Fusion\ProgressBar.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Fusion\qmldir" +Delete "$INSTDIR\QtQuick\Controls.2\Fusion\qtquickcontrols2fusionstyleplugin.dll" +Delete "$INSTDIR\QtQuick\Controls.2\Fusion\RadioButton.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Fusion\RadioDelegate.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Fusion\RadioIndicator.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Fusion\RangeSlider.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Fusion\RoundButton.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Fusion\ScrollBar.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Fusion\ScrollIndicator.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Fusion\Slider.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Fusion\SliderGroove.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Fusion\SliderHandle.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Fusion\SpinBox.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Fusion\SplitView.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Fusion\SwipeDelegate.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Fusion\Switch.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Fusion\SwitchDelegate.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Fusion\SwitchIndicator.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Fusion\TabBar.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Fusion\TabButton.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Fusion\TextArea.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Fusion\TextField.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Fusion\ToolBar.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Fusion\ToolButton.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Fusion\ToolSeparator.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Fusion\ToolTip.qml" +Delete "$INSTDIR\QtQuick\Controls.2\Fusion\Tumbler.qml" +Delete "$INSTDIR\QtGraphicalEffects\Blend.qml" +Delete "$INSTDIR\QtGraphicalEffects\BrightnessContrast.qml" +Delete "$INSTDIR\QtGraphicalEffects\Colorize.qml" +Delete "$INSTDIR\QtGraphicalEffects\ColorOverlay.qml" +Delete "$INSTDIR\QtGraphicalEffects\ConicalGradient.qml" +Delete "$INSTDIR\QtGraphicalEffects\Desaturate.qml" +Delete "$INSTDIR\QtGraphicalEffects\DirectionalBlur.qml" +Delete "$INSTDIR\QtGraphicalEffects\Displace.qml" +Delete "$INSTDIR\QtGraphicalEffects\DropShadow.qml" +Delete "$INSTDIR\QtGraphicalEffects\FastBlur.qml" +Delete "$INSTDIR\QtGraphicalEffects\GammaAdjust.qml" +Delete "$INSTDIR\QtGraphicalEffects\GaussianBlur.qml" +Delete "$INSTDIR\QtGraphicalEffects\Glow.qml" +Delete "$INSTDIR\QtGraphicalEffects\HueSaturation.qml" +Delete "$INSTDIR\QtGraphicalEffects\InnerShadow.qml" +Delete "$INSTDIR\QtGraphicalEffects\LevelAdjust.qml" +Delete "$INSTDIR\QtGraphicalEffects\LinearGradient.qml" +Delete "$INSTDIR\QtGraphicalEffects\MaskedBlur.qml" +Delete "$INSTDIR\QtGraphicalEffects\OpacityMask.qml" +Delete "$INSTDIR\QtGraphicalEffects\plugins.qmltypes" +Delete "$INSTDIR\QtGraphicalEffects\qmldir" +Delete "$INSTDIR\QtGraphicalEffects\qtgraphicaleffectsplugin.dll" +Delete "$INSTDIR\QtGraphicalEffects\RadialBlur.qml" +Delete "$INSTDIR\QtGraphicalEffects\RadialGradient.qml" +Delete "$INSTDIR\QtGraphicalEffects\RectangularGlow.qml" +Delete "$INSTDIR\QtGraphicalEffects\RecursiveBlur.qml" +Delete "$INSTDIR\QtGraphicalEffects\ThresholdMask.qml" +Delete "$INSTDIR\QtGraphicalEffects\ZoomBlur.qml" +Delete "$INSTDIR\QtGraphicalEffects\private\DropShadowBase.qml" +Delete "$INSTDIR\QtGraphicalEffects\private\DropShadowBase.qmlc" +Delete "$INSTDIR\QtGraphicalEffects\private\FastGlow.qml" +Delete "$INSTDIR\QtGraphicalEffects\private\FastGlow.qmlc" +Delete "$INSTDIR\QtGraphicalEffects\private\FastInnerShadow.qml" +Delete "$INSTDIR\QtGraphicalEffects\private\FastInnerShadow.qmlc" +Delete "$INSTDIR\QtGraphicalEffects\private\FastMaskedBlur.qml" +Delete "$INSTDIR\QtGraphicalEffects\private\FastMaskedBlur.qmlc" +Delete "$INSTDIR\QtGraphicalEffects\private\GaussianDirectionalBlur.qml" +Delete "$INSTDIR\QtGraphicalEffects\private\GaussianDirectionalBlur.qmlc" +Delete "$INSTDIR\QtGraphicalEffects\private\GaussianGlow.qml" +Delete "$INSTDIR\QtGraphicalEffects\private\GaussianGlow.qmlc" +Delete "$INSTDIR\QtGraphicalEffects\private\GaussianInnerShadow.qml" +Delete "$INSTDIR\QtGraphicalEffects\private\GaussianInnerShadow.qmlc" +Delete "$INSTDIR\QtGraphicalEffects\private\GaussianMaskedBlur.qml" +Delete "$INSTDIR\QtGraphicalEffects\private\GaussianMaskedBlur.qmlc" +Delete "$INSTDIR\QtGraphicalEffects\private\qmldir" +Delete "$INSTDIR\QtGraphicalEffects\private\qtgraphicaleffectsprivate.dll" +Delete "$INSTDIR\Qt\labs\settings\plugins.qmltypes" +Delete "$INSTDIR\Qt\labs\settings\qmldir" +Delete "$INSTDIR\Qt\labs\settings\qmlsettingsplugin.dll" +Delete "$INSTDIR\qmltooling\qmldbg_debugger.dll" +Delete "$INSTDIR\qmltooling\qmldbg_inspector.dll" +Delete "$INSTDIR\qmltooling\qmldbg_local.dll" +Delete "$INSTDIR\qmltooling\qmldbg_messages.dll" +Delete "$INSTDIR\qmltooling\qmldbg_native.dll" +Delete "$INSTDIR\qmltooling\qmldbg_nativedebugger.dll" +Delete "$INSTDIR\qmltooling\qmldbg_preview.dll" +Delete "$INSTDIR\qmltooling\qmldbg_profiler.dll" +Delete "$INSTDIR\qmltooling\qmldbg_quickprofiler.dll" +Delete "$INSTDIR\qmltooling\qmldbg_server.dll" +Delete "$INSTDIR\qmltooling\qmldbg_tcp.dll" +Delete "$INSTDIR\platforms\qwindows.dll" +Delete "$INSTDIR\imageformats\qicns.dll" +Delete "$INSTDIR\imageformats\qico.dll" +Delete "$INSTDIR\imageformats\qjpeg.dll" +Delete "$INSTDIR\imageformats\qsvg.dll" +Delete "$INSTDIR\imageformats\qtga.dll" +Delete "$INSTDIR\imageformats\qwbmp.dll" +Delete "$INSTDIR\iconengines\qsvgicon.dll" +Delete "$INSTDIR\bearer\qgenericbearer.dll" + +RmDir "$INSTDIR\bearer" +RmDir "$INSTDIR\iconengines" +RmDir "$INSTDIR\imageformats" +RmDir "$INSTDIR\platforms" +RmDir "$INSTDIR\qmltooling" +RmDir "$INSTDIR\Qt\labs\settings" +RmDir "$INSTDIR\Qt\labs" +RmDir "$INSTDIR\Qt" +RmDir "$INSTDIR\QtGraphicalEffects\private" +RmDir "$INSTDIR\QtGraphicalEffects" +RmDir "$INSTDIR\QtQuick\Controls.2\Fusion" +RmDir "$INSTDIR\QtQuick\Controls.2\Imagine" +RmDir "$INSTDIR\QtQuick\Controls.2\Material" +RmDir "$INSTDIR\QtQuick\Controls.2\Universal" +RmDir "$INSTDIR\QtQuick\Controls.2" +RmDir "$INSTDIR\QtQuick\Layouts" +RmDir "$INSTDIR\QtQuick\Templates.2" +RmDir "$INSTDIR\QtQuick\Window.2" +RmDir "$INSTDIR\QtQuick" +RmDir "$INSTDIR\QtQuick.2" +RmDir "$INSTDIR\styles" + +Delete "$INSTDIR\uninstall.exe" +!ifdef WEB_SITE +Delete "$INSTDIR\${APP_NAME} website.url" +!endif + +RmDir "$INSTDIR" + +!ifdef REG_START_MENU +!insertmacro MUI_STARTMENU_GETFOLDER "Application" $SM_Folder +Delete "$SMPROGRAMS\$SM_Folder\${APP_NAME}.lnk" +!ifdef WEB_SITE +Delete "$SMPROGRAMS\$SM_Folder\${APP_NAME} Website.lnk" +!endif +RmDir "$SMPROGRAMS\$SM_Folder" +!endif + +!ifndef REG_START_MENU +Delete "$SMPROGRAMS\Raspberry Pi\${APP_NAME}.lnk" +!ifdef WEB_SITE +Delete "$SMPROGRAMS\Raspberry Pi\${APP_NAME} Website.lnk" +!endif +RmDir "$SMPROGRAMS\Raspberry Pi" +!endif + +DeleteRegKey ${REG_ROOT} "${REG_APP_PATH}" +DeleteRegKey ${REG_ROOT} "${UNINSTALL_PATH}" + +# File associations +DeleteRegValue SHCTX "Software\Classes\.zip\OpenWithProgIds" "RPI_IMAGINGUTILITY" +DeleteRegValue SHCTX "Software\Classes\.gz\OpenWithProgIds" "RPI_IMAGINGUTILITY" +DeleteRegValue SHCTX "Software\Classes\.xz\OpenWithProgIds" "RPI_IMAGINGUTILITY" +DeleteRegValue SHCTX "Software\Classes\.img\OpenWithProgIds" "RPI_IMAGINGUTILITY" +DeleteRegValue SHCTX "Software\Classes\.zstd\OpenWithProgIds" "RPI_IMAGINGUTILITY" +DeleteRegKey SHCTX "Software\Classes\RPI_IMAGINGUTILITY" + +DeleteRegKey ${REG_ROOT} "" + +RMDir /r "$APPDATA\Raspberry Pi\Imager" +RMDir "$APPDATA\Raspberry Pi" +RMDir /r "$LOCALAPPDATA\Raspberry Pi\Imager" +RMDir "$LOCALAPPDATA\Raspberry Pi" + +SectionEnd + +###################################################################### + + +Function .onInit +!ifdef INNER + + ; If INNER is defined, then we aren't supposed to do anything except write out + ; the uninstaller. This is better than processing a command line option as it means + ; this entire code path is not present in the final (real) installer. + SetSilent silent + WriteUninstaller "$%TEMP%\uninstall.exe" + Quit ; just bail out quickly when running the "inner" installer +!else + ${IfNot} ${AtLeastWin7} + MessageBox MB_OK "$(win7Msg)" + Quit + ${EndIf} +!endif +FunctionEnd diff --git a/src/windows/rpi-imager.rc b/src/windows/hooverhigh-imager.rc similarity index 73% rename from src/windows/rpi-imager.rc rename to src/windows/hooverhigh-imager.rc index 84f19b2..45a53c1 100644 --- a/src/windows/rpi-imager.rc +++ b/src/windows/hooverhigh-imager.rc @@ -1,7 +1,7 @@ #include -IDI_ICON1 ICON DISCARDABLE "../icons/rpi-imager.ico" -CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "rpi-imager.manifest" +IDI_ICON1 ICON DISCARDABLE "../icons/hooverhigh-imager.ico" +CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "hooverhigh-imager.manifest" 1 VERSIONINFO FILEVERSION IMAGER_VERSION_CSV