src/eric7/Project/PropertiesDialog.py

branch
eric7
changeset 10608
43dd9d48c4d6
parent 10606
db294fc15954
child 10616
4aa36fcd4a30
child 10632
1109854f15f9
equal deleted inserted replaced
10607:96cb59c9c3f4 10608:43dd9d48c4d6
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 """

eric ide

mercurial