skillGroupBrowser.py (2662B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\skillPlan\skillsCatalogue\skillGroupBrowser.py 2 import evetypes 3 import inventorycommon.const as invConst 4 import uthread2 5 from carbonui import uiconst 6 from carbonui.primitives.container import Container 7 from carbonui.primitives.containerAutoSize import ContainerAutoSize 8 from eve.client.script.ui.skillPlan.skillsCatalogue.skillCatalogueUtil import GetOrderedByColumn 9 from eve.client.script.ui.skillPlan.skillsCatalogue.skillGroupEntry import SkillGroupEntry 10 from signals import Signal 11 from skills import skillConst 12 NUM_COLUMNS = 3 13 SELECTED_SETTING = 'skillCatalogue_skillGroupSelected' 14 15 class SkillGroupBrowser(ContainerAutoSize): 16 __notifyevents__ = ['OnSkillsChanged'] 17 18 def ApplyAttributes(self, attributes): 19 super(SkillGroupBrowser, self).ApplyAttributes(attributes) 20 self.onSkillSelected = Signal('SkillGroupBrowser_onSkillSelected') 21 self.entries = [] 22 self.ConstructEntries() 23 skillGroupSelected = settings.user.ui.Get('%s' % SELECTED_SETTING, invConst.groupSpaceshipCommand) 24 if skillGroupSelected: 25 uthread2.start_tasklet(self.SetGroupAsSelected, skillGroupSelected) 26 27 def ConstructEntries(self): 28 groupIDs = self.GetGroupIDs() 29 for i, groupID in enumerate(groupIDs): 30 if not i % NUM_COLUMNS: 31 row = Container(name='row_%s' % i, parent=self, align=uiconst.TOTOP, height=32, padBottom=4) 32 entry = SkillGroupEntry(parent=row, align=uiconst.TOLEFT_PROP, width=0.333, groupID=groupID, padRight=8 if (i + 1) % 3 else 0) 33 entry.onClickSignal.connect(self.OnEntryClicked) 34 self.entries.append(entry) 35 36 def GetGroupIDs(self): 37 groupIDs = sorted(skillConst.skill_group_ids, key=lambda x: evetypes.GetGroupNameByGroup(x)) 38 return GetOrderedByColumn(groupIDs, NUM_COLUMNS) 39 40 def OnEntryClicked(self, clickedEntry): 41 if clickedEntry.isSelected: 42 return 43 self.SetGroupAsSelected(clickedEntry.groupID) 44 45 def SetGroupAsSelected(self, groupID): 46 for entry in self.entries: 47 if entry.groupID == groupID: 48 entry.SetSelected() 49 else: 50 entry.SetDeselected() 51 52 settings.user.ui.Set('%s' % SELECTED_SETTING, groupID) 53 self.onSkillSelected(groupID) 54 55 def GetAllSkillGroupControllers(self): 56 return [ x.controller for x in self.entries ] 57 58 def GetAllSkillGroups(self): 59 return self.entries 60 61 def OnSkillsChanged(self, skillInfos): 62 for entry in self.entries: 63 entry.UpdateProgress()