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 |