Skip to content

Commit 9471369

Browse files
committed
Fix layer addition
1 parent cfe0be7 commit 9471369

File tree

1 file changed

+17
-3
lines changed

1 file changed

+17
-3
lines changed

src/napari_deeplabcut/_widgets.py

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -428,9 +428,20 @@ def on_insert(self, event):
428428
10, partial(self._move_image_layer_to_bottom, event.index)
429429
)
430430
elif isinstance(layer, Points):
431-
# If the Points layer comes from a config file and some Points layers
432-
# were already added, then we only update existing store's metadata.
431+
# If the current Points layer comes from a config file, some have already
432+
# been added and the body part names are different from the existing ones,
433+
# then we update store's metadata and menus.
433434
if layer.metadata.get("project", "") and self._stores:
435+
keypoints_menu = self._menus[0].menus["label"]
436+
current_keypoint_set = set(
437+
keypoints_menu.itemText(i) for i in range(keypoints_menu.count())
438+
)
439+
new_keypoint_set = set(layer.metadata["header"].bodyparts)
440+
diff = new_keypoint_set.difference(current_keypoint_set)
441+
if not diff:
442+
return
443+
444+
self.viewer.status = f"New keypoint{'s' if len(diff) > 1 else ''} {', '.join(diff)} found."
434445
for _layer, store in self._stores.items():
435446
_layer.metadata["header"] = layer.metadata["header"]
436447
_layer.metadata["face_color_cycles"] = layer.metadata["face_color_cycles"]
@@ -442,6 +453,9 @@ def on_insert(self, event):
442453
menu._update_items()
443454

444455
self._update_color_scheme()
456+
457+
# Remove the unnecessary layer newly added
458+
QTimer.singleShot(10, self.viewer.layers.pop)
445459
return
446460

447461
store = keypoints.KeypointStore(self.viewer, layer)
@@ -487,7 +501,7 @@ def on_remove(self, event):
487501
while self._menus:
488502
menu = self._menus.pop()
489503
self._layout.removeWidget(menu)
490-
menu.setParent(None)
504+
menu.deleteLater()
491505
menu.destroy()
492506
self._trail_cb.setEnabled(False)
493507
self.last_saved_label.hide()

0 commit comments

Comments
 (0)