MCPcopy Index your code
hub / github.com/pyfa-org/Pyfa / AttributeGrid

Class AttributeGrid

gui/propertyEditor.py:236–307  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

234
235
236class AttributeGrid(wxpg.PropertyGrid):
237 def __init__(self, parent):
238 wxpg.PropertyGrid.__init__(self, parent,
239 style=wxpg.PG_HIDE_MARGIN | wxpg.PG_HIDE_CATEGORIES | wxpg.PG_BOLD_MODIFIED | wxpg.PG_TOOLTIPS)
240 self.SetExtraStyle(wxpg.PG_EX_HELP_AS_TOOLTIPS)
241
242 self.item = None
243
244 self.itemView = parent.Parent.itemView
245
246 self.btn = parent.Parent.btnRemoveOverrides
247
248 self.Bind(wxpg.EVT_PG_CHANGED, self.OnPropGridChange)
249 self.Bind(wxpg.EVT_PG_SELECTED, self.OnPropGridSelect)
250 self.Bind(wxpg.EVT_PG_RIGHT_CLICK, self.OnPropGridRightClick)
251
252 self.itemView.Bind(wx.EVT_LIST_ITEM_SELECTED, self.itemActivated)
253 self.itemView.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.itemActivated)
254
255 def itemActivated(self, event):
256 self.Clear()
257 self.btn.Enable(True)
258 sel = event.EventObject.GetFirstSelected()
259 self.item = item = self.itemView.activeItems[sel]
260
261 for key in sorted(item.attributes.keys()):
262 override = item.overrides.get(key, None)
263 default = item.attributes[key].value
264 if override and override.value != default:
265 prop = wxpg.FloatProperty(key, value=override.value)
266 prop.SetModifiedStatus(True)
267 else:
268 prop = wxpg.FloatProperty(key, value=default)
269
270 prop.SetClientData(item.attributes[key]) # set this so that we may access it later
271 prop.SetHelpString("%s\n%s" % (item.attributes[key].displayName or key, _t("Default Value: %0.3f") % default))
272 self.Append(prop)
273
274 def removeOverrides(self, event):
275 if self.item is None:
276 return
277
278 for x in list(self.item.overrides.values()):
279 self.item.deleteOverride(x.attr)
280 self.itemView.updateItems(True)
281 self.ClearModifiedStatus()
282 self.itemView.Select(self.itemView.GetFirstSelected(), on=False)
283 self.Clear()
284
285 def Clear(self):
286 self.item = None
287 self.btn.Enable(False)
288 wxpg.PropertyGrid.Clear(self)
289
290 def OnPropGridChange(self, event):
291 p = event.GetProperty()
292 attr = p.GetClientData()
293 if p.GetValue() == attr.value:

Callers 1

__init__Method · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected