Commit 0c9ee0bd1230f607be04e59a1ebf55988a1677fa
1 parent
8baa3296
Exists in
master
and in
68 other branches
ENH: Cancel button working in import panel
Showing
1 changed file
with
21 additions
and
16 deletions
Show diff stats
invesalius/gui/import_panel.py
... | ... | @@ -92,11 +92,11 @@ class InnerPanel(wx.Panel): |
92 | 92 | |
93 | 93 | self.btn_ok = wx.Button(panel, wx.ID_OK) |
94 | 94 | self.btn_ok.SetDefault() |
95 | - btn_cancel = wx.Button(panel, wx.ID_CANCEL) | |
95 | + self.btn_cancel = wx.Button(panel, wx.ID_CANCEL) | |
96 | 96 | |
97 | 97 | btnsizer = wx.StdDialogButtonSizer() |
98 | 98 | btnsizer.AddButton(self.btn_ok) |
99 | - btnsizer.AddButton(btn_cancel) | |
99 | + btnsizer.AddButton(self.btn_cancel) | |
100 | 100 | btnsizer.Realize() |
101 | 101 | |
102 | 102 | self.combo_interval = wx.ComboBox(panel, -1, "", choices=const.IMPORT_INTERVAL, |
... | ... | @@ -133,8 +133,9 @@ class InnerPanel(wx.Panel): |
133 | 133 | self.Bind(EVT_SELECT_SERIE, self.OnSelectSerie) |
134 | 134 | self.Bind(EVT_SELECT_SLICE, self.OnSelectSlice) |
135 | 135 | self.Bind(EVT_SELECT_PATIENT, self.OnSelectPatient) |
136 | - self.btn_ok.Bind(wx.EVT_BUTTON, self.OnLoadDicom) | |
137 | - self.text_panel.Bind(EVT_SELECT_SERIE_TEXT, self.OnLoadDicom) | |
136 | + self.btn_ok.Bind(wx.EVT_BUTTON, self.OnClickOk) | |
137 | + self.btn_cancel.Bind(wx.EVT_BUTTON, self.OnClickCancel) | |
138 | + self.text_panel.Bind(EVT_SELECT_SERIE_TEXT, self.OnDblClickTextPanel) | |
138 | 139 | |
139 | 140 | def ShowDicomPreview(self, pubsub_evt): |
140 | 141 | dicom_groups = pubsub_evt.data |
... | ... | @@ -156,10 +157,21 @@ class InnerPanel(wx.Panel): |
156 | 157 | def OnSelectPatient(self, evt): |
157 | 158 | print "You've selected the patient", evt.GetSelectID() |
158 | 159 | |
159 | - def OnLoadDicom(self, evt): | |
160 | + def OnDblClickTextPanel(self, evt): | |
161 | + group = evt.GetItemData() | |
162 | + self.LoadDicom(group) | |
163 | + | |
164 | + def OnClickOk(self, evt): | |
160 | 165 | group = self.text_panel.GetSelection() |
161 | - interval = self.combo_interval.GetSelection() | |
166 | + self.LoadDicom(group) | |
167 | + | |
168 | + def OnClickCancel(self, evt): | |
169 | + ps.Publisher().sendMessage("Cancel DICOM load") | |
162 | 170 | |
171 | + def LoadDicom(self, group): | |
172 | + interval = self.combo_interval.GetSelection() | |
173 | + if not isinstance(group, dcm.DicomGroup): | |
174 | + group = max(group.GetGroups(), key=lambda g: g.nslices) | |
163 | 175 | ps.Publisher().sendMessage('Open DICOM group', (group, interval)) |
164 | 176 | |
165 | 177 | |
... | ... | @@ -284,7 +296,6 @@ class TextPanel(wx.Panel): |
284 | 296 | def OnSelChanged(self, evt): |
285 | 297 | item = self.tree.GetSelection() |
286 | 298 | if self._selected_by_user: |
287 | - print "Yes, I'm here" | |
288 | 299 | group = self.tree.GetItemPyData(item) |
289 | 300 | if isinstance(group, dcm.DicomGroup): |
290 | 301 | ps.Publisher().sendMessage('Load group into import panel', |
... | ... | @@ -306,15 +317,9 @@ class TextPanel(wx.Panel): |
306 | 317 | def OnActivate(self, evt): |
307 | 318 | item = evt.GetItem() |
308 | 319 | group = self.tree.GetItemPyData(item) |
309 | - if isinstance(group, dcm.DicomGroup): | |
310 | - my_evt = SelectEvent(myEVT_SELECT_SERIE_TEXT, self.GetId()) | |
311 | - my_evt.SetItemData(group) | |
312 | - self.GetEventHandler().ProcessEvent(my_evt) | |
313 | - else: | |
314 | - if self.tree.IsExpanded(item): | |
315 | - self.tree.Collapse(item) | |
316 | - else: | |
317 | - self.tree.Expand(item) | |
320 | + my_evt = SelectEvent(myEVT_SELECT_SERIE_TEXT, self.GetId()) | |
321 | + my_evt.SetItemData(group) | |
322 | + self.GetEventHandler().ProcessEvent(my_evt) | |
318 | 323 | |
319 | 324 | def OnSize(self, evt): |
320 | 325 | self.tree.SetSize(self.GetSize()) | ... | ... |