Skip to content

Commit e3d4523

Browse files
committed
sub graph tab bar improvements.
1 parent 742f5db commit e3d4523

File tree

2 files changed

+29
-4
lines changed

2 files changed

+29
-4
lines changed

NodeGraphQt/nodes/group_node.py

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ def get_sub_graph(self):
4444
or returns None.
4545
4646
Returns:
47-
SubGraph or None: sub graph controller.
47+
SubGraph: sub graph controller.
4848
"""
4949
return self.graph.sub_graphs.get(self.id)
5050

@@ -91,6 +91,22 @@ def collapse(self):
9191
"""
9292
self.graph.collapse_group_node(self)
9393

94+
def set_name(self, name=''):
95+
super(GroupNode, self).set_name(name)
96+
# update the tab bar and navigation labels.
97+
sub_graph = self.get_sub_graph()
98+
if sub_graph:
99+
nav_widget = sub_graph.navigation_widget
100+
nav_widget.update_label_item(self.name(), self.id)
101+
102+
if sub_graph.parent_graph.is_root:
103+
root_graph = sub_graph.parent_graph
104+
tab_bar = root_graph.widget.tabBar()
105+
for idx in range(tab_bar.count()):
106+
if tab_bar.tabToolTip(idx) == self.id:
107+
tab_bar.setTabText(idx, self.name())
108+
break
109+
94110
def add_input(self, name='input', multi_input=False, display_name=True,
95111
color=None, locked=False, painter_func=None):
96112
port = super(GroupNode, self).add_input(

NodeGraphQt/widgets/viewer_nav.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,8 @@ def paint(self, painter, option, index):
8787
text_rect = QtCore.QRectF(
8888
rect.center().x() - (font_width / 2) + txt_offset,
8989
rect.center().y() - (font_height / 2),
90-
font_width, font_height)
90+
font_width, font_height
91+
)
9192
painter.drawText(text_rect, item.text())
9293
painter.restore()
9394

@@ -144,15 +145,23 @@ def add_label_item(self, label, node_id):
144145
item.setToolTip(node_id)
145146
metrics = QtGui.QFontMetrics(item.font())
146147
if hasattr(metrics, 'horizontalAdvance'):
147-
width = metrics.horizontalAdvance(item.text()) + 30
148+
width = metrics.horizontalAdvance(item.text())
148149
else:
149-
width = metrics.width(item.text()) + 30
150+
width = metrics.width(item.text())
151+
width *= 1.5
150152
item.setSizeHint(QtCore.QSize(width, 20))
151153
self.model().appendRow(item)
152154
self.selectionModel().setCurrentIndex(
153155
self.model().indexFromItem(item),
154156
QtCore.QItemSelectionModel.ClearAndSelect)
155157

158+
def update_label_item(self, label, node_id):
159+
rows = reversed(range(self.model().rowCount()))
160+
for r in rows:
161+
item = self.model().item(r, 0)
162+
if item.toolTip() == node_id:
163+
item.setText(label)
164+
156165
def remove_label_item(self, node_id):
157166
rows = reversed(range(1, self.model().rowCount()))
158167
node_ids = [self.model().item(r, 0).toolTip() for r in rows]

0 commit comments

Comments
 (0)