diff --git a/src/calibre/gui2/palette.py b/src/calibre/gui2/palette.py index a592404ff3..9a1d0cb0de 100644 --- a/src/calibre/gui2/palette.py +++ b/src/calibre/gui2/palette.py @@ -445,3 +445,19 @@ class PaletteManager(QObject): print('Detected a spontaneous palette change by Qt, reverting it', file=sys.stderr) self.set_palette(pal) self.on_palette_change() + + def tree_view_hover_style(self): + g1, g2 = '#e7effd', '#cbdaf1' + border_size = '1px' + if self.is_dark_theme: + c = QApplication.instance().palette().color(QPalette.ColorRole.Highlight) + c = c.lighter(180) + g1 = g2 = c.name() + border_size = '0px' + return f''' + QTreeView::item:hover {{ + background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 {g1}, stop: 1 {g2}); + border: {border_size} solid #bfcde4; + border-radius: 6px; + }} + ''' diff --git a/src/calibre/gui2/progress_indicator/CalibreStyle.cpp b/src/calibre/gui2/progress_indicator/CalibreStyle.cpp index c72adf1eef..e7727c3622 100644 --- a/src/calibre/gui2/progress_indicator/CalibreStyle.cpp +++ b/src/calibre/gui2/progress_indicator/CalibreStyle.cpp @@ -203,7 +203,7 @@ void CalibreStyle::drawPrimitive(PrimitiveElement element, const QStyleOption * QColor color = vopt->palette.color(QPalette::Normal, QPalette::Highlight); QStyleOptionViewItem opt = QStyleOptionViewItem(*vopt); if (is_color_dark(option->palette.color(QPalette::Window))) { - color = color.lighter(190); + color = color.lighter(180); } else { color = color.lighter(125); } diff --git a/src/calibre/gui2/tag_browser/view.py b/src/calibre/gui2/tag_browser/view.py index 326bb5949c..9da187b594 100644 --- a/src/calibre/gui2/tag_browser/view.py +++ b/src/calibre/gui2/tag_browser/view.py @@ -238,13 +238,9 @@ class TagsView(QTreeView): # {{{ padding-bottom:PADex; } - QTreeView::item:hover { - background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #e7effd, stop: 1 #cbdaf1); - border: 1px solid #bfcde4; - border-radius: 6px; - } '''.replace('PAD', str(gprefs['tag_browser_item_padding'])) + ( - '' if gprefs['tag_browser_old_look'] else stylish_tb)) + '' if gprefs['tag_browser_old_look'] else stylish_tb) + QApplication.instance().palette_manager.tree_view_hover_style() + ) def set_look_and_feel(self, first=False): self.set_style_sheet() diff --git a/src/calibre/gui2/viewer/toc.py b/src/calibre/gui2/viewer/toc.py index e105464e07..05c7373993 100644 --- a/src/calibre/gui2/viewer/toc.py +++ b/src/calibre/gui2/viewer/toc.py @@ -88,13 +88,7 @@ class TOCView(QTreeView): padding-bottom:0.5ex; } - QTreeView::item:hover { - background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #e7effd, stop: 1 #cbdaf1); - color: black; - border: 1px solid #bfcde4; - border-radius: 6px; - } - ''') + ''' + QApplication.instance().palette_manager.tree_view_hover_style()) def mouseMoveEvent(self, ev): if self.indexAt(ev.pos()).isValid():