def __init__(self, language, forPreparation = False, parent = None): """ Constructor @param language language of the APIs object (string) @param forPreparation flag indicating this object is just needed for a preparation process (boolean) @param parent reference to the parent object (QObject) """ QObject.__init__(self, parent) self.setObjectName("APIs_%s" % language) self.__inPreparation = False self.__language = language self.__forPreparation = forPreparation self.__lexer = Lexers.getLexer(self.__language) self.__apifiles = Preferences.getEditorAPI(self.__language) self.__apifiles.sort() if self.__lexer is None: self.__apis = None else: self.__apis = QsciAPIs(self.__lexer) self.connect(self.__apis, SIGNAL("apiPreparationFinished()"), self.__apiPreparationFinished) self.connect(self.__apis, SIGNAL("apiPreparationCancelled()"), self.__apiPreparationCancelled) self.connect(self.__apis, SIGNAL("apiPreparationStarted()"), self.__apiPreparationStarted) self.__loadAPIs()
def getAPIs(self, language, forPreparation = False): """ Public method to get an apis object for autocompletion/calltips. This method creates and loads an APIs object dynamically upon request. This saves memory for languages, that might not be needed at the moment. @param language the language of the requested api object (string or QString) @param forPreparation flag indicating the requested api object is just needed for a preparation process (boolean) @return the apis object (APIs) """ language = unicode(language) if forPreparation: return APIs(language, forPreparation = forPreparation) else: try: return self.__apis[language] except KeyError: if language in Lexers.getSupportedLanguages().keys(): # create the api object self.__apis[language] = APIs(language) return self.__apis[language] else: return None