View Issue Details

IDProjectCategoryView StatusLast Update
0004033Slicer4Core: MRMLpublic2018-03-02 11:07
Reporterjonieva Assigned Tonicole  
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
Product Version 
Target VersionFixed in VersionSlicer 4.5.0-1 
Summary0004033: Duplicated event when a new vtkMRMLScalarVolumeNode is added to the scene
Description

When a new vtkMRMLScalarVolumeNode is added to the scene, the event "slicer.vtkMRMLScene.NodeAddedEvent" is triggered two times

Additional Information

Code to reproduce it quickly in a Python module:
class MyWidget:
def init(self, parent = None):
if not parent:
self.parent = slicer.qMRMLWidget()
self.parent.setLayout(qt.QVBoxLayout())
self.parent.setMRMLScene(slicer.mrmlScene)
else:
self.parent = parent
self.layout = self.parent.layout()
if not parent:
self.setup()
self.parent.show()

from functools import partial
def __onNodeAddedObserver__(self, caller, eventId, callData):
  """Node added to the Slicer scene"""
  if callData.GetClassName() == 'vtkMRMLScalarVolumeNode':
    print ("Loaded " + callData.GetID())

self.__onNodeAddedObserver__ = partial(__onNodeAddedObserver__, self)
self.__onNodeAddedObserver__.CallDataType = vtk.VTK_OBJECT
print ("adding observer")
slicer.mrmlScene.AddObserver(slicer.vtkMRMLScene.NodeAddedEvent, self.__onNodeAddedObserver__)
TagsNo tags attached.

Relationships

related to 0003956 closednicole Repeated saves of MRBs cause corruption 

Activities

nicole

nicole

2015-08-12 06:37

administrator   ~0013238

Code snippet from JC to reproduce:

import vtk

@vtk.calldata_type(vtk.VTK_OBJECT)
def onNodeAdded(caller, eventId, callData):
"""Node added to the Slicer scene"""
if callData.GetClassName() == 'vtkMRMLScalarVolumeNode':
print("Loaded %s, eventId: %s" % (callData.GetID(), eventId))

slicer.mrmlScene.AddObserver(slicer.vtkMRMLScene.NodeAddedEvent, onNodeAdded)

nicole

nicole

2015-08-17 13:03

administrator   ~0013244

I'd forgotten to take out the node added signal that I'd put in during one iteration of using a mini scene to load volumes into the main scene. Pull request is here:

https://github.com/Slicer/Slicer/pull/324

nicole

nicole

2015-08-26 13:11

administrator   ~0013247

Fix integrated in svn 24509

http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=24509

Related Changesets

Import 2017-06-07 23:51:09: master fcef008b

2015-08-26 16:36:46

naucoin

Details Diff
BUG: remove extra node added event

When switching to using a mini scene to try various ways of
loading volumes, the final node added event wasn't removed
when I switched to using AddNode to move the final set of
nodes into the main scene. This change removes the extra
node added event triggered by adding a volume.

Issue 0004033

git-svn-id: http://svn.slicer.org/Slicer4/trunk@24509 3bd1e089-480b-0410-8dfb-8563597acbee
mod - Modules/Loadable/Volumes/Logic/vtkSlicerVolumesLogic.cxx Diff File

Issue History

Date Modified Username Field Change
2015-08-12 06:26 jonieva New Issue
2015-08-12 06:26 jonieva Status new => assigned
2015-08-12 06:26 jonieva Assigned To => alexy
2015-08-12 06:35 nicole Assigned To alexy => nicole
2015-08-12 06:37 nicole Note Added: 0013238
2015-08-17 13:03 nicole Note Added: 0013244
2015-08-18 12:46 nicole Relationship added related to 0003956
2015-08-26 13:11 nicole Note Added: 0013247
2015-08-26 13:11 nicole Status assigned => resolved
2015-08-26 13:11 nicole Fixed in Version => Slicer 4.4.1
2015-08-26 13:11 nicole Resolution open => fixed
2015-09-09 08:29 jcfr Fixed in Version Slicer 4.4.1 => Slicer 4.5.0-1
2017-06-10 08:51 Changeset attached => Slicer master fcef008b
2018-03-02 11:07 jcfr Status resolved => closed