2
2
"""
3
3
A module containing Graphics representation of :class:`~nodeeditor.node_node.Node`
4
4
"""
5
+ import os
6
+
5
7
from PyQt5 .QtGui import QIcon , QImage
6
8
from qtpy .QtWidgets import QGraphicsItem , QWidget , QGraphicsTextItem , QGraphicsDropShadowEffect
7
9
from qtpy .QtGui import QFont , QColor , QPen , QBrush , QPainterPath
@@ -49,7 +51,6 @@ def __init__(self, node: 'Node', parent: QWidget = None, node_icon=''):
49
51
# # adding shadow to the grNode
50
52
# self.setGraphicsEffect(shadow)
51
53
52
-
53
54
@property
54
55
def name (self ):
55
56
"""title of this `Node`
@@ -84,6 +85,28 @@ def initUI(self):
84
85
self .setFlag (QGraphicsItem .ItemIsMovable )
85
86
self .setAcceptHoverEvents (True )
86
87
88
+ def update_node_theme (self , all : bool = False , text_color : str = "" ):
89
+ current_theme = self .node .scene .masterRef .global_switches .switches_Dict ["Theme" ][0 ]
90
+
91
+ if all :
92
+ icon = os .path .split (self .node .icon )[- 1 ]
93
+ self .node_icon = QImage (self .node .scene .masterRef .global_switches .get_icon (icon ))
94
+
95
+ # text_color_index = self.node.scene.masterRef.global_switches.themes_colors["Nodes"].index("Text")
96
+ # self.node.scene.masterRef.global_switches.themes_colors[current_theme][text_color_index]
97
+ if text_color != "" :
98
+ self .name_item .setDefaultTextColor (QColor (text_color ))
99
+
100
+ background_color_index = self .node .scene .masterRef .global_switches .themes_colors ["Nodes" ].index ("Background" )
101
+ self .node_background_color = QColor (self .node .scene .masterRef .global_switches .themes_colors [current_theme ][background_color_index ])
102
+ self ._brush_background = QBrush (self .node_background_color )
103
+
104
+ Outline_color_index = self .node .scene .masterRef .global_switches .themes_colors ["Nodes" ].index ("Outline" )
105
+ self ._color = QColor (
106
+ self .node .scene .masterRef .global_switches .themes_colors [current_theme ][Outline_color_index ])
107
+ self ._pen_default = QPen (self ._color )
108
+ self ._pen_default .setWidthF (1.5 )
109
+
87
110
def updateSizes (self ):
88
111
"""Set up internal attributes like `width`, `height`, etc."""
89
112
self .width = 140
@@ -111,7 +134,11 @@ def initAssets(self):
111
134
self ._title_color = Qt .white
112
135
self ._title_font = QFont ("Roboto" , 13 )
113
136
114
- self ._color = QColor ("#FF000000" )
137
+ current_theme = self .node .scene .masterRef .global_switches .switches_Dict ["Theme" ][0 ]
138
+
139
+ Outline_color_index = self .node .scene .masterRef .global_switches .themes_colors ["Nodes" ].index ("Outline" )
140
+ self ._color = QColor (
141
+ self .node .scene .masterRef .global_switches .themes_colors [current_theme ][Outline_color_index ])
115
142
self ._color_selected = QColor ("#FFFFA637" )
116
143
self ._color_hovered = QColor ("#FFFFFF" )
117
144
@@ -122,9 +149,13 @@ def initAssets(self):
122
149
self ._pen_hovered = QPen (self ._color_hovered )
123
150
self ._pen_hovered .setWidthF (1 )
124
151
125
- self .node_color = QColor ("#FF313131" )
126
- self ._brush_title = QBrush (self .node_color )
127
- self ._brush_background = QBrush (QColor ("#FF212121" ))
152
+ self .title_color = QColor ("#FF313131" )
153
+ self ._brush_title = QBrush (self .title_color )
154
+
155
+ background_color_index = self .node .scene .masterRef .global_switches .themes_colors ["Nodes" ].index ("Background" )
156
+ self .node_background_color = QColor (
157
+ self .node .scene .masterRef .global_switches .themes_colors [current_theme ][background_color_index ])
158
+ self ._brush_background = QBrush (self .node_background_color )
128
159
129
160
def onSelected (self ):
130
161
"""Our event handling when the node was selected"""
@@ -237,15 +268,19 @@ def init_name(self):
237
268
"""Set up the title Graphics representation: font, color, position, etc."""
238
269
239
270
self .name_item = QGraphicsTextItem (self )
240
- self .name_item .setDefaultTextColor (self ._title_color )
271
+
272
+ # current_theme = self.node.scene.masterRef.global_switches.switches_Dict["Theme"][0]
273
+ # text_color_index = self.node.scene.masterRef.global_switches.themes_colors["Nodes"].index("Text")
274
+ self .name_item .setDefaultTextColor (Qt .white )
275
+
241
276
self .name_item .setFont (self ._title_font )
242
277
self .name_item .setPos (self .title_horizontal_padding , - 3 )
243
278
# self.name_item.setTextWidth(self.width - 2 * self.title_horizontal_padding)
244
279
245
280
def highlight_code (self , raw_code ):
246
281
247
282
if self .isSelected ():
248
- code = f""" <pre><p style="font-family: Calibri "><span style="background-color:{ self .node_color } ;" >{ raw_code } </span></p></pre> """
283
+ code = f""" <pre><p style="font-family: Calibri "><span style="background-color:{ self .title_color } ;" >{ raw_code } </span></p></pre> """
249
284
else :
250
285
code = f""" <pre><p style="font-family: Calibri "><span>{ raw_code } </span></p></pre> """
251
286
return code
0 commit comments