QScintilla/Shell.py

branch
maintenance
changeset 6646
51eefa621de4
parent 6602
331ac8f99cf8
parent 6645
ad476851d7e0
child 6923
d062df8f1d9f
equal deleted inserted replaced
6603:77189681b787 6646:51eefa621de4
1 # -*- coding: utf-8 -*- 1 # -*- coding: utf-8 -*-
2 2
3 # Copyright (c) 2002 - 2018 Detlev Offenbach <detlev@die-offenbachs.de> 3 # Copyright (c) 2002 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
4 # 4 #
5 5
6 """ 6 """
7 Module implementing a graphical Python shell. 7 Module implementing a graphical Python shell.
8 """ 8 """
146 self.vm = vm 146 self.vm = vm
147 self.__mainWindow = parent 147 self.__mainWindow = parent
148 self.__lastSearch = () 148 self.__lastSearch = ()
149 self.__windowed = windowedVariant 149 self.__windowed = windowedVariant
150 self.__currentVenv = "" 150 self.__currentVenv = ""
151 self.__currentWorkingDirectory = ""
151 152
152 self.linesepRegExp = r"\r\n|\n|\r" 153 self.linesepRegExp = r"\r\n|\n|\r"
153 154
154 self.passive = ((not self.__windowed) and 155 self.passive = ((not self.__windowed) and
155 Preferences.getDebugger("PassiveDbgEnabled")) 156 Preferences.getDebugger("PassiveDbgEnabled"))
800 801
801 It requests the interpreter version and platform running on the 802 It requests the interpreter version and platform running on the
802 debug client side. 803 debug client side.
803 """ 804 """
804 if self.passive: 805 if self.passive:
805 self.__writeBanner('', '', '') 806 self.__writeBanner('', '', '', '')
806 else: 807 else:
807 self.dbs.remoteBanner() 808 self.dbs.remoteBanner()
808 809
809 def __writeBanner(self, version, platform, dbgclient, venvName): 810 def __writeBanner(self, version, platform, dbgclient, venvName):
810 """ 811 """
1768 self.dbs.startClient(False) # start default backend 1769 self.dbs.startClient(False) # start default backend
1769 else: 1770 else:
1770 venvName = cmdList[1] 1771 venvName = cmdList[1]
1771 if venvName == self.tr("Project"): 1772 if venvName == self.tr("Project"):
1772 if self.__project.isOpen(): 1773 if self.__project.isOpen():
1773 self.dbs.startClient(False, forProject=True) 1774 self.dbs.startClient(
1775 False, forProject=True,
1776 workingDir=self.__project.getProjectPath())
1777 self.__currentWorkingDirectory = \
1778 self.__project.getProjectPath()
1774 else: 1779 else:
1775 self.dbs.startClient( 1780 self.dbs.startClient(
1776 False, venvName=self.__currentVenv) 1781 False, venvName=self.__currentVenv,
1782 workingDir=self.__currentWorkingDirectory)
1777 # same as reset 1783 # same as reset
1778 else: 1784 else:
1779 self.dbs.startClient(False, venvName=venvName) 1785 self.dbs.startClient(False, venvName=venvName)
1786 self.__currentWorkingDirectory = ""
1780 self.__getBanner() 1787 self.__getBanner()
1781 return 1788 return
1782 elif cmd == 'clear': 1789 elif cmd == 'clear':
1783 # Display the banner. 1790 # Display the banner.
1784 self.__getBanner() 1791 self.__getBanner()
1785 if not self.passive: 1792 if not self.passive:
1786 return 1793 return
1787 else: 1794 else:
1788 cmd = '' 1795 cmd = ''
1789 elif cmd in ['reset', 'restart']: 1796 elif cmd in ['reset', 'restart']:
1790 self.dbs.startClient(False, venvName=self.__currentVenv) 1797 self.dbs.startClient(False, venvName=self.__currentVenv,
1798 workingDir=self.__currentWorkingDirectory)
1791 if self.passive: 1799 if self.passive:
1792 return 1800 return
1793 else: 1801 else:
1794 cmd = '' 1802 cmd = ''
1795 elif cmd in ['envs', 'environments']: 1803 elif cmd in ['envs', 'environments']:
1956 1964
1957 def doRestart(self): 1965 def doRestart(self):
1958 """ 1966 """
1959 Public slot to handle the 'restart' context menu entry. 1967 Public slot to handle the 'restart' context menu entry.
1960 """ 1968 """
1961 self.dbs.startClient(False, venvName=self.__currentVenv) 1969 self.dbs.startClient(False, venvName=self.__currentVenv,
1970 workingDir=self.__currentWorkingDirectory)
1962 1971
1963 def __startDebugClient(self, action): 1972 def __startDebugClient(self, action):
1964 """ 1973 """
1965 Private slot to start a debug client according to the action 1974 Private slot to start a debug client according to the action
1966 triggered. 1975 triggered.
1967 1976
1968 @param action context menu action that was triggered (QAction) 1977 @param action context menu action that was triggered (QAction)
1969 """ 1978 """
1970 venvName = action.text() 1979 venvName = action.text()
1971 if venvName == self.tr("Project"): 1980 if venvName == self.tr("Project"):
1972 self.dbs.startClient(False, forProject=True) 1981 if self.__project.isOpen():
1982 self.__currentWorkingDirectory = \
1983 self.__project.getProjectPath()
1984 self.dbs.startClient(False, forProject=True,
1985 workingDir=self.__currentWorkingDirectory)
1973 else: 1986 else:
1974 self.dbs.startClient(False, venvName=venvName) 1987 self.dbs.startClient(False, venvName=venvName)
1975 self.__getBanner() 1988 self.__getBanner()
1976 1989
1977 def handlePreferencesChanged(self): 1990 def handlePreferencesChanged(self):
2288 def __projectOpened(self): 2301 def __projectOpened(self):
2289 """ 2302 """
2290 Private slot to start the shell for the opened project. 2303 Private slot to start the shell for the opened project.
2291 """ 2304 """
2292 if Preferences.getProject("RestartShellForProject"): 2305 if Preferences.getProject("RestartShellForProject"):
2293 self.dbs.startClient(False, forProject=True) 2306 self.dbs.startClient(False, forProject=True,
2307 workingDir=self.__project.getProjectPath())
2308 self.__currentWorkingDirectory = self.__project.getProjectPath()
2294 self.__getBanner() 2309 self.__getBanner()
2295 2310
2296 def __projectClosed(self): 2311 def __projectClosed(self):
2297 """ 2312 """
2298 Private slot to restart the default shell when the project is closed. 2313 Private slot to restart the default shell when the project is closed.

eric ide

mercurial