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

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)