Commit a55c37308871c4b3573487cb9ac39adff8d66378

Authored by Thiago Franco de Moraes
1 parent b6e94926
Exists in wxgtk3_bkp

Tests

invesalius/gui/default_tasks.py
@@ -121,6 +121,7 @@ class Panel(wx.Panel): @@ -121,6 +121,7 @@ class Panel(wx.Panel):
121 #self.SetSizerAndFit(sizer) 121 #self.SetSizerAndFit(sizer)
122 self.SetSizer(sizer) 122 self.SetSizer(sizer)
123 123
  124 +
124 # Lower fold panel 125 # Lower fold panel
125 class LowerTaskPanel(wx.Panel): 126 class LowerTaskPanel(wx.Panel):
126 def __init__(self, parent): 127 def __init__(self, parent):
@@ -139,7 +140,7 @@ class LowerTaskPanel(wx.Panel): @@ -139,7 +140,7 @@ class LowerTaskPanel(wx.Panel):
139 self.gbs = gbs 140 self.gbs = gbs
140 141
141 sizer = wx.BoxSizer(wx.VERTICAL) 142 sizer = wx.BoxSizer(wx.VERTICAL)
142 - sizer.Add(gbs, 1, wx.GROW|wx.EXPAND) 143 + #sizer.Add(gbs, 1, wx.GROW|wx.EXPAND)
143 self.SetSizer(sizer) 144 self.SetSizer(sizer)
144 145
145 image_list = wx.ImageList(16,16) 146 image_list = wx.ImageList(16,16)
@@ -156,15 +157,19 @@ class LowerTaskPanel(wx.Panel): @@ -156,15 +157,19 @@ class LowerTaskPanel(wx.Panel):
156 #npanel = wx.Panel(self, -1) 157 #npanel = wx.Panel(self, -1)
157 self.npanel = nb.NotebookPanel(item) 158 self.npanel = nb.NotebookPanel(item)
158 159
159 - self.__calc_best_size(self.npanel) 160 + #self.__calc_best_size(self.npanel)
160 161
161 fold_panel.AddFoldPanelWindow(item, self.npanel, #fpb.FPB_ALIGN_WIDTH, #Spacing= 0, 162 fold_panel.AddFoldPanelWindow(item, self.npanel, #fpb.FPB_ALIGN_WIDTH, #Spacing= 0,
162 leftSpacing=0, rightSpacing=0) 163 leftSpacing=0, rightSpacing=0)
163 164
164 - gbs.AddGrowableRow(0, 1)  
165 - gbs.Add(fold_panel, (0, 0), flag=wx.EXPAND)  
166 - gbs.Layout()  
167 - item.ResizePanel() 165 + #gbs.AddGrowableRow(0, 1)
  166 + #gbs.Add(fold_panel, (0, 0), flag=wx.EXPAND)
  167 + #gbs.Layout()
  168 + #item.ResizePanel()
  169 +
  170 + sizer.Add(fold_panel, 1, wx.EXPAND)
  171 +
  172 + self.ResizeFPB()
168 173
169 sizer.Fit(self) 174 sizer.Fit(self)
170 self.Fit() 175 self.Fit()
@@ -172,6 +177,7 @@ class LowerTaskPanel(wx.Panel): @@ -172,6 +177,7 @@ class LowerTaskPanel(wx.Panel):
172 self.SetStateProjectClose() 177 self.SetStateProjectClose()
173 self.__bind_events() 178 self.__bind_events()
174 179
  180 +
175 def __calc_best_size(self, panel): 181 def __calc_best_size(self, panel):
176 parent = panel.GetParent() 182 parent = panel.GetParent()
177 panel.Reparent(self) 183 panel.Reparent(self)
@@ -214,6 +220,11 @@ class LowerTaskPanel(wx.Panel): @@ -214,6 +220,11 @@ class LowerTaskPanel(wx.Panel):
214 for item in self.enable_items: 220 for item in self.enable_items:
215 item.Enable() 221 item.Enable()
216 222
  223 + def ResizeFPB(self):
  224 + sizeNeeded = self.fold_panel.GetPanelsLength(0, 0)[2]
  225 + self.fold_panel.SetMinSize((self.fold_panel.GetSize()[0], sizeNeeded ))
  226 + self.fold_panel.SetSize((self.fold_panel.GetSize()[0], sizeNeeded))
  227 +
