diff --git a/vkconfig_core/test/generated/VK_LAYER_LUNARG_reference_1_2_1.bat b/vkconfig_core/test/generated/VK_LAYER_LUNARG_reference_1_2_1.bat index 4d712525eb..90c1622d86 100644 --- a/vkconfig_core/test/generated/VK_LAYER_LUNARG_reference_1_2_1.bat +++ b/vkconfig_core/test/generated/VK_LAYER_LUNARG_reference_1_2_1.bat @@ -13,7 +13,7 @@ :: See the License for the specific language governing permissions and :: limitations under the License. :: -:: This code was generated by Vulkan Configurator 3.5.0 +:: This code was generated by Vulkan Configurator 3.5.1 :: Loader Settings: :: Vulkan Layers enabled and ordered: diff --git a/vkconfig_core/test/generated/VK_LAYER_LUNARG_reference_1_2_1.sh b/vkconfig_core/test/generated/VK_LAYER_LUNARG_reference_1_2_1.sh index 1e6faa28c2..ff164edd5a 100644 --- a/vkconfig_core/test/generated/VK_LAYER_LUNARG_reference_1_2_1.sh +++ b/vkconfig_core/test/generated/VK_LAYER_LUNARG_reference_1_2_1.sh @@ -13,7 +13,7 @@ #! See the License for the specific language governing permissions and #! limitations under the License. #! -#! This code was generated by Vulkan Configurator 3.5.0 +#! This code was generated by Vulkan Configurator 3.5.1 #! Loader Settings: #! Vulkan Layers enabled and ordered: diff --git a/vkconfig_core/test/generated/VK_LAYER_LUNARG_reference_1_2_1.txt b/vkconfig_core/test/generated/VK_LAYER_LUNARG_reference_1_2_1.txt index 776c4b26d1..54dedcae41 100644 --- a/vkconfig_core/test/generated/VK_LAYER_LUNARG_reference_1_2_1.txt +++ b/vkconfig_core/test/generated/VK_LAYER_LUNARG_reference_1_2_1.txt @@ -13,7 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. # -# This code was generated by Vulkan Configurator 3.5.0 +# This code was generated by Vulkan Configurator 3.5.1 # reference layer # ========================================== diff --git a/vkconfig_core/test/generated/VK_LAYER_LUNARG_reference_1_2_1.vulkan_h_code b/vkconfig_core/test/generated/VK_LAYER_LUNARG_reference_1_2_1.vulkan_h_code index 8bd3de26b0..ce26e07a8c 100644 --- a/vkconfig_core/test/generated/VK_LAYER_LUNARG_reference_1_2_1.vulkan_h_code +++ b/vkconfig_core/test/generated/VK_LAYER_LUNARG_reference_1_2_1.vulkan_h_code @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. * - * This code was generated by Vulkan Configurator 3.5.0 + * This code was generated by Vulkan Configurator 3.5.1 */ #pragma once diff --git a/vkconfig_core/test/generated/VK_LAYER_LUNARG_reference_1_2_1.vulkan_hpp_code b/vkconfig_core/test/generated/VK_LAYER_LUNARG_reference_1_2_1.vulkan_hpp_code index f75475ff92..7fa5d0fb50 100644 --- a/vkconfig_core/test/generated/VK_LAYER_LUNARG_reference_1_2_1.vulkan_hpp_code +++ b/vkconfig_core/test/generated/VK_LAYER_LUNARG_reference_1_2_1.vulkan_hpp_code @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. * - * This code was generated by Vulkan Configurator 3.5.0 + * This code was generated by Vulkan Configurator 3.5.1 */ #pragma once diff --git a/vkconfig_core/test/generated/vk_layer_settings.bat b/vkconfig_core/test/generated/vk_layer_settings.bat index 4d712525eb..90c1622d86 100644 --- a/vkconfig_core/test/generated/vk_layer_settings.bat +++ b/vkconfig_core/test/generated/vk_layer_settings.bat @@ -13,7 +13,7 @@ :: See the License for the specific language governing permissions and :: limitations under the License. :: -:: This code was generated by Vulkan Configurator 3.5.0 +:: This code was generated by Vulkan Configurator 3.5.1 :: Loader Settings: :: Vulkan Layers enabled and ordered: diff --git a/vkconfig_core/test/generated/vk_layer_settings.sh b/vkconfig_core/test/generated/vk_layer_settings.sh index 1e6faa28c2..ff164edd5a 100644 --- a/vkconfig_core/test/generated/vk_layer_settings.sh +++ b/vkconfig_core/test/generated/vk_layer_settings.sh @@ -13,7 +13,7 @@ #! See the License for the specific language governing permissions and #! limitations under the License. #! -#! This code was generated by Vulkan Configurator 3.5.0 +#! This code was generated by Vulkan Configurator 3.5.1 #! Loader Settings: #! Vulkan Layers enabled and ordered: diff --git a/vkconfig_core/test/generated/vk_layer_settings.txt b/vkconfig_core/test/generated/vk_layer_settings.txt index 776c4b26d1..54dedcae41 100644 --- a/vkconfig_core/test/generated/vk_layer_settings.txt +++ b/vkconfig_core/test/generated/vk_layer_settings.txt @@ -13,7 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. # -# This code was generated by Vulkan Configurator 3.5.0 +# This code was generated by Vulkan Configurator 3.5.1 # reference layer # ========================================== diff --git a/vkconfig_core/test/generated/vulkan_hpp_layer_settings.code b/vkconfig_core/test/generated/vulkan_hpp_layer_settings.code index f75475ff92..7fa5d0fb50 100644 --- a/vkconfig_core/test/generated/vulkan_hpp_layer_settings.code +++ b/vkconfig_core/test/generated/vulkan_hpp_layer_settings.code @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. * - * This code was generated by Vulkan Configurator 3.5.0 + * This code was generated by Vulkan Configurator 3.5.1 */ #pragma once diff --git a/vkconfig_core/test/generated/vulkan_layer_settings.code b/vkconfig_core/test/generated/vulkan_layer_settings.code index 8bd3de26b0..ce26e07a8c 100644 --- a/vkconfig_core/test/generated/vulkan_layer_settings.code +++ b/vkconfig_core/test/generated/vulkan_layer_settings.code @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. * - * This code was generated by Vulkan Configurator 3.5.0 + * This code was generated by Vulkan Configurator 3.5.1 */ #pragma once diff --git a/vkconfig_core/version.cpp b/vkconfig_core/version.cpp index 4b825b1d6e..6effd0a1db 100644 --- a/vkconfig_core/version.cpp +++ b/vkconfig_core/version.cpp @@ -28,7 +28,7 @@ #include #include -const Version Version::VKCONFIG(3, 5, 0); +const Version Version::VKCONFIG(3, 5, 1); const Version Version::VKHEADER(VK_HEADER_VERSION_COMPLETE); const Version Version::NONE(0, 0, 0); const Version Version::LATEST(~0, ~0, ~0); diff --git a/vkconfig_gui/CHANGELOG.md b/vkconfig_gui/CHANGELOG.md index 8dc2eab65e..a3695103d0 100644 --- a/vkconfig_gui/CHANGELOG.md +++ b/vkconfig_gui/CHANGELOG.md @@ -1,3 +1,8 @@ +## Vulkan Configurator 3.5.1 - July 2026 + +### Fixes: +- Fix dark mode message on Linux showing when not expected + ## Vulkan Configurator 3.5.0 - May 2026 [Vulkan SDK 1.4.350.0](https://github.com/LunarG/VulkanTools/tree/vulkan-sdk-1.4.350) diff --git a/vkconfig_gui/tab_preferences.cpp b/vkconfig_gui/tab_preferences.cpp index 8e4e58a100..e93316fcfb 100644 --- a/vkconfig_gui/tab_preferences.cpp +++ b/vkconfig_gui/tab_preferences.cpp @@ -71,7 +71,7 @@ TabPreferences::TabPreferences(MainWindow &window, std::shared_ptrui->preferences_keep_running->setEnabled(QSystemTrayIcon::isSystemTrayAvailable()); if (!QSystemTrayIcon::isSystemTrayAvailable()) { - this->ui->preferences_keep_running->setToolTip("I couldn't detect any system tray on this system."); + this->ui->preferences_keep_running->setToolTip("No system tray on this system."); } this->ui->preferences_theme_mode->setEnabled(QT_VERSION >= QT_VERSION_CHECK(6, 8, 0)); @@ -90,8 +90,6 @@ TabPreferences::TabPreferences(MainWindow &window, std::shared_ptrui->preferences_app_log_max_blocks->setValue(configurator.app_log_max_blocks); this->ui->preferences_app_log_max_blocks->blockSignals(false); - this->on_theme_mode_changed(configurator.current_theme_mode); - this->ui->preferences_progress->setVisible(false); this->ui->preferences_notify_releases->setChecked(configurator.GetUseNotifyReleases()); this->ui->preferences_download->setText("Searching Latest Vulkan SDK..."); @@ -111,6 +109,8 @@ TabPreferences::TabPreferences(MainWindow &window, std::shared_ptrUpdatePreferences(configurator.current_theme_mode); } TabPreferences::~TabPreferences() {} @@ -147,56 +147,24 @@ void TabPreferences::UpdateUI(UpdateUIMode mode) { void TabPreferences::CleanUI() {} -bool TabPreferences::EventFilter(QObject *target, QEvent *event) { - (void)target; - (void)event; - - return false; -} - -void TabPreferences::on_show_executables_scope_toggled(bool checked) { - Configurator &configurator = Configurator::Get(); - configurator.configuration_show_scope = checked; - - this->UpdateUI(UPDATE_REFRESH_UI); -} - -void TabPreferences::on_all_enabled_executables_changed(int index) { - Configurator &configurator = Configurator::Get(); - - configurator.Surrender(OVERRIDE_AREA_ALL); - - const ExecutableAllEnabledBehavior behavior = static_cast(index); - configurator.SetAllEnabledExecutableBehavior(behavior); - - configurator.Override(OVERRIDE_AREA_ALL); -} - -void TabPreferences::on_app_text_max_blocks_changed(int index) { - Configurator &configurator = Configurator::Get(); - configurator.app_log_max_blocks = index; -} - -void TabPreferences::on_theme_mode_changed(int index) { +void TabPreferences::UpdatePreferences(ThemeMode new_theme_mode) { Configurator &configurator = Configurator::Get(); - const ThemeMode new_theme_mode = static_cast(index); - - // Configurations + // Configurations this->ui->configurations_executable_append->setIcon(::Get(new_theme_mode, ::ICON_FILE_SEARCH)); this->ui->configurations_executable_remove->setIcon(::Get(new_theme_mode, ::ICON_FILE_REMOVE)); this->ui->configurations_settings_reset->setIcon(::Get(new_theme_mode, ::ICON_RELOAD)); - // Drivers + // Drivers this->ui->driver_browse->setIcon(::Get(new_theme_mode, ::ICON_FOLDER_SEARCH)); this->ui->driver_search_clear->setIcon(::Get(new_theme_mode, ::ICON_EXIT)); - // Layers + // Layers this->ui->layers_browse_button->setIcon(::Get(new_theme_mode, ::ICON_FOLDER_SEARCH)); this->ui->layers_reload_button->setIcon(::Get(new_theme_mode, ::ICON_FOLDER_RELOAD)); this->ui->layers_search_clear->setIcon(::Get(new_theme_mode, ::ICON_EXIT)); - // Applications + // Applications this->ui->launch_executable_search->setIcon(::Get(new_theme_mode, ::ICON_FILE_SEARCH)); this->ui->launch_executable_append->setIcon(::Get(new_theme_mode, ::ICON_FILE_APPEND)); this->ui->launch_executable_remove->setIcon(::Get(new_theme_mode, ::ICON_FILE_REMOVE)); @@ -213,7 +181,7 @@ void TabPreferences::on_theme_mode_changed(int index) { this->ui->launch_search_whole->setIcon(::Get(new_theme_mode, ::ICON_SEARCH_WHOLE)); this->ui->launch_search_regex->setIcon(::Get(new_theme_mode, ::ICON_SEARCH_REGEX)); - // Diagnostics + // Diagnostics this->ui->diagnostic_export_folder->setIcon(::Get(new_theme_mode, ::ICON_FOLDER_EXPORT)); this->ui->diagnostic_export_file->setIcon(::Get(new_theme_mode, ::ICON_FILE_EXPORT)); this->ui->diagnostic_refresh->setIcon(::Get(new_theme_mode, ::ICON_RELOAD)); @@ -279,63 +247,88 @@ void TabPreferences::on_theme_mode_changed(int index) { } { - if (VKC_PLATFORM == PLATFORM_LINUX && this->initialized) { - if (!(configurator.Get(HIDE_MESSAGE_WARN_DARK_THEME_LINUX))) { - QMessageBox alert; - alert.setWindowTitle("Dark Mode on Linux system"); - alert.setText( - "The support of Dark Mode depends on the Linux desktop support so this option may have limited effects..."); - alert.setInformativeText("Only Vulkan Configurator icons may change color when dark mode is not supported."); - alert.setStandardButtons(QMessageBox::Ok); - alert.setDefaultButton(QMessageBox::Ok); - alert.setIcon(QMessageBox::Warning); - alert.setCheckBox(new QCheckBox("Do not show again.")); - alert.exec(); - if (alert.checkBox()->isChecked()) { - configurator.Set(HIDE_MESSAGE_WARN_DARK_THEME_LINUX); - } - } - } - if (configurator.current_theme_mode == new_theme_mode && this->initialized) { return; // Prevent Qt 6.8 crash } configurator.current_theme_mode = new_theme_mode; + } -#if (QT_VERSION >= QT_VERSION_CHECK(6, 8, 0)) - switch (new_theme_mode) { - default: - case THEME_MODE_AUTO: - this->window.app.styleHints()->unsetColorScheme(); - break; - case THEME_MODE_FORCE_LIGHT: { - this->window.app.styleHints()->setColorScheme(Qt::ColorScheme::Light); - break; - } - case THEME_MODE_FORCE_DARK: { - this->window.app.styleHints()->setColorScheme(Qt::ColorScheme::Dark); - break; + this->initialized = true; +} + +bool TabPreferences::EventFilter(QObject *target, QEvent *event) { + (void)target; + (void)event; + + return false; +} + +void TabPreferences::on_show_executables_scope_toggled(bool checked) { + Configurator &configurator = Configurator::Get(); + configurator.configuration_show_scope = checked; + + this->UpdateUI(UPDATE_REFRESH_UI); +} + +void TabPreferences::on_all_enabled_executables_changed(int index) { + Configurator &configurator = Configurator::Get(); + + configurator.Surrender(OVERRIDE_AREA_ALL); + + const ExecutableAllEnabledBehavior behavior = static_cast(index); + configurator.SetAllEnabledExecutableBehavior(behavior); + + configurator.Override(OVERRIDE_AREA_ALL); +} + +void TabPreferences::on_app_text_max_blocks_changed(int index) { + Configurator &configurator = Configurator::Get(); + configurator.app_log_max_blocks = index; +} + +void TabPreferences::on_theme_mode_changed(int index) { + static bool only_once = true; + + if (VKC_PLATFORM == PLATFORM_LINUX) { + Configurator &configurator = Configurator::Get(); + + if (only_once && !(configurator.Get(HIDE_MESSAGE_WARN_DARK_THEME_LINUX))) { + QMessageBox alert; + alert.setWindowTitle("Dark Mode on Linux system"); + alert.setText( + "The support of Dark Mode depends on the Linux desktop support so this option may have limited effects..."); + alert.setInformativeText("Only Vulkan Configurator icons may change color when dark mode is not supported."); + alert.setStandardButtons(QMessageBox::Ok); + alert.setDefaultButton(QMessageBox::Ok); + alert.setIcon(QMessageBox::Warning); + alert.setCheckBox(new QCheckBox("Do not show again.")); + alert.exec(); + if (alert.checkBox()->isChecked()) { + configurator.Set(HIDE_MESSAGE_WARN_DARK_THEME_LINUX); } + + only_once = false; } -#endif } - this->initialized = true; + const ThemeMode new_theme_mode = static_cast(index); + + this->UpdatePreferences(new_theme_mode); } void TabPreferences::on_theme_light_alternate_enabled(bool checked) { Configurator &configurator = Configurator::Get(); configurator.theme_light_alternate_enabled = checked; - this->on_theme_mode_changed(configurator.current_theme_mode); + this->UpdatePreferences(configurator.current_theme_mode); } void TabPreferences::on_theme_dark_alternate_enabled(bool checked) { Configurator &configurator = Configurator::Get(); configurator.theme_dark_alternate_enabled = checked; - this->on_theme_mode_changed(configurator.current_theme_mode); + this->UpdatePreferences(configurator.current_theme_mode); } void TabPreferences::on_theme_light_alternate_pressed() { @@ -351,7 +344,7 @@ void TabPreferences::on_theme_light_alternate_pressed() { configurator.theme_light_alternate_color = color; } - this->on_theme_mode_changed(configurator.current_theme_mode); + this->UpdatePreferences(configurator.current_theme_mode); } void TabPreferences::on_theme_dark_alternate_pressed() { @@ -366,7 +359,7 @@ void TabPreferences::on_theme_dark_alternate_pressed() { configurator.theme_dark_alternate_color = color; } - this->on_theme_mode_changed(configurator.current_theme_mode); + this->UpdatePreferences(configurator.current_theme_mode); } void TabPreferences::on_keep_running_toggled(bool checked) { diff --git a/vkconfig_gui/tab_preferences.h b/vkconfig_gui/tab_preferences.h index 53384de308..ccf8c65bb8 100644 --- a/vkconfig_gui/tab_preferences.h +++ b/vkconfig_gui/tab_preferences.h @@ -61,6 +61,8 @@ class TabPreferences : public Tab { void on_app_text_max_blocks_changed(int index); private: + void UpdatePreferences(ThemeMode new_theme_mode); + QNetworkAccessManager network_manager; QByteArray downloaded_data; bool initialized = false;