Skip to content

Commit 8e9157f

Browse files
committed
Delete extra layer earlier on
1 parent 9b6b4bc commit 8e9157f

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

src/napari_deeplabcut/_widgets.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -894,11 +894,13 @@ def on_insert(self, event):
894894
# been added and the body part names are different from the existing ones,
895895
# then we update store's metadata and menus.
896896
if layer.metadata.get("project", "") and self._stores:
897+
new_metadata = layer.metadata.copy()
898+
897899
keypoints_menu = self._menus[0].menus["label"]
898900
current_keypoint_set = set(
899901
keypoints_menu.itemText(i) for i in range(keypoints_menu.count())
900902
)
901-
new_keypoint_set = set(layer.metadata["header"].bodyparts)
903+
new_keypoint_set = set(new_metadata["header"].bodyparts)
902904
diff = new_keypoint_set.difference(current_keypoint_set)
903905
if diff:
904906
answer = QMessageBox.question(
@@ -909,28 +911,29 @@ def on_insert(self, event):
909911

910912
self.viewer.status = f"New keypoint{'s' if len(diff) > 1 else ''} {', '.join(diff)} found."
911913
for _layer, store in self._stores.items():
912-
_layer.metadata["header"] = layer.metadata["header"]
914+
_layer.metadata["header"] = new_metadata["header"]
913915
store.layer = _layer
914916

915917
for menu in self._menus:
916918
menu._map_individuals_to_bodyparts()
917919
menu._update_items()
918920

921+
# Remove the unnecessary layer newly added
922+
QTimer.singleShot(10, self.viewer.layers.pop)
923+
919924
# Always update the colormap to reflect the one in the config.yaml file
920925
for _layer, store in self._stores.items():
921-
_layer.metadata["face_color_cycles"] = layer.metadata[
926+
_layer.metadata["face_color_cycles"] = new_metadata[
922927
"face_color_cycles"
923928
]
924929
_layer.face_color = "label"
925-
_layer.face_color_cycle = layer.metadata["face_color_cycles"][
930+
_layer.face_color_cycle = new_metadata["face_color_cycles"][
926931
"label"
927932
]
928933
_layer.events.face_color()
929934
store.layer = _layer
930935
self._update_color_scheme()
931936

932-
# Remove the unnecessary layer newly added
933-
QTimer.singleShot(10, self.viewer.layers.pop)
934937
return
935938

936939
store = keypoints.KeypointStore(self.viewer, layer)

0 commit comments

Comments
 (0)