def _apply_style(self, app: QApplication) -> None: buf = "" if isWin and platform.release() == "10" and not self.night_mode: # add missing bottom border to menubar buf += """ QMenuBar { border-bottom: 1px solid #aaa; background: white; } """ # qt bug? setting the above changes the browser sidebar # to white as well, so set it back buf += """ QTreeWidget { background: #eee; } """ if self.night_mode: buf += """ QToolTip { border: 0; } """ if not self.macos_dark_mode(): buf += """ QScrollBar { background-color: %s; } QScrollBar::handle { background-color: %s; border-radius: 5px; } QScrollBar:horizontal { height: 12px; } QScrollBar::handle:horizontal { min-width: 50px; } QScrollBar:vertical { width: 12px; } QScrollBar::handle:vertical { min-height: 50px; } QScrollBar::add-line { border: none; background: none; } QScrollBar::sub-line { border: none; background: none; } QTabWidget { background-color: %s; } """ % ( self.str_color("window-bg"), colors.get("fusion-button-hover-bg"), self.str_color("window-bg"), ) # allow addons to modify the styling buf = gui_hooks.style_did_init(buf) app.setStyleSheet(buf)
def str_color(self, key: str) -> str: """Get a color defined in _vars.scss If the colour is called '$day-frame-bg', key should be 'frame-bg'. Returns the color as a string hex code or color name.""" prefix = self.night_mode and "night-" or "day-" c = colors.get(prefix + key) if c is None: raise Exception("no such color:", key) return c
def str_color(self, key: str) -> str: """Get a color defined in _vars.scss If the colour is called '--frame-bg', key should be 'frame-bg'. Returns the color as a string hex code or color name.""" idx = 1 if self.night_mode else 0 c = colors.get(key) if c is None: raise Exception("no such color:", key) return c[idx]
def _apply_palette(self, app: QApplication) -> None: if not self.night_mode: return if not self.macos_dark_mode(): app.setStyle(QStyleFactory.create("fusion")) # type: ignore palette = QPalette() text_fg = self.qcolor("text-fg") palette.setColor(QPalette.WindowText, text_fg) palette.setColor(QPalette.ToolTipText, text_fg) palette.setColor(QPalette.Text, text_fg) palette.setColor(QPalette.ButtonText, text_fg) hlbg = self.qcolor("highlight-bg") hlbg.setAlpha(64) palette.setColor(QPalette.HighlightedText, self.qcolor("highlight-fg")) palette.setColor(QPalette.Highlight, hlbg) window_bg = self.qcolor("window-bg") palette.setColor(QPalette.Window, window_bg) palette.setColor(QPalette.AlternateBase, window_bg) palette.setColor(QPalette.Button, QColor(colors.get("fusion-button-base-bg"))) frame_bg = self.qcolor("frame-bg") palette.setColor(QPalette.Base, frame_bg) palette.setColor(QPalette.ToolTipBase, frame_bg) disabled_color = self.qcolor("disabled") palette.setColor(QPalette.Disabled, QPalette.Text, disabled_color) palette.setColor(QPalette.Disabled, QPalette.ButtonText, disabled_color) palette.setColor(QPalette.Disabled, QPalette.HighlightedText, disabled_color) palette.setColor(QPalette.Link, self.qcolor("link")) palette.setColor(QPalette.BrightText, Qt.red) app.setPalette(palette)