From ec06cc62e116c00646184d58fe7c526c088a18cc Mon Sep 17 00:00:00 2001 From: Dan Paulat Date: Sun, 22 Jun 2025 17:50:36 -0500 Subject: [PATCH 01/18] Don't query for available products when disabling product refresh --- .../scwx/qt/manager/radar_product_manager.cpp | 47 +++++++++++-------- 1 file changed, 27 insertions(+), 20 deletions(-) diff --git a/scwx-qt/source/scwx/qt/manager/radar_product_manager.cpp b/scwx-qt/source/scwx/qt/manager/radar_product_manager.cpp index d2bc15d0..b12df441 100644 --- a/scwx-qt/source/scwx/qt/manager/radar_product_manager.cpp +++ b/scwx-qt/source/scwx/qt/manager/radar_product_manager.cpp @@ -683,29 +683,36 @@ void RadarProductManager::EnableRefresh(common::RadarProductGroup group, p->GetLevel3ProviderManager(product); // Only enable refresh on available products - boost::asio::post( - p->threadPool_, - [=, this]() - { - try + if (enabled) + { + boost::asio::post( + p->threadPool_, + [=, this]() { - providerManager->provider_->RequestAvailableProducts(); - auto availableProducts = - providerManager->provider_->GetAvailableProducts(); - - if (std::find(std::execution::par, - availableProducts.cbegin(), - availableProducts.cend(), - product) != availableProducts.cend()) + try { - p->EnableRefresh(uuid, {providerManager}, enabled); + providerManager->provider_->RequestAvailableProducts(); + auto availableProducts = + providerManager->provider_->GetAvailableProducts(); + + if (std::find(std::execution::par, + availableProducts.cbegin(), + availableProducts.cend(), + product) != availableProducts.cend()) + { + p->EnableRefresh(uuid, {providerManager}, enabled); + } } - } - catch (const std::exception& ex) - { - logger_->error(ex.what()); - } - }); + catch (const std::exception& ex) + { + logger_->error(ex.what()); + } + }); + } + else + { + p->EnableRefresh(uuid, {providerManager}, enabled); + } } } From e51fd8b77b9450e6ff99475a852420a61f970b69 Mon Sep 17 00:00:00 2001 From: Dan Paulat Date: Sun, 22 Jun 2025 22:31:14 -0500 Subject: [PATCH 02/18] macOS does not populate the the OpenGL 3.0 compatibility functions --- scwx-qt/source/scwx/qt/gl/draw/placefile_icons.cpp | 7 +++++++ scwx-qt/source/scwx/qt/gl/draw/placefile_images.cpp | 7 +++++++ scwx-qt/source/scwx/qt/gl/draw/placefile_lines.cpp | 7 +++++++ scwx-qt/source/scwx/qt/gl/gl_context.cpp | 2 ++ scwx-qt/source/scwx/qt/gl/gl_context.hpp | 3 +++ 5 files changed, 26 insertions(+) diff --git a/scwx-qt/source/scwx/qt/gl/draw/placefile_icons.cpp b/scwx-qt/source/scwx/qt/gl/draw/placefile_icons.cpp index b321e149..c86007f9 100644 --- a/scwx-qt/source/scwx/qt/gl/draw/placefile_icons.cpp +++ b/scwx-qt/source/scwx/qt/gl/draw/placefile_icons.cpp @@ -162,7 +162,10 @@ void PlacefileIcons::set_thresholded(bool thresholded) void PlacefileIcons::Initialize() { gl::OpenGLFunctions& gl = p->context_->gl(); + +#if !defined(__APPLE__) auto& gl30 = p->context_->gl30(); +#endif p->shaderProgram_ = p->context_->GetShaderProgram( {{GL_VERTEX_SHADER, ":/gl/geo_texture2d.vert"}, @@ -253,7 +256,11 @@ void PlacefileIcons::Initialize() gl.glEnableVertexAttribArray(6); // aDisplayed +#if !defined(__APPLE__) gl30.glVertexAttribI1i(7, 1); +#else + glVertexAttribI1i(7, 1); +#endif p->dirty_ = true; } diff --git a/scwx-qt/source/scwx/qt/gl/draw/placefile_images.cpp b/scwx-qt/source/scwx/qt/gl/draw/placefile_images.cpp index aafaef8d..d7dddf68 100644 --- a/scwx-qt/source/scwx/qt/gl/draw/placefile_images.cpp +++ b/scwx-qt/source/scwx/qt/gl/draw/placefile_images.cpp @@ -140,7 +140,10 @@ void PlacefileImages::set_thresholded(bool thresholded) void PlacefileImages::Initialize() { gl::OpenGLFunctions& gl = p->context_->gl(); + +#if !defined(__APPLE__) auto& gl30 = p->context_->gl30(); +#endif p->shaderProgram_ = p->context_->GetShaderProgram( {{GL_VERTEX_SHADER, ":/gl/geo_texture2d.vert"}, @@ -222,7 +225,11 @@ void PlacefileImages::Initialize() gl.glEnableVertexAttribArray(6); // aDisplayed +#if !defined(__APPLE__) gl30.glVertexAttribI1i(7, 1); +#else + glVertexAttribI1i(7, 1); +#endif p->dirty_ = true; } diff --git a/scwx-qt/source/scwx/qt/gl/draw/placefile_lines.cpp b/scwx-qt/source/scwx/qt/gl/draw/placefile_lines.cpp index 6ec2750a..d9c49085 100644 --- a/scwx-qt/source/scwx/qt/gl/draw/placefile_lines.cpp +++ b/scwx-qt/source/scwx/qt/gl/draw/placefile_lines.cpp @@ -128,7 +128,10 @@ void PlacefileLines::set_thresholded(bool thresholded) void PlacefileLines::Initialize() { gl::OpenGLFunctions& gl = p->context_->gl(); + +#if !defined(__APPLE__) auto& gl30 = p->context_->gl30(); +#endif p->shaderProgram_ = p->context_->GetShaderProgram( {{GL_VERTEX_SHADER, ":/gl/geo_texture2d.vert"}, @@ -207,7 +210,11 @@ void PlacefileLines::Initialize() gl.glEnableVertexAttribArray(6); // aDisplayed +#if !defined(__APPLE__) gl30.glVertexAttribI1i(7, 1); +#else + glVertexAttribI1i(7, 1); +#endif p->dirty_ = true; } diff --git a/scwx-qt/source/scwx/qt/gl/gl_context.cpp b/scwx-qt/source/scwx/qt/gl/gl_context.cpp index 9fd6bd85..b2cbbde3 100644 --- a/scwx-qt/source/scwx/qt/gl/gl_context.cpp +++ b/scwx-qt/source/scwx/qt/gl/gl_context.cpp @@ -56,10 +56,12 @@ gl::OpenGLFunctions& GlContext::gl() return *p->gl_; } +#if !defined(__APPLE__) QOpenGLFunctions_3_0& GlContext::gl30() { return *p->gl30_; } +#endif std::uint64_t GlContext::texture_buffer_count() const { diff --git a/scwx-qt/source/scwx/qt/gl/gl_context.hpp b/scwx-qt/source/scwx/qt/gl/gl_context.hpp index b4a6a866..b506fca1 100644 --- a/scwx-qt/source/scwx/qt/gl/gl_context.hpp +++ b/scwx-qt/source/scwx/qt/gl/gl_context.hpp @@ -25,7 +25,10 @@ public: GlContext& operator=(GlContext&&) noexcept; gl::OpenGLFunctions& gl(); + +#if !defined(__APPLE__) QOpenGLFunctions_3_0& gl30(); +#endif std::uint64_t texture_buffer_count() const; From b89938b48a53f2aac17c6f42bf45867e386523df Mon Sep 17 00:00:00 2001 From: Dan Paulat Date: Sun, 29 Jun 2025 13:14:27 +0000 Subject: [PATCH 03/18] Build using macos 14 instead of 15 --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6e63e8d7..0f6c17dc 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -109,7 +109,7 @@ jobs: appimage_arch: '' artifact_suffix: macos-x64 - name: macos_clang18_arm64 - os: macos-15 + os: macos-14 build_type: Release env_cc: clang env_cxx: clang++ From 76c6ac2ccd4eedef7be9624ebee2d1acd41da22a Mon Sep 17 00:00:00 2001 From: Dan Paulat Date: Sun, 29 Jun 2025 23:09:37 -0500 Subject: [PATCH 04/18] Update setup script naming convention --- ...up-debug.sh => setup-linux-ninja-debug.sh} | 0 ...up-multi.sh => setup-linux-ninja-multi.sh} | 3 +- ...elease.sh => setup-linux-ninja-release.sh} | 0 ...os-debug.sh => setup-macos-ninja-debug.sh} | 0 ...elease.sh => setup-macos-ninja-release.sh} | 0 tools/setup-macos-xcode-debug.sh | 30 +++++++++++++++++++ tools/setup-macos-xcode-multi.sh | 29 ++++++++++++++++++ tools/setup-macos-xcode-release.sh | 30 +++++++++++++++++++ ...2.bat => setup-windows-msvc2022-debug.bat} | 0 ...2.bat => setup-windows-msvc2022-multi.bat} | 0 ...bat => setup-windows-msvc2022-release.bat} | 0 ...inja.bat => setup-windows-ninja-debug.bat} | 0 ...inja.bat => setup-windows-ninja-multi.bat} | 0 ...ja.bat => setup-windows-ninja-release.bat} | 0 14 files changed, 91 insertions(+), 1 deletion(-) rename tools/{setup-debug.sh => setup-linux-ninja-debug.sh} (100%) rename tools/{setup-multi.sh => setup-linux-ninja-multi.sh} (83%) rename tools/{setup-release.sh => setup-linux-ninja-release.sh} (100%) rename tools/{setup-macos-debug.sh => setup-macos-ninja-debug.sh} (100%) rename tools/{setup-macos-release.sh => setup-macos-ninja-release.sh} (100%) create mode 100755 tools/setup-macos-xcode-debug.sh create mode 100755 tools/setup-macos-xcode-multi.sh create mode 100755 tools/setup-macos-xcode-release.sh rename tools/{setup-debug-msvc2022.bat => setup-windows-msvc2022-debug.bat} (100%) rename tools/{setup-multi-msvc2022.bat => setup-windows-msvc2022-multi.bat} (100%) rename tools/{setup-release-msvc2022.bat => setup-windows-msvc2022-release.bat} (100%) rename tools/{setup-debug-ninja.bat => setup-windows-ninja-debug.bat} (100%) rename tools/{setup-multi-ninja.bat => setup-windows-ninja-multi.bat} (100%) rename tools/{setup-release-ninja.bat => setup-windows-ninja-release.bat} (100%) diff --git a/tools/setup-debug.sh b/tools/setup-linux-ninja-debug.sh similarity index 100% rename from tools/setup-debug.sh rename to tools/setup-linux-ninja-debug.sh diff --git a/tools/setup-multi.sh b/tools/setup-linux-ninja-multi.sh similarity index 83% rename from tools/setup-multi.sh rename to tools/setup-linux-ninja-multi.sh index 05a6cad5..85bb9a97 100755 --- a/tools/setup-multi.sh +++ b/tools/setup-linux-ninja-multi.sh @@ -1,11 +1,12 @@ #!/bin/bash script_dir="$(dirname "$(readlink -f "$0")")" -export build_dir="$(readlink -f "${1:-${script_dir}/../build-debug}")" +export build_dir="$(readlink -f "${1:-${script_dir}/../build-multi}")" export conan_profile=${2:-scwx-linux_gcc-11} export generator="Ninja Multi-Config" export qt_base=/opt/Qt export qt_arch=gcc_64 +export address_sanitizer=${4:-disabled} # Assign user-specified Python Virtual Environment [ "${3:-}" = "none" ] && unset venv_path || export venv_path="$(readlink -f "${3:-${script_dir}/../.venv}")" diff --git a/tools/setup-release.sh b/tools/setup-linux-ninja-release.sh similarity index 100% rename from tools/setup-release.sh rename to tools/setup-linux-ninja-release.sh diff --git a/tools/setup-macos-debug.sh b/tools/setup-macos-ninja-debug.sh similarity index 100% rename from tools/setup-macos-debug.sh rename to tools/setup-macos-ninja-debug.sh diff --git a/tools/setup-macos-release.sh b/tools/setup-macos-ninja-release.sh similarity index 100% rename from tools/setup-macos-release.sh rename to tools/setup-macos-ninja-release.sh diff --git a/tools/setup-macos-xcode-debug.sh b/tools/setup-macos-xcode-debug.sh new file mode 100755 index 00000000..267a4463 --- /dev/null +++ b/tools/setup-macos-xcode-debug.sh @@ -0,0 +1,30 @@ +#!/bin/bash +script_source="${BASH_SOURCE[0]:-$0}" +script_dir="$(cd "$(dirname "${script_source}")" && pwd)" + +export build_dir="$(python3 -c 'import os,sys;print(os.path.realpath(sys.argv[1]))' "${1:-${script_dir}/../build-xcode-debug}")" +export build_type=Debug +export conan_profile=${2:-scwx-macos_clang-18_armv8} +export generator=Xcode +export qt_base="/Users/${USER}/Qt" +export qt_arch=macos +export address_sanitizer=${4:-disabled} + +# Set explicit compiler paths +export CC=$(brew --prefix llvm@18)/bin/clang +export CXX=$(brew --prefix llvm@18)/bin/clang++ +export PATH="$(brew --prefix llvm@18)/bin:$PATH" + +export LDFLAGS="-L$(brew --prefix llvm@18)/lib -L$(brew --prefix llvm@18)/lib/c++" +export CPPFLAGS="-I$(brew --prefix llvm@18)/include" + +# Assign user-specified Python Virtual Environment +if [ "${3:-}" = "none" ]; then + unset venv_path +else + # macOS does not have 'readlink -f', use python for realpath + export venv_path="$(python3 -c 'import os,sys;print(os.path.realpath(sys.argv[1]))' "${3:-${script_dir}/../.venv}")" +fi + +# Perform common setup +"${script_dir}/lib/setup-common.sh" diff --git a/tools/setup-macos-xcode-multi.sh b/tools/setup-macos-xcode-multi.sh new file mode 100755 index 00000000..a5de4d35 --- /dev/null +++ b/tools/setup-macos-xcode-multi.sh @@ -0,0 +1,29 @@ +#!/bin/bash +script_source="${BASH_SOURCE[0]:-$0}" +script_dir="$(cd "$(dirname "${script_source}")" && pwd)" + +export build_dir="$(python3 -c 'import os,sys;print(os.path.realpath(sys.argv[1]))' "${1:-${script_dir}/../build-xcode}")" +export conan_profile=${2:-scwx-macos_clang-18_armv8} +export generator=Xcode +export qt_base=/opt/Qt +export qt_arch=gcc_64 +export address_sanitizer=${4:-disabled} + +# Set explicit compiler paths +export CC=$(brew --prefix llvm@18)/bin/clang +export CXX=$(brew --prefix llvm@18)/bin/clang++ +export PATH="$(brew --prefix llvm@18)/bin:$PATH" + +export LDFLAGS="-L$(brew --prefix llvm@18)/lib -L$(brew --prefix llvm@18)/lib/c++" +export CPPFLAGS="-I$(brew --prefix llvm@18)/include" + +# Assign user-specified Python Virtual Environment +if [ "${3:-}" = "none" ]; then + unset venv_path +else + # macOS does not have 'readlink -f', use python for realpath + export venv_path="$(python3 -c 'import os,sys;print(os.path.realpath(sys.argv[1]))' "${3:-${script_dir}/../.venv}")" +fi + +# Perform common setup +"${script_dir}/lib/setup-common.sh" diff --git a/tools/setup-macos-xcode-release.sh b/tools/setup-macos-xcode-release.sh new file mode 100755 index 00000000..f9ba914e --- /dev/null +++ b/tools/setup-macos-xcode-release.sh @@ -0,0 +1,30 @@ +#!/bin/bash +script_source="${BASH_SOURCE[0]:-$0}" +script_dir="$(cd "$(dirname "${script_source}")" && pwd)" + +export build_dir="$(python3 -c 'import os,sys;print(os.path.realpath(sys.argv[1]))' "${1:-${script_dir}/../build-xcode-release}")" +export build_type=Release +export conan_profile=${2:-scwx-macos_clang-18_armv8} +export generator=Xcode +export qt_base="/Users/${USER}/Qt" +export qt_arch=macos +export address_sanitizer=${4:-disabled} + +# Set explicit compiler paths +export CC=$(brew --prefix llvm@18)/bin/clang +export CXX=$(brew --prefix llvm@18)/bin/clang++ +export PATH="$(brew --prefix llvm@18)/bin:$PATH" + +export LDFLAGS="-L$(brew --prefix llvm@18)/lib -L$(brew --prefix llvm@18)/lib/c++" +export CPPFLAGS="-I$(brew --prefix llvm@18)/include" + +# Assign user-specified Python Virtual Environment +if [ "${3:-}" = "none" ]; then + unset venv_path +else + # macOS does not have 'readlink -f', use python for realpath + export venv_path="$(python3 -c 'import os,sys;print(os.path.realpath(sys.argv[1]))' "${3:-${script_dir}/../.venv}")" +fi + +# Perform common setup +"${script_dir}/lib/setup-common.sh" diff --git a/tools/setup-debug-msvc2022.bat b/tools/setup-windows-msvc2022-debug.bat similarity index 100% rename from tools/setup-debug-msvc2022.bat rename to tools/setup-windows-msvc2022-debug.bat diff --git a/tools/setup-multi-msvc2022.bat b/tools/setup-windows-msvc2022-multi.bat similarity index 100% rename from tools/setup-multi-msvc2022.bat rename to tools/setup-windows-msvc2022-multi.bat diff --git a/tools/setup-release-msvc2022.bat b/tools/setup-windows-msvc2022-release.bat similarity index 100% rename from tools/setup-release-msvc2022.bat rename to tools/setup-windows-msvc2022-release.bat diff --git a/tools/setup-debug-ninja.bat b/tools/setup-windows-ninja-debug.bat similarity index 100% rename from tools/setup-debug-ninja.bat rename to tools/setup-windows-ninja-debug.bat diff --git a/tools/setup-multi-ninja.bat b/tools/setup-windows-ninja-multi.bat similarity index 100% rename from tools/setup-multi-ninja.bat rename to tools/setup-windows-ninja-multi.bat diff --git a/tools/setup-release-ninja.bat b/tools/setup-windows-ninja-release.bat similarity index 100% rename from tools/setup-release-ninja.bat rename to tools/setup-windows-ninja-release.bat From f684d62cb1ed0237164f703e1c0d7b486be4a2cd Mon Sep 17 00:00:00 2001 From: Dan Paulat Date: Sun, 29 Jun 2025 23:12:06 -0500 Subject: [PATCH 05/18] Use debug conan profiles for debug configurations --- CMakePresets.json | 68 +++++++++++++++++++-------------- tools/configure-environment.bat | 18 ++++++++- tools/configure-environment.sh | 18 +++++++++ 3 files changed, 74 insertions(+), 30 deletions(-) diff --git a/CMakePresets.json b/CMakePresets.json index 056a32b9..9fec9614 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -54,9 +54,7 @@ "inherits": "windows-x64-base", "hidden": true, "cacheVariables": { - "CMAKE_PREFIX_PATH": "C:/Qt/6.8.3/msvc2022_64", - "CONAN_HOST_PROFILE": "scwx-windows_msvc2022_x64", - "CONAN_BUILD_PROFILE": "scwx-windows_msvc2022_x64" + "CMAKE_PREFIX_PATH": "C:/Qt/6.8.3/msvc2022_64" } }, { @@ -65,9 +63,7 @@ "hidden": true, "generator": "Ninja", "cacheVariables": { - "CMAKE_PREFIX_PATH": "C:/Qt/6.8.3/msvc2022_64", - "CONAN_HOST_PROFILE": "scwx-windows_msvc2022_x64", - "CONAN_BUILD_PROFILE": "scwx-windows_msvc2022_x64" + "CMAKE_PREFIX_PATH": "C:/Qt/6.8.3/msvc2022_64" } }, { @@ -75,9 +71,7 @@ "inherits": "linux-base", "hidden": true, "cacheVariables": { - "CMAKE_PREFIX_PATH": "/opt/Qt/6.8.3/gcc_64", - "CONAN_HOST_PROFILE": "scwx-linux_gcc-11", - "CONAN_BUILD_PROFILE": "scwx-linux_gcc-11" + "CMAKE_PREFIX_PATH": "/opt/Qt/6.8.3/gcc_64" }, "environment": { "CC": "gcc-11", @@ -93,7 +87,9 @@ "strategy": "external" }, "cacheVariables": { - "CMAKE_BUILD_TYPE": "Debug" + "CMAKE_BUILD_TYPE": "Debug", + "CONAN_HOST_PROFILE": "scwx-windows_msvc2022_x64-debug", + "CONAN_BUILD_PROFILE": "scwx-windows_msvc2022_x64-debug" } }, { @@ -105,7 +101,9 @@ "strategy": "external" }, "cacheVariables": { - "CMAKE_BUILD_TYPE": "Release" + "CMAKE_BUILD_TYPE": "Release", + "CONAN_HOST_PROFILE": "scwx-windows_msvc2022_x64", + "CONAN_BUILD_PROFILE": "scwx-windows_msvc2022_x64" } }, { @@ -113,7 +111,9 @@ "inherits": "windows-msvc2022-x64-ninja-base", "displayName": "Windows MSVC 2022 x64 Ninja Debug", "cacheVariables": { - "CMAKE_BUILD_TYPE": "Debug" + "CMAKE_BUILD_TYPE": "Debug", + "CONAN_HOST_PROFILE": "scwx-windows_msvc2022_x64-debug", + "CONAN_BUILD_PROFILE": "scwx-windows_msvc2022_x64-debug" } }, { @@ -121,7 +121,9 @@ "inherits": "windows-msvc2022-x64-ninja-base", "displayName": "Windows MSVC 2022 x64 Ninja Release", "cacheVariables": { - "CMAKE_BUILD_TYPE": "Release" + "CMAKE_BUILD_TYPE": "Release", + "CONAN_HOST_PROFILE": "scwx-windows_msvc2022_x64", + "CONAN_BUILD_PROFILE": "scwx-windows_msvc2022_x64" } }, { @@ -130,7 +132,9 @@ "displayName": "Linux GCC Debug", "cacheVariables": { "CMAKE_BUILD_TYPE": "Debug", - "CMAKE_INSTALL_PREFIX": "${sourceDir}/build/${presetName}/Debug/supercell-wx" + "CMAKE_INSTALL_PREFIX": "${sourceDir}/build/${presetName}/Debug/supercell-wx", + "CONAN_HOST_PROFILE": "scwx-linux_gcc-11-debug", + "CONAN_BUILD_PROFILE": "scwx-linux_gcc-11-debug" } }, { @@ -139,7 +143,9 @@ "displayName": "Linux GCC Release", "cacheVariables": { "CMAKE_BUILD_TYPE": "Release", - "CMAKE_INSTALL_PREFIX": "${sourceDir}/build/${presetName}/Release/supercell-wx" + "CMAKE_INSTALL_PREFIX": "${sourceDir}/build/${presetName}/Release/supercell-wx", + "CONAN_HOST_PROFILE": "scwx-linux_gcc-11", + "CONAN_BUILD_PROFILE": "scwx-linux_gcc-11" } }, { @@ -149,6 +155,8 @@ "cacheVariables": { "CMAKE_BUILD_TYPE": "Debug", "CMAKE_INSTALL_PREFIX": "${sourceDir}/build/${presetName}/Debug/supercell-wx", + "CONAN_HOST_PROFILE": "scwx-linux_gcc-11-debug", + "CONAN_BUILD_PROFILE": "scwx-linux_gcc-11-debug", "SCWX_ADDRESS_SANITIZER": { "type": "BOOL", "value": "ON" @@ -162,6 +170,8 @@ "cacheVariables": { "CMAKE_BUILD_TYPE": "Release", "CMAKE_INSTALL_PREFIX": "${sourceDir}/build/${presetName}/Release/supercell-wx", + "CONAN_HOST_PROFILE": "scwx-linux_gcc-11", + "CONAN_BUILD_PROFILE": "scwx-linux_gcc-11", "SCWX_ADDRESS_SANITIZER": { "type": "BOOL", "value": "ON" @@ -202,9 +212,9 @@ "displayName": "CI Linux GCC ARM64", "cacheVariables": { "CMAKE_BUILD_TYPE": "Release", + "CMAKE_PREFIX_PATH": "/opt/Qt/6.8.3/gcc_arm64", "CONAN_HOST_PROFILE": "scwx-linux_gcc-11_armv8", - "CONAN_BUILD_PROFILE": "scwx-linux_gcc-11_armv8", - "CMAKE_PREFIX_PATH": "/opt/Qt/6.8.3/gcc_arm64" + "CONAN_BUILD_PROFILE": "scwx-linux_gcc-11_armv8" }, "environment": { "CC": "gcc-11", @@ -233,10 +243,6 @@ "name": "macos-clang18-x64-base", "inherits": "macos-clang18-base", "hidden": true, - "cacheVariables": { - "CONAN_HOST_PROFILE": "scwx-macos_clang-18", - "CONAN_BUILD_PROFILE": "scwx-macos_clang-18" - }, "environment": { "CC": "/usr/local/opt/llvm@18/bin/clang", "CXX": "/usr/local/opt/llvm@18/bin/clang++", @@ -249,10 +255,6 @@ "name": "macos-clang18-arm64-base", "inherits": "macos-clang18-base", "hidden": true, - "cacheVariables": { - "CONAN_HOST_PROFILE": "scwx-macos_clang-18_armv8", - "CONAN_BUILD_PROFILE": "scwx-macos_clang-18_armv8" - }, "environment": { "CC": "/opt/homebrew/opt/llvm@18/bin/clang", "CXX": "/opt/homebrew/opt/llvm@18/bin/clang++", @@ -266,7 +268,9 @@ "inherits": "macos-clang18-x64-base", "displayName": "macOS Clang 18 x64 Debug", "cacheVariables": { - "CMAKE_BUILD_TYPE": "Debug" + "CMAKE_BUILD_TYPE": "Debug", + "CONAN_HOST_PROFILE": "scwx-macos_clang-18-debug", + "CONAN_BUILD_PROFILE": "scwx-macos_clang-18-debug" } }, { @@ -274,7 +278,9 @@ "inherits": "macos-clang18-x64-base", "displayName": "macOS Clang 18 x64 Release", "cacheVariables": { - "CMAKE_BUILD_TYPE": "Release" + "CMAKE_BUILD_TYPE": "Release", + "CONAN_HOST_PROFILE": "scwx-macos_clang-18", + "CONAN_BUILD_PROFILE": "scwx-macos_clang-18" } }, { @@ -282,7 +288,9 @@ "inherits": "macos-clang18-arm64-base", "displayName": "macOS Clang 18 Arm64 Debug", "cacheVariables": { - "CMAKE_BUILD_TYPE": "Debug" + "CMAKE_BUILD_TYPE": "Debug", + "CONAN_HOST_PROFILE": "scwx-macos_clang-18_armv8-debug", + "CONAN_BUILD_PROFILE": "scwx-macos_clang-18_armv8-debug" } }, { @@ -290,7 +298,9 @@ "inherits": "macos-clang18-arm64-base", "displayName": "macOS Clang 18 Arm64 Release", "cacheVariables": { - "CMAKE_BUILD_TYPE": "Release" + "CMAKE_BUILD_TYPE": "Release", + "CONAN_HOST_PROFILE": "scwx-macos_clang-18_armv8", + "CONAN_BUILD_PROFILE": "scwx-macos_clang-18_armv8" } } ], diff --git a/tools/configure-environment.bat b/tools/configure-environment.bat index d386ecc0..bf9118a4 100644 --- a/tools/configure-environment.bat +++ b/tools/configure-environment.bat @@ -33,8 +33,24 @@ pip install --upgrade -r "%script_dir%\..\requirements.txt" :: Install Conan profiles @for /L %%i in (0,1,!last_profile!) do @( + :: Install the base profile set "profile_name=!conan_profile[%%i]!" - conan config install "%script_dir%\conan\profiles\!profile_name!" -tf profiles + set "profile_path=%script_dir%\conan\profiles\!profile_name!" + conan config install "!profile_path!" -tf profiles + + :: Create debug profile in temp directory + set "debug_profile_name=!profile_name!-debug" + set "debug_profile_path=%TEMP%\!debug_profile_name!" + copy "!profile_path!" "!debug_profile_path!" >nul + + :: Replace build_type=Release with build_type=Debug + powershell -Command "(Get-Content '!debug_profile_path!') -replace 'build_type=Release', 'build_type=Debug' | Set-Content '!debug_profile_path!'" + + :: Install the debug profile + conan config install "!debug_profile_path!" -tf profiles + + :: Remove temporary debug profile + del "!debug_profile_path!" ) :: Deactivate Python Virtual Environment diff --git a/tools/configure-environment.sh b/tools/configure-environment.sh index 1dfc714c..f88ef504 100755 --- a/tools/configure-environment.sh +++ b/tools/configure-environment.sh @@ -71,7 +71,25 @@ fi # Install Conan profiles for profile_name in "${conan_profiles[@]}"; do + # Install original profile conan config install "${script_dir}/conan/profiles/${profile_name}" -tf profiles + + # Create debug profile in temp directory + debug_profile="/tmp/${profile_name}-debug" + cp "${script_dir}/conan/profiles/${profile_name}" "${debug_profile}" + + # Replace build_type=Release with build_type=Debug + if [[ "$(uname)" == "Darwin" ]]; then + sed -i '' 's/build_type=Release/build_type=Debug/g' "${debug_profile}" + else + sed -i 's/build_type=Release/build_type=Debug/g' "${debug_profile}" + fi + + # Install the debug profile + conan config install "${debug_profile}" -tf profiles + + # Remove temporary debug profile + rm "${debug_profile}" done # Deactivate Python Virtual Environment From 9eea0a4dc827d62b8b39c77f176ae74e0112f06a Mon Sep 17 00:00:00 2001 From: Dan Paulat Date: Mon, 30 Jun 2025 20:19:30 -0500 Subject: [PATCH 06/18] Updating minimum requirements for macOS --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index d5995d2f..81b0e698 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,9 @@ Supercell Wx supports the following 64-bit operating systems: - Ubuntu 22.04+ - NixOS 25.05+ - Most distributions supporting the GCC Standard C++ Library 11+ -- macOS 12 (Monterey) or later +- macOS + - 13.6+ for Intel-based Macs + - 14.0+ for Apple silicon-based Macs ## Linux Dependencies From 5716d89d52d430e2a97f0d3f876ba38d68a23941 Mon Sep 17 00:00:00 2001 From: Dan Paulat Date: Mon, 30 Jun 2025 21:42:50 -0500 Subject: [PATCH 07/18] On macOS, set font pixel size instead of point size to prevent tiny display --- scwx-qt/source/scwx/qt/manager/font_manager.cpp | 6 ++++++ scwx-qt/source/scwx/qt/ui/settings_dialog.cpp | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/scwx-qt/source/scwx/qt/manager/font_manager.cpp b/scwx-qt/source/scwx/qt/manager/font_manager.cpp index d92d3bd7..c1553418 100644 --- a/scwx-qt/source/scwx/qt/manager/font_manager.cpp +++ b/scwx-qt/source/scwx/qt/manager/font_manager.cpp @@ -191,7 +191,13 @@ void FontManager::Impl::UpdateQFont(types::FontCategory fontCategory) QFont font = QFontDatabase::font(QString::fromStdString(family), QString::fromStdString(styles), static_cast(size.value())); + +#if !defined(__APPLE__) font.setPointSizeF(size.value()); +#else + const units::font_size::pixels pixelSize {size}; + font.setPixelSize(static_cast(pixelSize.value())); +#endif fontCategoryQFontMap_.insert_or_assign(fontCategory, font); } diff --git a/scwx-qt/source/scwx/qt/ui/settings_dialog.cpp b/scwx-qt/source/scwx/qt/ui/settings_dialog.cpp index 4f63743f..81e3a96d 100644 --- a/scwx-qt/source/scwx/qt/ui/settings_dialog.cpp +++ b/scwx-qt/source/scwx/qt/ui/settings_dialog.cpp @@ -1496,6 +1496,12 @@ void SettingsDialogImpl::UpdateFontDisplayData() self_->ui->fontStyleLabel->setText(font.styleName()); self_->ui->fontSizeLabel->setText(QString::number(font.pointSizeF())); +#if defined(__APPLE__) + const units::font_size::points fontSize {font.pointSizeF()}; + const units::font_size::pixels fontPixels {fontSize}; + font.setPixelSize(static_cast(fontPixels.value())); +#endif + self_->ui->fontPreviewLabel->setFont(font); if (selectedFontCategory_ != types::FontCategory::Unknown) From 5f661df9fddfbff8792d719d23190f5e4cc4b8c9 Mon Sep 17 00:00:00 2001 From: Dan Paulat Date: Mon, 30 Jun 2025 21:43:14 -0500 Subject: [PATCH 08/18] Alert dialog should display a fixed pitch font --- scwx-qt/source/scwx/qt/ui/alert_dialog.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/scwx-qt/source/scwx/qt/ui/alert_dialog.cpp b/scwx-qt/source/scwx/qt/ui/alert_dialog.cpp index 76aa284a..3d9d1af5 100644 --- a/scwx-qt/source/scwx/qt/ui/alert_dialog.cpp +++ b/scwx-qt/source/scwx/qt/ui/alert_dialog.cpp @@ -54,7 +54,13 @@ AlertDialog::AlertDialog(QWidget* parent) : // Set monospace font for alert view QFont monospaceFont("?"); - monospaceFont.setStyleHint(QFont::TypeWriter); + monospaceFont.setStyleHint(QFont::StyleHint::TypeWriter); + + if (!monospaceFont.fixedPitch()) + { + monospaceFont.setStyleHint(QFont::StyleHint::Monospace); + } + ui->alertText->setFont(monospaceFont); // Add Go button to button box From 847c5d951e3fadc3f150d3de28e95ff0cc47d6e7 Mon Sep 17 00:00:00 2001 From: Dan Paulat Date: Mon, 30 Jun 2025 22:04:55 -0500 Subject: [PATCH 09/18] Don't report shader warnings as errors --- scwx-qt/source/scwx/qt/gl/shader_program.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scwx-qt/source/scwx/qt/gl/shader_program.cpp b/scwx-qt/source/scwx/qt/gl/shader_program.cpp index 4da07a32..b4855ca9 100644 --- a/scwx-qt/source/scwx/qt/gl/shader_program.cpp +++ b/scwx-qt/source/scwx/qt/gl/shader_program.cpp @@ -138,7 +138,7 @@ bool ShaderProgram::Load( } else if (logLength > 0) { - logger_->error("Shader compiled with warnings: {}", infoLog); + logger_->warn("Shader compiled with warnings: {}", infoLog); } } @@ -160,7 +160,7 @@ bool ShaderProgram::Load( } else if (logLength > 0) { - logger_->error("Shader program linked with warnings: {}", infoLog); + logger_->warn("Shader program linked with warnings: {}", infoLog); } } From 27501682876d91839e62f0d70fc8fc19c3843574 Mon Sep 17 00:00:00 2001 From: Dan Paulat Date: Mon, 30 Jun 2025 22:25:42 -0500 Subject: [PATCH 10/18] Fix display of placefile polygons and triangles on macOS --- scwx-qt/gl/map_color.vert | 3 +++ 1 file changed, 3 insertions(+) diff --git a/scwx-qt/gl/map_color.vert b/scwx-qt/gl/map_color.vert index 6ae98e92..609d1c34 100644 --- a/scwx-qt/gl/map_color.vert +++ b/scwx-qt/gl/map_color.vert @@ -26,6 +26,9 @@ void main() // Always set displayed to true vsOut.displayed = 1; + // Initialize texCoord to default value + vsOut.texCoord = vec3(0.0f, 0.0f, 0.0f); + // Pass the threshold and time range to the geometry shader vsOut.threshold = aThreshold; vsOut.timeRange = aTimeRange; From 3a8cdb8ea1c26691424b4b4fb8d3e21a51b63357 Mon Sep 17 00:00:00 2001 From: Dan Paulat Date: Mon, 30 Jun 2025 22:48:13 -0500 Subject: [PATCH 11/18] Add build numbers to non-Windows builds --- scwx-qt/scwx-qt.cmake | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scwx-qt/scwx-qt.cmake b/scwx-qt/scwx-qt.cmake index 4bffdc2e..c1dba7f2 100644 --- a/scwx-qt/scwx-qt.cmake +++ b/scwx-qt/scwx-qt.cmake @@ -577,7 +577,8 @@ else() -v ${SCWX_VERSION} -c ${VERSIONS_CACHE} -i ${VERSIONS_INPUT} - -o ${VERSIONS_HEADER}) + -o ${VERSIONS_HEADER} + -b ${SCWX_BUILD_NUM}) endif() add_custom_target(scwx-qt_generate_versions ALL From afcca785eb9fe20c172d613e1080f7058979f4ff Mon Sep 17 00:00:00 2001 From: Dan Paulat Date: Mon, 30 Jun 2025 22:55:32 -0500 Subject: [PATCH 12/18] Formatting font_manager.cpp --- .../source/scwx/qt/manager/font_manager.cpp | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/scwx-qt/source/scwx/qt/manager/font_manager.cpp b/scwx-qt/source/scwx/qt/manager/font_manager.cpp index c1553418..bfcc1242 100644 --- a/scwx-qt/source/scwx/qt/manager/font_manager.cpp +++ b/scwx-qt/source/scwx/qt/manager/font_manager.cpp @@ -139,22 +139,22 @@ void FontManager::Impl::ConnectSignals() }); } - QObject::connect( - &SettingsManager::Instance(), - &SettingsManager::SettingsSaved, - self_, - [this]() - { - std::scoped_lock lock {dirtyFontsMutex_, fontCategoryMutex_}; + QObject::connect(&SettingsManager::Instance(), + &SettingsManager::SettingsSaved, + self_, + [this]() + { + std::scoped_lock lock {dirtyFontsMutex_, + fontCategoryMutex_}; - for (auto fontCategory : dirtyFonts_) - { - UpdateImGuiFont(fontCategory); - UpdateQFont(fontCategory); - } + for (auto fontCategory : dirtyFonts_) + { + UpdateImGuiFont(fontCategory); + UpdateQFont(fontCategory); + } - dirtyFonts_.clear(); - }); + dirtyFonts_.clear(); + }); } void FontManager::InitializeFonts() From b8a0dae042797283ac937bbd8a4413c7105e77bc Mon Sep 17 00:00:00 2001 From: Dan Paulat Date: Mon, 30 Jun 2025 23:00:58 -0500 Subject: [PATCH 13/18] Radar product manager clang-tidy cleanup --- scwx-qt/source/scwx/qt/manager/radar_product_manager.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scwx-qt/source/scwx/qt/manager/radar_product_manager.cpp b/scwx-qt/source/scwx/qt/manager/radar_product_manager.cpp index b12df441..13787496 100644 --- a/scwx-qt/source/scwx/qt/manager/radar_product_manager.cpp +++ b/scwx-qt/source/scwx/qt/manager/radar_product_manager.cpp @@ -679,7 +679,7 @@ void RadarProductManager::EnableRefresh(common::RadarProductGroup group, } else { - std::shared_ptr providerManager = + const std::shared_ptr providerManager = p->GetLevel3ProviderManager(product); // Only enable refresh on available products @@ -687,12 +687,12 @@ void RadarProductManager::EnableRefresh(common::RadarProductGroup group, { boost::asio::post( p->threadPool_, - [=, this]() + [providerManager, product, uuid, enabled, this]() { try { providerManager->provider_->RequestAvailableProducts(); - auto availableProducts = + const auto availableProducts = providerManager->provider_->GetAvailableProducts(); if (std::find(std::execution::par, From 788bd114cc3451ee97c2089d5034db3a6f4e3131 Mon Sep 17 00:00:00 2001 From: Dan Paulat Date: Tue, 1 Jul 2025 00:15:54 -0500 Subject: [PATCH 14/18] Update title font sizes for macOS --- scwx-qt/source/scwx/qt/ui/about_dialog.cpp | 12 +++++++++--- scwx-qt/source/scwx/qt/ui/update_dialog.cpp | 12 +++++++++--- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/scwx-qt/source/scwx/qt/ui/about_dialog.cpp b/scwx-qt/source/scwx/qt/ui/about_dialog.cpp index bc24d056..9ae6ce18 100644 --- a/scwx-qt/source/scwx/qt/ui/about_dialog.cpp +++ b/scwx-qt/source/scwx/qt/ui/about_dialog.cpp @@ -24,13 +24,19 @@ AboutDialog::AboutDialog(QWidget* parent) : p {std::make_unique()}, ui(new Ui::AboutDialog) { +#if !defined(__APPLE__) + static constexpr int titleFontSize = 14; +#else + static constexpr int titleFontSize = 18; +#endif + ui->setupUi(this); - int titleFontId = + const int titleFontId = manager::FontManager::Instance().GetFontId(types::Font::din1451alt_g); - QString titleFontFamily = + const QString titleFontFamily = QFontDatabase::applicationFontFamilies(titleFontId).at(0); - QFont titleFont(titleFontFamily, 14); + const QFont titleFont(titleFontFamily, titleFontSize); ui->titleLabel->setFont(titleFont); QString repositoryUrl = diff --git a/scwx-qt/source/scwx/qt/ui/update_dialog.cpp b/scwx-qt/source/scwx/qt/ui/update_dialog.cpp index 0ca61a18..6473a30b 100644 --- a/scwx-qt/source/scwx/qt/ui/update_dialog.cpp +++ b/scwx-qt/source/scwx/qt/ui/update_dialog.cpp @@ -42,13 +42,19 @@ public: UpdateDialog::UpdateDialog(QWidget* parent) : QDialog(parent), p {std::make_unique(this)}, ui(new Ui::UpdateDialog) { +#if !defined(__APPLE__) + static constexpr int titleFontSize = 12; +#else + static constexpr int titleFontSize = 16; +#endif + ui->setupUi(this); - int titleFontId = + const int titleFontId = manager::FontManager::Instance().GetFontId(types::Font::din1451alt_g); - QString titleFontFamily = + const QString titleFontFamily = QFontDatabase::applicationFontFamilies(titleFontId).at(0); - QFont titleFont(titleFontFamily, 12); + const QFont titleFont(titleFontFamily, titleFontSize); ui->bannerLabel->setFont(titleFont); ui->releaseNotesText->setOpenExternalLinks(true); From b2653fd585233257d4a26a340956694db1ebbb8a Mon Sep 17 00:00:00 2001 From: Dan Paulat Date: Tue, 1 Jul 2025 00:17:24 -0500 Subject: [PATCH 15/18] Remove raised styling from most QFrames This was never intended to be part of the UI, and did not show on Windows. It shows on Fusion, and is especially noticable on macOS. --- scwx-qt/source/scwx/qt/ui/about_dialog.ui | 20 ++++------- scwx-qt/source/scwx/qt/ui/alert_dialog.ui | 14 +++----- .../source/scwx/qt/ui/alert_dock_widget.ui | 10 ++---- .../scwx/qt/ui/animation_dock_widget.ui | 24 ------------- scwx-qt/source/scwx/qt/ui/county_dialog.ui | 10 ++---- .../source/scwx/qt/ui/imgui_debug_dialog.ui | 10 ++---- scwx-qt/source/scwx/qt/ui/layer_dialog.ui | 34 +++++-------------- scwx-qt/source/scwx/qt/ui/marker_dialog.ui | 10 ++---- .../scwx/qt/ui/marker_settings_widget.ui | 6 ---- scwx-qt/source/scwx/qt/ui/open_url_dialog.ui | 12 ++----- scwx-qt/source/scwx/qt/ui/placefile_dialog.ui | 10 ++---- .../scwx/qt/ui/placefile_settings_widget.ui | 8 +---- .../source/scwx/qt/ui/radar_site_dialog.ui | 12 ++----- scwx-qt/source/scwx/qt/ui/settings_dialog.ui | 32 +++-------------- scwx-qt/source/scwx/qt/ui/update_dialog.ui | 24 ++----------- scwx-qt/source/scwx/qt/ui/wfo_dialog.ui | 6 ---- 16 files changed, 43 insertions(+), 199 deletions(-) diff --git a/scwx-qt/source/scwx/qt/ui/about_dialog.ui b/scwx-qt/source/scwx/qt/ui/about_dialog.ui index 64e8ed46..f8ef5270 100644 --- a/scwx-qt/source/scwx/qt/ui/about_dialog.ui +++ b/scwx-qt/source/scwx/qt/ui/about_dialog.ui @@ -16,12 +16,6 @@ - - QFrame::StyledPanel - - - QFrame::Raised - 0 @@ -44,7 +38,7 @@ :/res/icons/scwx-256.png - Qt::AlignCenter + Qt::AlignmentFlag::AlignCenter @@ -54,7 +48,7 @@ Supercell Wx - Qt::AlignCenter + Qt::AlignmentFlag::AlignCenter @@ -64,7 +58,7 @@ Version X.Y.Z - Qt::AlignCenter + Qt::AlignmentFlag::AlignCenter @@ -74,7 +68,7 @@ Git Revision 0000000000 - Qt::AlignCenter + Qt::AlignmentFlag::AlignCenter @@ -84,7 +78,7 @@ Copyright © 2021-YYYY Dan Paulat - Qt::AlignCenter + Qt::AlignmentFlag::AlignCenter @@ -94,10 +88,10 @@ - Qt::Horizontal + Qt::Orientation::Horizontal - QDialogButtonBox::Ok + QDialogButtonBox::StandardButton::Ok diff --git a/scwx-qt/source/scwx/qt/ui/alert_dialog.ui b/scwx-qt/source/scwx/qt/ui/alert_dialog.ui index 55686925..f180dc71 100644 --- a/scwx-qt/source/scwx/qt/ui/alert_dialog.ui +++ b/scwx-qt/source/scwx/qt/ui/alert_dialog.ui @@ -17,18 +17,12 @@ - QTextEdit::NoWrap + QTextEdit::LineWrapMode::NoWrap - - QFrame::StyledPanel - - - QFrame::Raised - 0 @@ -108,7 +102,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -121,10 +115,10 @@ - Qt::Horizontal + Qt::Orientation::Horizontal - QDialogButtonBox::Close + QDialogButtonBox::StandardButton::Close diff --git a/scwx-qt/source/scwx/qt/ui/alert_dock_widget.ui b/scwx-qt/source/scwx/qt/ui/alert_dock_widget.ui index 96328278..317fc566 100644 --- a/scwx-qt/source/scwx/qt/ui/alert_dock_widget.ui +++ b/scwx-qt/source/scwx/qt/ui/alert_dock_widget.ui @@ -30,12 +30,6 @@ - - QFrame::StyledPanel - - - QFrame::Raised - 0 @@ -62,7 +56,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -85,7 +79,7 @@ :/res/icons/font-awesome-6/sliders-solid.svg:/res/icons/font-awesome-6/sliders-solid.svg - QToolButton::InstantPopup + QToolButton::ToolButtonPopupMode::InstantPopup diff --git a/scwx-qt/source/scwx/qt/ui/animation_dock_widget.ui b/scwx-qt/source/scwx/qt/ui/animation_dock_widget.ui index 67203ffc..dbbed2a7 100644 --- a/scwx-qt/source/scwx/qt/ui/animation_dock_widget.ui +++ b/scwx-qt/source/scwx/qt/ui/animation_dock_widget.ui @@ -10,12 +10,6 @@ 276 - - QFrame::Shape::StyledPanel - - - QFrame::Shadow::Raised - 0 @@ -78,12 +72,6 @@ - - QFrame::Shape::StyledPanel - - - QFrame::Shadow::Raised - 0 @@ -119,12 +107,6 @@ - - QFrame::Shape::StyledPanel - - - QFrame::Shadow::Raised - 0 @@ -218,12 +200,6 @@ - - QFrame::Shape::StyledPanel - - - QFrame::Shadow::Raised - 1 diff --git a/scwx-qt/source/scwx/qt/ui/county_dialog.ui b/scwx-qt/source/scwx/qt/ui/county_dialog.ui index 71741c86..6a9a0257 100644 --- a/scwx-qt/source/scwx/qt/ui/county_dialog.ui +++ b/scwx-qt/source/scwx/qt/ui/county_dialog.ui @@ -29,12 +29,6 @@ - - QFrame::StyledPanel - - - QFrame::Raised - 0 @@ -54,10 +48,10 @@ - Qt::Horizontal + Qt::Orientation::Horizontal - QDialogButtonBox::Cancel|QDialogButtonBox::Ok + QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::Ok diff --git a/scwx-qt/source/scwx/qt/ui/imgui_debug_dialog.ui b/scwx-qt/source/scwx/qt/ui/imgui_debug_dialog.ui index 5752a7c1..6b371769 100644 --- a/scwx-qt/source/scwx/qt/ui/imgui_debug_dialog.ui +++ b/scwx-qt/source/scwx/qt/ui/imgui_debug_dialog.ui @@ -16,12 +16,6 @@ - - QFrame::StyledPanel - - - QFrame::Raised - 0 @@ -54,10 +48,10 @@ - Qt::Horizontal + Qt::Orientation::Horizontal - QDialogButtonBox::Close + QDialogButtonBox::StandardButton::Close diff --git a/scwx-qt/source/scwx/qt/ui/layer_dialog.ui b/scwx-qt/source/scwx/qt/ui/layer_dialog.ui index f9b2a076..45f8413e 100644 --- a/scwx-qt/source/scwx/qt/ui/layer_dialog.ui +++ b/scwx-qt/source/scwx/qt/ui/layer_dialog.ui @@ -16,12 +16,6 @@ - - QFrame::StyledPanel - - - QFrame::Raised - 0 @@ -41,16 +35,16 @@ true - QAbstractItemView::InternalMove + QAbstractItemView::DragDropMode::InternalMove - Qt::MoveAction + Qt::DropAction::MoveAction true - QAbstractItemView::ExtendedSelection + QAbstractItemView::SelectionMode::ExtendedSelection 0 @@ -59,12 +53,6 @@ - - QFrame::StyledPanel - - - QFrame::Raised - 0 @@ -81,7 +69,7 @@ - Qt::Vertical + Qt::Orientation::Vertical @@ -138,7 +126,7 @@ - Qt::Vertical + Qt::Orientation::Vertical @@ -156,12 +144,6 @@ - - QFrame::StyledPanel - - - QFrame::Raised - 0 @@ -188,7 +170,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -207,10 +189,10 @@ - Qt::Horizontal + Qt::Orientation::Horizontal - QDialogButtonBox::Close|QDialogButtonBox::Reset + QDialogButtonBox::StandardButton::Close|QDialogButtonBox::StandardButton::Reset diff --git a/scwx-qt/source/scwx/qt/ui/marker_dialog.ui b/scwx-qt/source/scwx/qt/ui/marker_dialog.ui index 6256b756..86e8fad3 100644 --- a/scwx-qt/source/scwx/qt/ui/marker_dialog.ui +++ b/scwx-qt/source/scwx/qt/ui/marker_dialog.ui @@ -16,12 +16,6 @@ - - QFrame::StyledPanel - - - QFrame::Raised - 0 @@ -41,10 +35,10 @@ - Qt::Horizontal + Qt::Orientation::Horizontal - QDialogButtonBox::Close + QDialogButtonBox::StandardButton::Close diff --git a/scwx-qt/source/scwx/qt/ui/marker_settings_widget.ui b/scwx-qt/source/scwx/qt/ui/marker_settings_widget.ui index 12315d24..3804f318 100644 --- a/scwx-qt/source/scwx/qt/ui/marker_settings_widget.ui +++ b/scwx-qt/source/scwx/qt/ui/marker_settings_widget.ui @@ -29,12 +29,6 @@ - - QFrame::Shape::StyledPanel - - - QFrame::Shadow::Raised - 0 diff --git a/scwx-qt/source/scwx/qt/ui/open_url_dialog.ui b/scwx-qt/source/scwx/qt/ui/open_url_dialog.ui index a796d20d..117d62c1 100644 --- a/scwx-qt/source/scwx/qt/ui/open_url_dialog.ui +++ b/scwx-qt/source/scwx/qt/ui/open_url_dialog.ui @@ -16,12 +16,6 @@ - - QFrame::StyledPanel - - - QFrame::Raised - 0 @@ -58,7 +52,7 @@ - Qt::Vertical + Qt::Orientation::Vertical @@ -71,10 +65,10 @@ - Qt::Horizontal + Qt::Orientation::Horizontal - QDialogButtonBox::Cancel|QDialogButtonBox::Ok + QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::Ok diff --git a/scwx-qt/source/scwx/qt/ui/placefile_dialog.ui b/scwx-qt/source/scwx/qt/ui/placefile_dialog.ui index 8ff045a6..aa3659bf 100644 --- a/scwx-qt/source/scwx/qt/ui/placefile_dialog.ui +++ b/scwx-qt/source/scwx/qt/ui/placefile_dialog.ui @@ -16,12 +16,6 @@ - - QFrame::StyledPanel - - - QFrame::Raised - 0 @@ -41,10 +35,10 @@ - Qt::Horizontal + Qt::Orientation::Horizontal - QDialogButtonBox::Close + QDialogButtonBox::StandardButton::Close diff --git a/scwx-qt/source/scwx/qt/ui/placefile_settings_widget.ui b/scwx-qt/source/scwx/qt/ui/placefile_settings_widget.ui index b95ab784..6355fdc0 100644 --- a/scwx-qt/source/scwx/qt/ui/placefile_settings_widget.ui +++ b/scwx-qt/source/scwx/qt/ui/placefile_settings_widget.ui @@ -29,12 +29,6 @@ - - QFrame::StyledPanel - - - QFrame::Raised - 0 @@ -61,7 +55,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal diff --git a/scwx-qt/source/scwx/qt/ui/radar_site_dialog.ui b/scwx-qt/source/scwx/qt/ui/radar_site_dialog.ui index 74eae33b..bfaf7a5c 100644 --- a/scwx-qt/source/scwx/qt/ui/radar_site_dialog.ui +++ b/scwx-qt/source/scwx/qt/ui/radar_site_dialog.ui @@ -17,7 +17,7 @@ - QAbstractItemView::CurrentChanged|QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed|QAbstractItemView::SelectedClicked + QAbstractItemView::EditTrigger::CurrentChanged|QAbstractItemView::EditTrigger::DoubleClicked|QAbstractItemView::EditTrigger::EditKeyPressed|QAbstractItemView::EditTrigger::SelectedClicked true @@ -32,12 +32,6 @@ - - QFrame::StyledPanel - - - QFrame::Raised - 0 @@ -64,10 +58,10 @@ - Qt::Horizontal + Qt::Orientation::Horizontal - QDialogButtonBox::Cancel|QDialogButtonBox::Ok + QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::Ok diff --git a/scwx-qt/source/scwx/qt/ui/settings_dialog.ui b/scwx-qt/source/scwx/qt/ui/settings_dialog.ui index d67ef84c..aa12d3b8 100644 --- a/scwx-qt/source/scwx/qt/ui/settings_dialog.ui +++ b/scwx-qt/source/scwx/qt/ui/settings_dialog.ui @@ -16,12 +16,6 @@ - - QFrame::Shape::StyledPanel - - - QFrame::Shadow::Raised - 0 @@ -136,8 +130,8 @@ 0 0 - 511 - 873 + 513 + 845 @@ -810,8 +804,8 @@ 0 0 - 503 - 380 + 505 + 384 @@ -1197,12 +1191,6 @@ - - QFrame::Shape::StyledPanel - - - QFrame::Shadow::Raised - 0 @@ -1231,12 +1219,6 @@ - - QFrame::Shape::StyledPanel - - - QFrame::Shadow::Raised - 0 @@ -1376,12 +1358,6 @@ - - QFrame::Shape::StyledPanel - - - QFrame::Shadow::Raised - 0 diff --git a/scwx-qt/source/scwx/qt/ui/update_dialog.ui b/scwx-qt/source/scwx/qt/ui/update_dialog.ui index 5aa8e054..84540fe9 100644 --- a/scwx-qt/source/scwx/qt/ui/update_dialog.ui +++ b/scwx-qt/source/scwx/qt/ui/update_dialog.ui @@ -16,12 +16,6 @@ - - QFrame::StyledPanel - - - QFrame::Raised - 0 @@ -56,12 +50,6 @@ - - QFrame::StyledPanel - - - QFrame::Raised - 0 @@ -113,12 +101,6 @@ - - QFrame::StyledPanel - - - QFrame::Raised - 0 @@ -149,7 +131,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -162,10 +144,10 @@ - Qt::Horizontal + Qt::Orientation::Horizontal - QDialogButtonBox::Ok + QDialogButtonBox::StandardButton::Ok diff --git a/scwx-qt/source/scwx/qt/ui/wfo_dialog.ui b/scwx-qt/source/scwx/qt/ui/wfo_dialog.ui index 26623489..cfb59664 100644 --- a/scwx-qt/source/scwx/qt/ui/wfo_dialog.ui +++ b/scwx-qt/source/scwx/qt/ui/wfo_dialog.ui @@ -29,12 +29,6 @@ - - QFrame::Shape::StyledPanel - - - QFrame::Shadow::Raised - 0 From 7722eeb539ed52ee1799d2b3700a6b7e66fc6e33 Mon Sep 17 00:00:00 2001 From: Dan Paulat Date: Tue, 1 Jul 2025 00:22:02 -0500 Subject: [PATCH 16/18] Remove styling from radar info frame --- scwx-qt/source/scwx/qt/main/main_window.ui | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/scwx-qt/source/scwx/qt/main/main_window.ui b/scwx-qt/source/scwx/qt/main/main_window.ui index 94346c68..e760bab2 100644 --- a/scwx-qt/source/scwx/qt/main/main_window.ui +++ b/scwx-qt/source/scwx/qt/main/main_window.ui @@ -39,7 +39,7 @@ 0 0 1024 - 22 + 21 @@ -155,8 +155,8 @@ 0 0 - 205 - 701 + 191 + 703 @@ -174,12 +174,6 @@ - - QFrame::Shape::StyledPanel - - - QFrame::Shadow::Raised - From bbb09f64f0f3c70c792712b3d422ec029c4622fc Mon Sep 17 00:00:00 2001 From: Dan Paulat Date: Tue, 1 Jul 2025 20:53:38 -0500 Subject: [PATCH 17/18] std::scoped_lock should be const in font_manager.cpp --- scwx-qt/source/scwx/qt/manager/font_manager.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scwx-qt/source/scwx/qt/manager/font_manager.cpp b/scwx-qt/source/scwx/qt/manager/font_manager.cpp index bfcc1242..28c7b515 100644 --- a/scwx-qt/source/scwx/qt/manager/font_manager.cpp +++ b/scwx-qt/source/scwx/qt/manager/font_manager.cpp @@ -144,8 +144,8 @@ void FontManager::Impl::ConnectSignals() self_, [this]() { - std::scoped_lock lock {dirtyFontsMutex_, - fontCategoryMutex_}; + const std::scoped_lock lock {dirtyFontsMutex_, + fontCategoryMutex_}; for (auto fontCategory : dirtyFonts_) { From 1e821fdf6cdf111d38adcf1ca2b5418343b57827 Mon Sep 17 00:00:00 2001 From: Dan Paulat Date: Tue, 1 Jul 2025 20:57:02 -0500 Subject: [PATCH 18/18] Xcode is not supported yet --- tools/setup-macos-xcode-debug.sh | 6 +++++- tools/setup-macos-xcode-multi.sh | 6 +++++- tools/setup-macos-xcode-release.sh | 6 +++++- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/tools/setup-macos-xcode-debug.sh b/tools/setup-macos-xcode-debug.sh index 267a4463..ced08867 100755 --- a/tools/setup-macos-xcode-debug.sh +++ b/tools/setup-macos-xcode-debug.sh @@ -26,5 +26,9 @@ else export venv_path="$(python3 -c 'import os,sys;print(os.path.realpath(sys.argv[1]))' "${3:-${script_dir}/../.venv}")" fi +# FIXME: aws-sdk-cpp fails to configure using Xcode +echo "Xcode is not supported" +read -p "Press Enter to continue..." + # Perform common setup -"${script_dir}/lib/setup-common.sh" +# "${script_dir}/lib/setup-common.sh" diff --git a/tools/setup-macos-xcode-multi.sh b/tools/setup-macos-xcode-multi.sh index a5de4d35..f706b072 100755 --- a/tools/setup-macos-xcode-multi.sh +++ b/tools/setup-macos-xcode-multi.sh @@ -25,5 +25,9 @@ else export venv_path="$(python3 -c 'import os,sys;print(os.path.realpath(sys.argv[1]))' "${3:-${script_dir}/../.venv}")" fi +# FIXME: aws-sdk-cpp fails to configure using Xcode +echo "Xcode is not supported" +read -p "Press Enter to continue..." + # Perform common setup -"${script_dir}/lib/setup-common.sh" +# "${script_dir}/lib/setup-common.sh" diff --git a/tools/setup-macos-xcode-release.sh b/tools/setup-macos-xcode-release.sh index f9ba914e..ab788c7e 100755 --- a/tools/setup-macos-xcode-release.sh +++ b/tools/setup-macos-xcode-release.sh @@ -26,5 +26,9 @@ else export venv_path="$(python3 -c 'import os,sys;print(os.path.realpath(sys.argv[1]))' "${3:-${script_dir}/../.venv}")" fi +# FIXME: aws-sdk-cpp fails to configure using Xcode +echo "Xcode is not supported" +read -p "Press Enter to continue..." + # Perform common setup -"${script_dir}/lib/setup-common.sh" +# "${script_dir}/lib/setup-common.sh"