From 9362da31ff31f81f040309234d6ff573e8ede160 Mon Sep 17 00:00:00 2001 From: Charles Haley Date: Fri, 21 Jul 2023 16:57:01 +0100 Subject: [PATCH 1/2] Fix for flashing in the tag browser. See https://www.mobileread.com/forums/showthread.php?p=4341802#post4341802 --- src/calibre/gui2/tag_browser/view.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/calibre/gui2/tag_browser/view.py b/src/calibre/gui2/tag_browser/view.py index 1a7ddf125b..d9e44cc16a 100644 --- a/src/calibre/gui2/tag_browser/view.py +++ b/src/calibre/gui2/tag_browser/view.py @@ -68,15 +68,15 @@ class TagDelegate(QStyledItemDelegate): # {{{ icon.paint(painter, r, option.decorationAlignment, QIcon.Mode.Normal, QIcon.State.On) def paint_text(self, painter, rect, flags, text, hover): - set_color = hover and QApplication.instance().is_dark_theme - if set_color: - painter.save() - pen = painter.pen() + painter.save() + pen = painter.pen() + if hover and QApplication.instance().is_dark_theme: pen.setColor(QColor(Qt.GlobalColor.black)) - painter.setPen(pen) + else: + pen.setColor(QColor(Qt.GlobalColor.white)) + painter.setPen(pen) painter.drawText(rect, flags, text) - if set_color: - painter.restore() + painter.restore() def draw_text(self, style, painter, option, widget, index, item): tr = style.subElementRect(QStyle.SubElement.SE_ItemViewItemText, option, widget) From bee3f5dfc1cedb3dd2efe764b9c69159aa542569 Mon Sep 17 00:00:00 2001 From: Charles Haley Date: Fri, 21 Jul 2023 17:02:09 +0100 Subject: [PATCH 2/2] Ooops -- my change broke light theme. This fixes it. --- src/calibre/gui2/tag_browser/view.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/calibre/gui2/tag_browser/view.py b/src/calibre/gui2/tag_browser/view.py index d9e44cc16a..7eb0776b16 100644 --- a/src/calibre/gui2/tag_browser/view.py +++ b/src/calibre/gui2/tag_browser/view.py @@ -70,10 +70,11 @@ class TagDelegate(QStyledItemDelegate): # {{{ def paint_text(self, painter, rect, flags, text, hover): painter.save() pen = painter.pen() - if hover and QApplication.instance().is_dark_theme: - pen.setColor(QColor(Qt.GlobalColor.black)) - else: - pen.setColor(QColor(Qt.GlobalColor.white)) + if QApplication.instance().is_dark_theme: + if hover: + pen.setColor(QColor(Qt.GlobalColor.black)) + else: + pen.setColor(QColor(Qt.GlobalColor.white)) painter.setPen(pen) painter.drawText(rect, flags, text) painter.restore()