QScintilla/Shell.py

branch
maintenance
changeset 6646
51eefa621de4
parent 6602
331ac8f99cf8
parent 6645
ad476851d7e0
child 6923
d062df8f1d9f
diff -r 77189681b787 -r 51eefa621de4 QScintilla/Shell.py
--- a/QScintilla/Shell.py	Sat Dec 01 11:45:24 2018 +0100
+++ b/QScintilla/Shell.py	Thu Jan 10 14:22:59 2019 +0100
@@ -1,6 +1,6 @@
 # -*- coding: utf-8 -*-
 
-# Copyright (c) 2002 - 2018 Detlev Offenbach <detlev@die-offenbachs.de>
+# Copyright (c) 2002 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
 #
 
 """
@@ -148,6 +148,7 @@
         self.__lastSearch = ()
         self.__windowed = windowedVariant
         self.__currentVenv = ""
+        self.__currentWorkingDirectory = ""
         
         self.linesepRegExp = r"\r\n|\n|\r"
         
@@ -802,7 +803,7 @@
         debug client side.
         """
         if self.passive:
-            self.__writeBanner('', '', '')
+            self.__writeBanner('', '', '', '')
         else:
             self.dbs.remoteBanner()
         
@@ -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