From e05ded882cc8003c708c7c13607f60e7e01f26cf Mon Sep 17 00:00:00 2001 From: cncfanatics Date: Fri, 29 Oct 2010 13:01:26 +0200 Subject: [PATCH] Fix changing characters not udpating stats right away as well as unlearning not working --- gui/characterEditor.py | 16 ++++++++++++++-- gui/mainFrame.py | 8 ++------ service/character.py | 1 + 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/gui/characterEditor.py b/gui/characterEditor.py index f7931acbc..0a32fc186 100644 --- a/gui/characterEditor.py +++ b/gui/characterEditor.py @@ -27,6 +27,7 @@ import service import gui.display as d from gui.contextMenu import ContextMenu import sys +import gui.fittingView as fv CharListUpdated, CHAR_LIST_UPDATED = wx.lib.newevent.NewEvent() CharChanged, CHAR_CHANGED = wx.lib.newevent.NewEvent() @@ -67,7 +68,7 @@ class CharacterEditor(wx.Frame): self.navSizer.Add(self.skillTreeChoice, 1, wx.ALL | wx.EXPAND, 5) buttons = (("new", wx.ART_NEW), ("copy", wx.ART_COPY), ("rename", bitmapLoader.getBitmap("rename", "icons")), ("delete", wx.ART_DELETE)) - + size = None for name, art in buttons: bitmap = wx.ArtProvider.GetBitmap(art, wx.ART_BUTTON) if name != "rename" else art @@ -157,7 +158,8 @@ class CharacterEditor(wx.Frame): self.unrestrict() wx.PostEvent(self, CharChanged()) - event.Skip() + if event is not None: + event.Skip() def getActiveCharacter(self): selection = self.skillTreeChoice.GetCurrentSelection() @@ -235,6 +237,16 @@ class CharacterEditor(wx.Frame): self.restrict() wx.PostEvent(self, CharChanged()) + + def Destroy(self): + cFit = service.Fit.getInstance() + fitID = self.mainFrame.getActiveFit() + if fitID is not None: + cFit.clearFit(fitID) + wx.PostEvent(self.mainFrame, fv.FitChanged(fitID=fitID)) + + wx.Frame.Destroy(self) + class SkillTreeView (wx.Panel): def __init__(self, parent): wx.Panel.__init__ (self, parent, id=wx.ID_ANY, pos=wx.DefaultPosition, size=wx.Size(500, 300), style=wx.TAB_TRAVERSAL) diff --git a/gui/mainFrame.py b/gui/mainFrame.py index c85514d32..f7d181677 100644 --- a/gui/mainFrame.py +++ b/gui/mainFrame.py @@ -139,10 +139,6 @@ class MainFrame(wx.Frame): dlg=CharacterEditor(self) dlg.Show() - cFit = service.Fit.getInstance() - cFit.clearFit(self.getActiveFit()) - wx.PostEvent(self, fv.FitChanged(fitID=self.getActiveFit())) - def showDamagePatternEditor(self, event): dlg=DmgPatternEditorDlg(self) dlg.ShowModal() @@ -165,7 +161,7 @@ class MainFrame(wx.Frame): except: wx.MessageBox("Error importing from file.", "Error", wx.OK | wx.ICON_ERROR, self) dlg.Destroy() - + def _openAfterImport(self, importCount, fitIDs): if importCount == 1: if self.getActiveFit() != fitIDs[0]: @@ -272,7 +268,7 @@ class MainFrame(wx.Frame): else: clip.Close() return None - + def backupToXml(self, event): sFit = service.Fit.getInstance() saveDialog = wx.FileDialog( diff --git a/service/character.py b/service/character.py index 70796e552..846a6d7bf 100644 --- a/service/character.py +++ b/service/character.py @@ -114,6 +114,7 @@ class Character(): skill = char.getSkill(skillID) if isinstance(level, basestring): skill.learned = False + skill.level = None else: skill.level = level