paintToolWnd.py (4014B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\cosmetics\structure\paintToolWnd.py 2 from featuremanagement.client.flag import flag_bool 3 import eve.client.script.ui.cosmetics.structure.const as paintToolConst 4 from cosmetics.common.structures.const import FLAG_PAINTWORK_SKINR_KILLSWITCH, FLAG_PAINTWORK_SKINR_KILLSWITCH_DEFAULT 5 from eve.client.script.ui.shared.mapView.dockPanel import DockablePanel 6 from eve.client.script.ui.cosmetics.structure import paintToolSelections 7 from eve.client.script.ui.cosmetics.structure.pages.structureSelectionPage import StructureSelectionPage 8 from eve.client.script.ui.cosmetics.structure.pages.designCreationPage import DesignCreationPage 9 from eve.client.script.ui.cosmetics.structure.pages.designApplicationPage import DesignApplicationPage 10 from eve.client.script.ui.cosmetics.structure.pages.summaryPage import SummaryPage 11 from eve.client.script.ui.cosmetics.structure.paintToolSignals import on_close_window_requested 12 from eve.client.script.ui.view.viewStateConst import ViewState 13 from carbonui.primitives.container import Container 14 from eve.common.lib import appConst 15 from player_messaging.client.ui_message import prompt_player_fsd_dialog 16 17 class PaintToolWnd(DockablePanel): 18 __guid__ = 'PainToolDockablePanel' 19 __notifyevents__ = ['OnSessionChanged'] 20 default_captionLabelPath = 'UI/Personalization/PaintTool/TrySKINRTitle' 21 default_descriptionLabelPath = 'UI/Personalization/PaintToolDescription' 22 default_name = 'Paint Tool' 23 default_windowID = 'PaintTool' 24 default_iconNum = 'res:/UI/Texture/WindowIcons/paint_tool.png' 25 default_minSize = paintToolConst.WINDOW_MIN_SIZE 26 panelID = default_windowID 27 viewState = ViewState.PaintTool 28 29 def __init__(self, **kwargs): 30 super(PaintToolWnd, self).__init__(**kwargs) 31 sm.RegisterNotify(self) 32 flag_bool(key=FLAG_PAINTWORK_SKINR_KILLSWITCH, default_value=FLAG_PAINTWORK_SKINR_KILLSWITCH_DEFAULT, callback=self._on_killswitch_changed) 33 self._create_pages() 34 paintToolSelections.SELECTED_PAGE.set(paintToolConst.STRUCTURE_SELECTION_PAGE_ID) 35 on_close_window_requested.connect(self._on_close_requested) 36 37 def _on_killswitch_changed(self, evaluate_flag): 38 killswitch = evaluate_flag() 39 if killswitch: 40 self.CloseIfOpen() 41 42 def OnSessionChanged(self, _is_remote, _session, change): 43 if 'corprole' in change: 44 if not session.corprole & appConst.corpRoleBrandManager: 45 prompt_player_fsd_dialog('InsufficientRolesForSKINR') 46 self.Close() 47 48 @classmethod 49 def Open(cls, *args, **kwds): 50 if not session.corprole & appConst.corpRoleBrandManager: 51 prompt_player_fsd_dialog('InsufficientRolesForSKINR') 52 else: 53 return super(PaintToolWnd, cls).Open(*args, **kwds) 54 55 def Close(self, setClosed = False, *args, **kwds): 56 on_close_window_requested.disconnect(self._on_close_requested) 57 paintToolSelections.SELECTED_PAGE.set(paintToolConst.STRUCTURE_SELECTION_PAGE_ID) 58 super(PaintToolWnd, self).Close(setClosed, *args, **kwds) 59 60 def _create_pages(self): 61 main_cont = Container(name='mainCont', parent=self.content, padTop=self.toolbarContainer.height) 62 self._pages = {paintToolConst.STRUCTURE_SELECTION_PAGE_ID: StructureSelectionPage(name='structureSelectionPage', parent=main_cont, page_id=paintToolConst.STRUCTURE_SELECTION_PAGE_ID), 63 paintToolConst.DESIGN_CREATION_PAGE_ID: DesignCreationPage(name='designCreationPage', parent=main_cont, page_id=paintToolConst.DESIGN_CREATION_PAGE_ID), 64 paintToolConst.DESIGN_APPLICATION_PAGE_ID: DesignApplicationPage(name='designApplicationPage', parent=main_cont, page_id=paintToolConst.DESIGN_APPLICATION_PAGE_ID), 65 paintToolConst.SUMMARY_PAGE_ID: SummaryPage(name='summaryPage', parent=main_cont, page_id=paintToolConst.SUMMARY_PAGE_ID)} 66 67 def _on_close_requested(self): 68 self.Close()