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