feat(main): implement def apply_dark_theme_if_requested
This commit is contained in:
parent
822e8d8989
commit
966b455c0e
1 changed files with 37 additions and 0 deletions
|
|
@ -92,3 +92,40 @@ def _read_portal_dark_preference():
|
||||||
if color_scheme == 2:
|
if color_scheme == 2:
|
||||||
return False
|
return False
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
# apply_dark_theme_if_requested: function definition for ScanSlicer behavior.
|
||||||
|
def apply_dark_theme_if_requested(app):
|
||||||
|
theme_value = os.environ.get("GTK_THEME", "").lower()
|
||||||
|
dark_theme_requested = "dark" in theme_value
|
||||||
|
if not dark_theme_requested:
|
||||||
|
portal_pref = _read_portal_dark_preference()
|
||||||
|
if portal_pref is not None:
|
||||||
|
dark_theme_requested = portal_pref
|
||||||
|
|
||||||
|
if not dark_theme_requested:
|
||||||
|
try:
|
||||||
|
dark_theme_requested = app.styleHints().colorScheme() == Qt.ColorScheme.Dark
|
||||||
|
except Exception:
|
||||||
|
dark_theme_requested = False
|
||||||
|
|
||||||
|
if not dark_theme_requested:
|
||||||
|
return
|
||||||
|
|
||||||
|
# Some container/desktop combinations do not propagate GTK dark theme
|
||||||
|
# correctly to Qt widgets; enforce a dark palette when dark mode is requested.
|
||||||
|
app.setStyle("Fusion")
|
||||||
|
palette = QPalette()
|
||||||
|
palette.setColor(QPalette.Window, QColor(53, 53, 53))
|
||||||
|
palette.setColor(QPalette.WindowText, QColor(255, 255, 255))
|
||||||
|
palette.setColor(QPalette.Base, QColor(35, 35, 35))
|
||||||
|
palette.setColor(QPalette.AlternateBase, QColor(53, 53, 53))
|
||||||
|
palette.setColor(QPalette.ToolTipBase, QColor(35, 35, 35))
|
||||||
|
palette.setColor(QPalette.ToolTipText, QColor(255, 255, 255))
|
||||||
|
palette.setColor(QPalette.Text, QColor(255, 255, 255))
|
||||||
|
palette.setColor(QPalette.Button, QColor(53, 53, 53))
|
||||||
|
palette.setColor(QPalette.ButtonText, QColor(255, 255, 255))
|
||||||
|
palette.setColor(QPalette.BrightText, QColor(255, 0, 0))
|
||||||
|
palette.setColor(QPalette.Highlight, QColor(42, 130, 218))
|
||||||
|
palette.setColor(QPalette.HighlightedText, QColor(255, 255, 255))
|
||||||
|
app.setPalette(palette)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue