Commit 482d68d01c77bf2e8efdee680e6ea73b7f8dda34

Authored by Thiago Franco de Moraes
1 parent 50143a2b
Exists in master

Improvements to preferences dialog

invesalius/gui/frame.py
... ... @@ -605,7 +605,7 @@ class Frame(wx.Frame):
605 605 self.mw.SetPosition(pos)
606 606  
607 607 def ShowPreferences(self):
608   - preferences_dialog = preferences.Preferences(None)
  608 + preferences_dialog = preferences.Preferences(self)
609 609 preferences_dialog.LoadPreferences()
610 610 preferences_dialog.Center()
611 611  
... ...
invesalius/gui/preferences.py
... ... @@ -20,47 +20,47 @@ class Preferences(wx.Dialog):
20 20 parent,
21 21 id_=-1,
22 22 title=_("Preferences"),
23   - size=wx.DefaultSize,
24   - pos=wx.DefaultPosition,
25 23 style=wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER,
26 24 ):
27 25  
28   - wx.Dialog.__init__(self, parent, id_, title, pos, size, style)
29   -
30   - sizer = wx.BoxSizer(wx.VERTICAL)
  26 + super().__init__(parent, id_, title, style=style)
31 27  
32 28 bookStyle = fnb.FNB_NODRAG | fnb.FNB_NO_X_BUTTON
33 29  
34   - if AGW:
35   - self.book = fnb.FlatNotebook(self, wx.ID_ANY, agwStyle=bookStyle)
36   - else:
37   - self.book = fnb.FlatNotebook(self, wx.ID_ANY, agwStyle=bookStyle)
38   -
39   - sizer.Add(self.book, 1, wx.EXPAND | wx.ALL)
  30 + self.book = wx.Notebook(self, -1)
40 31  
41   - self.pnl_viewer2d = Viewer2D(self)
42   - self.pnl_viewer3d = Viewer3D(self)
  32 + self.pnl_viewer2d = Viewer2D(self.book)
  33 + self.pnl_viewer3d = Viewer3D(self.book)
43 34 # self.pnl_surface = SurfaceCreation(self)
44   - self.pnl_language = Language(self)
  35 + self.pnl_language = Language(self.book)
  36 +
45 37  
46 38 self.book.AddPage(self.pnl_viewer2d, _("2D Visualization"))
47 39 self.book.AddPage(self.pnl_viewer3d, _("3D Visualization"))
48 40 # self.book.AddPage(self.pnl_surface, _("Surface creation"))
49 41 self.book.AddPage(self.pnl_language, _("Language"))
50 42  
51   - line = wx.StaticLine(self, -1, size=(20, -1), style=wx.LI_HORIZONTAL)
52   - sizer.Add(line, 0, wx.GROW | wx.RIGHT | wx.TOP, 5)
53   -
54 43 btnsizer = self.CreateStdDialogButtonSizer(wx.OK | wx.CANCEL)
55   - sizer.Add(
56   - btnsizer,
57   - 0,
58   - wx.GROW | wx.RIGHT | wx.TOP | wx.BOTTOM,
59   - 5,
60   - )
61 44  
62   - self.SetSizer(sizer)
63   - sizer.Fit(self)
  45 + min_width = max([i.GetMinWidth() for i in (self.book.GetChildren())])
  46 + min_height = max([i.GetMinHeight() for i in (self.book.GetChildren())])
  47 + self.book.SetMinClientSize((min_width * 2, min_height * 2))
  48 +
  49 + print("Min size", self.pnl_viewer2d.GetSize())
  50 + print("Min size", self.pnl_viewer3d.GetSize())
  51 + print("Min size", self.pnl_language.GetSize())
  52 + print("Min size", self.book.GetSize())
  53 + print("Min size", self.book.GetPage(0))
  54 + print("Size by text", self.book.GetSizeFromText("Language"))
  55 + print("min size", min_width, min_height)
  56 +
  57 + sizer = wx.BoxSizer(wx.VERTICAL)
  58 + sizer.Add(self.book, 1, wx.EXPAND | wx.ALL)
  59 + sizer.Add(btnsizer, 0, wx.GROW | wx.RIGHT | wx.TOP | wx.BOTTOM, 5)
  60 + self.SetSizerAndFit(sizer)
  61 + self.Layout()
  62 +
  63 +
