Project/PropertiesDialog.py

changeset 2040
4cefd094353b
parent 1940
324e43e29b41
child 2302
f29e9405c851
equal deleted inserted replaced
2039:fa41ccd7f7bc 2040:4cefd094353b
50 self.spellPropertiesDlg = None 50 self.spellPropertiesDlg = None
51 51
52 self.dirCompleter = E5DirCompleter(self.dirEdit) 52 self.dirCompleter = E5DirCompleter(self.dirEdit)
53 self.mainscriptCompleter = E5FileCompleter(self.mainscriptEdit) 53 self.mainscriptCompleter = E5FileCompleter(self.mainscriptEdit)
54 54
55 projectLanguages = sorted( 55 self.languageComboBox.addItems(project.getProgrammingLanguages())
56 e5App().getObject("DebugServer").getSupportedLanguages())
57 self.languageComboBox.addItems(projectLanguages)
58 56
59 projectTypes = project.getProjectTypes() 57 projectTypes = project.getProjectTypes()
60 for projectTypeKey in sorted(projectTypes.keys()): 58 self.projectTypeComboBox.clear()
61 self.projectTypeComboBox.addItem(projectTypes[projectTypeKey], projectTypeKey) 59 for projectType in sorted(projectTypes.keys()):
60 self.projectTypeComboBox.addItem(projectTypes[projectType], projectType)
62 61
63 if not new: 62 if not new:
64 name = os.path.splitext(self.project.pfile)[0] 63 name = os.path.splitext(self.project.pfile)[0]
65 self.nameEdit.setText(os.path.basename(name)) 64 self.nameEdit.setText(os.path.basename(name))
66 self.languageComboBox.setCurrentIndex( 65 self.languageComboBox.setCurrentIndex(
67 self.languageComboBox.findText(self.project.pdata["PROGLANGUAGE"][0])) 66 self.languageComboBox.findText(self.project.pdata["PROGLANGUAGE"][0]))
68 self.mixedLanguageCheckBox.setChecked(self.project.pdata["MIXEDLANGUAGE"][0]) 67 self.mixedLanguageCheckBox.setChecked(self.project.pdata["MIXEDLANGUAGE"][0])
69 try: 68 curIndex = self.projectTypeComboBox.findData(
70 curIndex = \ 69 self.project.pdata["PROJECTTYPE"][0])
71 self.projectTypeComboBox.findText(
72 projectTypes[self.project.pdata["PROJECTTYPE"][0]])
73 except KeyError:
74 curIndex = -1
75 if curIndex == -1: 70 if curIndex == -1:
76 curIndex = self.projectTypeComboBox.findText(projectTypes["Qt4"]) 71 curIndex = self.projectTypeComboBox.findData("Qt4")
77 self.projectTypeComboBox.setCurrentIndex(curIndex) 72 self.projectTypeComboBox.setCurrentIndex(curIndex)
78 self.dirEdit.setText(self.project.ppath) 73 self.dirEdit.setText(self.project.ppath)
79 try: 74 try:
80 self.versionEdit.setText(self.project.pdata["VERSION"][0]) 75 self.versionEdit.setText(self.project.pdata["VERSION"][0])
81 except IndexError: 76 except IndexError:
119 self.vcsCheckBox.hide() 114 self.vcsCheckBox.hide()
120 else: 115 else:
121 self.languageComboBox.setCurrentIndex( 116 self.languageComboBox.setCurrentIndex(
122 self.languageComboBox.findText("Python3")) 117 self.languageComboBox.findText("Python3"))
123 self.projectTypeComboBox.setCurrentIndex( 118 self.projectTypeComboBox.setCurrentIndex(
124 self.projectTypeComboBox.findText(projectTypes["Qt4"])) 119 self.projectTypeComboBox.findData("Qt4"))
125 hp = Preferences.getMultiProject("Workspace") or Utilities.getHomeDir() 120 hp = Preferences.getMultiProject("Workspace") or Utilities.getHomeDir()
126 self.dirEdit.setText(hp) 121 self.dirEdit.setText(hp)
127 self.versionEdit.setText('0.1') 122 self.versionEdit.setText('0.1')
128 self.vcsLabel.hide() 123 self.vcsLabel.hide()
129 self.vcsInfoButton.hide() 124 self.vcsInfoButton.hide()
130 if not self.project.vcsSoftwareAvailable(): 125 if not self.project.vcsSoftwareAvailable():
131 self.vcsCheckBox.hide() 126 self.vcsCheckBox.hide()
132 127
128 @pyqtSlot(str)
129 def on_languageComboBox_currentIndexChanged(self, language):
130 """
131 Private slot handling the selection of a programming language.
132
133 @param language selected programming language (string)
134 """
135 curProjectType = self.getProjectType()
136
137 self.projectTypeComboBox.clear()
138 projectTypes = self.project.getProjectTypes(language)
139 for projectType in sorted(projectTypes.keys()):
140 self.projectTypeComboBox.addItem(projectTypes[projectType], projectType)
141
142 self.projectTypeComboBox.setCurrentIndex(
143 self.projectTypeComboBox.findData(curProjectType))
144
133 @pyqtSlot() 145 @pyqtSlot()
134 def on_dirButton_clicked(self): 146 def on_dirButton_clicked(self):
135 """ 147 """
136 Private slot to display a directory selection dialog. 148 Private slot to display a directory selection dialog.
137 """ 149 """
141 self.dirEdit.text(), 153 self.dirEdit.text(),
142 E5FileDialog.Options(E5FileDialog.ShowDirsOnly)) 154 E5FileDialog.Options(E5FileDialog.ShowDirsOnly))
143 155
144 if directory: 156 if directory:
145 self.dirEdit.setText(Utilities.toNativeSeparators(directory)) 157 self.dirEdit.setText(Utilities.toNativeSeparators(directory))
146 158
147 @pyqtSlot() 159 @pyqtSlot()
148 def on_spellPropertiesButton_clicked(self): 160 def on_spellPropertiesButton_clicked(self):
149 """ 161 """
150 Private slot to display the spelling properties dialog. 162 Private slot to display the spelling properties dialog.
151 """ 163 """
153 self.spellPropertiesDlg = \ 165 self.spellPropertiesDlg = \
154 SpellingPropertiesDialog(self.project, self.newProject, self) 166 SpellingPropertiesDialog(self.project, self.newProject, self)
155 res = self.spellPropertiesDlg.exec_() 167 res = self.spellPropertiesDlg.exec_()
156 if res == QDialog.Rejected: 168 if res == QDialog.Rejected:
157 self.spellPropertiesDlg.initDialog() # reset the dialogs contents 169 self.spellPropertiesDlg.initDialog() # reset the dialogs contents
158 170
159 @pyqtSlot() 171 @pyqtSlot()
160 def on_transPropertiesButton_clicked(self): 172 def on_transPropertiesButton_clicked(self):
161 """ 173 """
162 Private slot to display the translations properties dialog. 174 Private slot to display the translations properties dialog.
163 """ 175 """
167 else: 179 else:
168 self.transPropertiesDlg.initFilters() 180 self.transPropertiesDlg.initFilters()
169 res = self.transPropertiesDlg.exec_() 181 res = self.transPropertiesDlg.exec_()
170 if res == QDialog.Rejected: 182 if res == QDialog.Rejected:
171 self.transPropertiesDlg.initDialog() # reset the dialogs contents 183 self.transPropertiesDlg.initDialog() # reset the dialogs contents
172 184
173 @pyqtSlot() 185 @pyqtSlot()
174 def on_mainscriptButton_clicked(self): 186 def on_mainscriptButton_clicked(self):
175 """ 187 """
176 Private slot to display a file selection dialog. 188 Private slot to display a file selection dialog.
177 """ 189 """
194 ppath = self.dirEdit.text() 206 ppath = self.dirEdit.text()
195 if ppath: 207 if ppath:
196 ppath = QDir(ppath).absolutePath() + QDir.separator() 208 ppath = QDir(ppath).absolutePath() + QDir.separator()
197 fn = fn.replace(ppath, "") 209 fn = fn.replace(ppath, "")
198 self.mainscriptEdit.setText(Utilities.toNativeSeparators(fn)) 210 self.mainscriptEdit.setText(Utilities.toNativeSeparators(fn))
199 211
200 @pyqtSlot() 212 @pyqtSlot()
201 def on_vcsInfoButton_clicked(self): 213 def on_vcsInfoButton_clicked(self):
202 """ 214 """
203 Private slot to display a vcs information dialog. 215 Private slot to display a vcs information dialog.
204 """ 216 """
206 return 218 return
207 219
208 info = self.project.vcs.vcsRepositoryInfos(self.project.ppath) 220 info = self.project.vcs.vcsRepositoryInfos(self.project.ppath)
209 dlg = VcsRepositoryInfoDialog(self, info) 221 dlg = VcsRepositoryInfoDialog(self, info)
210 dlg.exec_() 222 dlg.exec_()
211 223
212 def getProjectType(self): 224 def getProjectType(self):
213 """ 225 """
214 Public method to get the selected project type. 226 Public method to get the selected project type.
215 227
216 @return selected UI type (string) 228 @return selected UI type (string)
217 """ 229 """
218 return self.projectTypeComboBox.itemData(self.projectTypeComboBox.currentIndex()) 230 return self.projectTypeComboBox.itemData(self.projectTypeComboBox.currentIndex())
219 231
220 def getPPath(self): 232 def getPPath(self):
221 """ 233 """
222 Public method to get the project path. 234 Public method to get the project path.
223 235
224 @return data of the project directory edit (string) 236 @return data of the project directory edit (string)
225 """ 237 """
226 return os.path.abspath(self.dirEdit.text()) 238 return os.path.abspath(self.dirEdit.text())
227 239
228 def storeData(self): 240 def storeData(self):
229 """ 241 """
230 Public method to store the entered/modified data. 242 Public method to store the entered/modified data.
231 """ 243 """
232 self.project.ppath = os.path.abspath(self.dirEdit.text()) 244 self.project.ppath = os.path.abspath(self.dirEdit.text())

eric ide

mercurial