diff -r 31e63e25b4cc -r 64beb9e9c749 dialogs/ArrayTypeDialog.py --- a/dialogs/ArrayTypeDialog.py Mon Aug 21 20:17:19 2017 +0000 +++ b/dialogs/ArrayTypeDialog.py Mon Aug 21 23:22:58 2017 +0300 @@ -28,67 +28,68 @@ from controls import CustomEditableListBox -#------------------------------------------------------------------------------- +# ------------------------------------------------------------------------------- # Helpers -#------------------------------------------------------------------------------- +# ------------------------------------------------------------------------------- DIMENSION_MODEL = re.compile("([0-9]+)\.\.([0-9]+)$") -#------------------------------------------------------------------------------- +# ------------------------------------------------------------------------------- # Array Type Dialog -#------------------------------------------------------------------------------- +# ------------------------------------------------------------------------------- + class ArrayTypeDialog(wx.Dialog): - + def __init__(self, parent, datatypes, infos): wx.Dialog.__init__(self, parent, title=_('Edit array type properties')) - + main_sizer = wx.FlexGridSizer(cols=1, hgap=0, rows=3, vgap=10) main_sizer.AddGrowableCol(0) main_sizer.AddGrowableRow(1) - + top_sizer = wx.BoxSizer(wx.HORIZONTAL) - main_sizer.AddSizer(top_sizer, border=20, - flag=wx.GROW|wx.TOP|wx.LEFT|wx.RIGHT) - + main_sizer.AddSizer(top_sizer, border=20, + flag=wx.GROW | wx.TOP | wx.LEFT | wx.RIGHT) + basetype_label = wx.StaticText(self, label=_('Base Type:')) top_sizer.AddWindow(basetype_label, 1, flag=wx.ALIGN_BOTTOM) - + self.BaseType = wx.ComboBox(self, style=wx.CB_READONLY) top_sizer.AddWindow(self.BaseType, 1, flag=wx.GROW) - - self.Dimensions = CustomEditableListBox(self, label=_("Dimensions:"), - style=wx.gizmos.EL_ALLOW_NEW| - wx.gizmos.EL_ALLOW_EDIT| - wx.gizmos.EL_ALLOW_DELETE) - for func in ["_OnLabelEndEdit", - "_OnAddButton", - "_OnDelButton", - "_OnUpButton", + + self.Dimensions = CustomEditableListBox(self, label=_("Dimensions:"), + style=(wx.gizmos.EL_ALLOW_NEW | + wx.gizmos.EL_ALLOW_EDIT | + wx.gizmos.EL_ALLOW_DELETE)) + for func in ["_OnLabelEndEdit", + "_OnAddButton", + "_OnDelButton", + "_OnUpButton", "_OnDownButton"]: setattr(self.Dimensions, func, self.OnDimensionsChanged) - main_sizer.AddSizer(self.Dimensions, border=20, - flag=wx.GROW|wx.LEFT|wx.RIGHT) - - button_sizer = self.CreateButtonSizer(wx.OK|wx.CANCEL|wx.CENTRE) + main_sizer.AddSizer(self.Dimensions, border=20, + flag=wx.GROW | wx.LEFT | wx.RIGHT) + + button_sizer = self.CreateButtonSizer(wx.OK | wx.CANCEL | wx.CENTRE) self.Bind(wx.EVT_BUTTON, self.OnOK, button_sizer.GetAffirmativeButton()) - main_sizer.AddSizer(button_sizer, border=20, - flag=wx.ALIGN_RIGHT|wx.BOTTOM|wx.LEFT|wx.RIGHT) - + main_sizer.AddSizer(button_sizer, border=20, + flag=wx.ALIGN_RIGHT | wx.BOTTOM | wx.LEFT | wx.RIGHT) + self.SetSizer(main_sizer) - + for datatype in datatypes: self.BaseType.Append(datatype) - + if isinstance(infos, TupleType) and infos[0] == "array": self.BaseType.SetStringSelection(infos[1]) - self.Dimensions.SetStrings(map(lambda x : "..".join(x), infos[2])) + self.Dimensions.SetStrings(map(lambda x: "..".join(x), infos[2])) elif infos in datatypes: self.BaseType.SetStringSelection(infos) - + self.BaseType.SetFocus() self.Fit() - + def GetDimensions(self): message = None dimensions_list = [] @@ -99,28 +100,28 @@ for dimensions in dimension_strings: result = DIMENSION_MODEL.match(dimensions) if result is None: - message = _("\"%s\" value isn't a valid array dimension!")%dimensions + message = _("\"%s\" value isn't a valid array dimension!") % dimensions break bounds = result.groups() if int(bounds[0]) >= int(bounds[1]): - message = _("\"%s\" value isn't a valid array dimension!\nRight value must be greater than left value.")%dimensions + message = _("\"%s\" value isn't a valid array dimension!\nRight value must be greater than left value.") % dimensions break dimensions_list.append(bounds) if message is not None: - dlg = wx.MessageDialog(self, message, _("Error"), wx.OK|wx.ICON_ERROR) + dlg = wx.MessageDialog(self, message, _("Error"), wx.OK | wx.ICON_ERROR) dlg.ShowModal() dlg.Destroy() return None return dimensions_list - + def OnDimensionsChanged(self, event): wx.CallAfter(self.GetDimensions) event.Skip() - + def OnOK(self, event): if self.GetDimensions() is not None: self.EndModal(wx.ID_OK) - + def GetValue(self): return "array", self.BaseType.GetStringSelection(), self.GetDimensions()