collectionPage.py (5010B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\cosmetics\ship\pages\collection\collectionPage.py 2 from carbonui import Align 3 from carbonui.control.tabGroup import TabGroup 4 from carbonui.primitives.container import Container 5 from cosmetics.client.ships import ship_skin_signals 6 from eve.client.script.ui.cosmetics.ship.const import SkinrPage 7 from eve.client.script.ui.cosmetics.ship.pages.shipSKINRPageBase import ShipSKINRPageBase 8 from eve.client.script.ui.cosmetics.ship.pages.collection import collectionSignals 9 from eve.client.script.ui.cosmetics.ship.pages.collection.componentLicenseBrowser import ComponentLicenseBrowser 10 from eve.client.script.ui.cosmetics.ship.pages.collection.componentLicenseInfo import ComponentLicenseInfo 11 from eve.client.script.ui.cosmetics.ship.pages.collection.skinLicenseBrowser import SkinLicenseBrowser 12 from eve.client.script.ui.cosmetics.ship.pages.collection.skinLicenseInfo import SkinLicenseInfo 13 from eve.client.script.ui.cosmetics.ship.pages import current_page 14 from localization import GetByLabel 15 16 class CollectionPage(ShipSKINRPageBase): 17 default_padding = (32, 96, 32, 32) 18 is_loaded = False 19 20 def load_panel(self, page_id = None, page_args = None): 21 if not self.is_loaded: 22 self.is_loaded = True 23 self.construct_layout() 24 self.connect_signals() 25 self.left_cont.FlagForceUpdateAlignment() 26 if SkinrPage.COLLECTION_SKINS in (page_id, page_args): 27 self.show_skins(page_args) 28 elif SkinrPage.COLLECTION_COMPONENTS in (page_id, page_args): 29 self.show_components(page_args) 30 else: 31 self.tab_group.AutoSelect() 32 33 def Close(self): 34 try: 35 self.disconnect_signals() 36 finally: 37 super(CollectionPage, self).Close() 38 39 def connect_signals(self): 40 self.on_display_changed.connect(self._on_display_changed) 41 ship_skin_signals.on_skin_license_updated.connect(self.on_skin_license_updated) 42 43 def disconnect_signals(self): 44 self.on_display_changed.disconnect(self._on_display_changed) 45 ship_skin_signals.on_skin_license_updated.disconnect(self.on_skin_license_updated) 46 47 def _on_display_changed(self, *args): 48 if not self.display: 49 self.hide_selection_details() 50 51 def construct_layout(self): 52 self.right_cont = Container(name='right_cont', parent=self, align=Align.TORIGHT_PROP, width=0.55, maxWidth=920) 53 self.left_cont = Container(name='left_cont', parent=self, padding=(0, 0, 64, 16)) 54 self.construct_left_cont() 55 self.construct_right_cont() 56 57 def construct_left_cont(self): 58 self.selected_skin_details = SkinLicenseInfo(name='skin_license_info', parent=self.left_cont, top=80) 59 self.selected_component_details = ComponentLicenseInfo(name='component_license_info', parent=self.left_cont, top=80) 60 61 def construct_right_cont(self): 62 self.tab_group = TabGroup(parent=self.right_cont, align=Align.TOTOP, show_line=False, callback=self.on_tab_group, settingsID='SKINRStorePageTopLevel') 63 self.skin_browser = SkinLicenseBrowser(parent=self.right_cont) 64 self.tab_group.AddTab(label=GetByLabel('UI/Personalization/ShipSkins/SKINR/Studio/SKINs'), tabID=SkinrPage.COLLECTION_SKINS) 65 self.component_browser = ComponentLicenseBrowser(parent=self.right_cont, display=False) 66 self.tab_group.AddTab(label=GetByLabel('UI/Personalization/ShipSkins/SKINR/Studio/DesignElements'), tabID=SkinrPage.COLLECTION_COMPONENTS) 67 68 def on_tab_group(self, page_id, old_page_id): 69 self.hide_selection_details() 70 if page_id == SkinrPage.COLLECTION_SKINS: 71 self.show_skins() 72 elif page_id == SkinrPage.COLLECTION_COMPONENTS: 73 self.show_components() 74 75 def hide_selection_details(self): 76 self.selected_skin_details.fade_out() 77 self.selected_component_details.fade_out() 78 79 def show_skins(self, section_id = None): 80 self.component_browser.display = False 81 self.skin_browser.display = True 82 self.skin_browser.LoadPanel(section_id) 83 self.tab_group.SelectByID(SkinrPage.COLLECTION_SKINS, silent=True, useCallback=False) 84 if section_id is None: 85 current_page.set_sub_page(SkinrPage.COLLECTION, SkinrPage.COLLECTION_SKINS) 86 87 def show_components(self, category = None): 88 self.component_browser.display = True 89 self.component_browser.LoadPanel(category) 90 self.skin_browser.display = False 91 self.tab_group.SelectByID(SkinrPage.COLLECTION_COMPONENTS, silent=True, useCallback=False) 92 if category is None: 93 current_page.set_sub_page(SkinrPage.COLLECTION, SkinrPage.COLLECTION_COMPONENTS) 94 95 def on_skin_license_updated(self, license_id, license_data): 96 if self.selected_skin_details.license_id == license_id: 97 self.selected_skin_details.fade_out() 98 collectionSignals.on_skin_license_details_clear()