64 64  
65 65 self.__bind_events()
66 66  
... ... @@ -98,49 +98,39 @@ class Viewer3D(wx.Panel):
98 98  
99 99 wx.Panel.__init__(self, parent)
100 100  
101   - box_visualization = wx.StaticBox(self, -1, _("Surface"))
102   - bsizer = wx.StaticBoxSizer(box_visualization, wx.VERTICAL)
103   -
104   - lbl_inter = wx.StaticText(self, -1, _("Interpolation "))
105   - bsizer.Add(lbl_inter, 0, wx.TOP | wx.LEFT, 10)
106   -
  101 + bsizer = wx.StaticBoxSizer(wx.VERTICAL, self, _("Surface"))
  102 + lbl_inter = wx.StaticText(bsizer.GetStaticBox(), -1, _("Interpolation "))
107 103 rb_inter = self.rb_inter = wx.RadioBox(
108   - self,
  104 + bsizer.GetStaticBox(),
109 105 -1,
110 106 "",
111   - wx.DefaultPosition,
112   - wx.DefaultSize,
113   - ["Flat", "Gouraud", "Phong"],
114   - 3,
115   - wx.RA_SPECIFY_COLS | wx.NO_BORDER,
  107 + choices = ["Flat", "Gouraud", "Phong"],
  108 + majorDimension=3,
  109 + style=wx.RA_SPECIFY_COLS | wx.NO_BORDER,
116 110 )
117 111  
  112 + bsizer.Add(lbl_inter, 0, wx.TOP | wx.LEFT, 10)
118 113 bsizer.Add(rb_inter, 0, wx.TOP | wx.LEFT, 0)
119 114  
120   - box_rendering = wx.StaticBox(self, -1, _("Volume rendering"))
121   - bsizer_ren = wx.StaticBoxSizer(box_rendering, wx.VERTICAL)
122   -
123   - lbl_rendering = wx.StaticText(self, -1, _("Rendering"))
124   - bsizer_ren.Add(lbl_rendering, 0, wx.TOP | wx.LEFT, 10)
125   -
  115 + # box_rendering = wx.StaticBox(self, -1, _("Volume rendering"))
  116 + bsizer_ren = wx.StaticBoxSizer(wx.VERTICAL, self, _("Volume rendering"))
  117 + lbl_rendering = wx.StaticText(bsizer_ren.GetStaticBox(), -1, _("Rendering"))
126 118 rb_rendering = self.rb_rendering = wx.RadioBox(
127   - self,
  119 + bsizer_ren.GetStaticBox(),
128 120 -1,
129   - "",
130   - wx.DefaultPosition,
131   - wx.DefaultSize,
132   - ["CPU", _(u"GPU (NVidia video cards only)")],
133   - 2,
134   - wx.RA_SPECIFY_COLS | wx.NO_BORDER,
  121 + choices=["CPU", _(u"GPU (NVidia video cards only)")],
  122 + majorDimension=2,
  123 + style=wx.RA_SPECIFY_COLS | wx.NO_BORDER,
135 124 )
136 125  
  126 + bsizer_ren.Add(lbl_rendering, 0, wx.TOP | wx.LEFT, 10)
137 127 bsizer_ren.Add(rb_rendering, 0, wx.TOP | wx.LEFT, 0)
138   - border = wx.BoxSizer(wx.VERTICAL)
139   - border.Add(bsizer, 50, wx.EXPAND | wx.ALL, 10)
140   - border.Add(bsizer_ren, 50, wx.EXPAND | wx.ALL, 10)
141   - self.SetSizer(border)
142 128  
143   - border.Fit(self)
  129 + border = wx.BoxSizer(wx.VERTICAL)
  130 + border.Add(bsizer, 1, wx.EXPAND | wx.ALL, 10)
  131 + border.Add(bsizer_ren, 1, wx.EXPAND | wx.ALL, 10)
  132 + self.SetSizerAndFit(border)
  133 + self.Layout()
