Skill color goes back to normal when saving/reverting skill.

This commit is contained in:
blitzmann
2015-09-24 22:44:48 -04:00
parent a0f9fb6ad6
commit 2a88e3114b
3 changed files with 29 additions and 9 deletions

View File

@@ -242,6 +242,9 @@ class Skill(HandledItem):
def saveLevel(self):
self.__level = self.activeLevel
if self in self.character.dirtySkills:
self.character.dirtySkills.remove(self)
def revert(self):
self.level = self.__level

View File

@@ -338,8 +338,8 @@ class SkillTreeView (wx.Panel):
def populateSkillTree(self):
sChar = service.Character.getInstance()
charID = self.Parent.Parent.getActiveCharacter()
char = sChar.getCharacter(charID)
dirtyGroups = set([skill.item.group.ID for skill in char.dirtySkills])
dirtySkills = sChar.getDirtySkills(charID)
dirtyGroups = set([skill.item.group.ID for skill in dirtySkills])
groups = sChar.getSkillGroups()
imageId = self.skillBookImageId
@@ -398,17 +398,26 @@ class SkillTreeView (wx.Panel):
charID = self.Parent.Parent.getActiveCharacter()
selection = self.skillTreeListCtrl.GetSelection()
skillID = self.skillTreeListCtrl.GetPyData(selection)
if level is not None:
self.skillTreeListCtrl.SetItemText(selection, "Level %d" % level if isinstance(level, int) else level, 1)
sChar.changeLevel(charID, skillID, level)
sChar.saveCharacter(charID)
wx.PostEvent(self.Parent.Parent, GE.CharListUpdated())
sChar.changeLevel(charID, skillID, level, persist=True)
elif event.Id == self.revertID:
sChar.revertLevel(charID, skillID)
self.populateSkillTree()
wx.PostEvent(self.Parent.Parent, GE.CharListUpdated())
event.Skip()
self.skillTreeListCtrl.SetItemTextColour(selection, None)
dirtySkills = sChar.getDirtySkills(charID)
dirtyGroups = set([skill.item.group.ID for skill in dirtySkills])
parentID = self.skillTreeListCtrl.GetItemParent(selection)
groupID = self.skillTreeListCtrl.GetPyData(parentID)
if groupID not in dirtyGroups:
self.skillTreeListCtrl.SetItemTextColour(parentID, None)
wx.PostEvent(self.Parent.Parent, GE.CharListUpdated())
event.Skip()
class ImplantsTreeView (wx.Panel):
def addMarketViewImage(self, iconFile):

View File

@@ -240,6 +240,9 @@ class Character(object):
skill = eos.db.getCharacter(charID).getSkill(skillID)
return (skill.level if skill.learned else "Not learned", skill.isDirty)
def getDirtySkills(self, charID):
return eos.db.getCharacter(charID).dirtySkills
def getCharName(self, charID):
return eos.db.getCharacter(charID).name
@@ -315,7 +318,7 @@ class Character(object):
char.apiUpdateCharSheet(skills)
eos.db.commit()
def changeLevel(self, charID, skillID, level):
def changeLevel(self, charID, skillID, level, persist=False):
char = eos.db.getCharacter(charID)
skill = char.getSkill(skillID)
if isinstance(level, basestring) or level > 5 or level < 0:
@@ -323,6 +326,11 @@ class Character(object):
else:
skill.level = level
if persist:
skill.saveLevel()
eos.db.commit()
def revertLevel(self, charID, skillID):
char = eos.db.getCharacter(charID)
skill = char.getSkill(skillID)