217 228
218 # Upper fold panel 229 # Upper fold panel
219 class UpperTaskPanel(wx.Panel): 230 class UpperTaskPanel(wx.Panel):
@@ -332,3 +343,16 @@ class UpperTaskPanel(wx.Panel): @@ -332,3 +343,16 @@ class UpperTaskPanel(wx.Panel):
332 343
333 344
334 evt.Skip() 345 evt.Skip()
  346 + wx.CallAfter(self.ResizeFPB)
  347 +
  348 + def ResizeFPB(self):
  349 + sizeNeeded = self.fold_panel.GetPanelsLength(0, 0)[2]
  350 + self.fold_panel.SetMinSize((self.fold_panel.GetSize()[0], sizeNeeded ))
  351 + self.fold_panel.SetSize((self.fold_panel.GetSize()[0], sizeNeeded))
  352 + print "UPPER", self.fold_panel.GetPanelsLength(0, 0), self.fold_panel.GetSize()
  353 +
  354 + try:
  355 + self.GetSizer().Layout()
  356 + self.Fit()
  357 + except:
  358 + pass
invesalius/gui/task_exporter.py
@@ -44,7 +44,7 @@ WILDCARD_SAVE_3D = "Inventor (*.iv)|*.iv|"\ @@ -44,7 +44,7 @@ WILDCARD_SAVE_3D = "Inventor (*.iv)|*.iv|"\
44 "VTK PolyData (*.vtp)|*.vtp|"\ 44 "VTK PolyData (*.vtp)|*.vtp|"\
45 "Wavefront (*.obj)|*.obj|"\ 45 "Wavefront (*.obj)|*.obj|"\
46 "X3D (*.x3d)|*.x3d" 46 "X3D (*.x3d)|*.x3d"
47 - 47 +
48 INDEX_TO_TYPE_3D = {0: const.FILETYPE_IV, 48 INDEX_TO_TYPE_3D = {0: const.FILETYPE_IV,
49 1: const.FILETYPE_PLY, 49 1: const.FILETYPE_PLY,
50 2: const.FILETYPE_RIB, 50 2: const.FILETYPE_RIB,
@@ -86,7 +86,7 @@ class TaskPanel(wx.Panel): @@ -86,7 +86,7 @@ class TaskPanel(wx.Panel):
86 86
87 inner_panel = InnerTaskPanel(self) 87 inner_panel = InnerTaskPanel(self)
88 88
89 - sizer = wx.BoxSizer(wx.HORIZONTAL) 89 + sizer = wx.BoxSizer(wx.VERTICAL)
90 sizer.Add(inner_panel, 1, wx.EXPAND | wx.GROW | wx.BOTTOM | wx.RIGHT | 90 sizer.Add(inner_panel, 1, wx.EXPAND | wx.GROW | wx.BOTTOM | wx.RIGHT |
91 wx.LEFT, 7) 91 wx.LEFT, 7)
92 sizer.Fit(self) 92 sizer.Fit(self)
@@ -234,7 +234,7 @@ class InnerTaskPanel(wx.Panel): @@ -234,7 +234,7 @@ class InnerTaskPanel(wx.Panel):
234 self.__init_menu() 234 self.__init_menu()
235 235
236 def __init_menu(self): 236 def __init_menu(self):
237 - 237 +
238 238
239 menu = wx.Menu() 239 menu = wx.Menu()
240 self.id_to_name = {const.AXIAL:_("Axial slice"), 240 self.id_to_name = {const.AXIAL:_("Axial slice"),
@@ -246,23 +246,23 @@ class InnerTaskPanel(wx.Panel): @@ -246,23 +246,23 @@ class InnerTaskPanel(wx.Panel):
246 item = wx.MenuItem(menu, id, self.id_to_name[id]) 246 item = wx.MenuItem(menu, id, self.id_to_name[id])
247 menu.AppendItem(item) 247 menu.AppendItem(item)
248 248
249 - self.menu_picture = menu 249 + self.menu_picture = menu
250 menu.Bind(wx.EVT_MENU, self.OnMenuPicture) 250 menu.Bind(wx.EVT_MENU, self.OnMenuPicture)
251 251
252 def OnMenuPicture(self, evt): 252 def OnMenuPicture(self, evt):
253 - print "OnMenuPicture" 253 + print "OnMenuPicture"
254 id = evt.GetId() 254 id = evt.GetId()
255 value = dlg.ExportPicture(self.id_to_name[id]) 255 value = dlg.ExportPicture(self.id_to_name[id])
256 if value: 256 if value:
257 - filename, filetype = value 257 + filename, filetype = value
258 Publisher.sendMessage('Export picture to file', 258 Publisher.sendMessage('Export picture to file',
259 (id, filename, filetype)) 259 (id, filename, filetype))
260 - 260 +
261 261
262 262
263 def OnLinkExportPicture(self, evt=None): 263 def OnLinkExportPicture(self, evt=None):
264 self.button_picture.PopupMenu(self.menu_picture) 264 self.button_picture.PopupMenu(self.menu_picture)
265 - 265 +
266 266
267 def OnLinkExportMask(self, evt=None): 267 def OnLinkExportMask(self, evt=None):
268 project = proj.Project() 268 project = proj.Project()
@@ -280,7 +280,7 @@ class InnerTaskPanel(wx.Panel): @@ -280,7 +280,7 @@ class InnerTaskPanel(wx.Panel):
280 WILDCARD_SAVE_MASK, 280 WILDCARD_SAVE_MASK,
281 wx.FD_SAVE|wx.FD_OVERWRITE_PROMPT) 281 wx.FD_SAVE|wx.FD_OVERWRITE_PROMPT)
282 dlg.SetFilterIndex(0) # default is VTI 282 dlg.SetFilterIndex(0) # default is VTI
283 - 283 +
284 if dlg.ShowModal() == wx.ID_OK: 284 if dlg.ShowModal() == wx.ID_OK:
285 filename = dlg.GetPath() 285 filename = dlg.GetPath()
286 print "filename", filename 286 print "filename", filename
@@ -316,7 +316,7 @@ class InnerTaskPanel(wx.Panel): @@ -316,7 +316,7 @@ class InnerTaskPanel(wx.Panel):
316 WILDCARD_SAVE_3D, 316 WILDCARD_SAVE_3D,
317 wx.FD_SAVE|wx.FD_OVERWRITE_PROMPT) 317 wx.FD_SAVE|wx.FD_OVERWRITE_PROMPT)
318 dlg.SetFilterIndex(3) # default is STL 318 dlg.SetFilterIndex(3) # default is STL
319 - 319 +
320 if dlg.ShowModal() == wx.ID_OK: 320 if dlg.ShowModal() == wx.ID_OK:
321 filetype_index = dlg.GetFilterIndex() 321 filetype_index = dlg.GetFilterIndex()
322 filetype = INDEX_TO_TYPE_3D[filetype_index] 322 filetype = INDEX_TO_TYPE_3D[filetype_index]
invesalius/gui/task_slice.py
@@ -395,13 +395,17 @@ class InnerFoldPanel(wx.Panel): @@ -395,13 +395,17 @@ class InnerFoldPanel(wx.Panel):
395 print self.fold_panel.GetPanelsLength(0, 0), self.fold_panel.GetSize() 395 print self.fold_panel.GetPanelsLength(0, 0), self.fold_panel.GetSize()
396 396
397 try: 397 try:
398 - self.GetParent().GetSizer().Layout()  
399 - self.GetParent().Fit()  
400 - 398 + #self.GetParent().GetParent().GetSizer().Layout()
  399 + #self.GetParent().GetParent().Fit()
