230 "Python3VirtualEnv") == '' and sys.version_info[0] == 2: |
230 "Python3VirtualEnv") == '' and sys.version_info[0] == 2: |
231 self.clientType = 'Python2' |
231 self.clientType = 'Python2' |
232 |
232 |
233 self.lastClientType = '' |
233 self.lastClientType = '' |
234 self.__autoClearShell = False |
234 self.__autoClearShell = False |
|
235 self.__forProject = False |
235 |
236 |
236 self.clientClearBreak.connect(self.__clientClearBreakPoint) |
237 self.clientClearBreak.connect(self.__clientClearBreakPoint) |
237 self.clientClearWatch.connect(self.__clientClearWatchPoint) |
238 self.clientClearWatch.connect(self.__clientClearWatchPoint) |
238 self.newConnection.connect(self.__newConnection) |
239 self.newConnection.connect(self.__newConnection) |
239 |
240 |
457 self.clientType = clType |
458 self.clientType = clType |
458 Preferences.Prefs.settings.setValue( |
459 Preferences.Prefs.settings.setValue( |
459 'DebugClient/Type', self.clientType) |
460 'DebugClient/Type', self.clientType) |
460 |
461 |
461 def startClient(self, unplanned=True, clType=None, forProject=False, |
462 def startClient(self, unplanned=True, clType=None, forProject=False, |
462 runInConsole=False, venvName=""): |
463 runInConsole=False, venvName="", workingDir=None): |
463 """ |
464 """ |
464 Public method to start a debug client. |
465 Public method to start a debug client. |
465 |
466 |
466 @keyparam unplanned flag indicating that the client has died |
467 @keyparam unplanned flag indicating that the client has died |
467 @type bool |
468 @type bool |
496 self.clientProcess.kill() |
499 self.clientProcess.kill() |
497 self.clientProcess.waitForFinished(1000) |
500 self.clientProcess.waitForFinished(1000) |
498 self.clientProcess.deleteLater() |
501 self.clientProcess.deleteLater() |
499 self.clientProcess = None |
502 self.clientProcess = None |
500 |
503 |
|
504 self.__forProject = forProject |
501 self.__createDebuggerInterface() |
505 self.__createDebuggerInterface() |
502 if forProject: |
506 if forProject: |
503 project = e5App().getObject("Project") |
507 project = e5App().getObject("Project") |
504 if not project.isDebugPropertiesLoaded(): |
508 if not project.isDebugPropertiesLoaded(): |
505 self.clientProcess, isNetworked, clientInterpreter = \ |
509 self.clientProcess, isNetworked, clientInterpreter = \ |
506 self.debuggerInterface.startRemote( |
510 self.debuggerInterface.startRemote( |
507 self.serverPort(), runInConsole, venvName, |
511 self.serverPort(), runInConsole, venvName, |
508 self.__originalPathString) |
512 self.__originalPathString, workingDir=workingDir) |
509 else: |
513 else: |
510 self.clientProcess, isNetworked, clientInterpreter = \ |
514 self.clientProcess, isNetworked, clientInterpreter = \ |
511 self.debuggerInterface.startRemoteForProject( |
515 self.debuggerInterface.startRemoteForProject( |
512 self.serverPort(), runInConsole, venvName, |
516 self.serverPort(), runInConsole, venvName, |
513 self.__originalPathString) |
517 self.__originalPathString, workingDir=workingDir) |
514 else: |
518 else: |
515 self.clientProcess, isNetworked, clientInterpreter = \ |
519 self.clientProcess, isNetworked, clientInterpreter = \ |
516 self.debuggerInterface.startRemote( |
520 self.debuggerInterface.startRemote( |
517 self.serverPort(), runInConsole, venvName, |
521 self.serverPort(), runInConsole, venvName, |
518 self.__originalPathString) |
522 self.__originalPathString, workingDir=workingDir) |
519 |
523 |
520 if self.clientProcess: |
524 if self.clientProcess: |
521 self.clientProcess.readyReadStandardError.connect( |
525 self.clientProcess.readyReadStandardError.connect( |
522 self.__clientProcessError) |
526 self.__clientProcessError) |
523 self.clientProcess.readyReadStandardOutput.connect( |
527 self.clientProcess.readyReadStandardOutput.connect( |
1498 self.__passiveShutDown() |
1502 self.__passiveShutDown() |
1499 self.clientExit.emit(int(status), message) |
1503 self.clientExit.emit(int(status), message) |
1500 if Preferences.getDebugger("AutomaticReset") or (self.running and |
1504 if Preferences.getDebugger("AutomaticReset") or (self.running and |
1501 not self.debugging): |
1505 not self.debugging): |
1502 self.debugging = False |
1506 self.debugging = False |
1503 self.startClient(False) |
1507 self.startClient(False, forProject=self.__forProject) |
1504 if self.passive: |
1508 if self.passive: |
1505 self.__createDebuggerInterface("None") |
1509 self.__createDebuggerInterface("None") |
1506 self.signalClientOutput(self.tr('\nNot connected\n')) |
1510 self.signalClientOutput(self.tr('\nNot connected\n')) |
1507 self.signalClientStatement(False) |
1511 self.signalClientStatement(False) |
1508 self.running = False |
1512 self.running = False |