Commit bf066ca01e65cfc76d22a4a3ae1de8a0c34da437

Authored by tatiana
1 parent f9d49cf7

ENC: Minor fixes related to export surface.

invesalius/data/surface.py
... ... @@ -284,7 +284,6 @@ class SurfaceManager():
284 284  
285 285 def OnExportSurface(self, pubsub_evt):
286 286 filename, filetype = pubsub_evt.data
287   -
288 287 if filetype == const.FILETYPE_STL:
289 288 proj = prj.Project()
290 289 polydata_list = []
... ... @@ -292,13 +291,14 @@ class SurfaceManager():
292 291 surface = proj.surface_dict[index]
293 292 if surface.is_shown:
294 293 polydata_list.append(surface.polydata)
295   - if len(polydata_list) < 0:
  294 + if len(polydata_list) == 0:
296 295 print "oops - no polydata"
297 296 return
298 297 elif len(polydata_list) == 1:
299 298 polydata = polydata_list[0]
300 299 else:
301 300 polydata = pu.Merge(polydata_list)
  301 +
302 302 writer = vtk.vtkSTLWriter()
303 303 writer.SetFileTypeToBinary()
304 304 writer.SetFileName(filename)
... ...
invesalius/gui/task_exporter.py
... ... @@ -156,7 +156,7 @@ class InnerTaskPanel(wx.Panel):
156 156 flag_link = wx.EXPAND|wx.GROW|wx.LEFT|wx.TOP
157 157 flag_button = wx.EXPAND | wx.GROW
158 158  
159   - fixed_sizer = wx.FlexGridSizer(rows=3, cols=2, hgap=2, vgap=0)
  159 + fixed_sizer = wx.FlexGridSizer(rows=4, cols=2, hgap=2, vgap=0)
160 160 fixed_sizer.AddGrowableCol(0, 1)
161 161 fixed_sizer.AddMany([ (link_export_picture, 1, flag_link, 3),
162 162 (button_picture, 0, flag_button),
... ... @@ -182,16 +182,22 @@ class InnerTaskPanel(wx.Panel):
182 182  
183 183 def OnLinkExportSurface(self, evt=None):
184 184 project = proj.Project()
185   - if sys.platform == 'win32':
186   - project_name = project.name
187   - else:
188   - project_name = project.name+".stl"
  185 + n_surface = 0
  186 +
  187 + for index in project.surface_dict:
  188 + if project.surface_dict[index].is_shown:
  189 + n_surface += 1
  190 +
  191 + if n_surface:
  192 + if sys.platform == 'win32':
  193 + project_name = project.name
  194 + else:
  195 + project_name = project.name+".stl"
189 196  
190   - if project.surface_dict:
191 197  
192 198 dlg = wx.FileDialog(None,
193   - "Export 3D surface", # title
194   - "", # directory
  199 + "Save 3D surface as...", # title
  200 + "", # last used directory
195 201 project_name, # filename
196 202 WILDCARD_SAVE_3D,
197 203 wx.SAVE|wx.OVERWRITE_PROMPT)
... ... @@ -208,7 +214,14 @@ class InnerTaskPanel(wx.Panel):
208 214 ps.Publisher().sendMessage('Export surface to file',
209 215 (filename, filetype))
210 216 else:
211   - print "Nao tem superficie, nao podemos exportar"
  217 + dlg = wx.MessageDialog(None,
  218 + "Create a surface and make it visible in order to export it.",
  219 + 'InVesalius 3 - Warning',
  220 + wx.OK | wx.ICON_INFORMATION)
  221 + try:
  222 + dlg.ShowModal()
  223 + finally:
  224 + dlg.Destroy()
212 225  
213 226 def OnLinkRequestRP(self, evt=None):
214 227 pass
... ...