Skip to content

Commit 42cc7f7

Browse files
committed
pointer color override logic.
1 parent be6c404 commit 42cc7f7

File tree

2 files changed

+18
-24
lines changed

2 files changed

+18
-24
lines changed

NodeGraphQt/qgraphics/pipe.py

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -583,8 +583,7 @@ def hoverEnterEvent(self, event):
583583
"""
584584
QtWidgets.QGraphicsPathItem.hoverEnterEvent(self, event)
585585

586-
def draw_path(self, start_port, end_port=None, cursor_pos=None,
587-
color_mode=None):
586+
def draw_path(self, start_port, end_port=None, cursor_pos=None, color=None):
588587
"""
589588
re-implemented to also update the index pointer arrow position.
590589
@@ -593,22 +592,20 @@ def draw_path(self, start_port, end_port=None, cursor_pos=None,
593592
end_port (PortItem): port used to draw the end point.
594593
cursor_pos (QtCore.QPointF): cursor position if specified this
595594
will be the draw end point.
596-
color_mode (str): arrow index pointer color mode
597-
('accept', 'reject' or None).
595+
color (list[int]): override arrow index pointer color. (r, g, b)
598596
"""
599597
super(LivePipeItem, self).draw_path(start_port, end_port, cursor_pos)
600-
self.draw_index_pointer(start_port, cursor_pos, color_mode)
598+
self.draw_index_pointer(start_port, cursor_pos, color)
601599

602-
def draw_index_pointer(self, start_port, cursor_pos, color_mode=None):
600+
def draw_index_pointer(self, start_port, cursor_pos, color=None):
603601
"""
604602
Update the index pointer arrow position and direction when the
605603
live pipe path is redrawn.
606604
607605
Args:
608606
start_port (PortItem): start port item.
609607
cursor_pos (QtCore.QPoint): cursor scene position.
610-
color_mode (str): arrow index pointer color mode
611-
('accept', 'reject' or None).
608+
color (list[int]): override arrow index pointer color. (r, g, b).
612609
"""
613610
text_rect = self._idx_text.boundingRect()
614611

@@ -635,16 +632,13 @@ def draw_index_pointer(self, start_port, cursor_pos, color_mode=None):
635632

636633
self._idx_pointer.setPolygon(transform.map(self._poly))
637634

638-
if color_mode == 'accept':
639-
color = QtGui.QColor(*PipeEnum.HIGHLIGHT_COLOR.value)
640-
elif color_mode == 'reject':
641-
color = QtGui.QColor(*PipeEnum.DISABLED_COLOR.value)
642-
else:
643-
color = QtGui.QColor(*PipeEnum.ACTIVE_COLOR.value)
635+
pen_color = QtGui.QColor(*PipeEnum.HIGHLIGHT_COLOR.value)
636+
if isinstance(color, (list, tuple)):
637+
pen_color = QtGui.QColor(*color)
644638

645639
pen = self._idx_pointer.pen()
646-
pen.setColor(color)
647-
self._idx_pointer.setBrush(color.darker(300))
640+
pen.setColor(pen_color)
641+
self._idx_pointer.setBrush(pen_color.darker(300))
648642
self._idx_pointer.setPen(pen)
649643

650644

NodeGraphQt/widgets/viewer.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
from NodeGraphQt.constants import (
1010
LayoutDirectionEnum,
1111
PortTypeEnum,
12+
PipeEnum,
1213
PipeLayoutEnum,
1314
ViewerEnum,
1415
Z_VAL_PIPE,
@@ -756,7 +757,7 @@ def sceneMouseMoveEvent(self, event):
756757
return
757758

758759
pos = event.scenePos()
759-
color_mode = None
760+
pointer_color = None
760761
for item in self.scene().items(pos):
761762
if not isinstance(item, PortItem):
762763
continue
@@ -768,26 +769,25 @@ def sceneMouseMoveEvent(self, event):
768769
pos.setY(pos.y() + y)
769770
if item == self._start_port:
770771
break
771-
color_mode = 'accept'
772-
772+
pointer_color = PipeEnum.HIGHLIGHT_COLOR.value
773773
accept = self._validate_accept_connection(self._start_port, item)
774774
if not accept:
775-
color_mode = 'reject'
775+
pointer_color = [150, 60, 255]
776776
break
777777
reject = self._validate_reject_connection(self._start_port, item)
778778
if reject:
779-
color_mode = 'reject'
779+
pointer_color = [150, 60, 255]
780780
break
781781

782782
if self.acyclic:
783783
if item.node == self._start_port.node:
784-
color_mode = 'reject'
784+
pointer_color = PipeEnum.DISABLED_COLOR.value
785785
elif item.port_type == self._start_port.port_type:
786-
color_mode = 'reject'
786+
pointer_color = PipeEnum.DISABLED_COLOR.value
787787
break
788788

789789
self._LIVE_PIPE.draw_path(
790-
self._start_port, cursor_pos=pos, color_mode=color_mode
790+
self._start_port, cursor_pos=pos, color=pointer_color
791791
)
792792

793793
def sceneMousePressEvent(self, event):

0 commit comments

Comments
 (0)