Commit 490289b9721102fddd36712b265f1eb4370af2ee

Authored by tfmoraes
1 parent 56f7a128

Added a method in viewer_volume to unload a given volume

invesalius/data/viewer_volume.py
@@ -122,6 +122,8 @@ class Viewer(wx.Panel): @@ -122,6 +122,8 @@ class Viewer(wx.Panel):
122 # Raycating - related 122 # Raycating - related
123 Publisher.subscribe(self.LoadVolume, 123 Publisher.subscribe(self.LoadVolume,
124 'Load volume into viewer') 124 'Load volume into viewer')
  125 + Publisher.subscribe(self.UnloadVolume,
  126 + 'Unload volume')
125 Publisher.subscribe(self.OnSetWindowLevelText, 127 Publisher.subscribe(self.OnSetWindowLevelText,
126 'Set volume window and level text') 128 'Set volume window and level text')
127 Publisher.subscribe(self.OnHideRaycasting, 129 Publisher.subscribe(self.OnHideRaycasting,
@@ -681,6 +683,10 @@ class Viewer(wx.Panel): @@ -681,6 +683,10 @@ class Viewer(wx.Panel):
681 683
682 self.UpdateRender() 684 self.UpdateRender()
683 685
  686 + def UnloadVolume(self, pubsub_evt):
  687 + volume = pubsub_evt.data
  688 + self.ren.RemoveVolume(volume)
  689 +
684 def OnSetViewAngle(self, evt_pubsub): 690 def OnSetViewAngle(self, evt_pubsub):
685 view = evt_pubsub.data 691 view = evt_pubsub.data
686 self.SetViewAngle(view) 692 self.SetViewAngle(view)
invesalius/data/volume.py
@@ -87,6 +87,7 @@ class Volume(): @@ -87,6 +87,7 @@ class Volume():
87 self.volume = None 87 self.volume = None
88 self.image = None 88 self.image = None
89 self.loaded_image = 0 89 self.loaded_image = 0
  90 + self.to_reload = False
90 self.__bind_events() 91 self.__bind_events()
91 92
92 def __bind_events(self): 93 def __bind_events(self):
@@ -162,6 +163,10 @@ class Volume(): @@ -162,6 +163,10 @@ class Volume():
162 self.__load_preset_config() 163 self.__load_preset_config()
163 164
164 if self.config: 165 if self.config:
  166 + if self.to_reload:
  167 + self.exist = False
  168 + Publisher.sendMessage('Unload volume', self.volume)
  169 +
165 if self.exist: 170 if self.exist:
166 self.__load_preset() 171 self.__load_preset()
167 self.volume.SetVisibility(1) 172 self.volume.SetVisibility(1)
@@ -180,7 +185,7 @@ class Volume(): @@ -180,7 +185,7 @@ class Volume():
180 self.loaded_image = False 185 self.loaded_image = False
181 del self.image 186 del self.image
182 self.image = None 187 self.image = None
183 - self.exist = None 188 + self.to_reload = True
184 189
185 def __load_preset_config(self): 190 def __load_preset_config(self):
186 self.config = prj.Project().raycasting_preset 191 self.config = prj.Project().raycasting_preset