Add save character as dialog

This commit is contained in:
blitzmann
2015-09-24 20:46:07 -04:00
parent 61614553a2
commit b844bdf986
3 changed files with 38 additions and 7 deletions

View File

@@ -689,3 +689,34 @@ class APIView (wx.Panel):
self.stStatus.SetLabel("Successfully fetched %s\'s skills from EVE API." % charName)
except Exception, e:
self.stStatus.SetLabel("Unable to retrieve %s\'s skills. Error message:\n%s" % (charName, e))
class SaveCharacterAs(wx.Dialog):
def __init__(self, parent, charID):
wx.Dialog.__init__(self, parent, title="Save Character As...", size=wx.Size(300, 60))
self.charID = charID
sChar = service.Character.getInstance()
name = sChar.getCharName(charID)
bSizer1 = wx.BoxSizer(wx.HORIZONTAL)
self.input = wx.TextCtrl(self, wx.ID_ANY, name, style=wx.TE_PROCESS_ENTER)
bSizer1.Add(self.input, 1, wx.ALL, 5)
self.input.Bind(wx.EVT_TEXT_ENTER, self.change)
self.button = wx.Button(self, wx.ID_OK, u"Save")
bSizer1.Add(self.button, 0, wx.ALL, 5)
self.SetSizer(bSizer1)
self.Layout()
self.Centre(wx.BOTH)
self.button.Bind(wx.EVT_BUTTON, self.change)
def change(self, event):
sChar = service.Character.getInstance()
mainFrame = gui.mainFrame.MainFrame.getInstance()
sChar.saveCharacterAs(self.charID, self.input.GetLineText(0))
wx.PostEvent(mainFrame, GE.CharListUpdated())
event.Skip()
self.Destroy()

View File

@@ -43,7 +43,7 @@ from gui.marketBrowser import MarketBrowser, ItemSelected
from gui.multiSwitch import MultiSwitch
from gui.statsPane import StatsPane
from gui.shipBrowser import ShipBrowser, FitSelected, ImportSelected, Stage3Selected
from gui.characterEditor import CharacterEditor
from gui.characterEditor import CharacterEditor, SaveCharacterAs
from gui.characterSelection import CharacterSelection
from gui.patternEditor import DmgPatternEditorDlg
from gui.resistsEditor import ResistsEditorDlg
@@ -495,10 +495,10 @@ class MainFrame(wx.Frame):
wx.PostEvent(self, GE.CharListUpdated())
def saveCharAs(self, event):
sChr = service.Character.getInstance()
charID = self.charSelection.getActiveCharacter()
sChr.saveCharacterAs(charID)
wx.PostEvent(self, GE.CharListUpdated())
dlg = SaveCharacterAs(self, charID)
dlg.ShowModal()
dlg.Destroy()
def revertChar(self, event):
sChr = service.Character.getInstance()

View File

@@ -199,11 +199,11 @@ class Character(object):
char = eos.db.getCharacter(charID)
char.saveLevels()
def saveCharacterAs(self, charID):
def saveCharacterAs(self, charID, newName):
"""Save edited skills as a new character"""
char = eos.db.getCharacter(charID)
newChar = copy.deepcopy(char)
newChar.name = newChar.name + " (saved as)"
newChar.name = newName
eos.db.save(newChar)
# revert old char
@@ -266,7 +266,7 @@ class Character(object):
def getApiDetails(self, charID):
char = eos.db.getCharacter(charID)
if char.chars is not None:
if char.chars is not None:
chars = json.loads(char.chars)
else:
chars = None