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)