Skill color goes back to normal when saving/reverting skill.
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user