diff -r 00166038bba5 -r 6da6a0a5a448 eric6/Preferences/ConfigurationPages/EditorAPIsPage.py --- a/eric6/Preferences/ConfigurationPages/EditorAPIsPage.py Fri Aug 23 20:08:33 2019 +0200 +++ b/eric6/Preferences/ConfigurationPages/EditorAPIsPage.py Sat Aug 24 16:33:42 2019 +0200 @@ -58,20 +58,8 @@ self.apiLanguageComboBox.addItem( QScintilla.Lexers.getLanguageIcon(lang, False), lang) - apiProjectTypes = sorted( - [("", "")] + - [(trans, ptype) for ptype, trans in - e5App().getObject("Project").getProjectTypes().items() - ] - ) - for projectTypeStr, projectType in apiProjectTypes: - self.projectTypeComboBox.addItem(projectTypeStr, projectType) self.__currentApiLanguage = "" - self.__currentApiProjectTypeIndex = 0 - self.__currentApiProjectType = "" self.on_apiLanguageComboBox_activated(self.__currentApiLanguage) - self.on_projectTypeComboBox_activated( - self.__currentApiProjectTypeIndex) def __apiKey(self, language, projectType): """ @@ -126,12 +114,37 @@ """ Private slot to fill the api listbox of the api page. - @param language selected API language (string) + @param language selected API language + @type str """ if self.__currentApiLanguage == language: return - self.__fillApisList() + self.__fillProjectTypeComboBox(language) + + def __fillProjectTypeComboBox(self, language): + """ + Private slot to fill the selection of available project types for the + given language. + + @param language selected API language + @type str + """ + self.projectTypeComboBox.clear() + + apiProjectTypes = sorted( + [("", "")] + + [(trans, ptype) for ptype, trans in + e5App().getObject("Project").getProjectTypes(language).items() + ] + ) + for projectTypeStr, projectType in apiProjectTypes: + self.projectTypeComboBox.addItem(projectTypeStr, projectType) + + self.__currentApiProjectTypeIndex = -1 + self.__currentApiProjectType = "" + + self.on_projectTypeComboBox_activated(0) def __fillApisList(self): """ @@ -334,9 +347,10 @@ @param state state data generated by saveState """ self.apiLanguageComboBox.setCurrentIndex(state[0]) - self.projectTypeComboBox.setCurrentIndex(state[1]) self.on_apiLanguageComboBox_activated( self.apiLanguageComboBox.currentText()) + + self.projectTypeComboBox.setCurrentIndex(state[1]) self.on_projectTypeComboBox_activated(state[1]) @pyqtSlot()