Commit 6f2555dece0b2bd677e30bff78b14f523f25f364

Authored by tatiana
1 parent afd317a1

FIX: Measure removal / viewer slice render problem

invesalius/data/measures.py
... ... @@ -104,13 +104,16 @@ class MeasurementManager(object):
104 104  
105 105 self.current = (m, mr)
106 106  
  107 + mr = self.current[1]
  108 + m = self.current[0]
  109 +
107 110 x, y, z = position
108 111 actors = mr.AddPoint(x, y, z)
109 112 m.points.append(position)
110 113 ps.Publisher().sendMessage(("Add actors", location),
111 114 (actors, m.slice_number))
112 115  
113   - if self.mr.IsComplete():
  116 + if mr.IsComplete():
114 117 index = prj.Project().AddMeasurement(m)
115 118 #m.index = index # already done in proj
116 119 self.measures.append(self.current)
... ...
invesalius/data/viewer_slice.py
... ... @@ -1495,9 +1495,14 @@ class Viewer(wx.Panel):
1495 1495 def RemoveActors(self, pubsub_evt):
1496 1496 "Remove a list of actors"
1497 1497 actors, n = pubsub_evt.data
1498   - renderer = self.renderers_by_slice_number[n]
1499   - for actor in actors:
1500   - # Remove the actor from the renderer
1501   - renderer.RemoveActor(actor)
1502   - # and remove the actor from the actor's list
1503   - self.actors_by_slice_number[n].remove(actor)
  1498 + try:
  1499 + renderer = self.renderers_by_slice_number[n]
  1500 + except KeyError:
  1501 + for actor in actors:
  1502 + self.actors_by_slice_number[n].remove(actor)
  1503 + else:
  1504 + for actor in actors:
  1505 + # Remove the actor from the renderer
  1506 + renderer.RemoveActor(actor)
  1507 + # and remove the actor from the actor's list
  1508 + self.actors_by_slice_number[n].remove(actor)
... ...
invesalius/gui/data_notebook.py
... ... @@ -501,7 +501,6 @@ class MasksListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin):
501 501 if key != index:
502 502 self.SetItemImage(key, 0)
503 503 self.current_index = index
504   -
505 504  
506 505 def AddMask(self, pubsub_evt):
507 506 index, mask_name, threshold_range, colour = pubsub_evt.data
... ... @@ -1088,9 +1087,9 @@ class MeasuresListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin):
1088 1087 type = TYPE[m.type]
1089 1088 location = LOCATION[m.location]
1090 1089 if m.type == const.LINEAR:
1091   - value = "%.2f mm" % m.value
  1090 + value = (u"%.2f mm") % m.value
1092 1091 else:
1093   - value = "%.2f˚" % m.value
  1092 + value = (u"%.2f˚") % m.value
1094 1093 self.InsertNewItem(m.index, m.name, colour, type, location, value)
1095 1094  
1096 1095  
... ... @@ -1103,7 +1102,6 @@ class MeasuresListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin):
1103 1102 type_ = pubsub_evt.data[4]
1104 1103 value = pubsub_evt.data[5]
1105 1104  
1106   -
1107 1105 if index not in self._list_index:
1108 1106 image = self.CreateColourBitmap(colour)
1109 1107 image_index = self.imagelist.Add(image)
... ...
invesalius/gui/dialogs.py
... ... @@ -613,15 +613,15 @@ def ShowAboutDialog(parent):
613 613 "Paulo Henrique Junqueira Amorim",
614 614 "Thiago Franco de Moraes"]
615 615  
616   - info.Translators = ["Alex P. Natsios (EL)",
617   - "Andreas Loupasakis (EL)",
618   - "Cheng-Chia Tseng (ZH)",
619   - "Dimitris Glezos (EL)",
620   - "Eugene Liscio (EN)",
621   - u"Frédéric Lopez (FR)",
622   - "J. Javier de Lima Moreno (ES)"
623   - "Nikos Korkakakis (EL)",
624   - "Sebastian Hilbert (DE)"]
  616 + info.Translators = ["Alex P. Natsios",
  617 + "Andreas Loupasakis",
  618 + "Cheng-Chia Tseng",
  619 + "Dimitris Glezos",
  620 + "Eugene Liscio",
  621 + u"Frédéric Lopez",
  622 + "Javier de Lima Moreno"
  623 + "Nikos Korkakakis",
  624 + "Sebastian Hilbert"]
625 625  
626 626 info.DocWriters = ["Fabio Francisco da Silva (PT)"]
627 627  
... ...
invesalius/project.py
... ... @@ -149,8 +149,13 @@ class Project(object):
149 149  
150 150  
151 151 def AddMeasurement(self, measurement):
  152 + print "--- proj: AddMeasurement", measurement.index
152 153 index = len(self.measurement_dict)
  154 + measurement.index = index
  155 + print " index:", index
  156 + print " dict before:", self.measurement_dict
153 157 self.measurement_dict[index] = measurement
  158 + print " dict after:", self.measurement_dict
154 159 return index
155 160  
156 161 def ChangeMeasurement(self, measurement):
... ... @@ -158,6 +163,7 @@ class Project(object):
158 163 self.measurement_dict[index] = measurement
159 164  
160 165 def RemoveMeasurement(self, index):
  166 + print "--- proj: RemoveMeasurement", index
161 167 new_dict = {}
162 168 for i in self.measurement_dict:
163 169 if i < index:
... ... @@ -165,7 +171,9 @@ class Project(object):
165 171 if i > index:
166 172 new_dict[i-1] = self.measurement_dict[i]
167 173 new_dict[i-1].index = i-1
  174 + print " dict before:", self.measurement_dict
168 175 self.measurement_dict = new_dict
  176 + print " dict after:", self.measurement_dict
169 177  
170 178  
171 179 def SetAcquisitionModality(self, type_=None):
... ...