viewcontroller.py (3273B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\eveclientqatools\sofpreviewer\materialselection\viewcontroller.py 2 from __future__ import absolute_import 3 from .viewmodel import MaterialSelectionViewModel 4 from .view import MaterialSelectionView 5 import fsdBuiltData.common.graphicMaterialSets as graphicMaterialSets 6 from eveclientqatools.sofpreviewer import viewhelper as ViewHelper 7 8 class MaterialSelectionViewController(object): 9 10 def __init__(self, model, parentController, parentView): 11 self.parentController = parentController 12 self.parentView = parentView 13 self.model = model 14 self.viewModel = MaterialSelectionViewModel(self.model) 15 self.view = None 16 17 def ShowUI(self, parentContainer): 18 self.view = MaterialSelectionView(self) 19 self.view.Setup(parentContainer, self.viewModel) 20 return self.view 21 22 def OnMat1ComboChange(self, comboBox, material, value): 23 self.viewModel.currentMat[0] = material 24 self.parentController.UpdatePreviewShip() 25 26 def OnMat2ComboChange(self, comboBox, material, value): 27 self.viewModel.currentMat[1] = material 28 self.parentController.UpdatePreviewShip() 29 30 def OnMat3ComboChange(self, comboBox, material, value): 31 self.viewModel.currentMat[2] = material 32 self.parentController.UpdatePreviewShip() 33 34 def OnMat4ComboChange(self, comboBox, material, value): 35 self.viewModel.currentMat[3] = material 36 self.parentController.UpdatePreviewShip() 37 38 def OnPatternMat1ComboChange(self, comboBox, material, value): 39 self.viewModel.currentPatternMat[0] = material 40 self.parentController.UpdatePreviewShip() 41 42 def OnPatternMat2ComboChange(self, comboBox, material, value): 43 self.viewModel.currentPatternMat[1] = material 44 self.parentController.UpdatePreviewShip() 45 46 def UpdateCombobox(self, materialSet, func, combo, onComboChange): 47 item = func(materialSet, 'None') 48 idx = ViewHelper.GetComboListIndex(self.model.sofMaterials, item) 49 combo.SelectItemByValue(idx) 50 onComboChange(combo, item, idx) 51 52 def OnMaterialSetIDChange(self, materialSet): 53 changes = [(graphicMaterialSets.GetMaterial1, self.view.matcombo1, self.OnMat1ComboChange), 54 (graphicMaterialSets.GetMaterial2, self.view.matcombo2, self.OnMat2ComboChange), 55 (graphicMaterialSets.GetMaterial3, self.view.matcombo3, self.OnMat3ComboChange), 56 (graphicMaterialSets.GetMaterial4, self.view.matcombo4, self.OnMat4ComboChange), 57 (graphicMaterialSets.GetCustomMaterial1, self.view.matcombo5, self.OnPatternMat1ComboChange), 58 (graphicMaterialSets.GetCustomMaterial2, self.view.matcombo6, self.OnPatternMat2ComboChange)] 59 for change in changes: 60 self.UpdateCombobox(materialSet, *change) 61 62 def AppendMaterialToDna(self, dna): 63 if any((x != 'None' for x in self.viewModel.currentMat)): 64 dna += ':material?' + str(self.viewModel.currentMat[0]) + ';' + str(self.viewModel.currentMat[1]) + ';' + str(self.viewModel.currentMat[2]) + ';' + str(self.viewModel.currentMat[3]) 65 return dna 66 67 @property 68 def currentPatternMat(self): 69 return self.viewModel.currentPatternMat