NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

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()