Commit 9a6b5311747092b21fe7ff085a7604a442cad3b2

Authored by Paulo Henrique Junqueira Amorim
1 parent 4e82c3bd

ADD: Run folder selection to importation, from menu and toolbar

invesalius/constants.py
... ... @@ -271,3 +271,11 @@ IMAGE_TILING = {"1 x 1":(1,1), "1 x 2":(1,2),
271 271 "4 x 5":(4,5), "5 x 4":(5,4)}
272 272  
273 273 VTK_WARNING = 0
  274 +
  275 +#----------------------------------------------------------
  276 +
  277 +[ID_FILE_IMPORT, ID_FILE_LOAD_INTERNET, ID_FILE_SAVE, ID_FILE_PHOTO,
  278 +ID_FILE_PRINT] = [wx.NewId() for number in range(5)]
  279 +
  280 +
  281 +
... ...
invesalius/gui/frame.py
... ... @@ -30,10 +30,6 @@ import default_tasks as tasks
30 30 import default_viewers as viewers
31 31 import import_panel as imp
32 32  
33   -# File toolbar
34   -[ID_FILE_IMPORT, ID_FILE_LOAD_INTERNET, ID_FILE_SAVE, ID_FILE_PHOTO,
35   -ID_FILE_PRINT] = [wx.NewId() for number in range(5)]
36   -
37 33 # Object toolbar
38 34 OBJ_TOOLS = [ID_ZOOM, ID_ZOOM_SELECT, ID_ROTATE, ID_MOVE,
39 35 ID_CONTRAST] = [wx.NewId() for number in range(5)]
... ... @@ -98,7 +94,8 @@ class Frame(wx.Frame):
98 94  
99 95 def __bind_events_wx(self):
100 96 self.Bind(wx.EVT_SIZE, self.OnSize)
101   -
  97 + self.Bind(wx.EVT_MENU, self.OnMenuClick)
  98 +
102 99 def __init_aui(self):
103 100  
104 101 # Tell aui_manager to manage this frame
... ... @@ -202,6 +199,10 @@ class Frame(wx.Frame):
202 199 def OnSize(self, evt):
203 200 ps.Publisher().sendMessage(('ProgressBar Reposition'))
204 201 evt.Skip()
  202 +
  203 + def OnMenuClick(self, evt):
  204 + ps.Publisher().sendMessage(("Run menu item",
  205 + str(evt.GetId())))
205 206  
206 207 def ShowTask(self, pubsub_evt):
207 208 self.aui_manager.GetPane("Tasks").Show()
... ... @@ -232,7 +233,7 @@ class MenuBar(wx.MenuBar):
232 233 def __init_items(self):
233 234  
234 235 file_menu = wx.Menu()
235   - file_menu.Append(ID_FILE_IMPORT, "Import...")
  236 + file_menu.Append(const.ID_FILE_IMPORT, "Import...")
236 237 file_menu.Append(101, "Exit")
237 238  
238 239 view_menu = wx.Menu()
... ... @@ -416,19 +417,19 @@ class ProjectToolBar(wx.ToolBar):
416 417 BMP_PHOTO = wx.Bitmap(os.path.join(const.ICON_DIR, "tool_photo.png"),
417 418 wx.BITMAP_TYPE_PNG)
418 419  
419   - self.AddLabelTool(ID_FILE_IMPORT,
  420 + self.AddLabelTool(const.ID_FILE_IMPORT,
420 421 "Import medical image...",
421 422 BMP_IMPORT)
422   - self.AddLabelTool(ID_FILE_LOAD_INTERNET,
  423 + self.AddLabelTool(const.ID_FILE_LOAD_INTERNET,
423 424 "Load medical image...",
424 425 BMP_NET)
425   - self.AddLabelTool(ID_FILE_SAVE,
  426 + self.AddLabelTool(const.ID_FILE_SAVE,
426 427 "Save InVesalius project",
427 428 BMP_SAVE)
428   - self.AddLabelTool(ID_FILE_PHOTO,
  429 + self.AddLabelTool(const.ID_FILE_PHOTO,
429 430 "Take photo of screen",
430 431 BMP_PHOTO)
431   - self.AddLabelTool(ID_FILE_PRINT,
  432 + self.AddLabelTool(const.ID_FILE_PRINT,
432 433 "Print medical image...",
433 434 BMP_PRINT)
434 435  
... ...
invesalius/gui/import_panel.py
... ... @@ -72,7 +72,7 @@ class InnerPanel(wx.Panel):
72 72 ps.Publisher().subscribe(self.ShowDicomPreview, "Load import panel")
73 73  
74 74 def ShowDicomPreview(self, pubsub_evt):
75   - dicom_groups = pubsub_evt.data
  75 + dicom_groups = pubsub_evt.data
76 76 self.text_panel.Populate(dicom_groups)
77 77  
78 78  
... ...
invesalius/gui/task_importer.py
... ... @@ -21,6 +21,7 @@ import wx
21 21 import wx.lib.hyperlink as hl
22 22 import wx.lib.platebtn as pbtn
23 23 import wx.lib.pubsub as ps
  24 +import constants as const
24 25  
25 26 BTN_IMPORT_LOCAL = wx.NewId()
26 27 BTN_IMPORT_PACS = wx.NewId()
... ... @@ -134,7 +135,8 @@ class InnerTaskPanel(wx.Panel):
134 135 # Test load and unload specific projects' links
135 136 self.TestLoadProjects()
136 137 #self.UnloadProjects()
137   -
  138 + ps.Publisher().subscribe(self.OnLinkImport,("Run menu item",
  139 + str(const.ID_FILE_IMPORT)))
138 140  
139 141 def OnLinkImport(self, evt=None):
140 142 dlg = wx.DirDialog(self, "Choose a directory:", "",
... ... @@ -148,10 +150,13 @@ class InnerTaskPanel(wx.Panel):
148 150  
149 151 # Only destroy a dialog after you're done with it.
150 152 dlg.Destroy()
151   -
152   - if evt:
153   - evt.Skip()
154   -
  153 +
  154 + try:
  155 + if evt:
  156 + evt.Skip()
  157 + except(AttributeError):
  158 + pass
  159 +
155 160 def OnLinkImportPACS(self, evt=None):
156 161 print "TODO: Send Signal - Import DICOM files from PACS"
157 162 if evt:
... ...