From 5b7588c8e8cbabe2afcd327efc2c48be3a062a6a Mon Sep 17 00:00:00 2001 From: Philipp Wolfer Date: Fri, 7 Feb 2020 17:57:07 +0100 Subject: [PATCH] PICARD-1704: Use the Windows 10 accent color even in light mode --- picard/tagger.py | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/picard/tagger.py b/picard/tagger.py index 83236ca8f..fd291b6f7 100644 --- a/picard/tagger.py +++ b/picard/tagger.py @@ -175,7 +175,7 @@ class Tagger(QtWidgets.QApplication): 'QGroupBox::title { /* PICARD-1206, Qt bug workaround */ }' ) - # Set a dark palette on Windows 10 if dark app mode is enabled + # Adapt to Windows 10 color scheme (dark / light theme and accent color) if IS_WIN: import winreg @@ -186,18 +186,21 @@ class Tagger(QtWidgets.QApplication): except OSError: log.warning('Failed reading AppsUseLightTheme from registry') - if dark_theme: - with winreg.OpenKey(winreg.HKEY_CURRENT_USER, r"Software\Microsoft\Windows\DWM") as key: - try: - accent_color_dword = winreg.QueryValueEx(key, "ColorizationColor")[0] - accent_color_hex = '#{:06x}'.format(accent_color_dword & 0xffffff) - accent_color = QtGui.QColor(accent_color_hex) - except OSError: - log.warning('Failed reading ColorizationColor from registry') - # accent_color = QtGui.QColor(0, 120, 215) # Windows 10 default blue - accent_color = QtGui.QColor(119, 27, 133) # MusicBrainz Picard purple + accent_color = None + with winreg.OpenKey(winreg.HKEY_CURRENT_USER, r"Software\Microsoft\Windows\DWM") as key: + try: + accent_color_dword = winreg.QueryValueEx(key, "ColorizationColor")[0] + accent_color_hex = '#{:06x}'.format(accent_color_dword & 0xffffff) + accent_color = QtGui.QColor(accent_color_hex) + accent_text_color = QtCore.Qt.white if accent_color.lightness() < 160 else QtCore.Qt.black + except OSError: + log.warning('Failed reading ColorizationColor from registry') - palette = QtGui.QPalette(self.palette()) + palette = QtGui.QPalette(self.palette()) + if accent_color: + palette.setColor(QtGui.QPalette.Highlight, accent_color) + palette.setColor(QtGui.QPalette.HighlightedText, accent_text_color) + if dark_theme: palette.setColor(QtGui.QPalette.Window, QtGui.QColor(51, 51, 51)) palette.setColor(QtGui.QPalette.WindowText, QtCore.Qt.white) palette.setColor(QtGui.QPalette.Base, QtGui.QColor(31, 31, 31)) @@ -208,14 +211,11 @@ class Tagger(QtWidgets.QApplication): palette.setColor(QtGui.QPalette.Button, QtGui.QColor(51, 51, 51)) palette.setColor(QtGui.QPalette.ButtonText, QtCore.Qt.white) palette.setColor(QtGui.QPalette.BrightText, QtCore.Qt.red) - palette.setColor(QtGui.QPalette.Highlight, accent_color) - accent_text_color = QtCore.Qt.white if accent_color.lightness() < 160 else QtCore.Qt.black - palette.setColor(QtGui.QPalette.HighlightedText, accent_text_color) palette.setColor(QtGui.QPalette.Link, accent_color.lighter()) palette.setColor(QtGui.QPalette.Disabled, QtGui.QPalette.Text, QtCore.Qt.darkGray) palette.setColor(QtGui.QPalette.Disabled, QtGui.QPalette.Light, QtGui.QColor(0, 0, 0, 0)) palette.setColor(QtGui.QPalette.Disabled, QtGui.QPalette.ButtonText, QtCore.Qt.darkGray) - self.setPalette(palette) + self.setPalette(palette) self._cmdline_files = picard_args.FILE self.autoupdate_enabled = autoupdate