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

allProfilesController.py (2983B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\structure\structureSettings\controllers\allProfilesController.py
      2 from eve.client.script.ui.structure.structureSettings.controllers.slimProfileController import SlimStructureProfileController
      3 from signals import Signal
      4 REMOTE_PROFILE_SVC = 'structureProfiles'
      5 
      6 class AllStructureProfileController(object):
      7 
      8     def __init__(self):
      9         self.allSlimProfileControllers = {}
     10         self.on_profile_saved = Signal(signalName='on_profile_saved')
     11         self.on_profile_assigned = Signal(signalName='on_profile_assigned')
     12         self.profileControllersLoad = False
     13         self.remoteStructureSvc = sm.RemoteSvc(REMOTE_PROFILE_SVC)
     14 
     15     def GetProfiles(self, force = False):
     16         if not self.profileControllersLoad or force:
     17             self.BuildProfileDict()
     18         return self.allSlimProfileControllers.copy()
     19 
     20     def GetProfileKeys(self):
     21         if not self.profileControllersLoad:
     22             self.BuildProfileDict()
     23         return self.allSlimProfileControllers.keys()
     24 
     25     def BuildProfileDict(self, onlyAddMissing = False):
     26         profileData = self.remoteStructureSvc.GetProfiles()
     27         for eachProfile in profileData:
     28             if onlyAddMissing and eachProfile.profileID in self.allSlimProfileControllers:
     29                 continue
     30             self.AddControllerToDict(eachProfile)
     31 
     32         self.profileControllersLoad = True
     33 
     34     def AddControllerToDict(self, eachProfile):
     35         profileController = SlimStructureProfileController(eachProfile.profileID, profileData=eachProfile)
     36         self.allSlimProfileControllers[eachProfile.profileID] = profileController
     37         profileController.on_profile_saved.connect(self.OnProfileSaved)
     38 
     39     def OnProfileSaved(self, profileID):
     40         self.GetProfiles(force=True)
     41         self.on_profile_saved(profileID)
     42 
     43     def GetNewProfileController(self, name, desc):
     44         profileID = self.remoteStructureSvc.CreateProfile(name, desc)
     45         if profileID not in self.allSlimProfileControllers:
     46             self.BuildProfileDict(onlyAddMissing=True)
     47         return self.allSlimProfileControllers.get(profileID, None)
     48 
     49     def GetSlimProfileController(self, profileID):
     50         return self.allSlimProfileControllers.get(profileID, None)
     51 
     52     def UpdateProfileIDForStructures(self, profileID, structureIDs):
     53         self.remoteStructureSvc.ChangeProfiles(structureIDs, profileID)
     54 
     55     def DeleteProfile(self, profileID):
     56         self.remoteStructureSvc.DeleteProfile(profileID)
     57         self.allSlimProfileControllers.pop(profileID)
     58 
     59     def DuplicateProfile(self, profileID):
     60         newProfileID = self.remoteStructureSvc.DuplicateProfile(profileID)
     61         if newProfileID not in self.allSlimProfileControllers:
     62             self.BuildProfileDict(onlyAddMissing=True)
     63         self.OnProfileSaved(newProfileID)
     64 
     65     def Reset(self):
     66         self.allSlimProfileControllers.clear()
     67         self.profileControllersLoad = False