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

alliance.py (6639B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\cosmetics\ship\pages\store\sections\alliance.py
      2 import eveicon
      3 from carbonui import uiconst, Align
      4 from carbonui.button.menu import MenuButtonIcon
      5 from carbonui.control.contextMenu.menuData import MenuData
      6 from carbonui.primitives.container import Container
      7 from cosmetics.client.ships.skins.live_data.skin_listing_target import ListingTargetType, SellerMembershipType
      8 from cosmetics.client.ships.skins.static_data.store_section import StoreSection
      9 from eve.client.script.ui.control.eveIcon import GetLogoIcon
     10 from eve.client.script.ui.cosmetics.ship.const import SkinrPage
     11 from eve.client.script.ui.cosmetics.ship.controls.shipFilterMenuButton import ShipFilterMenuButton
     12 from eve.client.script.ui.cosmetics.ship.pages.store import storeSettings
     13 from eve.client.script.ui.cosmetics.ship.pages.store.sections.baseSkinsSection import BaseSkinsSection
     14 from eve.client.script.ui.cosmetics.ship.pages.store.sections.baseSkinsSectionContainer import BaseSkinsSectionContainer, SortByMenuButtonIcon, MAX_NUM_PER_PAGE
     15 from eve.client.script.ui.cosmetics.ship.pages.store.storeSettings import listed_by_setting
     16 from eve.client.script.ui.shared.neocom.corporation import corpUISignals
     17 from inventorycommon import const as invconst
     18 from localization import GetByLabel
     19 
     20 class AllianceListingsSection(BaseSkinsSection):
     21     page_id = SkinrPage.STORE_SKINS
     22     category = StoreSection.SKINS_ALLIANCE
     23     name = 'UI/Personalization/ShipSkins/SKINR/Store/AllianceSkins'
     24 
     25     def reset_pagination_controller(self, order_by, ascending):
     26         self.pagination_controller.reset(self.get_type_filter(), order_by, ascending, self.num_per_page, ListingTargetType.ALLIANCE, SellerMembershipType.UNSPECIFIED)
     27 
     28 
     29 class AllianceListingsSectionContainer(BaseSkinsSectionContainer):
     30 
     31     def _set_section_controller(self, section_controller = None):
     32         self.section_controller = AllianceListingsSection(num_per_page=None, apply_filtering=False)
     33 
     34     def construct_header(self):
     35         self.construct_header_layout_grid()
     36         self.header_layout_grid.columns = 3
     37         self.alliance_icon = GetLogoIcon(name='alliance_icon', parent=self.header_layout_grid, align=uiconst.CENTERLEFT, state=uiconst.UI_NORMAL, itemID=session.allianceid, pos=(0, 0, 48, 48))
     38         self.alliance_icon.OnClick = self.on_alliance_logo_click
     39         self.construct_header_name_label()
     40         self.construct_header_num_items_label()
     41 
     42     def on_alliance_logo_click(self, *args):
     43         sm.GetService('info').ShowInfo(typeID=invconst.typeAlliance, itemID=session.allianceid)
     44 
     45     def construct_cards(self, card_controllers):
     46         if card_controllers and len(card_controllers) > 0:
     47             super(AllianceListingsSectionContainer, self).construct_cards(card_controllers)
     48 
     49 
     50 class AllianceSectionFilterMenuButtonIcon(MenuButtonIcon):
     51     hint = GetByLabel('UI/Common/Filter')
     52     default_texturePath = eveicon.filter
     53 
     54     def GetMenu(self):
     55         m = MenuData()
     56         m.AddCaption(GetByLabel('UI/Personalization/ShipSkins/SKINR/Store/ListedBy'))
     57         m.AddRadioButton(GetByLabel('UI/Personalization/ShipSkins/SKINR/Store/ListedByAnyBrandManager'), SellerMembershipType.BRAND_MANAGER, listed_by_setting)
     58         m.AddRadioButton(GetByLabel('UI/Personalization/ShipSkins/SKINR/Store/ListedByAllianceMember'), SellerMembershipType.MEMBER, listed_by_setting)
     59         m.AddRadioButton(GetByLabel('UI/Personalization/ShipSkins/SKINR/Store/ListedByAnyone'), SellerMembershipType.UNSPECIFIED, listed_by_setting)
     60         return m
     61 
     62 
     63 class ViewAllAllianceListingsSection(AllianceListingsSection):
     64 
     65     def get_type_filter(self):
     66         if self.apply_filtering:
     67             ship_type = storeSettings.skins_hull_type_filter_setting.get()
     68             if ship_type:
     69                 return [ship_type]
     70             return []
     71         else:
     72             return []
     73 
     74     def reset_pagination_controller(self, order_by, ascending):
     75         self.pagination_controller.reset(self.get_type_filter(), order_by, ascending, self.num_per_page, listing_target_type=ListingTargetType.ALLIANCE, seller_membership_type=listed_by_setting.get())
     76 
     77 
     78 class ViewAllAllianceSkinsSectionContainer(BaseSkinsSectionContainer):
     79 
     80     def __init__(self, **kw):
     81         storeSettings.skins_hull_type_filter_setting.set(None)
     82         storeSettings.listed_by_setting.set(SellerMembershipType.UNSPECIFIED)
     83         super(ViewAllAllianceSkinsSectionContainer, self).__init__(**kw)
     84 
     85     def _set_section_controller(self, section_controller = None):
     86         self.section_controller = ViewAllAllianceListingsSection(MAX_NUM_PER_PAGE)
     87 
     88     def connect_signals(self):
     89         super(ViewAllAllianceSkinsSectionContainer, self).connect_signals()
     90         storeSettings.skins_hull_type_filter_setting.on_change.connect(self.skins_hull_type_filter_setting)
     91         storeSettings.listed_by_setting.on_change.connect(self.on_listed_by_setting)
     92 
     93     def disconnect_signals(self):
     94         super(ViewAllAllianceSkinsSectionContainer, self).disconnect_signals()
     95         storeSettings.skins_hull_type_filter_setting.on_change.disconnect(self.skins_hull_type_filter_setting)
     96         storeSettings.listed_by_setting.on_change.disconnect(self.on_listed_by_setting)
     97 
     98     def on_listed_by_setting(self, *args):
     99         self.reconstruct_cards()
    100 
    101     def construct_header(self):
    102         self.construct_header_layout_grid()
    103         self.header_layout_grid.columns = 3
    104         self.alliance_icon = GetLogoIcon(name='alliance_icon', parent=self.header_layout_grid, align=uiconst.CENTERLEFT, state=uiconst.UI_NORMAL, itemID=session.allianceid, pos=(0, 0, 48, 48))
    105         self.alliance_icon.OnClick = self.on_alliance_logo_click
    106         self.construct_header_name_label()
    107         self.construct_header_num_items_label()
    108 
    109     def on_alliance_logo_click(self, *args):
    110         sm.GetService('info').ShowInfo(typeID=invconst.typeAlliance, itemID=session.allianceid)
    111 
    112     def skins_hull_type_filter_setting(self, type_id):
    113         self.reconstruct_cards()
    114 
    115     def construct_filter_and_sorting(self):
    116         AllianceSectionFilterMenuButtonIcon(parent=self.filter_and_sorting_cont, align=Align.CENTERLEFT, left=48)
    117         ShipFilterMenuButton(parent=self.filter_and_sorting_cont, align=Align.CENTERLEFT, left=20, hull_type_setting=storeSettings.skins_hull_type_filter_setting)
    118         SortByMenuButtonIcon(parent=self.filter_and_sorting_cont, align=Align.CENTERLEFT, show_name_option=False)
    119 
    120     def construct_pagination_container(self):
    121         self.pagination_container = Container(name='pagination_container', parent=self, align=Align.TOTOP, height=32)