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

hullSelectionPanel.py (2862B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\cosmetics\ship\pages\studio\hullSelectionPanel.py
      2 import carbonui
      3 import carbonui.text.styles
      4 import eveicon
      5 from carbonui import Align, TextColor
      6 from carbonui.control.buttonIcon import ButtonIcon
      7 from carbonui.primitives.container import Container
      8 from carbonui.primitives.frame import Frame
      9 from cosmetics.client.ships.skins.live_data import current_skin_design
     10 from eve.client.script.ui.cosmetics.ship.const import PANEL_BG_COLOR, PANEL_BG_OPACITY
     11 from eve.client.script.ui.cosmetics.ship.pages.studio.factionSelector import FactionSelector
     12 from eve.client.script.ui.cosmetics.ship.pages.studio.hullTreeView import HullTreeView
     13 from eve.client.script.ui.cosmetics.ship.pages.studio.studioSettings import selected_faction_id_setting
     14 from eve.client.script.ui.quickFilter import QuickFilterEdit
     15 from localization import GetByLabel
     16 from signals import Signal
     17 
     18 class HullSelectionPanel(Container):
     19 
     20     def __init__(self, **kw):
     21         super(HullSelectionPanel, self).__init__(**kw)
     22         self.on_close_btn = Signal('on_close_btn')
     23         self.construct_layout()
     24         selected_faction_id_setting.on_change.connect(self.on_faction_setting_changed)
     25         self.tree_view.set_faction(selected_faction_id_setting.get(), current_skin_design.get().ship_type_id)
     26 
     27     def construct_layout(self):
     28         self.content = Container(name='content', parent=self, padding=16)
     29         Frame(bgParent=self, texturePath='res:/UI/Texture/Shared/DarkStyle/panel2Corner_Solid.png', color=PANEL_BG_COLOR, opacity=PANEL_BG_OPACITY, cornerSize=12)
     30         ButtonIcon(parent=self, align=Align.TOPRIGHT, texturePath=eveicon.close, func=self.on_close_btn)
     31         carbonui.text.styles.TextHeader(parent=self.content, align=Align.TOTOP, text=GetByLabel('UI/Personalization/ShipSkins/SKINR/Studio/HullSelection'), color=TextColor.HIGHLIGHT)
     32         self.search_edit = QuickFilterEdit(parent=self.content, align=Align.TOTOP, callback=self.on_search_edit, padTop=16)
     33         self.faction_selector = FactionSelector(parent=self.content, padTop=8, align=Align.TOTOP, faction_id_setting=selected_faction_id_setting)
     34         self.tree_view = HullTreeView(parent=self.content, padTop=8)
     35         self.tree_view.on_hull_type_selected.connect(self.on_hull_type_selected)
     36 
     37     def on_hull_type_selected(self, type_id):
     38         if type_id is not None:
     39             current_skin_design.get().ship_type_id = type_id
     40             current_skin_design.add_to_undo_history()
     41 
     42     def on_search_edit(self, *args):
     43         query = self.search_edit.GetValue()
     44         self.faction_selector.display = not bool(query)
     45         self.tree_view.apply_search_query(query)
     46 
     47     def on_faction_setting_changed(self, faction_id):
     48         self.tree_view.set_faction(faction_id, current_skin_design.get().ship_type_id)