Project/PropertiesDialog.py

changeset 2040
4cefd094353b
parent 1940
324e43e29b41
child 2302
f29e9405c851
diff -r fa41ccd7f7bc -r 4cefd094353b Project/PropertiesDialog.py
--- a/Project/PropertiesDialog.py	Wed Sep 12 19:41:50 2012 +0200
+++ b/Project/PropertiesDialog.py	Thu Sep 13 18:21:36 2012 +0200
@@ -52,13 +52,12 @@
         self.dirCompleter = E5DirCompleter(self.dirEdit)
         self.mainscriptCompleter = E5FileCompleter(self.mainscriptEdit)
         
-        projectLanguages = sorted(
-            e5App().getObject("DebugServer").getSupportedLanguages())
-        self.languageComboBox.addItems(projectLanguages)
+        self.languageComboBox.addItems(project.getProgrammingLanguages())
         
         projectTypes = project.getProjectTypes()
-        for projectTypeKey in sorted(projectTypes.keys()):
-            self.projectTypeComboBox.addItem(projectTypes[projectTypeKey], projectTypeKey)
+        self.projectTypeComboBox.clear()
+        for projectType in sorted(projectTypes.keys()):
+            self.projectTypeComboBox.addItem(projectTypes[projectType], projectType)
         
         if not new:
             name = os.path.splitext(self.project.pfile)[0]
@@ -66,14 +65,10 @@
             self.languageComboBox.setCurrentIndex(
                 self.languageComboBox.findText(self.project.pdata["PROGLANGUAGE"][0]))
             self.mixedLanguageCheckBox.setChecked(self.project.pdata["MIXEDLANGUAGE"][0])
-            try:
-                curIndex = \
-                    self.projectTypeComboBox.findText(
-                        projectTypes[self.project.pdata["PROJECTTYPE"][0]])
-            except KeyError:
-                curIndex = -1
+            curIndex = self.projectTypeComboBox.findData(
+                self.project.pdata["PROJECTTYPE"][0])
             if curIndex == -1:
-                curIndex = self.projectTypeComboBox.findText(projectTypes["Qt4"])
+                curIndex = self.projectTypeComboBox.findData("Qt4")
             self.projectTypeComboBox.setCurrentIndex(curIndex)
             self.dirEdit.setText(self.project.ppath)
             try:
@@ -121,7 +116,7 @@
             self.languageComboBox.setCurrentIndex(
                 self.languageComboBox.findText("Python3"))
             self.projectTypeComboBox.setCurrentIndex(
-                self.projectTypeComboBox.findText(projectTypes["Qt4"]))
+                self.projectTypeComboBox.findData("Qt4"))
             hp = Preferences.getMultiProject("Workspace") or Utilities.getHomeDir()
             self.dirEdit.setText(hp)
             self.versionEdit.setText('0.1')
@@ -129,7 +124,24 @@
             self.vcsInfoButton.hide()
             if not self.project.vcsSoftwareAvailable():
                 self.vcsCheckBox.hide()
+    
+    @pyqtSlot(str)
+    def on_languageComboBox_currentIndexChanged(self, language):
+        """
+        Private slot handling the selection of a programming language.
         
+        @param language selected programming language (string)
+        """
+        curProjectType = self.getProjectType()
+        
+        self.projectTypeComboBox.clear()
+        projectTypes = self.project.getProjectTypes(language)
+        for projectType in sorted(projectTypes.keys()):
+            self.projectTypeComboBox.addItem(projectTypes[projectType], projectType)
+        
+        self.projectTypeComboBox.setCurrentIndex(
+            self.projectTypeComboBox.findData(curProjectType))
+    
     @pyqtSlot()
     def on_dirButton_clicked(self):
         """
@@ -143,7 +155,7 @@
         
         if directory:
             self.dirEdit.setText(Utilities.toNativeSeparators(directory))
-        
+    
     @pyqtSlot()
     def on_spellPropertiesButton_clicked(self):
         """
@@ -155,7 +167,7 @@
         res = self.spellPropertiesDlg.exec_()
         if res == QDialog.Rejected:
             self.spellPropertiesDlg.initDialog()  # reset the dialogs contents
-        
+    
     @pyqtSlot()
     def on_transPropertiesButton_clicked(self):
         """
@@ -169,7 +181,7 @@
         res = self.transPropertiesDlg.exec_()
         if res == QDialog.Rejected:
             self.transPropertiesDlg.initDialog()  # reset the dialogs contents
-        
+    
     @pyqtSlot()
     def on_mainscriptButton_clicked(self):
         """
@@ -196,7 +208,7 @@
                 ppath = QDir(ppath).absolutePath() + QDir.separator()
                 fn = fn.replace(ppath, "")
             self.mainscriptEdit.setText(Utilities.toNativeSeparators(fn))
-        
+    
     @pyqtSlot()
     def on_vcsInfoButton_clicked(self):
         """
@@ -208,7 +220,7 @@
         info = self.project.vcs.vcsRepositoryInfos(self.project.ppath)
         dlg = VcsRepositoryInfoDialog(self, info)
         dlg.exec_()
-        
+    
     def getProjectType(self):
         """
         Public method to get the selected project type.
@@ -216,7 +228,7 @@
         @return selected UI type (string)
         """
         return self.projectTypeComboBox.itemData(self.projectTypeComboBox.currentIndex())
-        
+    
     def getPPath(self):
         """
         Public method to get the project path.
@@ -224,7 +236,7 @@
         @return data of the project directory edit (string)
         """
         return os.path.abspath(self.dirEdit.text())
-        
+    
     def storeData(self):
         """
         Public method to store the entered/modified data.

eric ide

mercurial