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):