1414 from finn .track_data_views .views_coordinator .tracks_viewer import TracksViewer
1515 from finn .utils .events import Event
1616
17- from finn .track_data_views .graph_attributes import NodeAttr
18-
1917
2018def new_label (layer : TrackLabels ):
2119 """A function to override the default finn labels new_label function.
@@ -47,7 +45,7 @@ def _new_label(layer: TrackLabels, new_track_id=True):
4745 "to be able to set the current select label to the next one available"
4846 )
4947 else :
50- if new_track_id :
48+ if new_track_id or layer . selected_track is None :
5149 new_selected_track = layer .tracks_viewer .tracks .get_next_track_id ()
5250 layer .selected_track = new_selected_track
5351 layer .selected_label = new_selected_label
@@ -345,7 +343,9 @@ def update_selected_label(self):
345343
346344 self .events .selected_label .disconnect (self ._ensure_valid_label )
347345 if len (self .tracks_viewer .selected_nodes ) > 0 :
348- self .selected_label = int (self .tracks_viewer .selected_nodes [0 ])
346+ node = int (self .tracks_viewer .selected_nodes [0 ])
347+ self .selected_label = node
348+ self .selected_track = int (self .tracks_viewer .tracks .get_track_id (node ))
349349 self .events .selected_label .connect (self ._ensure_valid_label )
350350
351351 def _ensure_valid_label (self , event : Event | None = None ):
@@ -384,12 +384,10 @@ def _ensure_valid_label(self, event: Event | None = None):
384384 # if a node with the given label is already in the graph
385385 if self .tracks_viewer .tracks .graph .has_node (self .selected_label ):
386386 # Update the track id
387- self .selected_track = self .tracks_viewer .tracks ._get_node_attr (
388- self .selected_label , NodeAttr .TRACK_ID .value
389- )
390- existing_time = self .tracks_viewer .tracks ._get_node_attr (
391- self .selected_label , NodeAttr .TIME .value
387+ self .selected_track = self .tracks_viewer .tracks .get_track_id (
388+ self .selected_label
392389 )
390+ existing_time = self .tracks_viewer .tracks .get_time (self .selected_label )
393391 if existing_time == current_timepoint :
394392 # we are changing the existing node. This is fine
395393 pass
@@ -402,9 +400,7 @@ def _ensure_valid_label(self, event: Event | None = None):
402400 self .selected_track
403401 ]:
404402 if (
405- self .tracks_viewer .tracks ._get_node_attr (
406- node , NodeAttr .TIME .value
407- )
403+ self .tracks_viewer .tracks .get_time (node )
408404 == current_timepoint
409405 ):
410406 self .selected_label = int (node )
@@ -430,12 +426,7 @@ def _ensure_valid_label(self, event: Event | None = None):
430426 for node in self .tracks_viewer .tracks .track_id_to_node [
431427 self .selected_track
432428 ]:
433- if (
434- self .tracks_viewer .tracks ._get_node_attr (
435- node , NodeAttr .TIME .value
436- )
437- == current_timepoint
438- ):
429+ if self .tracks_viewer .tracks .get_time (node ) == current_timepoint :
439430 self .selected_label = int (node )
440431 edit = True
441432 break
0 commit comments