401 self.GetSizer().Layout() 400 self.GetSizer().Layout()
402 self.Fit() 401 self.Fit()
403 - except:  
404 - pass 402 +
  403 + self.GetParent().GetSizer().Layout()
  404 + self.GetParent().Fit()
  405 + self.GetParent().GetParent().GetParent().GetParent().GetParent().GetParent().GetParent().ResizeFPB()
  406 + self.GetParent().GetParent().GetParent().GetParent().GetParent().GetParent().Layout()
  407 + except Exception, e:
  408 + print e
405 409
406 def OnRetrieveStyle(self, pubsub_evt): 410 def OnRetrieveStyle(self, pubsub_evt):
407 if (self.last_style == const.SLICE_STATE_EDITOR): 411 if (self.last_style == const.SLICE_STATE_EDITOR):
invesalius/gui/task_surface.py
@@ -49,8 +49,8 @@ class TaskPanel(wx.Panel): @@ -49,8 +49,8 @@ class TaskPanel(wx.Panel):
49 49
50 inner_panel = InnerTaskPanel(self) 50 inner_panel = InnerTaskPanel(self)
51 51
52 - sizer = wx.BoxSizer(wx.HORIZONTAL)  
53 - sizer.Add(inner_panel, 1, wx.EXPAND | wx.GROW | wx.BOTTOM | wx.RIGHT | 52 + sizer = wx.BoxSizer(wx.VERTICAL)
  53 + sizer.Add(inner_panel, 0, wx.EXPAND | wx.GROW | wx.BOTTOM | wx.RIGHT |
54 wx.LEFT, 7) 54 wx.LEFT, 7)
55 sizer.Fit(self) 55 sizer.Fit(self)
56 56
@@ -68,7 +68,8 @@ class InnerTaskPanel(wx.Panel): @@ -68,7 +68,8 @@ class InnerTaskPanel(wx.Panel):
68 def __init__(self, parent): 68 def __init__(self, parent):
69 wx.Panel.__init__(self, parent) 69 wx.Panel.__init__(self, parent)
70 default_colour = self.GetBackgroundColour() 70 default_colour = self.GetBackgroundColour()
71 - self.SetBackgroundColour(wx.Colour(255,255,255)) 71 + #self.SetBackgroundColour(wx.Colour(255,255,255))
  72 + self.SetBackgroundColour(wx.Colour(0,0,255))
