src/eric7/Project/PropertiesDialog.py

branch
eric7
changeset 10154
d833c6a8c41f
parent 9653
e67609152c5e
child 10174
6aac1022f330
child 10430
e440aaf179ce
--- a/src/eric7/Project/PropertiesDialog.py	Thu Aug 03 17:33:07 2023 +0200
+++ b/src/eric7/Project/PropertiesDialog.py	Fri Aug 04 15:40:49 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)

eric ide

mercurial