AssistantEric/APIsManager.py

changeset 86
11088ce2312f
parent 84
67197c1f11eb
child 87
55b5831bcad0
equal deleted inserted replaced
85:acca5e9c6b9c 86:11088ce2312f
585 self.setObjectName("DbAPIs_{0}".format(language)) 585 self.setObjectName("DbAPIs_{0}".format(language))
586 586
587 self.__inPreparation = False 587 self.__inPreparation = False
588 self.__worker = None 588 self.__worker = None
589 self.__workerQueue = [] 589 self.__workerQueue = []
590 self.__opened = False
590 591
591 self.__language = language 592 self.__language = language
592 if self.__language == ApisNameProject: 593 if self.__language == ApisNameProject:
593 self.__initAsProject() 594 self.__initAsProject()
594 else: 595 else:
661 not self.__worker.isFinished(): 662 not self.__worker.isFinished():
662 self.__worker.terminate() 663 self.__worker.terminate()
663 if self.__worker is not None: 664 if self.__worker is not None:
664 self.__worker.wait(5000) 665 self.__worker.wait(5000)
665 666
666 QSqlDatabase.database(self.__language).close() 667 if QSqlDatabase.database(self.__language).isOpen():
667 QSqlDatabase.removeDatabase(self.__language) 668 QSqlDatabase.database(self.__language).close()
669 QSqlDatabase.removeDatabase(self.__language)
670
671 self.__opened = False
668 672
669 def __openApiDb(self): 673 def __openApiDb(self):
670 """ 674 """
671 Private method to open the API database. 675 Private method to open the API database.
676
677 @return flag indicating the database status (boolean)
672 """ 678 """
673 db = QSqlDatabase.database(self.__language, False) 679 db = QSqlDatabase.database(self.__language, False)
674 if not db.isValid(): 680 if not db.isValid():
675 # the database connection is a new one 681 # the database connection is a new one
676 db = QSqlDatabase.addDatabase("QSQLITE", self.__language) 682 db = QSqlDatabase.addDatabase("QSQLITE", self.__language)
677 db.setDatabaseName(self._apiDbName()) 683 dbName = self._apiDbName()
678 db.open() 684 if self.__language == ApisNameProject and \
685 not os.path.exists(
686 self.__project.getProjectManagementDir()):
687 opened = False
688 else:
689 db.setDatabaseName(dbName)
690 opened = db.open()
691 if not opened:
692 QSqlDatabase.removeDatabase(self.__language)
693 else:
694 opened = True
695 return opened
679 696
680 def __createApiDB(self): 697 def __createApiDB(self):
681 """ 698 """
682 Private method to create an API database. 699 Private method to create an API database.
683 """ 700 """
916 933
917 def __openAPIs(self): 934 def __openAPIs(self):
918 """ 935 """
919 Private method to open the API database. 936 Private method to open the API database.
920 """ 937 """
921 self.__openApiDb() 938 self.__opened = self.__openApiDb()
922 if not self.__isPrepared(): 939 if self.__opened:
923 self.__createApiDB() 940 if not self.__isPrepared():
924 941 self.__createApiDB()
925 # prepare the database if neccessary 942
926 self.prepareAPIs() 943 # prepare the database if neccessary
944 self.prepareAPIs()
927 945
928 def __getProjectFormSources(self, normalized=False): 946 def __getProjectFormSources(self, normalized=False):
929 """ 947 """
930 Private method to get the source files for the project forms. 948 Private method to get the source files for the project forms.
931 949
1077 1095
1078 def __projectChanged(self): 1096 def __projectChanged(self):
1079 """ 1097 """
1080 Private slot to handle the projectChanged signal. 1098 Private slot to handle the projectChanged signal.
1081 """ 1099 """
1082 self.__projectClosed() 1100 if self.__opened:
1083 self.__projectOpened() 1101 self.__projectClosed()
1102 self.__projectOpened()
1084 1103
1085 def editorSaved(self, filename): 1104 def editorSaved(self, filename):
1086 """ 1105 """
1087 Public slot to handle the editorSaved signal. 1106 Public slot to handle the editorSaved signal.
1088 1107

eric ide

mercurial