viewcontroller.py (3612B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\eveclientqatools\sofpreviewer\visualization\viewcontroller.py 2 from __future__ import print_function 3 from __future__ import absolute_import 4 from .view import VisualizationView 5 from .viewmodel import RightViewModel 6 import evegraphics.utils as gfxutils 7 import fsdBuiltData.common.graphicMaterialSets as graphicMaterialSets 8 from eveclientqatools.sofpreviewer import viewhelper as ViewHelper 9 10 class VisualizationViewController(object): 11 12 def __init__(self, model, parentController, parentView): 13 self.parentController = parentController 14 self.parentView = parentView 15 self.model = model 16 self.viewModel = RightViewModel(self.model) 17 self.view = None 18 19 def ShowUI(self, parentContainer): 20 self.view = VisualizationView(self) 21 self.view.Setup(parentContainer, self.viewModel) 22 return self.view 23 24 def _FilterMaterialSet(self, filterByRace): 25 self.parentController.FilterMaterialSet(filterByRace) 26 27 def GetCurrentMaterialSet(self): 28 materialSetID = self.GetCurrentMaterialSetID() 29 print('trying to find materialset for ' + str(materialSetID)) 30 materialSet = graphicMaterialSets.GetGraphicMaterialSet(materialSetID) 31 return materialSet 32 33 def GetCurrentMaterialSetID(self): 34 if not hasattr(self.view, 'materialSetIDCombo'): 35 return -1 36 return self.view.materialSetIDCombo.GetValue() 37 38 def FilterMaterialSet(self, options): 39 self.view.materialSetIDCombo.LoadOptions(options) 40 if hasattr(self, 'view'): 41 ViewHelper.TrySettingComboValue(self.view.materialSetIDCombo, 0) 42 43 def AppendResPathToDna(self, dna): 44 if self.viewModel.currentResPathInsert is not None: 45 dna += ':respathinsert?' + str(self.viewModel.currentResPathInsert) 46 return dna 47 48 def AppendVariantToDna(self, dna): 49 if self.viewModel.currentVariant != 'None': 50 dna += ':variant?' + str(self.viewModel.currentVariant) 51 return dna 52 53 def RefreshStateMachine(self, stateMachineController): 54 self.view.RefreshStateMachine(stateMachineController) 55 56 @property 57 def currentDirtLevel(self): 58 return self.viewModel.currentDirtLevel 59 60 def OnResPathInsertChange(self, *args): 61 resPathInsert = self.view.resPathInsertEdit.GetValue() 62 print('new respathinsert: ' + resPathInsert) 63 if len(resPathInsert) == 0: 64 self.viewModel.currentResPathInsert = None 65 else: 66 self.viewModel.currentResPathInsert = resPathInsert 67 self.parentController.UpdatePreviewShip() 68 69 def OnPatternComboChange(self, comboBox, pattern, value): 70 self.parentController.OnPatternComboChange(comboBox, pattern, value) 71 72 def OnDirtSliderChange(self, slider): 73 self.viewModel.currentDirtLevel = gfxutils.RemapDirtLevel(slider.GetValue()) 74 self.parentController.UpdatePreviewShip() 75 76 def OnVariantComboChange(self, comboBox, variant, value): 77 self.viewModel.currentVariant = variant 78 self.parentController.UpdatePreviewShip() 79 80 def OnMaterialSetFiltered(self, checkbox): 81 materialSetFiltered = checkbox.GetValue() 82 self.parentController.FilterMaterialSet(materialSetFiltered) 83 84 def _OnMaterialSetIDChange(self, *args): 85 self.parentController.OnMaterialSetIDChange(args) 86 87 def OnMaterialSetIDChange(self, materialSet): 88 self.view.resPathInsertEdit.SetValue(graphicMaterialSets.GetResPathInsert(materialSet, '')) 89 self.OnResPathInsertChange()