summaryPage.py (5010B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\cosmetics\structure\pages\summaryPage.py 2 from carbonui import const as uiconst 3 from carbonui.button.const import ButtonVariant 4 from carbonui.button.group import ButtonGroup, ButtonSizeMode 5 from carbonui.control.button import Button 6 from carbonui.primitives.container import Container 7 from carbonui.primitives.containerAutoSize import ContainerAutoSize 8 from carbonui.primitives.sprite import Sprite 9 from eve.client.script.ui.control.eveLabel import EveLabelMedium, EveCaptionLarge 10 from eve.client.script.ui.cosmetics.structure import paintToolSelections 11 from eve.client.script.ui.cosmetics.structure.components.previewScene import PreviewPanel 12 from eve.client.script.ui.cosmetics.structure.pages.basePage import BasePage 13 import eve.client.script.ui.cosmetics.structure.const as paintToolConst 14 import eve.client.script.ui.cosmetics.structure.paintToolSignals as paintToolSignals 15 from localization import GetByLabel 16 BUTTON_WIDTH = 200 17 BUTTON_HEIGHT = 40 18 BUTTON_PADDING = 12 19 20 class SummaryPage(BasePage): 21 22 def __init__(self, **kw): 23 super(SummaryPage, self).__init__(**kw) 24 paintToolSignals.on_paintwork_selection_changed.connect(self._on_paint_selection_changed) 25 paintToolSignals.on_structure_selection_changed.connect(self._on_structure_selection_changed) 26 paintToolSignals.on_duration_selection_changed.connect(self._on_duration_selection_changed) 27 self._update_info_label() 28 29 def Close(self): 30 paintToolSignals.on_paintwork_selection_changed.disconnect(self._on_paint_selection_changed) 31 paintToolSignals.on_structure_selection_changed.disconnect(self._on_structure_selection_changed) 32 paintToolSignals.on_duration_selection_changed.disconnect(self._on_duration_selection_changed) 33 super(SummaryPage, self).Close() 34 35 def _open_page(self): 36 self._live_preview.display = True 37 super(SummaryPage, self)._open_page() 38 39 def _close_page(self): 40 self._live_preview.display = False 41 super(SummaryPage, self)._close_page() 42 43 def _construct_layout(self): 44 self._content_cont = Container(parent=self, name='content', align=uiconst.TOALL) 45 self._create_buttons() 46 self._create_thank_you_message() 47 self._create_live_preview() 48 49 def _create_live_preview(self): 50 self._live_preview = PreviewPanel(name='preview_panel', parent=self) 51 self._live_preview.display = False 52 53 def _create_buttons(self): 54 btn_cont = Container(name='btnCont', parent=self._content_cont, align=uiconst.TOBOTTOM, height=132) 55 btn_group = ButtonGroup(parent=btn_cont, align=uiconst.CENTERTOP, width=2 * BUTTON_WIDTH, button_size_mode=ButtonSizeMode.STRETCH) 56 Button(name='closeBtn', parent=btn_group, label=GetByLabel('UI/Personalization/PaintTool/CloseButton'), variant=ButtonVariant.GHOST, func=self._on_close_clicked) 57 Button(name='newDesignBtn', parent=btn_group, label=GetByLabel('UI/Personalization/PaintTool/NewDesignButton'), func=self._on_new_design_clicked) 58 59 def _create_thank_you_message(self): 60 EveLabelMedium(parent=ContainerAutoSize(parent=self._content_cont, name='delayLabelCont', align=uiconst.TOBOTTOM), name='activationDelayLabel', text=GetByLabel('UI/Personalization/PaintTool/ActivationProcessDelay'), align=uiconst.CENTER, padBottom=51) 61 self._info_label = EveLabelMedium(parent=ContainerAutoSize(parent=self._content_cont, name='infoLabelCont', align=uiconst.TOBOTTOM), name='activationDelayLabel', align=uiconst.CENTER, padBottom=8) 62 EveCaptionLarge(parent=ContainerAutoSize(parent=self._content_cont, name='thanksLabelCont', align=uiconst.TOBOTTOM), name='thankYouLabel', text=GetByLabel('UI/Personalization/PaintTool/ThankPurchase'), align=uiconst.CENTER, padBottom=8) 63 Sprite(parent=Container(parent=self._content_cont, name='logoCont', align=uiconst.TOBOTTOM, height=32), align=uiconst.CENTERTOP, state=uiconst.UI_DISABLED, pos=(0, -18, 34, 32), texturePath='res:/UI/Texture/classes/paintTool/paragon_logo.png') 64 65 def _update_info_label(self): 66 duration = paintToolSelections.SELECTED_DURATION / 86400 if paintToolSelections.SELECTED_DURATION > 0 else 0 67 self._info_label.text = GetByLabel('UI/Personalization/PaintTool/ActivatedLicenseDetails', numStructures=len(paintToolSelections.SELECTED_STRUCTURES), numDays=duration) 68 69 def _on_close_clicked(self, *args): 70 paintToolSignals.on_close_window_requested() 71 72 def _on_new_design_clicked(self, *args): 73 paintToolSelections.SELECTED_PAGE.set(paintToolConst.STRUCTURE_SELECTION_PAGE_ID) 74 75 def _on_paint_selection_changed(self, _slot_id, _paint_id): 76 self._live_preview.update(paintToolSelections.SELECTED_STRUCTURE_TYPE.get(), fit_in_view=False) 77 78 def _on_structure_selection_changed(self, *_args): 79 self._update_info_label() 80 81 def _on_duration_selection_changed(self): 82 self._update_info_label()