From a55c37308871c4b3573487cb9ac39adff8d66378 Mon Sep 17 00:00:00 2001 From: Thiago Franco de Moraes Date: Tue, 5 May 2015 16:53:26 -0300 Subject: [PATCH] Tests --- invesalius/gui/default_tasks.py | 36 ++++++++++++++++++++++++++++++------ invesalius/gui/task_exporter.py | 20 ++++++++++---------- invesalius/gui/task_slice.py | 14 +++++++++----- invesalius/gui/task_surface.py | 53 +++++++++++++++++++++++++++++++++++++---------------- 4 files changed, 86 insertions(+), 37 deletions(-) diff --git a/invesalius/gui/default_tasks.py b/invesalius/gui/default_tasks.py index 7304e70..23b7753 100644 --- a/invesalius/gui/default_tasks.py +++ b/invesalius/gui/default_tasks.py @@ -121,6 +121,7 @@ class Panel(wx.Panel): #self.SetSizerAndFit(sizer) self.SetSizer(sizer) + # Lower fold panel class LowerTaskPanel(wx.Panel): def __init__(self, parent): @@ -139,7 +140,7 @@ class LowerTaskPanel(wx.Panel): self.gbs = gbs sizer = wx.BoxSizer(wx.VERTICAL) - sizer.Add(gbs, 1, wx.GROW|wx.EXPAND) + #sizer.Add(gbs, 1, wx.GROW|wx.EXPAND) self.SetSizer(sizer) image_list = wx.ImageList(16,16) @@ -156,15 +157,19 @@ class LowerTaskPanel(wx.Panel): #npanel = wx.Panel(self, -1) self.npanel = nb.NotebookPanel(item) - self.__calc_best_size(self.npanel) + #self.__calc_best_size(self.npanel) fold_panel.AddFoldPanelWindow(item, self.npanel, #fpb.FPB_ALIGN_WIDTH, #Spacing= 0, leftSpacing=0, rightSpacing=0) - gbs.AddGrowableRow(0, 1) - gbs.Add(fold_panel, (0, 0), flag=wx.EXPAND) - gbs.Layout() - item.ResizePanel() + #gbs.AddGrowableRow(0, 1) + #gbs.Add(fold_panel, (0, 0), flag=wx.EXPAND) + #gbs.Layout() + #item.ResizePanel() + + sizer.Add(fold_panel, 1, wx.EXPAND) + + self.ResizeFPB() sizer.Fit(self) self.Fit() @@ -172,6 +177,7 @@ class LowerTaskPanel(wx.Panel): self.SetStateProjectClose() self.__bind_events() + def __calc_best_size(self, panel): parent = panel.GetParent() panel.Reparent(self) @@ -214,6 +220,11 @@ class LowerTaskPanel(wx.Panel): for item in self.enable_items: item.Enable() + def ResizeFPB(self): + sizeNeeded = self.fold_panel.GetPanelsLength(0, 0)[2] + self.fold_panel.SetMinSize((self.fold_panel.GetSize()[0], sizeNeeded )) + self.fold_panel.SetSize((self.fold_panel.GetSize()[0], sizeNeeded)) + # Upper fold panel class UpperTaskPanel(wx.Panel): @@ -332,3 +343,16 @@ class UpperTaskPanel(wx.Panel): evt.Skip() + wx.CallAfter(self.ResizeFPB) + + def ResizeFPB(self): + sizeNeeded = self.fold_panel.GetPanelsLength(0, 0)[2] + self.fold_panel.SetMinSize((self.fold_panel.GetSize()[0], sizeNeeded )) + self.fold_panel.SetSize((self.fold_panel.GetSize()[0], sizeNeeded)) + print "UPPER", self.fold_panel.GetPanelsLength(0, 0), self.fold_panel.GetSize() + + try: + self.GetSizer().Layout() + self.Fit() + except: + pass diff --git a/invesalius/gui/task_exporter.py b/invesalius/gui/task_exporter.py index ecd293b..f1b4522 100644 --- a/invesalius/gui/task_exporter.py +++ b/invesalius/gui/task_exporter.py @@ -44,7 +44,7 @@ WILDCARD_SAVE_3D = "Inventor (*.iv)|*.iv|"\ "VTK PolyData (*.vtp)|*.vtp|"\ "Wavefront (*.obj)|*.obj|"\ "X3D (*.x3d)|*.x3d" - + INDEX_TO_TYPE_3D = {0: const.FILETYPE_IV, 1: const.FILETYPE_PLY, 2: const.FILETYPE_RIB, @@ -86,7 +86,7 @@ class TaskPanel(wx.Panel): inner_panel = InnerTaskPanel(self) - sizer = wx.BoxSizer(wx.HORIZONTAL) + sizer = wx.BoxSizer(wx.VERTICAL) sizer.Add(inner_panel, 1, wx.EXPAND | wx.GROW | wx.BOTTOM | wx.RIGHT | wx.LEFT, 7) sizer.Fit(self) @@ -234,7 +234,7 @@ class InnerTaskPanel(wx.Panel): self.__init_menu() def __init_menu(self): - + menu = wx.Menu() self.id_to_name = {const.AXIAL:_("Axial slice"), @@ -246,23 +246,23 @@ class InnerTaskPanel(wx.Panel): item = wx.MenuItem(menu, id, self.id_to_name[id]) menu.AppendItem(item) - self.menu_picture = menu + self.menu_picture = menu menu.Bind(wx.EVT_MENU, self.OnMenuPicture) def OnMenuPicture(self, evt): - print "OnMenuPicture" + print "OnMenuPicture" id = evt.GetId() value = dlg.ExportPicture(self.id_to_name[id]) if value: - filename, filetype = value + filename, filetype = value Publisher.sendMessage('Export picture to file', (id, filename, filetype)) - + def OnLinkExportPicture(self, evt=None): self.button_picture.PopupMenu(self.menu_picture) - + def OnLinkExportMask(self, evt=None): project = proj.Project() @@ -280,7 +280,7 @@ class InnerTaskPanel(wx.Panel): WILDCARD_SAVE_MASK, wx.FD_SAVE|wx.FD_OVERWRITE_PROMPT) dlg.SetFilterIndex(0) # default is VTI - + if dlg.ShowModal() == wx.ID_OK: filename = dlg.GetPath() print "filename", filename @@ -316,7 +316,7 @@ class InnerTaskPanel(wx.Panel): WILDCARD_SAVE_3D, wx.FD_SAVE|wx.FD_OVERWRITE_PROMPT) dlg.SetFilterIndex(3) # default is STL - + if dlg.ShowModal() == wx.ID_OK: filetype_index = dlg.GetFilterIndex() filetype = INDEX_TO_TYPE_3D[filetype_index] diff --git a/invesalius/gui/task_slice.py b/invesalius/gui/task_slice.py index 5cb68a2..05a0458 100644 --- a/invesalius/gui/task_slice.py +++ b/invesalius/gui/task_slice.py @@ -395,13 +395,17 @@ class InnerFoldPanel(wx.Panel): print self.fold_panel.GetPanelsLength(0, 0), self.fold_panel.GetSize() try: - self.GetParent().GetSizer().Layout() - self.GetParent().Fit() - + #self.GetParent().GetParent().GetSizer().Layout() + #self.GetParent().GetParent().Fit() self.GetSizer().Layout() self.Fit() - except: - pass + + self.GetParent().GetSizer().Layout() + self.GetParent().Fit() + self.GetParent().GetParent().GetParent().GetParent().GetParent().GetParent().GetParent().ResizeFPB() + self.GetParent().GetParent().GetParent().GetParent().GetParent().GetParent().Layout() + except Exception, e: + print e def OnRetrieveStyle(self, pubsub_evt): if (self.last_style == const.SLICE_STATE_EDITOR): diff --git a/invesalius/gui/task_surface.py b/invesalius/gui/task_surface.py index 6166caf..fd02901 100644 --- a/invesalius/gui/task_surface.py +++ b/invesalius/gui/task_surface.py @@ -49,8 +49,8 @@ class TaskPanel(wx.Panel): inner_panel = InnerTaskPanel(self) - sizer = wx.BoxSizer(wx.HORIZONTAL) - sizer.Add(inner_panel, 1, wx.EXPAND | wx.GROW | wx.BOTTOM | wx.RIGHT | + sizer = wx.BoxSizer(wx.VERTICAL) + sizer.Add(inner_panel, 0, wx.EXPAND | wx.GROW | wx.BOTTOM | wx.RIGHT | wx.LEFT, 7) sizer.Fit(self) @@ -68,7 +68,8 @@ class InnerTaskPanel(wx.Panel): def __init__(self, parent): wx.Panel.__init__(self, parent) default_colour = self.GetBackgroundColour() - self.SetBackgroundColour(wx.Colour(255,255,255)) + #self.SetBackgroundColour(wx.Colour(255,255,255)) + self.SetBackgroundColour(wx.Colour(0,0,255)) self.SetAutoLayout(1) @@ -109,13 +110,13 @@ class InnerTaskPanel(wx.Panel): # Add line sizers into main sizer main_sizer = wx.BoxSizer(wx.VERTICAL) main_sizer.Add(line_new, 0,wx.GROW|wx.EXPAND|wx.LEFT|wx.RIGHT|wx.TOP, 5) - main_sizer.Add(fold_panel, 1, wx.GROW|wx.EXPAND|wx.ALL, 5) + main_sizer.Add(fold_panel, 0, wx.GROW|wx.EXPAND|wx.ALL, 5) main_sizer.Add(button_next, 0, wx.ALIGN_RIGHT|wx.RIGHT|wx.BOTTOM, 5) main_sizer.Fit(self) - self.SetSizer(main_sizer) + self.SetSizerAndFit(main_sizer) self.Update() - self.SetAutoLayout(1) + #self.SetAutoLayout(1) self.sizer = main_sizer @@ -181,10 +182,10 @@ class FoldPanel(wx.Panel): inner_panel = InnerFoldPanel(self) sizer = wx.BoxSizer(wx.VERTICAL) - sizer.Add(inner_panel, 1, wx.EXPAND|wx.GROW, 2) + sizer.Add(inner_panel, 0, wx.EXPAND|wx.GROW, 2) sizer.Fit(self) - self.SetSizer(sizer) + self.SetSizerAndFit(sizer) self.Update() self.SetAutoLayout(1) @@ -201,7 +202,7 @@ class InnerFoldPanel(wx.Panel): # parent panel. Perhaps we need to insert the item into the sizer also... # Study this. fold_panel = fpb.FoldPanelBar(self, -1, wx.DefaultPosition, - (10, 140), 0,fpb.FPB_SINGLE_FOLD) + wx.DefaultSize, 0,fpb.FPB_SINGLE_FOLD) # Fold panel style style = fpb.CaptionBarStyle() @@ -226,6 +227,9 @@ class InnerFoldPanel(wx.Panel): # leftSpacing=0, rightSpacing=0) #fold_panel.Expand(fold_panel.GetFoldPanel(1)) + self.fold_panel = fold_panel + self.__bind_evt() + # Panel sizer to expand fold panel sizer = wx.BoxSizer(wx.VERTICAL) sizer.Add(fold_panel, 1, wx.GROW|wx.EXPAND) @@ -235,14 +239,30 @@ class InnerFoldPanel(wx.Panel): self.Update() self.SetAutoLayout(1) + + self.ResizeFPB() + + def __bind_evt(self): + self.fold_panel.Bind(fpb.EVT_CAPTIONBAR, self.OnFoldPressCaption) + + def OnFoldPressCaption(self, evt): + evt.Skip() + self.ResizeFPB() + + def ResizeFPB(self): + sizeNeeded = self.fold_panel.GetPanelsLength(0, 0)[2] + self.fold_panel.SetMinSize((self.fold_panel.GetSize()[0], sizeNeeded )) + self.fold_panel.SetSize((self.fold_panel.GetSize()[0], sizeNeeded)) + BTN_LARGEST = wx.NewId() BTN_SPLIT = wx.NewId() BTN_SEEDS = wx.NewId() class SurfaceTools(wx.Panel): def __init__(self, parent): - wx.Panel.__init__(self, parent, size=(50,400)) + wx.Panel.__init__(self, parent) default_colour = wx.SystemSettings_GetColour(wx.SYS_COLOUR_MENUBAR) - self.SetBackgroundColour(default_colour) + #self.SetBackgroundColour(default_colour) + self.SetBackgroundColour((0, 255, 0)) #self.SetBackgroundColour(wx.Colour(255,255,255)) self.SetAutoLayout(1) @@ -327,7 +347,7 @@ class SurfaceTools(wx.Panel): main_sizer.Add(fixed_sizer, 0, wx.GROW|wx.EXPAND|wx.TOP, 5) # Update main sizer and panel layout - self.SetSizer(main_sizer) + self.SetSizerAndFit(main_sizer) self.Update() self.SetAutoLayout(1) self.sizer = main_sizer @@ -375,9 +395,10 @@ class SurfaceTools(wx.Panel): class SurfaceProperties(wx.Panel): def __init__(self, parent): - wx.Panel.__init__(self, parent, size=(50,400)) + wx.Panel.__init__(self, parent) default_colour = wx.SystemSettings_GetColour(wx.SYS_COLOUR_MENUBAR) - self.SetBackgroundColour(default_colour) + #self.SetBackgroundColour(default_colour) + self.SetBackgroundColour((255, 0, 0)) self.surface_dict = utl.TwoWaysDictionary() @@ -439,7 +460,7 @@ class SurfaceProperties(wx.Panel): self.SetSizer(sizer) self.Update() - self.SetAutoLayout(1) + #self.SetAutoLayout(1) self.__bind_events() @@ -528,7 +549,7 @@ class SurfaceProperties(wx.Panel): class QualityAdjustment(wx.Panel): def __init__(self, parent): import constants as const - wx.Panel.__init__(self, parent, size=(50,240)) + wx.Panel.__init__(self, parent) default_colour = wx.SystemSettings_GetColour(wx.SYS_COLOUR_MENUBAR) self.SetBackgroundColour(default_colour) -- libgit2 0.21.2