Added import/export support

Export works swimmingly, but import is slow and I can't figure out why.
This commit is contained in:
Corollax
2010-11-20 06:48:17 -06:00
parent 0b191623ad
commit 24b7c50b0a
2 changed files with 19 additions and 16 deletions

View File

@@ -147,10 +147,9 @@ class DmgPatternEditorDlg (wx.Dialog):
self.SetSizer(mainSizer)
# <Import&Export>
importExport = (("Import", wx.ART_FILE_OPEN),
("Export", wx.ART_FILE_SAVE_AS))
for name, art in importExport:
importExport = (("Import", wx.ART_FILE_OPEN, "from"),
("Export", wx.ART_FILE_SAVE_AS, "to"))
for name, art, direction in importExport:
bitmap = wx.ArtProvider.GetBitmap(art, wx.ART_BUTTON)
btn = wx.BitmapButton(self, wx.ID_ANY, bitmap)
@@ -160,12 +159,9 @@ class DmgPatternEditorDlg (wx.Dialog):
btn.Layout()
setattr(self, name, btn)
btn.Enable(True)
btn.SetToolTipString("%s patterns" % name.capitalize())
btn.SetToolTipString("%s patterns %s clipboard" % (name, direction) )
footerSizer.Add(btn, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_RIGHT)
# </Import&Export>
self.Layout()
bsize = self.GetBestSize()
self.SetSize((-1,bsize.height))

View File

@@ -31,17 +31,15 @@ class DamagePattern():
return cls.instance
def __init__(self):
self.getDamagePatternList()
def getDamagePatternList(self):
patterns = eos.db.getDamagePatternList()
if len(patterns) == 0:
try:
uniform = eos.db.getDamagePattern("Uniform")
except:
uniform = eos.types.DamagePattern(25, 25, 25, 25)
uniform.name = "Uniform"
eos.db.save(uniform)
patterns.append(uniform)
return patterns
def getDamagePatternList(self):
return eos.db.getDamagePatternList()
def getDamagePattern(self, name):
return eos.db.getDamagePattern(name)
@@ -67,8 +65,17 @@ class DamagePattern():
eos.db.save(p)
def importPatterns(self, text):
eos.types.DamagePattern.importPatterns(text)
lookup = {}
current = self.getDamagePatternList()
for pattern in current:
lookup[pattern.name] = pattern
imports = eos.types.DamagePattern.importPatterns(text)
for pattern in imports:
if pattern.name in lookup:
self.deletePattern( lookup[pattern.name] )
eos.db.save(pattern)
def exportPatterns(self):
patterns = self.getDamagePatternList()
return eos.types.DamagePattern.exportPatterns(*patterns)