Commit 6f2555dece0b2bd677e30bff78b14f523f25f364
1 parent
afd317a1
Exists in
master
and in
68 other branches
FIX: Measure removal / viewer slice render problem
Showing
5 changed files
with
34 additions
and
20 deletions
Show diff stats
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): | ... | ... |