72 self.SetAutoLayout(1) 73 self.SetAutoLayout(1)
73 74
74 75
@@ -109,13 +110,13 @@ class InnerTaskPanel(wx.Panel): @@ -109,13 +110,13 @@ class InnerTaskPanel(wx.Panel):
109 # Add line sizers into main sizer 110 # Add line sizers into main sizer
110 main_sizer = wx.BoxSizer(wx.VERTICAL) 111 main_sizer = wx.BoxSizer(wx.VERTICAL)
111 main_sizer.Add(line_new, 0,wx.GROW|wx.EXPAND|wx.LEFT|wx.RIGHT|wx.TOP, 5) 112 main_sizer.Add(line_new, 0,wx.GROW|wx.EXPAND|wx.LEFT|wx.RIGHT|wx.TOP, 5)
112 - main_sizer.Add(fold_panel, 1, wx.GROW|wx.EXPAND|wx.ALL, 5) 113 + main_sizer.Add(fold_panel, 0, wx.GROW|wx.EXPAND|wx.ALL, 5)
113 main_sizer.Add(button_next, 0, wx.ALIGN_RIGHT|wx.RIGHT|wx.BOTTOM, 5) 114 main_sizer.Add(button_next, 0, wx.ALIGN_RIGHT|wx.RIGHT|wx.BOTTOM, 5)
114 main_sizer.Fit(self) 115 main_sizer.Fit(self)
115 116
116 - self.SetSizer(main_sizer) 117 + self.SetSizerAndFit(main_sizer)
117 self.Update() 118 self.Update()
118 - self.SetAutoLayout(1) 119 + #self.SetAutoLayout(1)
119 120
120 self.sizer = main_sizer 121 self.sizer = main_sizer
121 122
@@ -181,10 +182,10 @@ class FoldPanel(wx.Panel): @@ -181,10 +182,10 @@ class FoldPanel(wx.Panel):
181 inner_panel = InnerFoldPanel(self) 182 inner_panel = InnerFoldPanel(self)
182 183
183 sizer = wx.BoxSizer(wx.VERTICAL) 184 sizer = wx.BoxSizer(wx.VERTICAL)
184 - sizer.Add(inner_panel, 1, wx.EXPAND|wx.GROW, 2) 185 + sizer.Add(inner_panel, 0, wx.EXPAND|wx.GROW, 2)
185 sizer.Fit(self) 186 sizer.Fit(self)
186 187
187 - self.SetSizer(sizer) 188 + self.SetSizerAndFit(sizer)
188 self.Update() 189 self.Update()
189 self.SetAutoLayout(1) 190 self.SetAutoLayout(1)
190 191
@@ -201,7 +202,7 @@ class InnerFoldPanel(wx.Panel): @@ -201,7 +202,7 @@ class InnerFoldPanel(wx.Panel):
201 # parent panel. Perhaps we need to insert the item into the sizer also... 202 # parent panel. Perhaps we need to insert the item into the sizer also...
202 # Study this. 203 # Study this.
203 fold_panel = fpb.FoldPanelBar(self, -1, wx.DefaultPosition, 204 fold_panel = fpb.FoldPanelBar(self, -1, wx.DefaultPosition,
204 - (10, 140), 0,fpb.FPB_SINGLE_FOLD) 205 + wx.DefaultSize, 0,fpb.FPB_SINGLE_FOLD)
205 206
206 # Fold panel style 207 # Fold panel style
207 style = fpb.CaptionBarStyle() 208 style = fpb.CaptionBarStyle()
@@ -226,6 +227,9 @@ class InnerFoldPanel(wx.Panel): @@ -226,6 +227,9 @@ class InnerFoldPanel(wx.Panel):
226 # leftSpacing=0, rightSpacing=0) 227 # leftSpacing=0, rightSpacing=0)
227 #fold_panel.Expand(fold_panel.GetFoldPanel(1)) 228 #fold_panel.Expand(fold_panel.GetFoldPanel(1))
228 229
  230 + self.fold_panel = fold_panel
  231 + self.__bind_evt()
  232 +
