--- a/src/eric7/Project/PropertiesDialog.py Tue Aug 01 10:03:13 2023 +0200 +++ b/src/eric7/Project/PropertiesDialog.py Thu Aug 31 10:11:38 2023 +0200 @@ -51,6 +51,7 @@ self.setupUi(self) self.dirPicker.setMode(EricPathPickerModes.DIRECTORY_MODE) + self.srcDirPicker.setMode(EricPathPickerModes.DIRECTORY_MODE) self.mainscriptPicker.setMode(EricPathPickerModes.OPEN_FILE_MODE) self.makeButton.setIcon(EricPixmapCache.getIcon("makefile")) @@ -113,6 +114,7 @@ curIndex = self.projectTypeComboBox.findData("PyQt6") self.projectTypeComboBox.setCurrentIndex(curIndex) self.dirPicker.setText(self.project.ppath) + self.srcDirPicker.setText(self.project.getProjectData(dataKey="SOURCESDIR")) self.versionEdit.setText(self.project.getProjectData(dataKey="VERSION")) self.mainscriptPicker.setText( self.project.getProjectData(dataKey="MAINSCRIPT") @@ -245,6 +247,32 @@ and FileSystemUtilities.fromNativeSeparators(txt) not in self.__initPaths ) + @pyqtSlot(str) + def on_srcDirPicker_pathSelected(self, srcDir): + """ + Private slot to check the selected sources sub-directory name. + + @param srcDir name of the sources directory name + @type str + """ + if srcDir: + ppath = self.dirPicker.text() + if ppath: + ppath = QDir(ppath).absolutePath() + QDir.separator() + srcDir = srcDir.replace(ppath, "") + self.srcDirPicker.setText(srcDir) + + @pyqtSlot() + def on_srcDirPicker_aboutToShowPathPickerDialog(self): + """ + Private slot to perform actions before the sources sub-directory selection + dialog is shown. + """ + ppath = self.dirPicker.text() + if not ppath: + ppath = QDir.currentPath() + self.srcDirPicker.setDefaultDirectory(ppath) + @pyqtSlot() def on_spellPropertiesButton_clicked(self): """ @@ -313,10 +341,10 @@ Private slot to perform actions before the main script selection dialog is shown. """ - path = self.dirPicker.text() - if not path: - path = QDir.currentPath() - self.mainscriptPicker.setDefaultDirectory(path) + ppath = self.dirPicker.text() + if not ppath: + ppath = QDir.currentPath() + self.mainscriptPicker.setDefaultDirectory(ppath) @pyqtSlot() def on_vcsInfoButton_clicked(self): @@ -410,6 +438,12 @@ else: self.project.pfile = "" self.project.setProjectData(self.versionEdit.text(), dataKey="VERSION") + srcDir = self.srcDirPicker.text() + if srcDir: + srcDir = self.project.getRelativePath(srcDir) + self.project.setProjectData(srcDir, dataKey="SOURCESDIR") + else: + self.project.setProjectData("", dataKey="SOURCESDIR") fn = self.mainscriptPicker.text() if fn: fn = self.project.getRelativePath(fn)