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

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