229 # Panel sizer to expand fold panel 233 # Panel sizer to expand fold panel
230 sizer = wx.BoxSizer(wx.VERTICAL) 234 sizer = wx.BoxSizer(wx.VERTICAL)
231 sizer.Add(fold_panel, 1, wx.GROW|wx.EXPAND) 235 sizer.Add(fold_panel, 1, wx.GROW|wx.EXPAND)
@@ -235,14 +239,30 @@ class InnerFoldPanel(wx.Panel): @@ -235,14 +239,30 @@ class InnerFoldPanel(wx.Panel):
235 self.Update() 239 self.Update()
236 self.SetAutoLayout(1) 240 self.SetAutoLayout(1)
237 241
  242 +
  243 + self.ResizeFPB()
  244 +
  245 + def __bind_evt(self):
  246 + self.fold_panel.Bind(fpb.EVT_CAPTIONBAR, self.OnFoldPressCaption)
  247 +
  248 + def OnFoldPressCaption(self, evt):
  249 + evt.Skip()
  250 + self.ResizeFPB()
  251 +
  252 + def ResizeFPB(self):
  253 + sizeNeeded = self.fold_panel.GetPanelsLength(0, 0)[2]
  254 + self.fold_panel.SetMinSize((self.fold_panel.GetSize()[0], sizeNeeded ))
  255 + self.fold_panel.SetSize((self.fold_panel.GetSize()[0], sizeNeeded))
  256 +
