Commit 0c9ee0bd1230f607be04e59a1ebf55988a1677fa

Authored by tfmoraes
1 parent 8baa3296

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())
... ...