MCPcopy Index your code
hub / github.com/pyfa-org/Pyfa / changeLevel

Method changeLevel

gui/characterEditor.py:654–713  ·  view source on GitHub ↗
(self, event)

Source from the content-addressed store, hash-verified

652 self.PopupMenu(menu)
653
654 def changeLevel(self, event):
655 level = self.levelIds.get(event.Id)
656
657 sChar = Character.getInstance()
658 char = self.charEditor.entityEditor.getActiveEntity()
659 if char.name in ("All 0", "All 5"):
660 return
661 selection = self.skillTreeListCtrl.GetSelection()
662 dataType, skillID = self.skillTreeListCtrl.GetItemData(selection)
663
664 if level is not None:
665 sChar.changeLevel(char.ID, skillID, level, persist=True)
666 elif event.Id == self.revertID:
667 sChar.revertLevel(char.ID, skillID)
668 elif event.Id == self.saveID:
669 sChar.saveSkill(char.ID, skillID)
670
671 # After saving the skill, we need to update not just the selected skill, but all open skills due to strict skill
672 # level setting. We don't want to refresh tree, as that will lose all expanded categories and users location
673 # within the tree. Thus, we loop through the tree and refresh the info.
674 # @todo: when collapsing branch, remove the data. This will make this loop more performant
675
676 child = self.skillTreeListCtrl.GetFirstChild(self.root)
677
678 def _setTreeSkillLevel(treeItem, skillID):
679 lvl, dirty = sChar.getSkillLevel(char.ID, skillID)
680 self.skillTreeListCtrl.SetItemText(treeItem,
681 1,
682 _t("Level {}").format(int(lvl)) if not isinstance(lvl, str) else lvl)
683
684 if not dirty:
685 self.skillTreeListCtrl.SetItemImage(treeItem, self.skillBookImageId)
686
687 while child.IsOk():
688 # child = Skill category
689 dataType, id = self.skillTreeListCtrl.GetItemData(child)
690
691 if dataType == 'skill':
692 _setTreeSkillLevel(child, id)
693 else:
694 grand = self.skillTreeListCtrl.GetFirstChild(child)
695 while grand.IsOk():
696 if self.skillTreeListCtrl.GetItemText(grand) != "dummy":
697 _, skillID = self.skillTreeListCtrl.GetItemData(grand)
698 _setTreeSkillLevel(grand, skillID)
699 grand = self.skillTreeListCtrl.GetNextSibling(grand)
700
701 child = self.skillTreeListCtrl.GetNextSibling(child)
702
703 dirtySkills = sChar.getDirtySkills(char.ID)
704 dirtyGroups = set([skill.item.group.ID for skill in dirtySkills])
705
706 parentID = self.skillTreeListCtrl.GetItemParent(selection)
707 parent = self.skillTreeListCtrl.GetItemData(parentID)
708
709 if parent:
710 if parent[1] in dirtyGroups:
711 self.skillTreeListCtrl.SetItemImage(parentID, self.skillBookImageId)

Callers 3

grantMissingSkillsMethod · 0.45
importSkillsMethod · 0.45
handleSkillChangeMethod · 0.45

Calls 7

getActiveEntityMethod · 0.80
revertLevelMethod · 0.80
saveSkillMethod · 0.80
getDirtySkillsMethod · 0.80
getMethod · 0.45
getInstanceMethod · 0.45
GetSelectionMethod · 0.45

Tested by

no test coverage detected