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,7 +605,7 @@ class Frame(wx.Frame): | ||
605 | self.mw.SetPosition(pos) | 605 | self.mw.SetPosition(pos) |
606 | 606 | ||
607 | def ShowPreferences(self): | 607 | def ShowPreferences(self): |
608 | - preferences_dialog = preferences.Preferences(None) | 608 | + preferences_dialog = preferences.Preferences(self) |
609 | preferences_dialog.LoadPreferences() | 609 | preferences_dialog.LoadPreferences() |
610 | preferences_dialog.Center() | 610 | preferences_dialog.Center() |
611 | 611 |
invesalius/gui/preferences.py
@@ -20,47 +20,47 @@ class Preferences(wx.Dialog): | @@ -20,47 +20,47 @@ class Preferences(wx.Dialog): | ||
20 | parent, | 20 | parent, |
21 | id_=-1, | 21 | id_=-1, |
22 | title=_("Preferences"), | 22 | title=_("Preferences"), |
23 | - size=wx.DefaultSize, | ||
24 | - pos=wx.DefaultPosition, | ||
25 | style=wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER, | 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 | bookStyle = fnb.FNB_NODRAG | fnb.FNB_NO_X_BUTTON | 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 | # self.pnl_surface = SurfaceCreation(self) | 34 | # self.pnl_surface = SurfaceCreation(self) |
44 | - self.pnl_language = Language(self) | 35 | + self.pnl_language = Language(self.book) |
36 | + | ||
45 | 37 | ||
46 | self.book.AddPage(self.pnl_viewer2d, _("2D Visualization")) | 38 | self.book.AddPage(self.pnl_viewer2d, _("2D Visualization")) |
47 | self.book.AddPage(self.pnl_viewer3d, _("3D Visualization")) | 39 | self.book.AddPage(self.pnl_viewer3d, _("3D Visualization")) |
48 | # self.book.AddPage(self.pnl_surface, _("Surface creation")) | 40 | # self.book.AddPage(self.pnl_surface, _("Surface creation")) |
49 | self.book.AddPage(self.pnl_language, _("Language")) | 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 | btnsizer = self.CreateStdDialogButtonSizer(wx.OK | wx.CANCEL) | 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 | self.__bind_events() | 65 | self.__bind_events() |
66 | 66 | ||
@@ -98,49 +98,39 @@ class Viewer3D(wx.Panel): | @@ -98,49 +98,39 @@ class Viewer3D(wx.Panel): | ||
98 | 98 | ||
99 | wx.Panel.__init__(self, parent) | 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 | rb_inter = self.rb_inter = wx.RadioBox( | 103 | rb_inter = self.rb_inter = wx.RadioBox( |
108 | - self, | 104 | + bsizer.GetStaticBox(), |
109 | -1, | 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 | bsizer.Add(rb_inter, 0, wx.TOP | wx.LEFT, 0) | 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 | rb_rendering = self.rb_rendering = wx.RadioBox( | 118 | rb_rendering = self.rb_rendering = wx.RadioBox( |
127 | - self, | 119 | + bsizer_ren.GetStaticBox(), |
128 | -1, | 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 | bsizer_ren.Add(rb_rendering, 0, wx.TOP | wx.LEFT, 0) | 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 | def GetSelection(self): | 135 | def GetSelection(self): |
146 | 136 | ||
@@ -164,30 +154,23 @@ class Viewer2D(wx.Panel): | @@ -164,30 +154,23 @@ class Viewer2D(wx.Panel): | ||
164 | 154 | ||
165 | wx.Panel.__init__(self, parent) | 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 | rb_inter = self.rb_inter = wx.RadioBox( | 159 | rb_inter = self.rb_inter = wx.RadioBox( |
174 | - self, | 160 | + bsizer.GetStaticBox(), |
175 | -1, | 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 | bsizer.Add(rb_inter, 0, wx.TOP | wx.LEFT, 0) | 168 | bsizer.Add(rb_inter, 0, wx.TOP | wx.LEFT, 0) |
185 | 169 | ||
186 | border = wx.BoxSizer(wx.VERTICAL) | 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 | def GetSelection(self): | 175 | def GetSelection(self): |
193 | 176 | ||
@@ -202,27 +185,24 @@ class Viewer2D(wx.Panel): | @@ -202,27 +185,24 @@ class Viewer2D(wx.Panel): | ||
202 | 185 | ||
203 | class Language(wx.Panel): | 186 | class Language(wx.Panel): |
204 | def __init__(self, parent): | 187 | def __init__(self, parent): |
205 | - | ||
206 | wx.Panel.__init__(self, parent) | 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 | self.cmb_lang = cmb_lang = lg.GetComboBox() | 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 | text = wx.StaticText( | 193 | text = wx.StaticText( |
215 | - self, | 194 | + bsizer.GetStaticBox(), |
216 | -1, | 195 | -1, |
217 | _("Language settings will be applied \n the next time InVesalius starts."), | 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 | bsizer.AddSpacer(5) | 199 | bsizer.AddSpacer(5) |
221 | - bsizer.Add(text, 0, wx.EXPAND) | 200 | + bsizer.Add(text, 0, wx.EXPAND | wx.ALL, 10) |
222 | 201 | ||
223 | border = wx.BoxSizer() | 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 | self.SetSizerAndFit(border) | 204 | self.SetSizerAndFit(border) |
205 | + self.Layout() | ||
226 | 206 | ||
227 | def GetSelection(self): | 207 | def GetSelection(self): |
228 | selection = self.cmb_lang.GetSelection() | 208 | selection = self.cmb_lang.GetSelection() |