@@ -60,6 +60,9 @@ def acquisition_val(self, new_acquisition_val: float):
60
60
self ._acquisition_val = new_acquisition_val
61
61
self .setText (0 , str (self ._acquisition_val ))
62
62
63
+ def __gt__ (self , other_label ):
64
+ return self ._acquisition_val > other_label ._acquisition_val
65
+
63
66
64
67
class LabelGroup (QTreeWidgetItem ):
65
68
_layer_channel = None
@@ -208,20 +211,21 @@ def remove_labels(self):
208
211
209
212
self ._active_label_group .removeChild (self ._active_label )
210
213
if not self ._active_label_group .childCount ():
211
- self .remove_labels_group (self . _active_label_group )
214
+ self .remove_labels_group ()
212
215
213
- self ._active_label = None
216
+ self ._requires_commit = False
217
+ self .commit ()
214
218
215
219
def remove_labels_group (self ):
216
220
if self ._active_label_group is None :
217
221
return
218
222
219
223
self .labels_group_root .removeChild (self ._active_label_group )
220
- self ._active_label_group = None
224
+ self ._requires_commit = False
225
+ self .commit ()
221
226
222
227
def navigate (self , delta_patch_index = 0 , delta_image_index = 0 ):
223
- if self ._requires_commit :
224
- self .commit ()
228
+ self .commit ()
225
229
226
230
self ._active_label_group = self ._active_label .parent ()
227
231
patch_index = self ._active_label_group .indexOfChild (
@@ -403,40 +407,40 @@ def edit_labels(self):
403
407
return True
404
408
405
409
def commit (self ):
406
- if not self ._requires_commit :
407
- return
408
-
409
- edit_data = None
410
- if self ._active_edit_layer :
411
- edit_data = self ._active_edit_layer .data
412
-
413
410
segmentation_channel_layer = None
414
411
segmentation_channel_data = None
415
- if self ._active_layers_group :
416
- segmentation_channel = self ._active_layers_group .child (0 )
417
- segmentation_channel_layer = segmentation_channel .layer
418
- if isinstance (segmentation_channel .layer .data , MultiScaleData ):
419
- segmentation_channel_data = segmentation_channel_layer .data [0 ]
420
- else :
421
- segmentation_channel_data = segmentation_channel_layer .data
422
-
423
- if isinstance (self ._transaction , ts .Transaction ):
424
- self ._transaction .commit_async ()
425
- elif (self ._active_label .position is not None
426
- and segmentation_channel_data is not None ):
427
- segmentation_channel_data [self ._active_label .position ] = edit_data
412
+ edit_data = None
428
413
429
- if segmentation_channel_layer :
430
- segmentation_channel_layer .refresh ()
431
- segmentation_channel_layer .visible = True
414
+ if self ._requires_commit :
415
+ if self ._active_edit_layer :
416
+ edit_data = self ._active_edit_layer .data
417
+
418
+ if self ._active_layers_group :
419
+ segmentation_channel = self ._active_layers_group .child (0 )
420
+ segmentation_channel_layer = segmentation_channel .layer
421
+ if isinstance (segmentation_channel .layer .data , MultiScaleData ):
422
+ segmentation_channel_data = \
423
+ segmentation_channel_layer .data [0 ]
424
+ else :
425
+ segmentation_channel_data = segmentation_channel_layer .data
426
+
427
+ if isinstance (self ._transaction , ts .Transaction ):
428
+ self ._transaction .commit_async ()
429
+ elif (self ._active_label .position is not None
430
+ and segmentation_channel_data is not None ):
431
+ segmentation_channel_data [self ._active_label .position ] = \
432
+ edit_data
432
433
433
434
viewer = napari .current_viewer ()
434
435
if (self ._active_edit_layer
435
436
and self ._active_edit_layer in viewer .layers ):
436
437
viewer .layers .remove (self ._active_edit_layer )
437
438
439
+ if segmentation_channel_layer :
440
+ segmentation_channel_layer .refresh ()
441
+ segmentation_channel_layer .visible = True
442
+ viewer .layers .selection .add (segmentation_channel_layer )
443
+
438
444
self ._transaction = None
439
445
self ._active_edit_layer = None
440
-
441
446
self ._requires_commit = False
442
- viewer .layers .selection .add (segmentation_channel_layer )
0 commit comments