viewcontroller.py (3024B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\eveclientqatools\sofpreviewer\highslotselection\viewcontroller.py 2 from __future__ import absolute_import 3 from .viewmodel import HighSlotSelectionViewModel 4 from .view import HighSlotSelectionView 5 from eve.client.script.environment.model.turretSet import TurretSet 6 import trinity 7 8 class HighSlotSelectionViewController(object): 9 10 def __init__(self, model, parentController, parentView): 11 self._parentController = parentController 12 self._parentView = parentView 13 self._model = model 14 self._dna = parentController.GetPreviewDna() 15 turretLocatorCount = model.GetTurretLocatorCount(dna=self._dna) 16 self.viewModel = HighSlotSelectionViewModel(self._model, turretLocatorCount) 17 self.view = None 18 19 def ShowUI(self, parentContainer): 20 self.view = HighSlotSelectionView(self) 21 self.view.Setup(parentContainer, self.viewModel) 22 return self.view 23 24 def OnTurretSelected(self, comboBox, highSlotItem, index): 25 self.viewModel.selectedHighSlotItem = self.viewModel.availableHighSlots[index] 26 self._PlaceSelectedTurretsOnModel() 27 28 def UpdateDNA(self, dna): 29 self._dna = dna 30 self.viewModel.turretLocatorCount = self._model.GetTurretLocatorCount(self._dna) 31 if self.view is not None: 32 self.view.SetupTurretPicking(self.viewModel.turretLocatorCount) 33 34 def OnTurretChecked(self, checkbox): 35 self._PlaceSelectedTurretsOnModel() 36 37 def _PlaceSelectedTurretsOnModel(self): 38 del self._parentController.shipModel.turretSets[:] 39 for index, checkbox in enumerate(self.view.checkBoxes): 40 checked = checkbox.GetValue() 41 if not checked: 42 continue 43 TurretSet.FitTurret(self._parentController.shipModel, self.viewModel.selectedHighSlotItem.typeID, locatorID=index + 1) 44 45 def OnTurretFilterChanged(self, *args): 46 filter = self.view.turretFilter.GetValue() 47 self.viewModel.availableHighSlots = HighSlotSelectionViewModel.CreateHighSlotSelection(self._model, filter) 48 self.view.RefreshDropDown(self.viewModel) 49 50 def OnShowBannerSetToggled(self, checkbox): 51 checked = checkbox.GetValue() 52 ship = self._parentController.shipModel 53 self.ShowBanner(checked, ship) 54 55 def ShowBanner(self, flag, ship): 56 if ship is None: 57 return 58 for attachment in ship.attachments: 59 if not isinstance(attachment, trinity.EveBannerSet): 60 continue 61 imageMap = attachment.effect.resources.FindByName('ImageMap') 62 if imageMap: 63 if flag: 64 imageMap.resourcePath = 'res:/UI/Texture/previewBannerVertical.dds' 65 else: 66 imageMap.resourcePath = '' 67 68 @property 69 def isShowBannerChecked(self): 70 if self.view is not None: 71 return self.view.showBannerSetCheckbox.GetValue() 72 return False