Commit a59c7159a0487b49cf3d42f245d84a05bc4b84d2
1 parent
789863a9
Exists in
master
and in
68 other branches
ADD: Using mode set in session file to configure tasks in default task panel
Showing
1 changed file
with
43 additions
and
59 deletions
Show diff stats
invesalius/gui/default_tasks.py
| ... | ... | @@ -21,13 +21,15 @@ import wx |
| 21 | 21 | import wx.lib.foldpanelbar as fpb |
| 22 | 22 | import wx.lib.pubsub as ps |
| 23 | 23 | |
| 24 | +import constants as const | |
| 25 | +import data_notebook as nb | |
| 26 | +import session as ses | |
| 24 | 27 | import task_exporter as exporter |
| 25 | 28 | import task_slice as slice_ |
| 26 | 29 | import task_importer as importer |
| 27 | 30 | import task_surface as surface |
| 28 | 31 | import task_tools as tools |
| 29 | - | |
| 30 | -import data_notebook as nb | |
| 32 | +import task_navigator as navigator | |
| 31 | 33 | |
| 32 | 34 | def GetCollapsedIconData(): |
| 33 | 35 | return \ |
| ... | ... | @@ -200,71 +202,53 @@ class UpperTaskPanel(wx.Panel): |
| 200 | 202 | self.enable_items = [] |
| 201 | 203 | self.overwrite = False |
| 202 | 204 | |
| 203 | - # Fold 1 - Import | |
| 205 | + session = ses.Session() | |
| 206 | + print "session mode: ", session.mode | |
| 207 | + if int(session.mode) == const.MODE_RP: | |
| 208 | + tasks = [(_("InVesalius start"), importer.TaskPanel), | |
| 209 | + (_("Select region of interest"), slice_.TaskPanel), | |
| 210 | + (_("Configure 3D surface"), surface.TaskPanel), | |
| 211 | + (_("Export data"), exporter.TaskPanel)] | |
| 212 | + elif int(session.mode) == const.MODE_NAVIGATOR: | |
| 213 | + tasks = [(_("InVesalius start"), importer.TaskPanel), | |
| 214 | + (_("Select region of interest"), slice_.TaskPanel), | |
| 215 | + (_("Configure 3D surface"), surface.TaskPanel), | |
| 216 | + (_("Utilize navigation system"), navigator.TaskPanel)] | |
| 217 | + | |
| 218 | + for i in xrange(len(tasks)): | |
| 219 | + (name, panel) = tasks[i] | |
| 220 | + # Create panel | |
| 221 | + item = fold_panel.AddFoldPanel("%d. %s"%(i+1, name), | |
| 222 | + collapsed=True, | |
| 223 | + foldIcons=image_list) | |
| 224 | + style = fold_panel.GetCaptionStyle(item) | |
| 225 | + col = style.GetFirstColour() | |
| 226 | + | |
| 227 | + # Add panel to FoldPanel | |
| 228 | + fold_panel.AddFoldPanelWindow(item, | |
| 229 | + panel(item), | |
| 230 | + Spacing= 0, | |
| 231 | + leftSpacing=0, | |
| 232 | + rightSpacing=0) | |
| 233 | + | |
| 234 | + # All items, except the first one, should be disabled if. | |
| 235 | + # no data has been imported initially. | |
| 236 | + if i != 0: | |
| 237 | + self.enable_items.append(item) | |
| 238 | + | |
| 239 | + # If it is related to mask, this value should be kept | |
| 240 | + # It is used as reference to set mouse cursor related to | |
| 241 | + # slice editor. | |
| 242 | + if name == _("Select region of interest"): | |
| 243 | + self.__id_slice = item.GetId() | |
| 204 | 244 | |
| 205 | - item = fold_panel.AddFoldPanel(_("1. InVesalius start"), collapsed=True, | |
| 206 | - foldIcons=image_list) | |
| 207 | - style = fold_panel.GetCaptionStyle(item) | |
| 208 | - col = style.GetFirstColour() | |
| 209 | - | |
| 210 | - | |
| 211 | 245 | |
| 212 | - fold_panel.AddFoldPanelWindow(item, importer.TaskPanel(item), Spacing= 0, | |
| 213 | - leftSpacing=0, rightSpacing=0) | |
| 214 | 246 | fold_panel.Expand(fold_panel.GetFoldPanel(0)) |
| 215 | - | |
| 216 | - # Fold 2 - Mask for segmentation and edition | |
| 217 | - | |
| 218 | - item = fold_panel.AddFoldPanel(_("2. Select region of interest"), | |
| 219 | - collapsed=True, foldIcons=image_list) | |
| 220 | - | |
| 221 | - | |
| 222 | - self.enable_items.append(item) | |
| 223 | - | |
| 224 | - style = fold_panel.GetCaptionStyle(item) | |
| 225 | - col = style.GetFirstColour() | |
| 226 | - slice_panel = slice_.TaskPanel(item) | |
| 227 | - fold_panel.AddFoldPanelWindow(item, slice_panel, Spacing= 0, | |
| 228 | - leftSpacing=0, rightSpacing=0) | |
| 229 | - self.__id_slice = item.GetId() | |
| 230 | - self.slice_panel = slice_panel | |
| 231 | - #fold_panel.Expand(fold_panel.GetFoldPanel(1)) | |
| 232 | - | |
| 233 | - # Fold 3 | |
| 234 | - # select mask - combo | |
| 235 | - # mesh quality - combo? | |
| 236 | - # apply button | |
| 237 | - # Contour - slider | |
| 238 | - # enable / disable Fill holes | |
| 239 | - item = fold_panel.AddFoldPanel(_("3. Configure 3D surface"), collapsed=True, | |
| 240 | - foldIcons=image_list) | |
| 241 | - style = fold_panel.GetCaptionStyle(item) | |
| 242 | - col = style.GetFirstColour() | |
| 243 | - | |
| 244 | - fold_panel.AddFoldPanelWindow(item, surface.TaskPanel(item), | |
| 245 | - Spacing= 0, leftSpacing=0, rightSpacing=0) | |
| 246 | - #fold_panel.Expand(fold_panel.GetFoldPanel(2)) | |
| 247 | - | |
| 248 | - self.enable_items.append(item) | |
| 249 | - | |
| 250 | - | |
| 251 | - # Fold 4 | |
| 252 | - # Export volume | |
| 253 | - item = fold_panel.AddFoldPanel(_("4. Export data"), collapsed=True, | |
| 254 | - foldIcons=image_list) | |
| 255 | - style = fold_panel.GetCaptionStyle(item) | |
| 256 | - col = style.GetFirstColour() | |
| 257 | - self.enable_items.append(item) | |
| 258 | - | |
| 259 | - fold_panel.AddFoldPanelWindow(item, exporter.TaskPanel(item), | |
| 260 | - Spacing= 0, leftSpacing=0, rightSpacing=0) | |
| 261 | - | |
| 262 | 247 | self.fold_panel = fold_panel |
| 263 | 248 | |
| 264 | 249 | self.SetStateProjectClose() |
| 265 | 250 | self.__bind_events() |
| 266 | 251 | |
| 267 | - | |
| 268 | 252 | def __bind_events(self): |
| 269 | 253 | self.fold_panel.Bind(fpb.EVT_CAPTIONBAR, self.OnFoldPressCaption) |
| 270 | 254 | ps.Publisher().subscribe(self.OnEnableState, "Enable state project") | ... | ... |