From 3554a4b6a83e5f3d8e472ce214adbea705b413ab Mon Sep 17 00:00:00 2001 From: cncfanatics Date: Tue, 14 Sep 2010 11:17:16 +0200 Subject: [PATCH] Add basic character switching abilities. Warning: this is UNFINISHED --- controller/fit.py | 9 +++++++++ gui/characterEditor.py | 5 ++--- gui/characterSelection.py | 41 ++++++++++++++++++++++++++++++++++++++- gui/multiSwitch.py | 3 +++ 4 files changed, 54 insertions(+), 4 deletions(-) diff --git a/controller/fit.py b/controller/fit.py index ec129beab..dc18eb705 100644 --- a/controller/fit.py +++ b/controller/fit.py @@ -146,3 +146,12 @@ class Fit(object): fit.clear() fit.calculateModifiedAttributes() return True + + def changeChar(self, fitID, charID): + if fitID is None or charID is None: + return + + fit = eos.db.getFit(fitID) + fit.character = eos.db.getCharacter(charID) + fit.clear() + fit.calculateModifiedAttributes() \ No newline at end of file diff --git a/gui/characterEditor.py b/gui/characterEditor.py index 89c06e0d8..23e37c00c 100644 --- a/gui/characterEditor.py +++ b/gui/characterEditor.py @@ -46,9 +46,8 @@ class CharacterEditor(wx.Dialog): self.skillTreeChoice = wx.Choice(self, wx.ID_ANY, style=0) - for i, info in enumerate(charList): - id, name = info - self.skillTreeChoice.Insert(name, i, id) + for id, name in charList: + self.skillTreeChoice.Append(name, id) self.skillTreeChoice.SetSelection(0) diff --git a/gui/characterSelection.py b/gui/characterSelection.py index 6e327c678..c84b84717 100644 --- a/gui/characterSelection.py +++ b/gui/characterSelection.py @@ -18,9 +18,15 @@ #=============================================================================== import wx +import controller +from gui import characterEditor as ce +from gui import fittingView as fv +import gui.mainFrame class CharacterSelection(wx.Panel): def __init__(self, parent): + self.mainFrame = gui.mainFrame.MainFrame.getInstance() + wx.Panel.__init__(self, parent) mainSizer = wx.BoxSizer(wx.HORIZONTAL) self.SetSizer(mainSizer) @@ -28,4 +34,37 @@ class CharacterSelection(wx.Panel): mainSizer.Add(wx.StaticText(self, wx.ID_ANY, "Character: "), 0, wx.CENTER) self.charChoice = wx.Choice(self) - mainSizer.Add(self.charChoice, 1, wx.EXPAND) \ No newline at end of file + mainSizer.Add(self.charChoice, 1, wx.EXPAND) + + self.refreshCharacterList() + + self.Bind(wx.EVT_CHOICE, self.charChanged) + + def getActiveCharacter(self): + selection = self.charChoice.GetCurrentSelection() + return self.charChoice.GetClientData(selection) if selection is not -1 else None + + def refreshCharacterList(self, event=None): + choice = self.charChoice + cChar = controller.Character.getInstance() + activeChar = self.getActiveCharacter() + + choice.Clear() + for id, name in cChar.getCharacterList(): + currId = choice.Append(name, id) + if id == activeChar: + choice.SetSelection(currId) + elif activeChar is None and name == "All 0": + all0 = currId + + if activeChar is None: + choice.SetSelection(all0) + + def charChanged(self, event): + fitID = self.mainFrame.fitMultiSwitch.getActiveFit() + charID = self.getActiveCharacter() + + cFit = controller.Fit.getInstance() + cFit.changeChar(fitID, charID) + + wx.PostEvent(self.mainFrame, fv.FitChanged(fitID=fitID)) diff --git a/gui/multiSwitch.py b/gui/multiSwitch.py index c4e13a589..ae8bab3d4 100644 --- a/gui/multiSwitch.py +++ b/gui/multiSwitch.py @@ -44,6 +44,9 @@ class MultiSwitch(wx.Notebook): self.imageList = wx.ImageList(16, 16) self.SetImageList(self.imageList) + def getActiveFit(self): + return self.GetCurrentPage().view.activeFitID + def AddTab(self, type="fit", frame=None, title=None): pos = self.GetPageCount() - 1