238 BTN_LARGEST = wx.NewId() 257 BTN_LARGEST = wx.NewId()
239 BTN_SPLIT = wx.NewId() 258 BTN_SPLIT = wx.NewId()
240 BTN_SEEDS = wx.NewId() 259 BTN_SEEDS = wx.NewId()
241 class SurfaceTools(wx.Panel): 260 class SurfaceTools(wx.Panel):
242 def __init__(self, parent): 261 def __init__(self, parent):
243 - wx.Panel.__init__(self, parent, size=(50,400)) 262 + wx.Panel.__init__(self, parent)
244 default_colour = wx.SystemSettings_GetColour(wx.SYS_COLOUR_MENUBAR) 263 default_colour = wx.SystemSettings_GetColour(wx.SYS_COLOUR_MENUBAR)
245 - self.SetBackgroundColour(default_colour) 264 + #self.SetBackgroundColour(default_colour)
  265 + self.SetBackgroundColour((0, 255, 0))
246 266
247 #self.SetBackgroundColour(wx.Colour(255,255,255)) 267 #self.SetBackgroundColour(wx.Colour(255,255,255))
248 self.SetAutoLayout(1) 268 self.SetAutoLayout(1)
@@ -327,7 +347,7 @@ class SurfaceTools(wx.Panel): @@ -327,7 +347,7 @@ class SurfaceTools(wx.Panel):
327 main_sizer.Add(fixed_sizer, 0, wx.GROW|wx.EXPAND|wx.TOP, 5) 347 main_sizer.Add(fixed_sizer, 0, wx.GROW|wx.EXPAND|wx.TOP, 5)
328 348
329 # Update main sizer and panel layout 349 # Update main sizer and panel layout
330 - self.SetSizer(main_sizer) 350 + self.SetSizerAndFit(main_sizer)
331 self.Update() 351 self.Update()
332 self.SetAutoLayout(1) 352 self.SetAutoLayout(1)
333 self.sizer = main_sizer 353 self.sizer = main_sizer
@@ -375,9 +395,10 @@ class SurfaceTools(wx.Panel): @@ -375,9 +395,10 @@ class SurfaceTools(wx.Panel):
375 395
376 class SurfaceProperties(wx.Panel): 396 class SurfaceProperties(wx.Panel):
377 def __init__(self, parent): 397 def __init__(self, parent):
378 - wx.Panel.__init__(self, parent, size=(50,400)) 398 + wx.Panel.__init__(self, parent)
379 default_colour = wx.SystemSettings_GetColour(wx.SYS_COLOUR_MENUBAR) 399 default_colour = wx.SystemSettings_GetColour(wx.SYS_COLOUR_MENUBAR)
380 - self.SetBackgroundColour(default_colour) 400 + #self.SetBackgroundColour(default_colour)
  401 + self.SetBackgroundColour((255, 0, 0))
381 402
382 self.surface_dict = utl.TwoWaysDictionary() 403 self.surface_dict = utl.TwoWaysDictionary()
383 404
@@ -439,7 +460,7 @@ class SurfaceProperties(wx.Panel): @@ -439,7 +460,7 @@ class SurfaceProperties(wx.Panel):
439 460
440 self.SetSizer(sizer) 461 self.SetSizer(sizer)
441 self.Update() 462 self.Update()
442 - self.SetAutoLayout(1) 463 + #self.SetAutoLayout(1)
443 464
444 self.__bind_events() 465 self.__bind_events()
445 466
@@ -528,7 +549,7 @@ class SurfaceProperties(wx.Panel): @@ -528,7 +549,7 @@ class SurfaceProperties(wx.Panel):
528 class QualityAdjustment(wx.Panel): 549 class QualityAdjustment(wx.Panel):
529 def __init__(self, parent): 550 def __init__(self, parent):
530 import constants as const 551 import constants as const
531 - wx.Panel.__init__(self, parent, size=(50,240)) 552 + wx.Panel.__init__(self, parent)
532 default_colour = wx.SystemSettings_GetColour(wx.SYS_COLOUR_MENUBAR) 553 default_colour = wx.SystemSettings_GetColour(wx.SYS_COLOUR_MENUBAR)
533 self.SetBackgroundColour(default_colour) 554 self.SetBackgroundColour(default_colour)
534 555