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

skillPlanDockablePanel.py (2624B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\skillPlan\skillPlanDockablePanel.py
      2 import logging
      3 from carbon.common.script.sys.serviceConst import ROLE_PROGRAMMER, ROLE_QA
      4 from carbonui import uiconst
      5 from eve.client.script.ui.shared.mapView.dockPanel import DockablePanel
      6 from eve.client.script.ui.skillPlan.skillPlanPanel import SkillPlanPanel
      7 from eve.client.script.ui.view.viewStateConst import ViewState
      8 from skills.skillplan.skillPlanService import GetSkillPlanSvc
      9 PADDING_WINDOWED = (16, 40, 16, 16)
     10 PADDING_FULLSCREEN = (32, 60, 32, 32)
     11 logger = logging.getLogger(__name__)
     12 
     13 class SkillPlanDockablePanel(DockablePanel):
     14     default_captionLabelPath = 'Tooltips/CharacterSheet/Skills'
     15     default_windowID = 'SkillPlanner'
     16     default_iconNum = 'res:/ui/texture/windowIcons/skills.png'
     17     default_minSize = (1024, 768)
     18     panelID = default_windowID
     19     default_clipChildren = True
     20     viewState = ViewState.SkillPlan
     21     hasImmersiveAudioOverlay = True
     22 
     23     def ApplyAttributes(self, attributes):
     24         super(SkillPlanDockablePanel, self).ApplyAttributes(attributes)
     25         skillPlanTemplate = attributes.get('skillPlanTemplate', None)
     26         self.skillPlanPanel = SkillPlanPanel(parent=self.sr.main, state=uiconst.UI_NORMAL, padding=PADDING_FULLSCREEN, skillPlanTemplate=skillPlanTemplate)
     27 
     28     def FinalizeModeChange(self, registerSettings = True):
     29         super(SkillPlanDockablePanel, self).FinalizeModeChange(registerSettings)
     30         if self.IsFullscreen():
     31             self.skillPlanPanel.padding = PADDING_FULLSCREEN
     32         else:
     33             self.skillPlanPanel.padding = PADDING_WINDOWED
     34 
     35     def OnBack(self, *args):
     36         self.skillPlanPanel.OnBack()
     37 
     38     def IsClosable(self):
     39         try:
     40             if self.skillPlanPanel and not self.skillPlanPanel.destroyed:
     41                 editor = self.skillPlanPanel.skillPlanEditor
     42                 if editor and not editor.destroyed:
     43                     if not editor.ShouldContinueAfterAskingAboutLeavingEditor():
     44                         return False
     45         except Exception as e:
     46             logger.exception(e.message)
     47 
     48         return True
     49 
     50     def DeactivateUnderlay(self):
     51         if not self.IsFullscreen():
     52             self.sr.underlay.AnimExit()
     53 
     54     def GetMenu(self, *args):
     55         m = super(SkillPlanDockablePanel, self).GetMenu(*args)
     56         if session.role & (ROLE_PROGRAMMER | ROLE_QA):
     57             m.append(('Flush Skill Plan cache', GetSkillPlanSvc().FlushCache))
     58         return m
     59 
     60     def ShowCertifiedPlans(self, careerID):
     61         self.skillPlanPanel.ShowCertifiedPlans(careerID)