Things are saved now via GUI
This commit is contained in:
@@ -25,6 +25,7 @@ from eqBase import EqBase
|
||||
|
||||
import traceback
|
||||
import eos.db
|
||||
|
||||
try:
|
||||
from collections import OrderedDict
|
||||
except ImportError:
|
||||
@@ -217,10 +218,25 @@ class Item(EqBase):
|
||||
overrides = eos.db.getOverrides(self.ID)
|
||||
for x in overrides:
|
||||
if x.attr.name in self.__attributes:
|
||||
self.__overrides[x.attr.name] = x.value
|
||||
self.__overrides[x.attr.name] = x
|
||||
|
||||
return self.__overrides
|
||||
|
||||
def setOverride(self, attr, value):
|
||||
from eos.saveddata.override import Override
|
||||
if attr.name in self.__overrides:
|
||||
override = self.__overrides.get(attr.name)
|
||||
override.value = value
|
||||
else:
|
||||
override = Override(self, attr, value)
|
||||
self.__overrides[attr.name] = override
|
||||
eos.db.save(override)
|
||||
|
||||
def deleteOverride(self, attr):
|
||||
override = self.__overrides.pop(attr.name, None)
|
||||
eos.db.saveddata_session.delete(override)
|
||||
eos.db.commit()
|
||||
|
||||
@property
|
||||
def requiredSkills(self):
|
||||
if self.__requiredSkills is None:
|
||||
@@ -356,6 +372,12 @@ class Item(EqBase):
|
||||
|
||||
return False
|
||||
|
||||
def __repr__(self):
|
||||
return "Item(ID={}, name={}) at {}".format(
|
||||
self.ID, self.name, hex(id(self))
|
||||
)
|
||||
|
||||
|
||||
class MetaData(EqBase):
|
||||
pass
|
||||
|
||||
|
||||
@@ -113,7 +113,7 @@ class ModifiedAttributeDict(collections.MutableMapping):
|
||||
|
||||
def getOriginal(self, key):
|
||||
if self.OVERRIDES and key in self.__overrides:
|
||||
return self.__overrides.get(key)
|
||||
return self.__overrides.get(key).value
|
||||
val = self.__original.get(key)
|
||||
if val is None:
|
||||
return None
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import wx
|
||||
import wx.propgrid as wxpg
|
||||
import eos.db
|
||||
|
||||
import gui.PFSearchBox as SBox
|
||||
from gui.marketBrowser import SearchBox
|
||||
import gui.display as d
|
||||
import service
|
||||
import gui.globalEvents as GE
|
||||
|
||||
import logging
|
||||
|
||||
@@ -15,7 +15,7 @@ class AttributeEditor( wx.Frame ):
|
||||
|
||||
def __init__( self, parent ):
|
||||
wx.Frame.__init__(self, parent, wx.ID_ANY, title="Attribute Editor", size=wx.Size(700,500))
|
||||
|
||||
self.mainFrame = parent
|
||||
self.panel = panel = wx.Panel(self, wx.ID_ANY)
|
||||
topsizer = wx.BoxSizer(wx.HORIZONTAL)
|
||||
leftsizer = wx.BoxSizer(wx.VERTICAL)
|
||||
@@ -38,6 +38,14 @@ class AttributeEditor( wx.Frame ):
|
||||
self.SetSizer(sizer)
|
||||
self.SetAutoLayout(True)
|
||||
|
||||
self.Bind(wx.EVT_CLOSE, self.OnClose)
|
||||
|
||||
def OnClose(self, event):
|
||||
fitID = self.mainFrame.getActiveFit()
|
||||
if fitID is not None:
|
||||
wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID))
|
||||
self.Destroy()
|
||||
|
||||
|
||||
# This is literally a stripped down version of the market.
|
||||
class ItemView(d.Display):
|
||||
@@ -90,7 +98,10 @@ class AttributeGrid(wxpg.PropertyGrid):
|
||||
|
||||
def __init__(self, parent):
|
||||
wxpg.PropertyGrid.__init__(self, parent, style=wxpg.PG_HIDE_MARGIN|wxpg.PG_HIDE_CATEGORIES|wxpg.PG_BOLD_MODIFIED|wxpg.PG_TOOLTIPS)
|
||||
self.SetExtraStyle(wxpg.PG_EX_HELP_AS_TOOLTIPS)
|
||||
|
||||
self.parent = parent
|
||||
self.item = None
|
||||
|
||||
self.Bind( wxpg.EVT_PG_CHANGED, self.OnPropGridChange )
|
||||
self.Bind( wxpg.EVT_PG_SELECTED, self.OnPropGridSelect )
|
||||
@@ -102,35 +113,34 @@ class AttributeGrid(wxpg.PropertyGrid):
|
||||
def itemActivated(self, event):
|
||||
self.Clear()
|
||||
sel = event.EventObject.GetFirstSelected()
|
||||
item = self.parent.Parent.itemView.items[sel]
|
||||
self.item = item = self.parent.Parent.itemView.items[sel]
|
||||
|
||||
for key in sorted(item.attributes.keys()):
|
||||
override = item.overrides.get(key, None)
|
||||
default = item.attributes[key].value
|
||||
if override and override != item.attributes[key].value:
|
||||
prop = wxpg.FloatProperty(key, value=override)
|
||||
prop.defaultValue = default
|
||||
if override and override.value != default:
|
||||
prop = wxpg.FloatProperty(key, value=override.value)
|
||||
prop.SetModifiedStatus(True)
|
||||
else:
|
||||
prop = wxpg.FloatProperty(key, value=default)
|
||||
|
||||
prop.SetClientData(item.attributes[key]) # set this so that we may access it later
|
||||
prop.SetHelpString("%s\n%s"%(item.attributes[key].displayName or key, "Default Value: %0.2f"%default))
|
||||
self.Append(prop)
|
||||
|
||||
def OnPropGridChange(self, event):
|
||||
p = event.GetProperty()
|
||||
if p:
|
||||
logger.debug('%s changed to "%s"' % (p.GetName(), p.GetValueAsString()))
|
||||
attr = p.GetClientData()
|
||||
if p.GetValue() == attr.value:
|
||||
self.item.deleteOverride(attr)
|
||||
p.SetModifiedStatus(False)
|
||||
else:
|
||||
self.item.setOverride(attr, p.GetValue())
|
||||
|
||||
logger.debug('%s changed to "%s"' % (p.GetName(), p.GetValueAsString()))
|
||||
|
||||
def OnPropGridSelect(self, event):
|
||||
p = event.GetProperty()
|
||||
if p:
|
||||
logger.debug('%s selected' % (event.GetProperty().GetName()))
|
||||
else:
|
||||
logger.debug('Nothing selected')
|
||||
pass
|
||||
|
||||
def OnPropGridRightClick(self, event):
|
||||
p = event.GetProperty()
|
||||
if p:
|
||||
logger.debug('%s right clicked' % (event.GetProperty().GetName()))
|
||||
else:
|
||||
logger.debug('Nothing right clicked')
|
||||
pass
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
speedFactor = -80.0
|
||||
Reference in New Issue
Block a user