Fri, 29 Nov 2013 18:39:19 +0100
Fixed an issue caused by incorrect handling of the projectChanged signal.
--- a/AssistantEric/APIsManager.py Fri Oct 25 19:39:53 2013 +0200 +++ b/AssistantEric/APIsManager.py Fri Nov 29 18:39:19 2013 +0100 @@ -587,6 +587,7 @@ self.__inPreparation = False self.__worker = None self.__workerQueue = [] + self.__opened = False self.__language = language if self.__language == ApisNameProject: @@ -663,19 +664,35 @@ if self.__worker is not None: self.__worker.wait(5000) - QSqlDatabase.database(self.__language).close() - QSqlDatabase.removeDatabase(self.__language) + if QSqlDatabase.database(self.__language).isOpen(): + QSqlDatabase.database(self.__language).close() + QSqlDatabase.removeDatabase(self.__language) + + self.__opened = False def __openApiDb(self): """ Private method to open the API database. + + @return flag indicating the database status (boolean) """ db = QSqlDatabase.database(self.__language, False) if not db.isValid(): # the database connection is a new one db = QSqlDatabase.addDatabase("QSQLITE", self.__language) - db.setDatabaseName(self._apiDbName()) - db.open() + dbName = self._apiDbName() + if self.__language == ApisNameProject and \ + not os.path.exists( + self.__project.getProjectManagementDir()): + opened = False + else: + db.setDatabaseName(dbName) + opened = db.open() + if not opened: + QSqlDatabase.removeDatabase(self.__language) + else: + opened = True + return opened def __createApiDB(self): """ @@ -918,12 +935,13 @@ """ Private method to open the API database. """ - self.__openApiDb() - if not self.__isPrepared(): - self.__createApiDB() - - # prepare the database if neccessary - self.prepareAPIs() + self.__opened = self.__openApiDb() + if self.__opened: + if not self.__isPrepared(): + self.__createApiDB() + + # prepare the database if neccessary + self.prepareAPIs() def __getProjectFormSources(self, normalized=False): """ @@ -1079,8 +1097,9 @@ """ Private slot to handle the projectChanged signal. """ - self.__projectClosed() - self.__projectOpened() + if self.__opened: + self.__projectClosed() + self.__projectOpened() def editorSaved(self, filename): """
--- a/AssistantEric/Documentation/source/Plugin_Assistant_Eric.AssistantEric.APIsManager.html Fri Oct 25 19:39:53 2013 +0200 +++ b/AssistantEric/Documentation/source/Plugin_Assistant_Eric.AssistantEric.APIsManager.html Fri Nov 29 18:39:19 2013 +0100 @@ -383,7 +383,12 @@ <b>__openApiDb</b>(<i></i>) <p> Private method to open the API database. -</p><a NAME="DbAPIs.__processQueue" ID="DbAPIs.__processQueue"></a> +</p><dl> +<dt>Returns:</dt> +<dd> +flag indicating the database status (boolean) +</dd> +</dl><a NAME="DbAPIs.__processQueue" ID="DbAPIs.__processQueue"></a> <h4>DbAPIs.__processQueue</h4> <b>__processQueue</b>(<i></i>) <p>
--- a/ChangeLog Fri Oct 25 19:39:53 2013 +0200 +++ b/ChangeLog Fri Nov 29 18:39:19 2013 +0100 @@ -1,5 +1,8 @@ ChangeLog --------- +Version 2.6.2: +- bug fixes + Version 2.6.1: - fixed some code style issues
--- a/PluginAssistantEric.py Fri Oct 25 19:39:53 2013 +0200 +++ b/PluginAssistantEric.py Fri Nov 29 18:39:19 2013 +0100 @@ -25,7 +25,7 @@ author = "Detlev Offenbach <detlev@die-offenbachs.de>" autoactivate = True deactivateable = True -version = "2.6.1" +version = "2.6.2" className = "AssistantEricPlugin" packageName = "AssistantEric" shortDescription = "Alternative autocompletion and calltips provider."