Add save character as dialog
This commit is contained in:
@@ -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()
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user