From e189dab93e1eedf5cab765ced1333d48e0b751bc Mon Sep 17 00:00:00 2001 From: Theophile Gilgien Date: Tue, 26 Aug 2025 12:02:24 +0200 Subject: [PATCH] improve line number background when set to transparent --- typstwriter/editor.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/typstwriter/editor.py b/typstwriter/editor.py index d8cef2a..73d99dc 100644 --- a/typstwriter/editor.py +++ b/typstwriter/editor.py @@ -1137,7 +1137,24 @@ def paintEvent(self, event): # This is an overriding function # noqa: N802 painter = QtGui.QPainter(self) # paint background - painter.fillRect(event.rect(), QtGui.QColor(self.parentWidget().highlighter.line_number_background_color)) + if self.parentWidget().highlighter.line_number_background_color == "transparent": + painter.fillRect(event.rect(), QtGui.QColor(self.parentWidget().highlighter.background_color)) + # paint separator between line numbers and editor + color = QtGui.QColor(self.parentWidget().highlighter.background_color) + if color.value() <= 127: # mid lightness # noqa PLR2004 + # QColor.lighter() works by multiplying the value with a factor and therefore has no effect if value == 0 + color = QtGui.QColor("#373737") if color.value() == 0 else color.lighter(200) + else: + color = color.darker(130) + painter.setPen(QtGui.QPen(QtGui.QBrush(color), 2)) + painter.drawLine( + event.rect().left() + event.rect().width(), + event.rect().top(), + event.rect().left() + event.rect().width(), + event.rect().top() + event.rect().height(), + ) + else: + painter.fillRect(event.rect(), QtGui.QColor(self.parentWidget().highlighter.line_number_background_color)) # paint line numbers painter.setPen(QtGui.QColor(self.parentWidget().highlighter.line_number_color))