Skip to content

Commit df1a729

Browse files
committed
owscatterplotgraph: Use palette colors for legend item
1 parent b144d09 commit df1a729

File tree

1 file changed

+38
-13
lines changed

1 file changed

+38
-13
lines changed

Orange/widgets/visualize/owscatterplotgraph.py

Lines changed: 38 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
import numpy as np
99
from AnyQt.QtCore import Qt, QRectF, QSize, QTimer, pyqtSignal as Signal, \
10-
QObject
10+
QObject, QEvent
1111
from AnyQt.QtGui import QColor, QPen, QBrush, QPainterPath, QTransform, \
1212
QPainter, QPalette
1313
from AnyQt.QtWidgets import QApplication, QToolTip, QGraphicsTextItem, \
@@ -39,20 +39,19 @@
3939

4040

4141
class LegendItem(PgLegendItem):
42-
def __init__(self, size=None, offset=None, pen=None, brush=None):
42+
def __init__(
43+
self, size=None, offset=None, pen=None, brush=None,
44+
):
4345
super().__init__(size, offset)
4446

4547
self.layout.setContentsMargins(5, 5, 5, 5)
4648
self.layout.setHorizontalSpacing(15)
4749
self.layout.setColumnAlignment(1, Qt.AlignLeft | Qt.AlignVCenter)
48-
49-
if pen is None:
50-
pen = QPen(QColor(196, 197, 193, 200), 1)
51-
pen.setCosmetic(True)
50+
if pen is not None:
51+
pen = QPen(pen)
52+
if brush is not None:
53+
brush = QBrush(brush)
5254
self.__pen = pen
53-
54-
if brush is None:
55-
brush = QBrush(QColor(232, 232, 232, 100))
5655
self.__brush = brush
5756

5857
def restoreAnchor(self, anchors):
@@ -66,16 +65,17 @@ def restoreAnchor(self, anchors):
6665

6766
# pylint: disable=arguments-differ
6867
def paint(self, painter, _option, _widget=None):
69-
painter.setPen(self.__pen)
70-
painter.setBrush(self.__brush)
68+
painter.setPen(self.pen())
69+
painter.setBrush(self.brush())
7170
rect = self.contentsRect()
7271
painter.drawRoundedRect(rect, 2, 2)
7372

7473
def addItem(self, item, name):
7574
super().addItem(item, name)
76-
# Fix-up the label alignment
75+
# Fix-up the label alignment, and color
76+
color = self.palette().color(QPalette.Text)
7777
_, label = self.items[-1]
78-
label.setText(name, justify="left")
78+
label.setText(name, justify="left", color=color)
7979

8080
def clear(self):
8181
"""
@@ -91,6 +91,31 @@ def clear(self):
9191

9292
self.updateSize()
9393

94+
def pen(self):
95+
if self.__pen is not None:
96+
return QPen(self.__pen)
97+
else:
98+
color = self.palette().color(QPalette.Window)
99+
color.setAlpha(230)
100+
pen = QPen(color, 1)
101+
pen.setCosmetic(True)
102+
return pen
103+
104+
def brush(self):
105+
if self.__brush is not None:
106+
return QBrush(self.__brush)
107+
else:
108+
color = self.palette().color(QPalette.Window)
109+
color.setAlpha(100)
110+
return QBrush(color)
111+
112+
def changeEvent(self, event: QEvent):
113+
if event.type() == QEvent.PaletteChange:
114+
color = self.palette().color(QPalette.Text)
115+
for sample, label in self.items:
116+
label.setText(label.text, color=color)
117+
super().changeEvent(event)
118+
94119

95120
def bound_anchor_pos(corner, parentpos):
96121
corner = np.clip(corner, 0, 1)

0 commit comments

Comments
 (0)