eric6/Preferences/ConfigurationPages/EditorAPIsPage.py

changeset 7164
6da6a0a5a448
parent 6942
2602857055c5
child 7229
53054eb5b15a
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()

eric ide

mercurial