Commit 6b5eb748d9d12f61ffe3f7007b3bac3d6675333a

Authored by Thiago Franco de Moraes
1 parent e02c9d5b
Exists in master

Changing mask being previewd on volume when changing mask

invesalius/control.py
@@ -1115,7 +1115,7 @@ class Controller(): @@ -1115,7 +1115,7 @@ class Controller():
1115 pass 1115 pass
1116 1116
1117 if err_msg: 1117 if err_msg:
1118 - dialog.MessageBox(None, "It was not possible to launch new instance of InVesalius3 dsfa dfdsfa sdfas fdsaf asdfasf dsaa", err_msg) 1118 + dialog.MessageBox(None, "It was not possible to launch new instance of InVesalius3", err_msg)
1119 1119
1120 def show_mask_preview(self, index, flag=True): 1120 def show_mask_preview(self, index, flag=True):
1121 proj = prj.Project() 1121 proj = prj.Project()
@@ -1126,6 +1126,7 @@ class Controller(): @@ -1126,6 +1126,7 @@ class Controller():
1126 Publisher.sendMessage("Reload actual slice") 1126 Publisher.sendMessage("Reload actual slice")
1127 1127
1128 def enable_mask_preview(self): 1128 def enable_mask_preview(self):
  1129 + ses.Session().mask_3d_preview = True
1129 mask = self.Slice.current_mask 1130 mask = self.Slice.current_mask
1130 if mask is not None: 1131 if mask is not None:
1131 self.Slice.do_threshold_to_all_slices(mask) 1132 self.Slice.do_threshold_to_all_slices(mask)
@@ -1134,6 +1135,7 @@ class Controller(): @@ -1134,6 +1135,7 @@ class Controller():
1134 Publisher.sendMessage("Render volume viewer") 1135 Publisher.sendMessage("Render volume viewer")
1135 1136
1136 def disable_mask_preview(self): 1137 def disable_mask_preview(self):
  1138 + ses.Session().mask_3d_preview = False
1137 mask = self.Slice.current_mask 1139 mask = self.Slice.current_mask
1138 if mask is not None: 1140 if mask is not None:
1139 Publisher.sendMessage("Remove mask preview", mask_3d_actor=mask.volume._actor) 1141 Publisher.sendMessage("Remove mask preview", mask_3d_actor=mask.volume._actor)
invesalius/data/mask.py
@@ -248,6 +248,9 @@ class Mask(): @@ -248,6 +248,9 @@ class Mask():
248 248
249 def on_show(self): 249 def on_show(self):
250 self.history._config_undo_redo(self.is_shown) 250 self.history._config_undo_redo(self.is_shown)
  251 + if ses.Session().mask_3d_preview:
  252 + Publisher.sendMessage('Show mask preview', index=self.index, flag=bool(self.is_shown))
  253 + Publisher.sendMessage("Render volume viewer")
251 254
252 def create_3d_preview(self): 255 def create_3d_preview(self):
253 if self.volume is None: 256 if self.volume is None:
invesalius/data/slice_.py
@@ -1178,6 +1178,10 @@ class Slice(metaclass=utils.Singleton): @@ -1178,6 +1178,10 @@ class Slice(metaclass=utils.Singleton):
1178 1178
1179 def SelectCurrentMask(self, index): 1179 def SelectCurrentMask(self, index):
1180 "Insert mask data, based on given index, into pipeline." 1180 "Insert mask data, based on given index, into pipeline."
  1181 + if self.current_mask:
  1182 + self.current_mask.is_shown = False
  1183 + self.current_mask.on_show()
  1184 +
1181 proj = Project() 1185 proj = Project()
1182 future_mask = proj.GetMask(index) 1186 future_mask = proj.GetMask(index)
1183 future_mask.is_shown = True 1187 future_mask.is_shown = True
@@ -1394,6 +1398,8 @@ class Slice(metaclass=utils.Singleton): @@ -1394,6 +1398,8 @@ class Slice(metaclass=utils.Singleton):
1394 Publisher.sendMessage("Add mask", mask=mask) 1398 Publisher.sendMessage("Add mask", mask=mask)
1395 1399
1396 if show: 1400 if show:
  1401 + if self.current_mask:
  1402 + self.current_mask.is_shown = False
1397 self.current_mask = mask 1403 self.current_mask = mask
1398 Publisher.sendMessage("Show mask", index=mask.index, value=True) 1404 Publisher.sendMessage("Show mask", index=mask.index, value=True)
1399 Publisher.sendMessage("Change mask selected", index=mask.index) 1405 Publisher.sendMessage("Change mask selected", index=mask.index)
invesalius/session.py
@@ -54,6 +54,7 @@ class Session(metaclass=Singleton): @@ -54,6 +54,7 @@ class Session(metaclass=Singleton):
54 def __init__(self): 54 def __init__(self):
55 self.project_path = () 55 self.project_path = ()
56 self.temp_item = False 56 self.temp_item = False
  57 + self.mask_3d_preview = False
57 58
58 self._values = collections.defaultdict(dict, { 59 self._values = collections.defaultdict(dict, {
59 'session': { 60 'session': {
@@ -128,7 +129,7 @@ class Session(metaclass=Singleton): @@ -128,7 +129,7 @@ class Session(metaclass=Singleton):
128 return object.__getattribute__(self, '_values')[session][key] 129 return object.__getattribute__(self, '_values')[session][key]
129 130
130 def __setattr__(self, name, value): 131 def __setattr__(self, name, value):
131 - if name in ("temp_item", "_map_attrs", "_values", "project_path"): 132 + if name in ("temp_item", "_map_attrs", "_values", "project_path", "mask_3d_preview"):
132 return object.__setattr__(self, name, value) 133 return object.__setattr__(self, name, value)
133 else: 134 else:
134 session, key = self._map_attrs[name] 135 session, key = self._map_attrs[name]