Skip to content

Commit eccb382

Browse files
authored
Merge pull request #348 from funkelab/bulk-delete
Use UserDeleteNodes for efficiency
2 parents 018d177 + 4f1aa60 commit eccb382

File tree

3 files changed

+8
-7
lines changed

3 files changed

+8
-7
lines changed

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ classifiers = [
3131

3232
dependencies =[
3333
"napari>=0.6.2,<1",
34-
"funtracks==1.8.0-a3",
34+
"funtracks>=1.8.0,<3",
3535
"appdirs>=1,<2",
3636
"numpy>=2,<3",
3737
"magicgui>=0.10.1",

src/motile_tracker/data_views/views/layers/track_points.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import numpy as np
99
from funtracks.data_model import Tracks
1010
from funtracks.exceptions import InvalidActionError
11-
from funtracks.user_actions import UserAddNode, UserDeleteNode, UserUpdateNodeAttrs
11+
from funtracks.user_actions import UserAddNode, UserDeleteNodes, UserUpdateNodeAttrs
1212
from napari.layers.points._points_mouse_bindings import select
1313
from napari.utils.notifications import show_info
1414
from psygnal import Signal
@@ -259,8 +259,10 @@ def _update_data(self, event: Event):
259259
self._refresh()
260260

261261
elif event.action == "removed":
262-
for node in self.tracks_viewer.selected_nodes.as_list:
263-
UserDeleteNode(self.tracks_viewer.tracks, node=node)
262+
UserDeleteNodes(
263+
self.tracks_viewer.tracks,
264+
nodes=self.tracks_viewer.selected_nodes.as_list,
265+
)
264266

265267
elif event.action == "changed":
266268
# we only want to allow this update if there is no seg layer

src/motile_tracker/data_views/views_coordinator/tracks_viewer.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
from funtracks.user_actions import (
99
UserAddEdge,
1010
UserDeleteEdge,
11-
UserDeleteNode,
11+
UserDeleteNodes,
1212
UserSwapPredecessors,
1313
)
1414
from psygnal import Signal
@@ -289,8 +289,7 @@ def delete_node(self, event=None):
289289

290290
if self.tracks is None:
291291
return
292-
for node in self.selected_nodes.as_list:
293-
UserDeleteNode(self.tracks, node=node)
292+
UserDeleteNodes(self.tracks, nodes=self.selected_nodes.as_list)
294293

295294
def delete_edge(self, event=None):
296295
"""Calls the UserAction to delete an edge between the two currently

0 commit comments

Comments
 (0)