From cfa9ab990912182a138b1933b4025288226e37a7 Mon Sep 17 00:00:00 2001 From: Maximilien Siavelis Date: Fri, 1 Dec 2023 15:32:13 +0100 Subject: [PATCH] spns #39957: SALOME dark mode feature in Windows --- src/Session/SALOME_Session_Server.cxx | 33 +++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/src/Session/SALOME_Session_Server.cxx b/src/Session/SALOME_Session_Server.cxx index 4812cf6fb..d26f63bb1 100644 --- a/src/Session/SALOME_Session_Server.cxx +++ b/src/Session/SALOME_Session_Server.cxx @@ -65,6 +65,8 @@ #include #include #include +#include +#include #endif #include #include @@ -498,6 +500,37 @@ int AbstractGUIAppMain(int argc, char **argv) SetArgcArgv(argc,argv); Application app(argc, argv); +#ifdef WIN32 + QSettings settings("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize", + QSettings::NativeFormat); + if(settings.value("AppsUseLightTheme")==0){ + app.setStyle(QStyleFactory::create("Fusion")); + QPalette darkPalette; + QColor darkColor = QColor(45,45,45); + QColor disabledColor = QColor(127,127,127); + darkPalette.setColor(QPalette::Window, darkColor); + darkPalette.setColor(QPalette::WindowText, Qt::white); + darkPalette.setColor(QPalette::Base, QColor(18,18,18)); + darkPalette.setColor(QPalette::AlternateBase, darkColor); + darkPalette.setColor(QPalette::ToolTipBase, Qt::white); + darkPalette.setColor(QPalette::ToolTipText, Qt::white); + darkPalette.setColor(QPalette::Text, Qt::white); + darkPalette.setColor(QPalette::Disabled, QPalette::Text, disabledColor); + darkPalette.setColor(QPalette::Button, darkColor); + darkPalette.setColor(QPalette::ButtonText, Qt::white); + darkPalette.setColor(QPalette::Disabled, QPalette::ButtonText, disabledColor); + darkPalette.setColor(QPalette::BrightText, Qt::red); + darkPalette.setColor(QPalette::Link, QColor(42, 130, 218)); + darkPalette.setColor(QPalette::Highlight, QColor(42, 130, 218)); + darkPalette.setColor(QPalette::HighlightedText, Qt::black); + darkPalette.setColor(QPalette::Disabled, QPalette::HighlightedText, disabledColor); + darkPalette.setColor(QPalette::PlaceholderText, Qt::white); + darkPalette.setColor(QPalette::NoRole, Qt::white); + + app.setPalette(darkPalette); + app.setStyleSheet("QToolTip { color: #ffffff; background-color: #2a82da; border: 1px solid white; }"); + } +#endif // Initialize Python (only once) // Note: Python forces setting locale LC_CTYPE to system one: setlocale(LC_CTYPE, ""). char *py_argv[] = {(char *)""}; -- 2.30.2