@@ -55,9 +55,11 @@ def __init__(self, parent=None):
5555 self .horizontalHeader ().hide ()
5656
5757 QtCompat .QHeaderView .setSectionResizeMode (
58- self .verticalHeader (), QtWidgets .QHeaderView .ResizeToContents )
58+ self .verticalHeader (), QtWidgets .QHeaderView .ResizeToContents
59+ )
5960 QtCompat .QHeaderView .setSectionResizeMode (
60- self .horizontalHeader (), 0 , QtWidgets .QHeaderView .Stretch )
61+ self .horizontalHeader (), 0 , QtWidgets .QHeaderView .Stretch
62+ )
6163 self .setVerticalScrollMode (QtWidgets .QAbstractItemView .ScrollPerPixel )
6264
6365 def wheelEvent (self , event ):
@@ -148,12 +150,14 @@ def __init__(self, parent=None, node=None):
148150 self ._ports = {}
149151
150152 in_group , self .in_tree = self ._build_tree_group ('Input Ports' )
153+ in_group .setToolTip ('Display input port connections' )
151154 for _ , port in node .inputs ().items ():
152155 self ._build_row (self .in_tree , port )
153156 for col in range (self .in_tree .columnCount ()):
154157 self .in_tree .resizeColumnToContents (col )
155158
156159 out_group , self .out_tree = self ._build_tree_group ('Output Ports' )
160+ out_group .setToolTip ('Display output port connections' )
157161 for _ , port in node .outputs ().items ():
158162 self ._build_row (self .out_tree , port )
159163 for col in range (self .out_tree .columnCount ()):
@@ -227,7 +231,7 @@ def _build_row(self, tree, port):
227231 item .setToolTip (3 , 'Center on connected port node.' )
228232
229233 # TODO: will need to update this checkbox lock logic to work with
230- # the unde /redo functionality.
234+ # the undo /redo functionality.
231235 lock_chb = QtWidgets .QCheckBox ()
232236 lock_chb .setChecked (port .locked ())
233237 lock_chb .clicked .connect (lambda x : port .set_locked (x ))
@@ -287,7 +291,9 @@ def __init__(self, parent=None, node=None):
287291
288292 close_btn = QtWidgets .QPushButton ()
289293 close_btn .setIcon (QtGui .QIcon (
290- self .style ().standardPixmap (QtWidgets .QStyle .SP_DialogCancelButton )
294+ self .style ().standardPixmap (
295+ QtWidgets .QStyle .SP_DialogCancelButton
296+ )
291297 ))
292298 close_btn .setMaximumWidth (40 )
293299 close_btn .setToolTip ('close property' )
@@ -373,8 +379,11 @@ def _read_node(self, node):
373379 # add tabs.
374380 reserved_tabs = ['Node' , 'Ports' ]
375381 for tab in sorted (tab_mapping .keys ()):
376- if tab not in reserved_tabs :
377- self .add_tab (tab )
382+ if tab in reserved_tabs :
383+ print ('tab name "{}" is reserved by the "NodePropWidget" '
384+ 'please use a different tab name.' )
385+ continue
386+ self .add_tab (tab )
378387
379388 # property widget factory.
380389 widget_factory = NodePropertyWidgetFactory ()
@@ -414,7 +423,7 @@ def _read_node(self, node):
414423
415424 widget .value_changed .connect (self ._on_property_changed )
416425
417- self .type_wgt .setText (model .get_property ('type_' ))
426+ self .type_wgt .setText (model .get_property ('type_' ) or '' )
418427
419428 # add "ports" tab connections.
420429 if node .inputs () or node .outputs ():
@@ -531,10 +540,10 @@ def __init__(self, parent=None, node_graph=None):
531540 self ._block_signal = False
532541
533542 self ._lock = False
534- self .btn_lock = QtWidgets .QPushButton ('Lock' )
535- self .btn_lock .setToolTip (
543+ self ._btn_lock = QtWidgets .QPushButton ('Lock' )
544+ self ._btn_lock .setToolTip (
536545 'Lock the properties bin prevent nodes from being loaded.' )
537- self .btn_lock .clicked .connect (self .lock_bin )
546+ self ._btn_lock .clicked .connect (self .lock_bin )
538547
539548 btn_clr = QtWidgets .QPushButton ('Clear' )
540549 btn_clr .setToolTip ('Clear the properties bin.' )
@@ -544,7 +553,7 @@ def __init__(self, parent=None, node_graph=None):
544553 top_layout .setSpacing (2 )
545554 top_layout .addWidget (self ._limit )
546555 top_layout .addStretch (1 )
547- top_layout .addWidget (self .btn_lock )
556+ top_layout .addWidget (self ._btn_lock )
548557 top_layout .addWidget (btn_clr )
549558
550559 layout = QtWidgets .QVBoxLayout (self )
@@ -710,9 +719,9 @@ def lock_bin(self):
710719 """
711720 self ._lock = not self ._lock
712721 if self ._lock :
713- self .btn_lock .setText ('UnLock' )
722+ self ._btn_lock .setText ('UnLock' )
714723 else :
715- self .btn_lock .setText ('Lock' )
724+ self ._btn_lock .setText ('Lock' )
716725
717726 def clear_bin (self ):
718727 """
@@ -735,86 +744,3 @@ def prop_widget(self, node):
735744 if itm_find :
736745 item = itm_find [0 ]
737746 return self ._prop_list .cellWidget (item .row (), 0 )
738-
739-
740- # if __name__ == '__main__':
741- # from NodeGraphQt import BaseNode, NodeGraph
742- # from NodeGraphQt.constants import NodePropWidgetEnum
743- #
744- #
745- # class _TestNode(BaseNode):
746- #
747- # __identifier__ = 'property.test'
748- # NODE_NAME = 'test node'
749- #
750- # def __init__(self):
751- # super(_TestNode, self).__init__()
752- # self.create_property(
753- # 'label_test',
754- # value='foo bar',
755- # widget_type=NodePropWidgetEnum.QLABEL.value
756- # )
757- # self.create_property(
758- # 'text_edit',
759- # value='text edit test',
760- # widget_type=NodePropWidgetEnum.QLABEL.value
761- # )
762- # self.create_property(
763- # "file",
764- # value="",
765- # widget_type=NodePropWidgetEnum.FILE_OPEN.value
766- # )
767- # self.create_property(
768- # 'color_picker',
769- # value=(0, 0, 255),
770- # widget_type=NodePropWidgetEnum.COLOR_PICKER.value
771- # )
772- # self.create_property(
773- # 'integer',
774- # value=10,
775- # widget_type=NodePropWidgetEnum.QSPIN_BOX.value
776- # )
777- # self.create_property(
778- # 'list',
779- # value='itm2',
780- # items=['itm1', 'itm2', 'itm3'],
781- # widget_type=NodePropWidgetEnum.QCOMBO_BOX.value
782- # )
783- # self.create_property(
784- # 'range',
785- # value=50,
786- # range=(45, 55),
787- # widget_type=NodePropWidgetEnum.SLIDER.value
788- # )
789- # self.create_property(
790- # 'float_range',
791- # value=150.5,
792- # range=(50.5, 200),
793- # widget_type=NodePropWidgetEnum.DOUBLE_SLIDER.value
794- # )
795- # self.create_property(
796- # 'color4_picker',
797- # value=(255, 0, 0, 122),
798- # widget_type=NodePropWidgetEnum.COLOR4_PICKER.value
799- # )
800- #
801- # def _prop_changed(node_id, prop_name, prop_value):
802- # print('-'*100)
803- # print(node_id, prop_name, prop_value)
804- #
805- #
806- # app = QtWidgets.QApplication([])
807- #
808- # graph = NodeGraph()
809- # graph.register_node(_TestNode)
810- #
811- # prop_bin = PropertiesBinWidget(node_graph=graph)
812- # prop_bin.resize(800, 600)
813- # prop_bin.property_changed.connect(_prop_changed)
814- #
815- # node = graph.create_node('property.test._TestNode')
816- #
817- # prop_bin.add_node(node)
818- # prop_bin.show()
819- #
820- # app.exec_()
0 commit comments