def isSystemProfile(self): """Checks if this profile is a system profile. System profiles can only be hidden, not removed completely. @return True, if this is a system profile. """ locations = [paths.getSystemPath(paths.PROFILES)] + \ paths.getBundlePaths(paths.PROFILES) for loc in locations: if os.path.exists(os.path.join(loc, self.getFileName())): return True return False
def restore(): """Reads all the profiles from disk. Restores the currently active profile as well. This function has to be called after starting the program before any profiles are accessed. System profiles that aren't present in the user's profile directory are copied to the user's profile directory. """ global defaults global profiles global restoredActiveId # By default, restore selection to the Defaults profile. restoredActiveId = 'defaults' # Clear the current profile list. profiles = [] systemProfilePaths = [paths.getSystemPath(paths.PROFILES)] + \ paths.getBundlePaths(paths.PROFILES) userProfilePath = paths.getUserPath(paths.PROFILES) # List all the system and user profiles. availSystem = _listProfilesIn(systemProfilePaths) availUser = _listProfilesIn([userProfilePath]) # We are going to load only the profiles in the user's direcory, # but before that make sure that the user has an instance of each # system profile. for sysFile in availSystem: identifier = paths.getBase(sysFile) # Does this exist in the user's directory? gotIt = False for userFile in availUser: if paths.getBase(userFile) == identifier: gotIt = True break if not gotIt: # Since the system profile does not exist on the user, # copy it to the user profile directory. shutil.copyfile( sysFile, os.path.join(userProfilePath, os.path.basename(sysFile))) # Find every profile in system's and user's profile directories. # Files in the user's directory augment the files in the system # directory. for name in _listProfilesIn([userProfilePath]): load(os.path.join(userProfilePath, name), False) logger.show() defaults = get('defaults') if defaults is None: # Recreate the Defaults profile. load(os.path.join(systemProfilePath, "defaults.prof"), False) defaults = get('defaults') logger.show() # Set the default language. lang = defaults.getValue('language') if lang: language.change(lang.getValue()) # Send profile-loaded notifications. for p in profiles: if not p.isHidden(): events.send(events.ProfileNotify(p)) # Restore the previously active profile. prof = get(restoredActiveId) if prof: setActive(prof) else: setActive(defaults)
def restore(): """Reads all the profiles from disk. Restores the currently active profile as well. This function has to be called after starting the program before any profiles are accessed. System profiles that aren't present in the user's profile directory are copied to the user's profile directory. """ global defaults global profiles global restoredActiveId # By default, restore selection to the Defaults profile. restoredActiveId = 'defaults' # Clear the current profile list. profiles = [] systemProfilePaths = [paths.getSystemPath(paths.PROFILES)] + \ paths.getBundlePaths(paths.PROFILES) userProfilePath = paths.getUserPath(paths.PROFILES) # List all the system and user profiles. availSystem = _listProfilesIn(systemProfilePaths) availUser = _listProfilesIn([userProfilePath]) # We are going to load only the profiles in the user's direcory, # but before that make sure that the user has an instance of each # system profile. for sysFile in availSystem: identifier = paths.getBase(sysFile) # Does this exist in the user's directory? gotIt = False for userFile in availUser: if paths.getBase(userFile) == identifier: gotIt = True break if not gotIt: # Since the system profile does not exist on the user, # copy it to the user profile directory. shutil.copyfile(sysFile, os.path.join(userProfilePath, os.path.basename(sysFile))) # Find every profile in system's and user's profile directories. # Files in the user's directory augment the files in the system # directory. for name in _listProfilesIn([userProfilePath]): load(os.path.join(userProfilePath, name), False) logger.show() defaults = get('defaults') if defaults is None: # Recreate the Defaults profile. load(os.path.join(systemProfilePath, "defaults.prof"), False) defaults = get('defaults') logger.show() # Set the default language. lang = defaults.getValue('language') if lang: language.change(lang.getValue()) # Send profile-loaded notifications. for p in profiles: if not p.isHidden(): events.send(events.ProfileNotify(p)) # Restore the previously active profile. prof = get(restoredActiveId) if prof: setActive(prof) else: setActive(defaults)