Skip to content

Commit f60b7a6

Browse files
committed
Add dark mode for Windows 10
1 parent 904f616 commit f60b7a6

File tree

3 files changed

+61
-0
lines changed

3 files changed

+61
-0
lines changed

src/app/app.cpp

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,11 @@
1313
#include <QtQml>
1414
#include <QSslSocket>
1515

16+
#if defined(Q_OS_WINDOWS)
17+
#include "win_darkmode.h"
18+
#include <QStyleFactory>
19+
#endif
20+
1621
#include "common/tabviewmodel.h"
1722
#include "events.h"
1823
#include "models/configmanager.h"
@@ -43,6 +48,14 @@ Application::Application(int& argc, char** argv)
4348
initProxySettings();
4449
processCmdArgs();
4550
initAppFonts();
51+
52+
#if defined(Q_OS_WINDOWS)
53+
if (isWindowsDarkThemeEnabled()) {
54+
setStyle(QStyleFactory::create("Fusion"));
55+
setPalette(createDarkModePalette());
56+
}
57+
#endif
58+
4659
initRedisClient();
4760
#ifndef RDM_APPSTORE
4861
initUpdater();

src/app/win_darkmode.h

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
#pragma once
2+
#include <QPalette>
3+
#include <QSettings>
4+
5+
bool isWindowsDarkThemeEnabled() {
6+
QSettings settings(
7+
"HKEY_CURRENT_"
8+
"USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize",
9+
QSettings::NativeFormat);
10+
11+
return settings.value("AppsUseLightTheme") == 0;
12+
}
13+
14+
QPalette createDarkModePalette() {
15+
16+
QColor base = QColor(30, 30, 30);
17+
QColor alt = QColor(50, 50, 50);
18+
QColor text = QColor(223, 223, 223);
19+
QColor disabledColor = QColor(127, 127, 127);
20+
21+
QPalette p(alt, base);
22+
23+
p.setColor(QPalette::Light, QColor(76,76,76));
24+
p.setColor(QPalette::Midlight, QColor(76,76,76));
25+
p.setColor(QPalette::Mid, QColor(66,66,66));
26+
p.setColor(QPalette::Window, base);
27+
p.setColor(QPalette::WindowText, text);
28+
p.setColor(QPalette::Base, base);
29+
p.setColor(QPalette::AlternateBase, alt);
30+
p.setColor(QPalette::ToolTipBase, alt);
31+
p.setColor(QPalette::ToolTipText, Qt::white);
32+
p.setColor(QPalette::Text, text);
33+
p.setColor(QPalette::Disabled, QPalette::Text, disabledColor);
34+
p.setColor(QPalette::Button, alt);
35+
p.setColor(QPalette::ButtonText, text);
36+
p.setColor(QPalette::Disabled, QPalette::ButtonText, disabledColor);
37+
p.setColor(QPalette::BrightText, text.lighter(80));
38+
p.setColor(QPalette::Link, QColor(42, 130, 218));
39+
p.setColor(QPalette::Highlight, QColor(42, 130, 218));
40+
p.setColor(QPalette::HighlightedText, Qt::black);
41+
p.setColor(QPalette::Disabled, QPalette::HighlightedText, disabledColor);
42+
43+
p.setBrush(QPalette::Active, QPalette::Highlight, QColor(42, 130, 218));
44+
p.setBrush(QPalette::Inactive, QPalette::Highlight, QColor(42, 130, 218));
45+
46+
return p;
47+
}

src/rdm.pro

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ HEADERS += \
4848
$$PWD/app/apputils.h \
4949
$$PWD/app/qmlutils.h \
5050
$$PWD/app/qcompress.h \
51+
$$PWD/app/win_darkmode.h \
5152
$$files($$PWD/app/models/*.h) \
5253
$$files($$PWD/app/models/key-models/*.h) \
5354
$$files($$PWD/modules/connections-tree/*.h) \

0 commit comments

Comments
 (0)