64 self.newProject = new |
64 self.newProject = new |
65 self.transPropertiesDlg = None |
65 self.transPropertiesDlg = None |
66 self.spellPropertiesDlg = None |
66 self.spellPropertiesDlg = None |
67 self.makePropertiesDlg = None |
67 self.makePropertiesDlg = None |
68 self.__fileTypesDict = {} |
68 self.__fileTypesDict = {} |
69 |
|
70 patterns = [] |
|
71 for pattern, filetype in self.project.getProjectData( |
|
72 dataKey="FILETYPES" |
|
73 ).items(): |
|
74 if filetype == "SOURCES": |
|
75 patterns.append(pattern) |
|
76 filters = self.tr("Source Files ({0});;All Files (*)").format( |
|
77 " ".join(sorted(patterns)) |
|
78 ) |
|
79 self.mainscriptPicker.setFilters(filters) |
|
80 |
69 |
81 self.languageComboBox.addItems(project.getProgrammingLanguages()) |
70 self.languageComboBox.addItems(project.getProgrammingLanguages()) |
82 |
71 |
83 projectTypes = [] |
72 projectTypes = [] |
84 for projectTypeItem in project.getProjectTypes().items(): |
73 for projectTypeItem in project.getProjectTypes().items(): |
182 |
171 |
183 self.__origProgrammingLanguage = self.languageComboBox.currentText() |
172 self.__origProgrammingLanguage = self.languageComboBox.currentText() |
184 self.__origMixedFlag = self.mixedLanguageCheckBox.isChecked() |
173 self.__origMixedFlag = self.mixedLanguageCheckBox.isChecked() |
185 self.__origProjectType = self.getProjectType() |
174 self.__origProjectType = self.getProjectType() |
186 |
175 |
|
176 self.__initFileTypesDict(force=True) |
|
177 |
187 self.languageComboBox.currentTextChanged.connect(self.__initFileTypesDict) |
178 self.languageComboBox.currentTextChanged.connect(self.__initFileTypesDict) |
188 self.mixedLanguageCheckBox.stateChanged.connect(self.__initFileTypesDict) |
179 self.mixedLanguageCheckBox.stateChanged.connect(self.__initFileTypesDict) |
189 self.projectTypeComboBox.currentIndexChanged.connect(self.__initFileTypesDict) |
180 self.projectTypeComboBox.currentIndexChanged.connect(self.__initFileTypesDict) |
190 |
181 |
191 self.buttonBox.button(QDialogButtonBox.StandardButton.Ok).setEnabled( |
182 self.buttonBox.button(QDialogButtonBox.StandardButton.Ok).setEnabled( |
192 bool(self.dirPicker.text()) |
183 bool(self.dirPicker.text()) |
193 and self.dirPicker.text() not in self.__initPaths |
184 and self.dirPicker.text() not in self.__initPaths |
194 ) |
185 ) |
|
186 |
|
187 def __setMainScriptPickerFilters(self): |
|
188 """ |
|
189 Private method to set the filters for the main script file picker. |
|
190 """ |
|
191 patterns = [] |
|
192 for pattern, filetype in self.__fileTypesDict.items(): |
|
193 if filetype == "SOURCES": |
|
194 patterns.append(pattern) |
|
195 filters = ( |
|
196 self.tr("Source Files ({0});;All Files (*)").format( |
|
197 " ".join(sorted(patterns)) |
|
198 ) |
|
199 if patterns |
|
200 else self.tr("All Files (*)") |
|
201 ) |
|
202 self.mainscriptPicker.setFilters(filters) |
195 |
203 |
196 def __populateLicenseComboBox(self): |
204 def __populateLicenseComboBox(self): |
197 """ |
205 """ |
198 Private method to populate the license selector with the list of trove |
206 Private method to populate the license selector with the list of trove |
199 license types. |
207 license types. |
381 @rtype str |
389 @rtype str |
382 """ |
390 """ |
383 return os.path.abspath(self.dirPicker.text()) |
391 return os.path.abspath(self.dirPicker.text()) |
384 |
392 |
385 @pyqtSlot() |
393 @pyqtSlot() |
386 def __initFileTypesDict(self): |
394 def __initFileTypesDict(self, force=False): |
387 """ |
395 """ |
388 Private slot to (re-)initialize the filetype dictionary. |
396 Private slot to (re-)initialize the filetype dictionary. |
|
397 |
|
398 @param force flag indicating to force the initialization (defaults to False) |
|
399 @type bool (optional) |
389 """ |
400 """ |
390 if ( |
401 if ( |
391 self.__origProgrammingLanguage != self.languageComboBox.currentText() |
402 force |
|
403 or self.__origProgrammingLanguage != self.languageComboBox.currentText() |
392 or self.__origMixedFlag != self.mixedLanguageCheckBox.isChecked() |
404 or self.__origMixedFlag != self.mixedLanguageCheckBox.isChecked() |
393 or self.__origProjectType != self.getProjectType() |
405 or self.__origProjectType != self.getProjectType() |
394 ): |
406 ): |
395 # any of the defining data got changed |
407 # any of the defining data got changed |
396 self.__fileTypesDict = self.project.defaultFileTypes( |
408 self.__fileTypesDict = self.project.defaultFileTypes( |
399 self.getProjectType(), |
411 self.getProjectType(), |
400 ) |
412 ) |
401 else: |
413 else: |
402 # all of the defining data was changed back to original |
414 # all of the defining data was changed back to original |
403 self.__fileTypesDict = self.project.getProjectData(dataKey="FILETYPES") |
415 self.__fileTypesDict = self.project.getProjectData(dataKey="FILETYPES") |
|
416 |
|
417 self.__setMainScriptPickerFilters() |
404 |
418 |
405 @pyqtSlot() |
419 @pyqtSlot() |
406 def on_filetypesButton_clicked(self): |
420 def on_filetypesButton_clicked(self): |
407 """ |
421 """ |
408 Private slot to open a dialog to edit the filetype associations. |
422 Private slot to open a dialog to edit the filetype associations. |
426 ) |
440 ) |
427 |
441 |
428 dlg = FiletypeAssociationDialog(self.project, self.__fileTypesDict) |
442 dlg = FiletypeAssociationDialog(self.project, self.__fileTypesDict) |
429 if dlg.exec() == QDialog.DialogCode.Accepted: |
443 if dlg.exec() == QDialog.DialogCode.Accepted: |
430 self.__fileTypesDict = dlg.getData() |
444 self.__fileTypesDict = dlg.getData() |
|
445 |
|
446 self.__setMainScriptPickerFilters() |
431 |
447 |
432 def storeData(self): |
448 def storeData(self): |
433 """ |
449 """ |
434 Public method to store the entered/modified data. |
450 Public method to store the entered/modified data. |
435 """ |
451 """ |