savedDesignsSection.py (3310B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\cosmetics\ship\pages\homepage\savedDesignsSection.py 2 from cosmetics.client.shipSkinDesignSvc import get_ship_skin_design_svc 3 from cosmetics.client.ships import ship_skin_signals 4 from cosmetics.client.ships.skins.live_data import current_skin_design 5 from eve.client.script.ui.cosmetics.ship.controls.baseCardSectionContainer import BaseCardSectionContainer 6 from eve.client.script.ui.cosmetics.ship.pages.cards.skinDesignCard import SkinDesignCard 7 from eve.client.script.ui.cosmetics.ship.pages.studio import studioSignals 8 from eve.client.script.ui.cosmetics.ship.pages.homepage.savedDesignsTooltipInfoIcons import MaxSavedDesignsSkillsInfoIcon 9 from carbonui import Align 10 11 class SavedDesignsSectionContainer(BaseCardSectionContainer): 12 __notifyevents__ = ['OnSkillsChanged'] 13 14 def connect_signals(self): 15 super(SavedDesignsSectionContainer, self).connect_signals() 16 ship_skin_signals.on_skin_design_saved.connect(self.on_skin_design_saved) 17 ship_skin_signals.on_skin_design_deleted.connect(self.on_skin_design_deleted) 18 sm.RegisterNotify(self) 19 20 def disconnect_signals(self): 21 super(SavedDesignsSectionContainer, self).disconnect_signals() 22 ship_skin_signals.on_skin_design_saved.disconnect(self.on_skin_design_saved) 23 ship_skin_signals.on_skin_design_deleted.disconnect(self.on_skin_design_deleted) 24 sm.UnregisterNotify(self) 25 26 def OnSkillsChanged(self, *args): 27 self.update_num_items_label(force_refresh=True) 28 29 def construct_card(self, card_controller): 30 saved_skin_design_id, skin_design = card_controller 31 card = SkinDesignCard(name='card_{design_id}'.format(design_id=saved_skin_design_id), parent=self.content, saved_skin_design_id=saved_skin_design_id, skin_design=skin_design) 32 card.on_click.connect(self.on_card_clicked) 33 return card 34 35 def deselect_all_cards(self): 36 for card in self.cards: 37 card.is_selected = False 38 39 def on_card_clicked(self, clicked_card): 40 for card in self.cards: 41 if card != clicked_card: 42 card.is_selected = False 43 44 if clicked_card.is_selected: 45 studioSignals.on_saved_design_selected(clicked_card.saved_skin_design_id, clicked_card.skin_design) 46 current_skin_design.open_existing_saved_design(clicked_card.saved_skin_design_id) 47 else: 48 studioSignals.on_saved_design_selected(None, None) 49 current_skin_design.create_blank_design() 50 51 def on_skin_design_saved(self, design_id): 52 self.update() 53 54 def on_skin_design_deleted(self, design_id): 55 studioSignals.on_saved_design_selected(None, None) 56 self.update() 57 58 def construct_header(self): 59 super(SavedDesignsSectionContainer, self).construct_header() 60 self.header_layout_grid.columns = 3 61 MaxSavedDesignsSkillsInfoIcon(parent=self.header_layout_grid, align=Align.CENTERLEFT) 62 63 def update_num_items_label(self, force_refresh = False): 64 num_listings = self.section_controller.get_num_entries() 65 num_max = get_ship_skin_design_svc().get_saved_designs_capacity(force_refresh) 66 self.num_items_label.text = u'{}/{}'.format(num_listings, num_max)