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)