NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

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()