From 18fde053cb48f7f5abb6bd20d3636f9c6a59bbdb Mon Sep 17 00:00:00 2001 From: danteruiz Date: Tue, 1 Oct 2019 14:41:46 -0700 Subject: [PATCH] fixing last mac warning and taskbar icon for windows --- launchers/qt/CMakeLists.txt | 6 +++- launchers/qt/cmake/templates/Icon.rc.in | 1 + launchers/qt/deps/miniz/miniz.cpp | 1 + launchers/qt/resources/images/Launcher.rc2 | 13 +++++++ launchers/qt/resources/images/interface.ico | Bin 0 -> 26687 bytes launchers/qt/src/Helper.h | 3 ++ launchers/qt/src/Helper_windows.cpp | 34 ++++++++++++++++++ launchers/qt/src/Launcher.cpp | 2 +- .../qt/src/LauncherInstaller_windows.cpp | 25 +++++++++++++ launchers/qt/src/LauncherInstaller_windows.h | 2 ++ launchers/qt/src/LauncherWindow.h | 2 ++ launchers/qt/src/main.cpp | 2 -- 12 files changed, 87 insertions(+), 4 deletions(-) create mode 100644 launchers/qt/cmake/templates/Icon.rc.in create mode 100644 launchers/qt/resources/images/Launcher.rc2 create mode 100644 launchers/qt/resources/images/interface.ico diff --git a/launchers/qt/CMakeLists.txt b/launchers/qt/CMakeLists.txt index 57f900140c..50ea3362e1 100644 --- a/launchers/qt/CMakeLists.txt +++ b/launchers/qt/CMakeLists.txt @@ -165,7 +165,11 @@ set(TARGET_NAME ${PROJECT_NAME}) set_packaging_parameters() if (WIN32) - add_executable(${PROJECT_NAME} ${src_files} ${RES_SOURCES}) + set(CONFIGURE_ICON_PATH "${CMAKE_CURRENT_SOURCE_DIR}/resources/images/interface.ico") + message(${CONFIGURE_ICON_PATH}) + set(CONFIGURE_ICON_RC_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/Icon.rc") + configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake/templates/Icon.rc.in" ${CONFIGURE_ICON_RC_OUTPUT}) + add_executable(${PROJECT_NAME} WIN32 ${src_files} ${RES_SOURCES} ${CONFIGURE_ICON_RC_OUTPUT}) elseif (APPLE) set_target_properties(${this_target} PROPERTIES MACOSX_BUNDLE_INFO_PLIST MacOSXBundleInfo.plist.in) diff --git a/launchers/qt/cmake/templates/Icon.rc.in b/launchers/qt/cmake/templates/Icon.rc.in new file mode 100644 index 0000000000..8cd04a60de --- /dev/null +++ b/launchers/qt/cmake/templates/Icon.rc.in @@ -0,0 +1 @@ +IDI_ICON1 ICON DISCARDABLE "@CONFIGURE_ICON_PATH@" \ No newline at end of file diff --git a/launchers/qt/deps/miniz/miniz.cpp b/launchers/qt/deps/miniz/miniz.cpp index 96d7cc106a..a7e3e3d520 100644 --- a/launchers/qt/deps/miniz/miniz.cpp +++ b/launchers/qt/deps/miniz/miniz.cpp @@ -3228,6 +3228,7 @@ struct mz_zip_internal_state_tag static MZ_FORCEINLINE mz_uint mz_zip_array_range_check(const mz_zip_array *pArray, mz_uint index) { MZ_ASSERT(index < pArray->m_size); + (void)(pArray); return index; } #define MZ_ZIP_ARRAY_ELEMENT(array_ptr, element_type, index) ((element_type *)((array_ptr)->m_p))[mz_zip_array_range_check(array_ptr, index)] diff --git a/launchers/qt/resources/images/Launcher.rc2 b/launchers/qt/resources/images/Launcher.rc2 new file mode 100644 index 0000000000..098b026372 --- /dev/null +++ b/launchers/qt/resources/images/Launcher.rc2 @@ -0,0 +1,13 @@ +// +// Launcher.rc2 - resources Microsoft Visual C++ does not edit directly +// + +#ifdef APSTUDIO_INVOKED +#error this file is not editable by Microsoft Visual C++ +#endif //APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// Add manually edited resources here... + +///////////////////////////////////////////////////////////////////////////// diff --git a/launchers/qt/resources/images/interface.ico b/launchers/qt/resources/images/interface.ico new file mode 100644 index 0000000000000000000000000000000000000000..09a97956a72607b8d9883a531eed9d04414e0b53 GIT binary patch literal 26687 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 literal 0 HcmV?d00001 diff --git a/launchers/qt/src/Helper.h b/launchers/qt/src/Helper.h index 65f68ec41d..a72b9a2d7a 100644 --- a/launchers/qt/src/Helper.h +++ b/launchers/qt/src/Helper.h @@ -21,4 +21,7 @@ bool isLauncherAlreadyRunning(); #ifdef Q_OS_WIN HRESULT createSymbolicLink(LPCSTR lpszPathObj, LPCSTR lpszPathLink, LPCSTR lpszDesc, LPCSTR lpszArgs = (LPCSTR)""); +bool insertRegistryKey(const std::string& regPath, const std::string& name, const std::string& value); +bool insertRegistryKey(const std::string& regPath, const std::string& name, DWORD value); +bool deleteRegistryKey(const std::string& regPath); #endif diff --git a/launchers/qt/src/Helper_windows.cpp b/launchers/qt/src/Helper_windows.cpp index 5295943a4e..a61db77f85 100644 --- a/launchers/qt/src/Helper_windows.cpp +++ b/launchers/qt/src/Helper_windows.cpp @@ -6,6 +6,8 @@ #include "objbase.h" #include "objidl.h" #include "shlguid.h" +#include +#include #include void launchClient(const QString& clientPath, const QString& homePath, const QString& defaultScriptsPath, @@ -113,3 +115,35 @@ HRESULT createSymbolicLink(LPCSTR lpszPathObj, LPCSTR lpszPathLink, LPCSTR lpszD CoUninitialize(); return SUCCEEDED(hres); } + +bool insertRegistryKey(const std::string& regPath, const std::string& name, const std::string& value) { + HKEY key; + auto status = RegCreateKeyExA(HKEY_CURRENT_USER, regPath.c_str(), 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE | KEY_QUERY_VALUE, NULL, &key, NULL); + if (status == ERROR_SUCCESS) { + status = RegSetValueExA(key, name.c_str(), 0, REG_SZ, (const BYTE*)value.c_str(), (DWORD)(value.size() + 1)); + return (bool) (status == ERROR_SUCCESS); + } + RegCloseKey(key); + return false; +} + +bool insertRegistryKey(const std::string& regPath, const std::string& name, DWORD value) { + HKEY key; + auto status = RegCreateKeyExA(HKEY_CURRENT_USER, regPath.c_str(), 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE | KEY_QUERY_VALUE, NULL, &key, NULL); + if (status == ERROR_SUCCESS) { + status = RegSetValueExA(key, name.c_str(), 0, REG_DWORD, (const BYTE*)&value, sizeof(value)); + return (bool) TRUE; + } + RegCloseKey(key); + return false; +} + +bool deleteRegistryKey(const std::string& regPath) { + TCHAR szDelKey[MAX_PATH * 2]; + StringCchCopy(szDelKey, MAX_PATH * 2, regPath.c_str()); + auto status = RegDeleteKey(HKEY_CURRENT_USER, szDelKey); + if (status == ERROR_SUCCESS) { + return (bool) TRUE; + } + return false; +} diff --git a/launchers/qt/src/Launcher.cpp b/launchers/qt/src/Launcher.cpp index 0b51328aef..af90507db6 100644 --- a/launchers/qt/src/Launcher.cpp +++ b/launchers/qt/src/Launcher.cpp @@ -13,7 +13,7 @@ Launcher::Launcher(int& argc, char**argv) : QGuiApplication(argc, argv) { _launcherWindow = std::make_unique(); _launcherWindow->rootContext()->setContextProperty("LauncherState", _launcherState.get()); _launcherWindow->rootContext()->setContextProperty("PathUtils", new PathUtils()); - _launcherWindow->setFlags(Qt::FramelessWindowHint); + _launcherWindow->setFlags(Qt::FramelessWindowHint | Qt::Window); LauncherState::declareQML(); _launcherWindow->setSource(QUrl(PathUtils::resourcePath("qml/root.qml"))); _launcherWindow->setResizeMode(QQuickView::SizeRootObjectToView); diff --git a/launchers/qt/src/LauncherInstaller_windows.cpp b/launchers/qt/src/LauncherInstaller_windows.cpp index ea35e86c64..1bbceb61e7 100644 --- a/launchers/qt/src/LauncherInstaller_windows.cpp +++ b/launchers/qt/src/LauncherInstaller_windows.cpp @@ -70,6 +70,8 @@ void LauncherInstaller::install() { createSymbolicLink((LPCSTR)oldLauncherPath.toStdString().c_str(), (LPCSTR)appStartLinkPath.toStdString().c_str(), (LPCSTR)("Click to Setup and Launch HQ")); + + createApplicationRegistryKeys(); } else { qDebug() << "FAILED!!!!!!!"; } @@ -100,3 +102,26 @@ void LauncherInstaller::uninstall() { QFile::remove(desktopAppLinkPath); } } + + +void LauncherInstaller::createApplicationRegistryKeys() { + const std::string REGISTRY_PATH = "Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\HQ"; + bool success = insertRegistryKey(REGISTRY_PATH, "DisplayName", "HQ"); + std::string installPath = _launcherInstallDir.absolutePath().toStdString(); + success = insertRegistryKey(REGISTRY_PATH, "InstallLocation", installPath); + std::string applicationExe = installPath + "/HQ Launcher.exe"; + std::string uninstallPath = '"' + applicationExe + '"' + " --uninstall"; + success = insertRegistryKey(REGISTRY_PATH, "UninstallString", uninstallPath); + success = insertRegistryKey(REGISTRY_PATH, "DisplayVersion", "DEV"); + success = insertRegistryKey(REGISTRY_PATH, "DisplayIcon", applicationExe); + success = insertRegistryKey(REGISTRY_PATH, "Publisher", "High Fidelity"); + //success = LauncherUtils::insertRegistryKey(REGISTRY_PATH, "InstallDate", LauncherUtils::cStringToStd(CTime::GetCurrentTime().Format("%Y%m%d"))); + //success = LauncherUtils::insertRegistryKey(REGISTRY_PATH, "EstimatedSize", (DWORD)size); + success = insertRegistryKey(REGISTRY_PATH, "NoModify", (DWORD)1); + success = insertRegistryKey(REGISTRY_PATH, "NoRepair", (DWORD)1); + + qDebug() << "--------: " << success; +} + +void LauncherInstaller::deleteApplicationRegistryKeys() { +} diff --git a/launchers/qt/src/LauncherInstaller_windows.h b/launchers/qt/src/LauncherInstaller_windows.h index 8791f9395f..6ddd74f53f 100644 --- a/launchers/qt/src/LauncherInstaller_windows.h +++ b/launchers/qt/src/LauncherInstaller_windows.h @@ -11,7 +11,9 @@ public: bool runningOutsideOfInstallDir(); private: void createShortcuts(); + void createApplicationRegistryKeys(); void deleteShortcuts(); + void deleteApplicationRegistryKeys(); QDir _launcherInstallDir; QDir _launcherApplicationsDir; diff --git a/launchers/qt/src/LauncherWindow.h b/launchers/qt/src/LauncherWindow.h index 02012dc342..79651e9e5e 100644 --- a/launchers/qt/src/LauncherWindow.h +++ b/launchers/qt/src/LauncherWindow.h @@ -5,6 +5,8 @@ class LauncherWindow : public QQuickView { public: + LauncherWindow() = default; + ~LauncherWindow() = default; void keyPressEvent(QKeyEvent* event) override; void mousePressEvent(QMouseEvent* event) override; void mouseReleaseEvent(QMouseEvent* event) override; diff --git a/launchers/qt/src/main.cpp b/launchers/qt/src/main.cpp index db69bfafe3..2f8e26d500 100644 --- a/launchers/qt/src/main.cpp +++ b/launchers/qt/src/main.cpp @@ -35,8 +35,6 @@ int main(int argc, char *argv[]) { return 0; } closeInterfaceIfRunning(); - // waitForInterfaceToClose(); - // auto updater if (argc == 3) { if (hasSuffix(argv[1], "app") && hasSuffix(argv[2], "app")) { swapLaunchers(argv[1], argv[2]);