Qt/Windows: Match system color scheme.

Use windowsvista style for light, dark fusion scheme for dark.
This commit is contained in:
BearOso 2024-05-13 13:58:31 -05:00
parent cfabbd7f97
commit c9b90655bd
1 changed files with 34 additions and 26 deletions

View File

@ -6,6 +6,7 @@
#include <clocale> #include <clocale>
#include <qnamespace.h> #include <qnamespace.h>
#include <QStyle> #include <QStyle>
#include <QStyleHints>
#ifndef _WIN32 #ifndef _WIN32
#include <csignal> #include <csignal>
@ -28,35 +29,42 @@ int main(int argc, char *argv[])
if (emu.qtapp->platformName() == "windows") if (emu.qtapp->platformName() == "windows")
{ {
emu.qtapp->setStyle("fusion"); if (emu.qtapp->styleHints()->colorScheme() == Qt::ColorScheme::Dark)
{
emu.qtapp->setStyle("fusion");
const QColor darkGray(53, 53, 53); const QColor darkGray(53, 53, 53);
const QColor gray(128, 128, 128); const QColor gray(128, 128, 128);
const QColor black(25, 25, 25); const QColor black(25, 25, 25);
const QColor blue(198, 238, 255); const QColor blue(198, 238, 255);
const QColor blue2(0, 88, 208); const QColor blue2(0, 88, 208);
QPalette darkPalette; QPalette darkPalette;
darkPalette.setColor(QPalette::Window, darkGray); darkPalette.setColor(QPalette::Window, darkGray);
darkPalette.setColor(QPalette::WindowText, Qt::white); darkPalette.setColor(QPalette::WindowText, Qt::white);
darkPalette.setColor(QPalette::Base, black); darkPalette.setColor(QPalette::Base, black);
darkPalette.setColor(QPalette::AlternateBase, darkGray); darkPalette.setColor(QPalette::AlternateBase, darkGray);
darkPalette.setColor(QPalette::ToolTipBase, blue2); darkPalette.setColor(QPalette::ToolTipBase, blue2);
darkPalette.setColor(QPalette::ToolTipText, Qt::white); darkPalette.setColor(QPalette::ToolTipText, Qt::white);
darkPalette.setColor(QPalette::Text, Qt::white); darkPalette.setColor(QPalette::Text, Qt::white);
darkPalette.setColor(QPalette::Button, darkGray); darkPalette.setColor(QPalette::Button, darkGray);
darkPalette.setColor(QPalette::ButtonText, Qt::white); darkPalette.setColor(QPalette::ButtonText, Qt::white);
darkPalette.setColor(QPalette::Link, blue); darkPalette.setColor(QPalette::Link, blue);
darkPalette.setColor(QPalette::Highlight, blue2); darkPalette.setColor(QPalette::Highlight, blue2);
darkPalette.setColor(QPalette::HighlightedText, Qt::white); darkPalette.setColor(QPalette::HighlightedText, Qt::white);
darkPalette.setColor(QPalette::PlaceholderText, QColor(Qt::white).darker()); darkPalette.setColor(QPalette::PlaceholderText, QColor(Qt::white).darker());
darkPalette.setColor(QPalette::Active, QPalette::Button, darkGray); darkPalette.setColor(QPalette::Active, QPalette::Button, darkGray);
darkPalette.setColor(QPalette::Disabled, QPalette::ButtonText, gray); darkPalette.setColor(QPalette::Disabled, QPalette::ButtonText, gray);
darkPalette.setColor(QPalette::Disabled, QPalette::WindowText, gray); darkPalette.setColor(QPalette::Disabled, QPalette::WindowText, gray);
darkPalette.setColor(QPalette::Disabled, QPalette::Text, gray); darkPalette.setColor(QPalette::Disabled, QPalette::Text, gray);
darkPalette.setColor(QPalette::Disabled, QPalette::Light, darkGray); darkPalette.setColor(QPalette::Disabled, QPalette::Light, darkGray);
emu.qtapp->setPalette(darkPalette); emu.qtapp->setPalette(darkPalette);
}
else
{
emu.qtapp->setStyle("windowsvista");
}
} }
#ifndef _WIN32 #ifndef _WIN32