diff --git a/fsl/fsleyes/controls/melodicclassificationgrid.py b/fsl/fsleyes/controls/melodicclassificationgrid.py index 892dcbda910faf9059933541cfd3fc057522d8b3..f507590d8520bc44a0a7f513661448b8508e01fd 100644 --- a/fsl/fsleyes/controls/melodicclassificationgrid.py +++ b/fsl/fsleyes/controls/melodicclassificationgrid.py @@ -245,7 +245,9 @@ class ComponentGrid(fslpanel.FSLEyesPanel): log.debug('Label added to component {} ("{}")'.format(comp, label)) # Add the new label to the melodic component - melclass.disableListener('labels', self._name) + melclass.disableListener( 'labels', self._name) + melclass.disableNotification('labels') + melclass.addLabel(comp, label) # If the tag panel previously just contained @@ -256,7 +258,9 @@ class ComponentGrid(fslpanel.FSLEyesPanel): melclass.removeLabel(comp, 'Unknown') tags.RemoveTag('Unknown') - melclass.enableListener('labels', self._name) + melclass.enableNotification('labels') + melclass.notify( 'labels') + melclass.enableListener( 'labels', self._name) # If the newly added tag is not in # the lookup table, add it in @@ -291,14 +295,20 @@ class ComponentGrid(fslpanel.FSLEyesPanel): # Remove the label from # the melodic component - melclass.disableListener('labels', self._name) + melclass.disableListener( 'labels', self._name) + melclass.disableNotification('labels') + melclass.removeLabel(comp, label) - melclass.enableListener('labels', self._name) - + # If the tag panel now has no tags, # add the 'Unknown' tag back in. - if tags.TagCount() == 0: - tags.AddTag('Unknown') + if len(melclass.getLabels(comp)) == 0: + melclass.addLabel(comp, 'Unknown') + tags.AddTag('Unknown') + + melclass.enableNotification('labels') + melclass.notify( 'labels') + melclass.enableListener( 'labels', self._name) self.__grid.FitInside() @@ -546,7 +556,8 @@ class LabelGrid(fslpanel.FSLEyesPanel): log.debug('Component added to label {} ({})'.format(label, comp)) - melclass.disableListener('labels', self._name) + melclass.disableListener( 'labels', self._name) + melclass.disableNotification('labels') # If this component now has two labels, and # the other label is 'Unknown', remove the @@ -558,7 +569,10 @@ class LabelGrid(fslpanel.FSLEyesPanel): melclass.addComponent(label, comp) - melclass.enableListener('labels', self._name) + melclass.enableNotification('labels') + melclass.notify( 'labels') + melclass.enableListener( 'labels', self._name) + self.__refreshTags() @@ -576,7 +590,8 @@ class LabelGrid(fslpanel.FSLEyesPanel): log.debug('Component removed from label {} ({})'.format(label, comp)) - melclass.disableListener('labels', self._name) + melclass.disableListener( 'labels', self._name) + melclass.disableNotification('labels') melclass.removeComponent(label, comp) @@ -584,8 +599,10 @@ class LabelGrid(fslpanel.FSLEyesPanel): # give it an 'Unknown' label if len(melclass.getLabels(comp)) == 0: melclass.addLabel(comp, 'Unknown') - - melclass.enableListener('labels', self._name) + + melclass.enableNotification('labels') + melclass.notify( 'labels') + melclass.enableListener( 'labels', self._name) self.__refreshTags()