mirror of
				https://github.com/ciphervance/supercell-wx.git
				synced 2025-10-30 04:00:04 +00:00 
			
		
		
		
	Merge pull request #471 from dpaulat/feature/macos-updates
macOS Cleanup
This commit is contained in:
		
						commit
						327129999e
					
				
					 50 changed files with 339 additions and 286 deletions
				
			
		
							
								
								
									
										2
									
								
								.github/workflows/ci.yml
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/ci.yml
									
										
									
									
										vendored
									
									
								
							|  | @ -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++ | ||||
|  |  | |||
|  | @ -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" | ||||
|       } | ||||
|     } | ||||
|   ], | ||||
|  |  | |||
|  | @ -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 | ||||
| 
 | ||||
|  |  | |||
|  | @ -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; | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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; | ||||
| } | ||||
|  |  | |||
|  | @ -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; | ||||
| } | ||||
|  |  | |||
|  | @ -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; | ||||
| } | ||||
|  |  | |||
|  | @ -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 | ||||
| { | ||||
|  |  | |||
|  | @ -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; | ||||
| 
 | ||||
|  |  | |||
|  | @ -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); | ||||
|       } | ||||
|    } | ||||
| 
 | ||||
|  |  | |||
|  | @ -39,7 +39,7 @@ | |||
|      <x>0</x> | ||||
|      <y>0</y> | ||||
|      <width>1024</width> | ||||
|      <height>22</height> | ||||
|      <height>21</height> | ||||
|     </rect> | ||||
|    </property> | ||||
|    <widget class="QMenu" name="menuFile"> | ||||
|  | @ -155,8 +155,8 @@ | |||
|          <rect> | ||||
|           <x>0</x> | ||||
|           <y>0</y> | ||||
|           <width>205</width> | ||||
|           <height>701</height> | ||||
|           <width>191</width> | ||||
|           <height>703</height> | ||||
|          </rect> | ||||
|         </property> | ||||
|         <layout class="QVBoxLayout" name="verticalLayout_6"> | ||||
|  | @ -174,12 +174,6 @@ | |||
|          </property> | ||||
|          <item> | ||||
|           <widget class="QFrame" name="radarInfoFrame"> | ||||
|            <property name="frameShape"> | ||||
|             <enum>QFrame::Shape::StyledPanel</enum> | ||||
|            </property> | ||||
|            <property name="frameShadow"> | ||||
|             <enum>QFrame::Shadow::Raised</enum> | ||||
|            </property> | ||||
|            <layout class="QGridLayout" name="gridLayout" columnstretch="0,0,0,0,0"> | ||||
|             <item row="3" column="2" colspan="3"> | ||||
|              <widget class="QLabel" name="vcpValueLabel"> | ||||
|  |  | |||
|  | @ -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]() | ||||
|                     { | ||||
|                        const 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() | ||||
|  | @ -191,7 +191,13 @@ void FontManager::Impl::UpdateQFont(types::FontCategory fontCategory) | |||
|    QFont font = QFontDatabase::font(QString::fromStdString(family), | ||||
|                                     QString::fromStdString(styles), | ||||
|                                     static_cast<int>(size.value())); | ||||
| 
 | ||||
| #if !defined(__APPLE__) | ||||
|    font.setPointSizeF(size.value()); | ||||
| #else | ||||
|    const units::font_size::pixels<double> pixelSize {size}; | ||||
|    font.setPixelSize(static_cast<int>(pixelSize.value())); | ||||
| #endif | ||||
| 
 | ||||
|    fontCategoryQFontMap_.insert_or_assign(fontCategory, font); | ||||
| } | ||||
|  |  | |||
|  | @ -679,33 +679,40 @@ void RadarProductManager::EnableRefresh(common::RadarProductGroup group, | |||
|    } | ||||
|    else | ||||
|    { | ||||
|       std::shared_ptr<ProviderManager> providerManager = | ||||
|       const std::shared_ptr<ProviderManager> providerManager = | ||||
|          p->GetLevel3ProviderManager(product); | ||||
| 
 | ||||
|       // Only enable refresh on available products
 | ||||
|       boost::asio::post( | ||||
|          p->threadPool_, | ||||
|          [=, this]() | ||||
|          { | ||||
|             try | ||||
|       if (enabled) | ||||
|       { | ||||
|          boost::asio::post( | ||||
|             p->threadPool_, | ||||
|             [providerManager, product, uuid, enabled, 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(); | ||||
|                   const 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); | ||||
|       } | ||||
|    } | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -24,13 +24,19 @@ AboutDialog::AboutDialog(QWidget* parent) : | |||
|     p {std::make_unique<AboutDialogImpl>()}, | ||||
|     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 = | ||||
|  |  | |||
|  | @ -16,12 +16,6 @@ | |||
|   <layout class="QVBoxLayout" name="verticalLayout"> | ||||
|    <item> | ||||
|     <widget class="QFrame" name="frame_2"> | ||||
|      <property name="frameShape"> | ||||
|       <enum>QFrame::StyledPanel</enum> | ||||
|      </property> | ||||
|      <property name="frameShadow"> | ||||
|       <enum>QFrame::Raised</enum> | ||||
|      </property> | ||||
|      <layout class="QVBoxLayout" name="verticalLayout_2"> | ||||
|       <property name="leftMargin"> | ||||
|        <number>0</number> | ||||
|  | @ -44,7 +38,7 @@ | |||
|          <pixmap resource="../../../../scwx-qt.qrc">:/res/icons/scwx-256.png</pixmap> | ||||
|         </property> | ||||
|         <property name="alignment"> | ||||
|          <set>Qt::AlignCenter</set> | ||||
|          <set>Qt::AlignmentFlag::AlignCenter</set> | ||||
|         </property> | ||||
|        </widget> | ||||
|       </item> | ||||
|  | @ -54,7 +48,7 @@ | |||
|          <string>Supercell Wx</string> | ||||
|         </property> | ||||
|         <property name="alignment"> | ||||
|          <set>Qt::AlignCenter</set> | ||||
|          <set>Qt::AlignmentFlag::AlignCenter</set> | ||||
|         </property> | ||||
|        </widget> | ||||
|       </item> | ||||
|  | @ -64,7 +58,7 @@ | |||
|          <string>Version X.Y.Z</string> | ||||
|         </property> | ||||
|         <property name="alignment"> | ||||
|          <set>Qt::AlignCenter</set> | ||||
|          <set>Qt::AlignmentFlag::AlignCenter</set> | ||||
|         </property> | ||||
|        </widget> | ||||
|       </item> | ||||
|  | @ -74,7 +68,7 @@ | |||
|          <string>Git Revision 0000000000</string> | ||||
|         </property> | ||||
|         <property name="alignment"> | ||||
|          <set>Qt::AlignCenter</set> | ||||
|          <set>Qt::AlignmentFlag::AlignCenter</set> | ||||
|         </property> | ||||
|        </widget> | ||||
|       </item> | ||||
|  | @ -84,7 +78,7 @@ | |||
|          <string>Copyright © 2021-YYYY Dan Paulat</string> | ||||
|         </property> | ||||
|         <property name="alignment"> | ||||
|          <set>Qt::AlignCenter</set> | ||||
|          <set>Qt::AlignmentFlag::AlignCenter</set> | ||||
|         </property> | ||||
|        </widget> | ||||
|       </item> | ||||
|  | @ -94,10 +88,10 @@ | |||
|    <item> | ||||
|     <widget class="QDialogButtonBox" name="buttonBox"> | ||||
|      <property name="orientation"> | ||||
|       <enum>Qt::Horizontal</enum> | ||||
|       <enum>Qt::Orientation::Horizontal</enum> | ||||
|      </property> | ||||
|      <property name="standardButtons"> | ||||
|       <set>QDialogButtonBox::Ok</set> | ||||
|       <set>QDialogButtonBox::StandardButton::Ok</set> | ||||
|      </property> | ||||
|     </widget> | ||||
|    </item> | ||||
|  |  | |||
|  | @ -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
 | ||||
|  |  | |||
|  | @ -17,18 +17,12 @@ | |||
|    <item> | ||||
|     <widget class="QTextBrowser" name="alertText"> | ||||
|      <property name="lineWrapMode"> | ||||
|       <enum>QTextEdit::NoWrap</enum> | ||||
|       <enum>QTextEdit::LineWrapMode::NoWrap</enum> | ||||
|      </property> | ||||
|     </widget> | ||||
|    </item> | ||||
|    <item> | ||||
|     <widget class="QFrame" name="frame"> | ||||
|      <property name="frameShape"> | ||||
|       <enum>QFrame::StyledPanel</enum> | ||||
|      </property> | ||||
|      <property name="frameShadow"> | ||||
|       <enum>QFrame::Raised</enum> | ||||
|      </property> | ||||
|      <layout class="QHBoxLayout" name="horizontalLayout"> | ||||
|       <property name="leftMargin"> | ||||
|        <number>0</number> | ||||
|  | @ -108,7 +102,7 @@ | |||
|       <item> | ||||
|        <spacer name="horizontalSpacer"> | ||||
|         <property name="orientation"> | ||||
|          <enum>Qt::Horizontal</enum> | ||||
|          <enum>Qt::Orientation::Horizontal</enum> | ||||
|         </property> | ||||
|         <property name="sizeHint" stdset="0"> | ||||
|          <size> | ||||
|  | @ -121,10 +115,10 @@ | |||
|       <item> | ||||
|        <widget class="QDialogButtonBox" name="buttonBox"> | ||||
|         <property name="orientation"> | ||||
|          <enum>Qt::Horizontal</enum> | ||||
|          <enum>Qt::Orientation::Horizontal</enum> | ||||
|         </property> | ||||
|         <property name="standardButtons"> | ||||
|          <set>QDialogButtonBox::Close</set> | ||||
|          <set>QDialogButtonBox::StandardButton::Close</set> | ||||
|         </property> | ||||
|        </widget> | ||||
|       </item> | ||||
|  |  | |||
|  | @ -30,12 +30,6 @@ | |||
|     </item> | ||||
|     <item> | ||||
|      <widget class="QFrame" name="frame_2"> | ||||
|       <property name="frameShape"> | ||||
|        <enum>QFrame::StyledPanel</enum> | ||||
|       </property> | ||||
|       <property name="frameShadow"> | ||||
|        <enum>QFrame::Raised</enum> | ||||
|       </property> | ||||
|       <layout class="QHBoxLayout" name="horizontalLayout_2"> | ||||
|        <property name="leftMargin"> | ||||
|         <number>0</number> | ||||
|  | @ -62,7 +56,7 @@ | |||
|        <item> | ||||
|         <spacer name="horizontalSpacer_2"> | ||||
|          <property name="orientation"> | ||||
|           <enum>Qt::Horizontal</enum> | ||||
|           <enum>Qt::Orientation::Horizontal</enum> | ||||
|          </property> | ||||
|          <property name="sizeHint" stdset="0"> | ||||
|           <size> | ||||
|  | @ -85,7 +79,7 @@ | |||
|            <normaloff>:/res/icons/font-awesome-6/sliders-solid.svg</normaloff>:/res/icons/font-awesome-6/sliders-solid.svg</iconset> | ||||
|          </property> | ||||
|          <property name="popupMode"> | ||||
|           <enum>QToolButton::InstantPopup</enum> | ||||
|           <enum>QToolButton::ToolButtonPopupMode::InstantPopup</enum> | ||||
|          </property> | ||||
|         </widget> | ||||
|        </item> | ||||
|  |  | |||
|  | @ -10,12 +10,6 @@ | |||
|     <height>276</height> | ||||
|    </rect> | ||||
|   </property> | ||||
|   <property name="frameShape"> | ||||
|    <enum>QFrame::Shape::StyledPanel</enum> | ||||
|   </property> | ||||
|   <property name="frameShadow"> | ||||
|    <enum>QFrame::Shadow::Raised</enum> | ||||
|   </property> | ||||
|   <layout class="QVBoxLayout" name="verticalLayout_3"> | ||||
|    <property name="leftMargin"> | ||||
|     <number>0</number> | ||||
|  | @ -78,12 +72,6 @@ | |||
|    </item> | ||||
|    <item> | ||||
|     <widget class="QFrame" name="frame"> | ||||
|      <property name="frameShape"> | ||||
|       <enum>QFrame::Shape::StyledPanel</enum> | ||||
|      </property> | ||||
|      <property name="frameShadow"> | ||||
|       <enum>QFrame::Shadow::Raised</enum> | ||||
|      </property> | ||||
|      <layout class="QHBoxLayout" name="horizontalLayout"> | ||||
|       <property name="leftMargin"> | ||||
|        <number>0</number> | ||||
|  | @ -119,12 +107,6 @@ | |||
|    </item> | ||||
|    <item> | ||||
|     <widget class="QFrame" name="frame_3"> | ||||
|      <property name="frameShape"> | ||||
|       <enum>QFrame::Shape::StyledPanel</enum> | ||||
|      </property> | ||||
|      <property name="frameShadow"> | ||||
|       <enum>QFrame::Shadow::Raised</enum> | ||||
|      </property> | ||||
|      <layout class="QGridLayout" name="gridLayout"> | ||||
|       <property name="leftMargin"> | ||||
|        <number>0</number> | ||||
|  | @ -218,12 +200,6 @@ | |||
|    </item> | ||||
|    <item> | ||||
|     <widget class="QFrame" name="frame_2"> | ||||
|      <property name="frameShape"> | ||||
|       <enum>QFrame::Shape::StyledPanel</enum> | ||||
|      </property> | ||||
|      <property name="frameShadow"> | ||||
|       <enum>QFrame::Shadow::Raised</enum> | ||||
|      </property> | ||||
|      <layout class="QHBoxLayout" name="horizontalLayout_2"> | ||||
|       <property name="spacing"> | ||||
|        <number>1</number> | ||||
|  |  | |||
|  | @ -29,12 +29,6 @@ | |||
|    </item> | ||||
|    <item> | ||||
|     <widget class="QFrame" name="frame"> | ||||
|      <property name="frameShape"> | ||||
|       <enum>QFrame::StyledPanel</enum> | ||||
|      </property> | ||||
|      <property name="frameShadow"> | ||||
|       <enum>QFrame::Raised</enum> | ||||
|      </property> | ||||
|      <layout class="QHBoxLayout" name="horizontalLayout"> | ||||
|       <property name="leftMargin"> | ||||
|        <number>0</number> | ||||
|  | @ -54,10 +48,10 @@ | |||
|       <item> | ||||
|        <widget class="QDialogButtonBox" name="buttonBox"> | ||||
|         <property name="orientation"> | ||||
|          <enum>Qt::Horizontal</enum> | ||||
|          <enum>Qt::Orientation::Horizontal</enum> | ||||
|         </property> | ||||
|         <property name="standardButtons"> | ||||
|          <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set> | ||||
|          <set>QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::Ok</set> | ||||
|         </property> | ||||
|        </widget> | ||||
|       </item> | ||||
|  |  | |||
|  | @ -16,12 +16,6 @@ | |||
|   <layout class="QVBoxLayout" name="verticalLayout"> | ||||
|    <item> | ||||
|     <widget class="QFrame" name="bottomFrame"> | ||||
|      <property name="frameShape"> | ||||
|       <enum>QFrame::StyledPanel</enum> | ||||
|      </property> | ||||
|      <property name="frameShadow"> | ||||
|       <enum>QFrame::Raised</enum> | ||||
|      </property> | ||||
|      <layout class="QHBoxLayout" name="horizontalLayout"> | ||||
|       <property name="leftMargin"> | ||||
|        <number>0</number> | ||||
|  | @ -54,10 +48,10 @@ | |||
|          </sizepolicy> | ||||
|         </property> | ||||
|         <property name="orientation"> | ||||
|          <enum>Qt::Horizontal</enum> | ||||
|          <enum>Qt::Orientation::Horizontal</enum> | ||||
|         </property> | ||||
|         <property name="standardButtons"> | ||||
|          <set>QDialogButtonBox::Close</set> | ||||
|          <set>QDialogButtonBox::StandardButton::Close</set> | ||||
|         </property> | ||||
|        </widget> | ||||
|       </item> | ||||
|  |  | |||
|  | @ -16,12 +16,6 @@ | |||
|   <layout class="QVBoxLayout" name="verticalLayout"> | ||||
|    <item> | ||||
|     <widget class="QFrame" name="frame"> | ||||
|      <property name="frameShape"> | ||||
|       <enum>QFrame::StyledPanel</enum> | ||||
|      </property> | ||||
|      <property name="frameShadow"> | ||||
|       <enum>QFrame::Raised</enum> | ||||
|      </property> | ||||
|      <layout class="QHBoxLayout" name="horizontalLayout"> | ||||
|       <property name="leftMargin"> | ||||
|        <number>0</number> | ||||
|  | @ -41,16 +35,16 @@ | |||
|          <bool>true</bool> | ||||
|         </property> | ||||
|         <property name="dragDropMode"> | ||||
|          <enum>QAbstractItemView::InternalMove</enum> | ||||
|          <enum>QAbstractItemView::DragDropMode::InternalMove</enum> | ||||
|         </property> | ||||
|         <property name="defaultDropAction"> | ||||
|          <enum>Qt::MoveAction</enum> | ||||
|          <enum>Qt::DropAction::MoveAction</enum> | ||||
|         </property> | ||||
|         <property name="alternatingRowColors"> | ||||
|          <bool>true</bool> | ||||
|         </property> | ||||
|         <property name="selectionMode"> | ||||
|          <enum>QAbstractItemView::ExtendedSelection</enum> | ||||
|          <enum>QAbstractItemView::SelectionMode::ExtendedSelection</enum> | ||||
|         </property> | ||||
|         <property name="indentation"> | ||||
|          <number>0</number> | ||||
|  | @ -59,12 +53,6 @@ | |||
|       </item> | ||||
|       <item> | ||||
|        <widget class="QFrame" name="frame_2"> | ||||
|         <property name="frameShape"> | ||||
|          <enum>QFrame::StyledPanel</enum> | ||||
|         </property> | ||||
|         <property name="frameShadow"> | ||||
|          <enum>QFrame::Raised</enum> | ||||
|         </property> | ||||
|         <layout class="QVBoxLayout" name="verticalLayout_2"> | ||||
|          <property name="leftMargin"> | ||||
|           <number>0</number> | ||||
|  | @ -81,7 +69,7 @@ | |||
|          <item> | ||||
|           <spacer name="verticalSpacer_2"> | ||||
|            <property name="orientation"> | ||||
|             <enum>Qt::Vertical</enum> | ||||
|             <enum>Qt::Orientation::Vertical</enum> | ||||
|            </property> | ||||
|            <property name="sizeHint" stdset="0"> | ||||
|             <size> | ||||
|  | @ -138,7 +126,7 @@ | |||
|          <item> | ||||
|           <spacer name="verticalSpacer"> | ||||
|            <property name="orientation"> | ||||
|             <enum>Qt::Vertical</enum> | ||||
|             <enum>Qt::Orientation::Vertical</enum> | ||||
|            </property> | ||||
|            <property name="sizeHint" stdset="0"> | ||||
|             <size> | ||||
|  | @ -156,12 +144,6 @@ | |||
|    </item> | ||||
|    <item> | ||||
|     <widget class="QFrame" name="frame_3"> | ||||
|      <property name="frameShape"> | ||||
|       <enum>QFrame::StyledPanel</enum> | ||||
|      </property> | ||||
|      <property name="frameShadow"> | ||||
|       <enum>QFrame::Raised</enum> | ||||
|      </property> | ||||
|      <layout class="QHBoxLayout" name="horizontalLayout_2"> | ||||
|       <property name="leftMargin"> | ||||
|        <number>0</number> | ||||
|  | @ -188,7 +170,7 @@ | |||
|       <item> | ||||
|        <spacer name="horizontalSpacer"> | ||||
|         <property name="orientation"> | ||||
|          <enum>Qt::Horizontal</enum> | ||||
|          <enum>Qt::Orientation::Horizontal</enum> | ||||
|         </property> | ||||
|         <property name="sizeHint" stdset="0"> | ||||
|          <size> | ||||
|  | @ -207,10 +189,10 @@ | |||
|          </sizepolicy> | ||||
|         </property> | ||||
|         <property name="orientation"> | ||||
|          <enum>Qt::Horizontal</enum> | ||||
|          <enum>Qt::Orientation::Horizontal</enum> | ||||
|         </property> | ||||
|         <property name="standardButtons"> | ||||
|          <set>QDialogButtonBox::Close|QDialogButtonBox::Reset</set> | ||||
|          <set>QDialogButtonBox::StandardButton::Close|QDialogButtonBox::StandardButton::Reset</set> | ||||
|         </property> | ||||
|        </widget> | ||||
|       </item> | ||||
|  |  | |||
|  | @ -16,12 +16,6 @@ | |||
|   <layout class="QVBoxLayout" name="verticalLayout"> | ||||
|    <item> | ||||
|     <widget class="QFrame" name="contentsFrame"> | ||||
|      <property name="frameShape"> | ||||
|       <enum>QFrame::StyledPanel</enum> | ||||
|      </property> | ||||
|      <property name="frameShadow"> | ||||
|       <enum>QFrame::Raised</enum> | ||||
|      </property> | ||||
|      <layout class="QVBoxLayout" name="verticalLayout_2"> | ||||
|       <property name="leftMargin"> | ||||
|        <number>0</number> | ||||
|  | @ -41,10 +35,10 @@ | |||
|    <item> | ||||
|     <widget class="QDialogButtonBox" name="buttonBox"> | ||||
|      <property name="orientation"> | ||||
|       <enum>Qt::Horizontal</enum> | ||||
|       <enum>Qt::Orientation::Horizontal</enum> | ||||
|      </property> | ||||
|      <property name="standardButtons"> | ||||
|       <set>QDialogButtonBox::Close</set> | ||||
|       <set>QDialogButtonBox::StandardButton::Close</set> | ||||
|      </property> | ||||
|     </widget> | ||||
|    </item> | ||||
|  |  | |||
|  | @ -29,12 +29,6 @@ | |||
|    </item> | ||||
|    <item> | ||||
|     <widget class="QFrame" name="buttonFrame"> | ||||
|      <property name="frameShape"> | ||||
|       <enum>QFrame::Shape::StyledPanel</enum> | ||||
|      </property> | ||||
|      <property name="frameShadow"> | ||||
|       <enum>QFrame::Shadow::Raised</enum> | ||||
|      </property> | ||||
|      <layout class="QHBoxLayout" name="horizontalLayout_2"> | ||||
|       <property name="leftMargin"> | ||||
|        <number>0</number> | ||||
|  |  | |||
|  | @ -16,12 +16,6 @@ | |||
|   <layout class="QVBoxLayout" name="verticalLayout"> | ||||
|    <item> | ||||
|     <widget class="QFrame" name="frame"> | ||||
|      <property name="frameShape"> | ||||
|       <enum>QFrame::StyledPanel</enum> | ||||
|      </property> | ||||
|      <property name="frameShadow"> | ||||
|       <enum>QFrame::Raised</enum> | ||||
|      </property> | ||||
|      <layout class="QHBoxLayout" name="horizontalLayout"> | ||||
|       <property name="leftMargin"> | ||||
|        <number>0</number> | ||||
|  | @ -58,7 +52,7 @@ | |||
|    <item> | ||||
|     <spacer name="verticalSpacer"> | ||||
|      <property name="orientation"> | ||||
|       <enum>Qt::Vertical</enum> | ||||
|       <enum>Qt::Orientation::Vertical</enum> | ||||
|      </property> | ||||
|      <property name="sizeHint" stdset="0"> | ||||
|       <size> | ||||
|  | @ -71,10 +65,10 @@ | |||
|    <item> | ||||
|     <widget class="QDialogButtonBox" name="buttonBox"> | ||||
|      <property name="orientation"> | ||||
|       <enum>Qt::Horizontal</enum> | ||||
|       <enum>Qt::Orientation::Horizontal</enum> | ||||
|      </property> | ||||
|      <property name="standardButtons"> | ||||
|       <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set> | ||||
|       <set>QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::Ok</set> | ||||
|      </property> | ||||
|     </widget> | ||||
|    </item> | ||||
|  |  | |||
|  | @ -16,12 +16,6 @@ | |||
|   <layout class="QVBoxLayout" name="verticalLayout"> | ||||
|    <item> | ||||
|     <widget class="QFrame" name="contentsFrame"> | ||||
|      <property name="frameShape"> | ||||
|       <enum>QFrame::StyledPanel</enum> | ||||
|      </property> | ||||
|      <property name="frameShadow"> | ||||
|       <enum>QFrame::Raised</enum> | ||||
|      </property> | ||||
|      <layout class="QVBoxLayout" name="verticalLayout_2"> | ||||
|       <property name="leftMargin"> | ||||
|        <number>0</number> | ||||
|  | @ -41,10 +35,10 @@ | |||
|    <item> | ||||
|     <widget class="QDialogButtonBox" name="buttonBox"> | ||||
|      <property name="orientation"> | ||||
|       <enum>Qt::Horizontal</enum> | ||||
|       <enum>Qt::Orientation::Horizontal</enum> | ||||
|      </property> | ||||
|      <property name="standardButtons"> | ||||
|       <set>QDialogButtonBox::Close</set> | ||||
|       <set>QDialogButtonBox::StandardButton::Close</set> | ||||
|      </property> | ||||
|     </widget> | ||||
|    </item> | ||||
|  |  | |||
|  | @ -29,12 +29,6 @@ | |||
|    </item> | ||||
|    <item> | ||||
|     <widget class="QFrame" name="buttonFrame"> | ||||
|      <property name="frameShape"> | ||||
|       <enum>QFrame::StyledPanel</enum> | ||||
|      </property> | ||||
|      <property name="frameShadow"> | ||||
|       <enum>QFrame::Raised</enum> | ||||
|      </property> | ||||
|      <layout class="QHBoxLayout" name="horizontalLayout_2"> | ||||
|       <property name="leftMargin"> | ||||
|        <number>0</number> | ||||
|  | @ -61,7 +55,7 @@ | |||
|       <item> | ||||
|        <spacer name="horizontalSpacer"> | ||||
|         <property name="orientation"> | ||||
|          <enum>Qt::Horizontal</enum> | ||||
|          <enum>Qt::Orientation::Horizontal</enum> | ||||
|         </property> | ||||
|         <property name="sizeHint" stdset="0"> | ||||
|          <size> | ||||
|  |  | |||
|  | @ -17,7 +17,7 @@ | |||
|    <item> | ||||
|     <widget class="QTreeView" name="radarSiteView"> | ||||
|      <property name="editTriggers"> | ||||
|       <set>QAbstractItemView::CurrentChanged|QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed|QAbstractItemView::SelectedClicked</set> | ||||
|       <set>QAbstractItemView::EditTrigger::CurrentChanged|QAbstractItemView::EditTrigger::DoubleClicked|QAbstractItemView::EditTrigger::EditKeyPressed|QAbstractItemView::EditTrigger::SelectedClicked</set> | ||||
|      </property> | ||||
|      <property name="alternatingRowColors"> | ||||
|       <bool>true</bool> | ||||
|  | @ -32,12 +32,6 @@ | |||
|    </item> | ||||
|    <item> | ||||
|     <widget class="QFrame" name="frame"> | ||||
|      <property name="frameShape"> | ||||
|       <enum>QFrame::StyledPanel</enum> | ||||
|      </property> | ||||
|      <property name="frameShadow"> | ||||
|       <enum>QFrame::Raised</enum> | ||||
|      </property> | ||||
|      <layout class="QHBoxLayout" name="horizontalLayout"> | ||||
|       <property name="leftMargin"> | ||||
|        <number>0</number> | ||||
|  | @ -64,10 +58,10 @@ | |||
|       <item> | ||||
|        <widget class="QDialogButtonBox" name="buttonBox"> | ||||
|         <property name="orientation"> | ||||
|          <enum>Qt::Horizontal</enum> | ||||
|          <enum>Qt::Orientation::Horizontal</enum> | ||||
|         </property> | ||||
|         <property name="standardButtons"> | ||||
|          <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set> | ||||
|          <set>QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::Ok</set> | ||||
|         </property> | ||||
|        </widget> | ||||
|       </item> | ||||
|  |  | |||
|  | @ -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<double> fontSize {font.pointSizeF()}; | ||||
|    const units::font_size::pixels<double> fontPixels {fontSize}; | ||||
|    font.setPixelSize(static_cast<int>(fontPixels.value())); | ||||
| #endif | ||||
| 
 | ||||
|    self_->ui->fontPreviewLabel->setFont(font); | ||||
| 
 | ||||
|    if (selectedFontCategory_ != types::FontCategory::Unknown) | ||||
|  |  | |||
|  | @ -16,12 +16,6 @@ | |||
|   <layout class="QGridLayout" name="gridLayout_11"> | ||||
|    <item row="0" column="0"> | ||||
|     <widget class="QFrame" name="frame"> | ||||
|      <property name="frameShape"> | ||||
|       <enum>QFrame::Shape::StyledPanel</enum> | ||||
|      </property> | ||||
|      <property name="frameShadow"> | ||||
|       <enum>QFrame::Shadow::Raised</enum> | ||||
|      </property> | ||||
|      <layout class="QHBoxLayout" name="horizontalLayout"> | ||||
|       <property name="leftMargin"> | ||||
|        <number>0</number> | ||||
|  | @ -136,8 +130,8 @@ | |||
|                <rect> | ||||
|                 <x>0</x> | ||||
|                 <y>0</y> | ||||
|                 <width>511</width> | ||||
|                 <height>873</height> | ||||
|                 <width>513</width> | ||||
|                 <height>845</height> | ||||
|                </rect> | ||||
|               </property> | ||||
|               <layout class="QVBoxLayout" name="verticalLayout"> | ||||
|  | @ -810,8 +804,8 @@ | |||
|                    <rect> | ||||
|                     <x>0</x> | ||||
|                     <y>0</y> | ||||
|                     <width>503</width> | ||||
|                     <height>380</height> | ||||
|                     <width>505</width> | ||||
|                     <height>384</height> | ||||
|                    </rect> | ||||
|                   </property> | ||||
|                   <layout class="QGridLayout" name="gridLayout_3"> | ||||
|  | @ -1197,12 +1191,6 @@ | |||
|              <layout class="QGridLayout" name="gridLayout_8" columnstretch="2,3"> | ||||
|               <item row="0" column="0"> | ||||
|                <widget class="QFrame" name="frame_5"> | ||||
|                 <property name="frameShape"> | ||||
|                  <enum>QFrame::Shape::StyledPanel</enum> | ||||
|                 </property> | ||||
|                 <property name="frameShadow"> | ||||
|                  <enum>QFrame::Shadow::Raised</enum> | ||||
|                 </property> | ||||
|                 <layout class="QGridLayout" name="gridLayout_9"> | ||||
|                  <property name="leftMargin"> | ||||
|                   <number>0</number> | ||||
|  | @ -1231,12 +1219,6 @@ | |||
|               </item> | ||||
|               <item row="0" column="1"> | ||||
|                <widget class="QFrame" name="frame_6"> | ||||
|                 <property name="frameShape"> | ||||
|                  <enum>QFrame::Shape::StyledPanel</enum> | ||||
|                 </property> | ||||
|                 <property name="frameShadow"> | ||||
|                  <enum>QFrame::Shadow::Raised</enum> | ||||
|                 </property> | ||||
|                 <layout class="QGridLayout" name="gridLayout_6"> | ||||
|                  <property name="leftMargin"> | ||||
|                   <number>0</number> | ||||
|  | @ -1376,12 +1358,6 @@ | |||
|            </item> | ||||
|            <item> | ||||
|             <widget class="QFrame" name="frame_3"> | ||||
|              <property name="frameShape"> | ||||
|               <enum>QFrame::Shape::StyledPanel</enum> | ||||
|              </property> | ||||
|              <property name="frameShadow"> | ||||
|               <enum>QFrame::Shadow::Raised</enum> | ||||
|              </property> | ||||
|              <layout class="QGridLayout" name="gridLayout_7"> | ||||
|               <property name="leftMargin"> | ||||
|                <number>0</number> | ||||
|  |  | |||
|  | @ -42,13 +42,19 @@ public: | |||
| UpdateDialog::UpdateDialog(QWidget* parent) : | ||||
|     QDialog(parent), p {std::make_unique<Impl>(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); | ||||
|  |  | |||
|  | @ -16,12 +16,6 @@ | |||
|   <layout class="QVBoxLayout" name="verticalLayout"> | ||||
|    <item> | ||||
|     <widget class="QFrame" name="topFrame"> | ||||
|      <property name="frameShape"> | ||||
|       <enum>QFrame::StyledPanel</enum> | ||||
|      </property> | ||||
|      <property name="frameShadow"> | ||||
|       <enum>QFrame::Raised</enum> | ||||
|      </property> | ||||
|      <layout class="QHBoxLayout" name="horizontalLayout"> | ||||
|       <property name="leftMargin"> | ||||
|        <number>0</number> | ||||
|  | @ -56,12 +50,6 @@ | |||
|       </item> | ||||
|       <item> | ||||
|        <widget class="QFrame" name="textFrame"> | ||||
|         <property name="frameShape"> | ||||
|          <enum>QFrame::StyledPanel</enum> | ||||
|         </property> | ||||
|         <property name="frameShadow"> | ||||
|          <enum>QFrame::Raised</enum> | ||||
|         </property> | ||||
|         <layout class="QVBoxLayout" name="verticalLayout_2"> | ||||
|          <property name="leftMargin"> | ||||
|           <number>0</number> | ||||
|  | @ -113,12 +101,6 @@ | |||
|    </item> | ||||
|    <item> | ||||
|     <widget class="QFrame" name="bottomFrame"> | ||||
|      <property name="frameShape"> | ||||
|       <enum>QFrame::StyledPanel</enum> | ||||
|      </property> | ||||
|      <property name="frameShadow"> | ||||
|       <enum>QFrame::Raised</enum> | ||||
|      </property> | ||||
|      <layout class="QHBoxLayout" name="horizontalLayout_2"> | ||||
|       <property name="leftMargin"> | ||||
|        <number>0</number> | ||||
|  | @ -149,7 +131,7 @@ | |||
|       <item> | ||||
|        <spacer name="horizontalSpacer"> | ||||
|         <property name="orientation"> | ||||
|          <enum>Qt::Horizontal</enum> | ||||
|          <enum>Qt::Orientation::Horizontal</enum> | ||||
|         </property> | ||||
|         <property name="sizeHint" stdset="0"> | ||||
|          <size> | ||||
|  | @ -162,10 +144,10 @@ | |||
|       <item> | ||||
|        <widget class="QDialogButtonBox" name="buttonBox"> | ||||
|         <property name="orientation"> | ||||
|          <enum>Qt::Horizontal</enum> | ||||
|          <enum>Qt::Orientation::Horizontal</enum> | ||||
|         </property> | ||||
|         <property name="standardButtons"> | ||||
|          <set>QDialogButtonBox::Ok</set> | ||||
|          <set>QDialogButtonBox::StandardButton::Ok</set> | ||||
|         </property> | ||||
|        </widget> | ||||
|       </item> | ||||
|  |  | |||
|  | @ -29,12 +29,6 @@ | |||
|    </item> | ||||
|    <item> | ||||
|     <widget class="QFrame" name="frame"> | ||||
|      <property name="frameShape"> | ||||
|       <enum>QFrame::Shape::StyledPanel</enum> | ||||
|      </property> | ||||
|      <property name="frameShadow"> | ||||
|       <enum>QFrame::Shadow::Raised</enum> | ||||
|      </property> | ||||
|      <layout class="QHBoxLayout" name="horizontalLayout"> | ||||
|       <property name="leftMargin"> | ||||
|        <number>0</number> | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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}")" | ||||
							
								
								
									
										34
									
								
								tools/setup-macos-xcode-debug.sh
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										34
									
								
								tools/setup-macos-xcode-debug.sh
									
										
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,34 @@ | |||
| #!/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 | ||||
| 
 | ||||
| # 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" | ||||
							
								
								
									
										33
									
								
								tools/setup-macos-xcode-multi.sh
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										33
									
								
								tools/setup-macos-xcode-multi.sh
									
										
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,33 @@ | |||
| #!/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 | ||||
| 
 | ||||
| # 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" | ||||
							
								
								
									
										34
									
								
								tools/setup-macos-xcode-release.sh
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										34
									
								
								tools/setup-macos-xcode-release.sh
									
										
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,34 @@ | |||
| #!/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 | ||||
| 
 | ||||
| # 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" | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Dan Paulat
						Dan Paulat