144 134  
145 135 def GetSelection(self):
146 136  
... ... @@ -164,30 +154,23 @@ class Viewer2D(wx.Panel):
164 154  
165 155 wx.Panel.__init__(self, parent)
166 156  
167   - box_visualization = wx.StaticBox(self, -1, _("Slices"))
168   - bsizer = wx.StaticBoxSizer(box_visualization, wx.VERTICAL)
169   -
170   - lbl_inter = wx.StaticText(self, -1, _("Interpolated "))
171   - bsizer.Add(lbl_inter, 0, wx.TOP | wx.LEFT, 10)
172   -
  157 + bsizer = wx.StaticBoxSizer(wx.VERTICAL, self, _("Slices"))
  158 + lbl_inter = wx.StaticText(bsizer.GetStaticBox(), -1, _("Interpolated "))
173 159 rb_inter = self.rb_inter = wx.RadioBox(
174   - self,
  160 + bsizer.GetStaticBox(),
175 161 -1,
176   - "",
177   - wx.DefaultPosition,
178   - wx.DefaultSize,
179   - [_("Yes"), _("No")],
180   - 3,
181   - wx.RA_SPECIFY_COLS | wx.NO_BORDER,
  162 + choices=[_("Yes"), _("No")],
  163 + majorDimension=3,
  164 + style=wx.RA_SPECIFY_COLS | wx.NO_BORDER,
182 165 )
183 166  
  167 + bsizer.Add(lbl_inter, 0, wx.TOP | wx.LEFT, 10)
184 168 bsizer.Add(rb_inter, 0, wx.TOP | wx.LEFT, 0)
185 169  
186 170 border = wx.BoxSizer(wx.VERTICAL)
187   - border.Add(bsizer, 50, wx.EXPAND | wx.ALL, 10)
188   - self.SetSizer(border)
189   -
190   - border.Fit(self)
  171 + border.Add(bsizer, 1, wx.EXPAND | wx.ALL, 10)
  172 + self.SetSizerAndFit(border)
  173 + self.Layout()
191 174  
192 175 def GetSelection(self):
193 176  
... ... @@ -202,27 +185,24 @@ class Viewer2D(wx.Panel):
202 185  
203 186 class Language(wx.Panel):
204 187 def __init__(self, parent):
205   -
206 188 wx.Panel.__init__(self, parent)
207 189  
208   - self.lg = lg = ComboBoxLanguage(self)
  190 + bsizer = wx.StaticBoxSizer(wx.VERTICAL, self, _("Language"))
  191 + self.lg = lg = ComboBoxLanguage(bsizer.GetStaticBox())
209 192 self.cmb_lang = cmb_lang = lg.GetComboBox()
210   -
211   - box = wx.StaticBox(self, -1, _("Language"))
212   - bsizer = wx.StaticBoxSizer(box, wx.VERTICAL)
213   -
214 193 text = wx.StaticText(
215   - self,
  194 + bsizer.GetStaticBox(),
216 195 -1,
217 196 _("Language settings will be applied \n the next time InVesalius starts."),
218 197 )
219   - bsizer.Add(cmb_lang, 0, wx.EXPAND)
  198 + bsizer.Add(cmb_lang, 0, wx.EXPAND | wx.ALL, 10)
220 199 bsizer.AddSpacer(5)
221   - bsizer.Add(text, 0, wx.EXPAND)
  200 + bsizer.Add(text, 0, wx.EXPAND | wx.ALL, 10)
222 201  
223 202 border = wx.BoxSizer()
224   - border.Add(bsizer, 1, wx.EXPAND | wx.ALL, 20)
  203 + border.Add(bsizer, 1, wx.EXPAND | wx.ALL, 10)
225 204 self.SetSizerAndFit(border)
  205 + self.Layout()
226 206  
227 207 def GetSelection(self):
228 208 selection = self.cmb_lang.GetSelection()
... ...