Commit 482d68d01c77bf2e8efdee680e6ea73b7f8dda34
1 parent
50143a2b
Exists in
master
Improvements to preferences dialog
Showing
2 changed files
with
63 additions
and
83 deletions
Show diff stats
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() | ... | ... |