QScintilla/Shell.py

changeset 6633
c5aab2ede19a
parent 6581
8eb6220f2bb7
child 6639
86f10cfa3653
diff -r 084880ed940c -r c5aab2ede19a QScintilla/Shell.py
--- a/QScintilla/Shell.py	Sat Dec 15 16:30:36 2018 +0100
+++ b/QScintilla/Shell.py	Sat Dec 15 17:29:57 2018 +0100
@@ -148,6 +148,7 @@
         self.__lastSearch = ()
         self.__windowed = windowedVariant
         self.__currentVenv = ""
+        self.__currentWorkingDirectory = ""
         
         self.linesepRegExp = r"\r\n|\n|\r"
         
@@ -1770,13 +1771,19 @@
                         venvName = cmdList[1]
                         if venvName == self.tr("Project"):
                             if self.__project.isOpen():
-                                self.dbs.startClient(False, forProject=True)
+                                self.dbs.startClient(
+                                    False, forProject=True,
+                                    workingDir=self.__project.getProjectPath())
+                                self.__currentWorkingDirectory = \
+                                    self.__project.getProjectPath()
                             else:
                                 self.dbs.startClient(
-                                    False, venvName=self.__currentVenv)
+                                    False, venvName=self.__currentVenv,
+                                    workingDir=self.__currentWorkingDirectory)
                                 # same as reset
                         else:
                             self.dbs.startClient(False, venvName=venvName)
+                            self.__currentWorkingDirectory = ""
                     self.__getBanner()
                     return
             elif cmd == 'clear':
@@ -1787,7 +1794,8 @@
                 else:
                     cmd = ''
             elif cmd in ['reset', 'restart']:
-                self.dbs.startClient(False, venvName=self.__currentVenv)
+                self.dbs.startClient(False, venvName=self.__currentVenv,
+                                     workingDir=self.__currentWorkingDirectory)
                 if self.passive:
                     return
                 else:
@@ -1958,7 +1966,8 @@
         """
         Public slot to handle the 'restart' context menu entry.
         """
-        self.dbs.startClient(False, venvName=self.__currentVenv)
+        self.dbs.startClient(False, venvName=self.__currentVenv,
+                             workingDir=self.__currentWorkingDirectory)
         
     def __startDebugClient(self, action):
         """
@@ -1969,7 +1978,11 @@
         """
         venvName = action.text()
         if venvName == self.tr("Project"):
-            self.dbs.startClient(False, forProject=True)
+            if self.__project.isOpen():
+                self.__currentWorkingDirectory = \
+                    self.__project.getProjectPath()
+            self.dbs.startClient(False, forProject=True,
+                                 workingDir=self.__currentWorkingDirectory)
         else:
             self.dbs.startClient(False, venvName=venvName)
         self.__getBanner()
@@ -2290,7 +2303,9 @@
         Private slot to start the shell for the opened project.
         """
         if Preferences.getProject("RestartShellForProject"):
-            self.dbs.startClient(False, forProject=True)
+            self.dbs.startClient(False, forProject=True,
+                                 workingDir=self.__project.getProjectPath())
+            self.__currentWorkingDirectory = self.__project.getProjectPath()
             self.__getBanner()
     
     def __projectClosed(self):

eric ide

mercurial