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)