src/eric7/Project/DebuggerPropertiesDialog.py

branch
server
changeset 10631
00f5aae565a3
parent 10439
21c28b0f9e41
child 10632
1109854f15f9
--- a/src/eric7/Project/DebuggerPropertiesDialog.py	Fri Mar 08 15:30:23 2024 +0100
+++ b/src/eric7/Project/DebuggerPropertiesDialog.py	Fri Mar 08 15:30:53 2024 +0100
@@ -28,16 +28,18 @@
     settings.
     """
 
-    def __init__(self, project, parent=None, name=None):
+    def __init__(self, project, isRemote=False, parent=None, name=None):
         """
         Constructor
 
         @param project reference to the project object
         @type Project
-        @param parent parent widget of this dialog
-        @type QWidget
-        @param name name of this dialog
-        @type str
+        @param isRemote flag indicating a remote project (defaults to False)
+        @type bool (optional)
+        @param parent parent widget of this dialog (defaults to None)
+        @type QWidget (optional)
+        @param name name of this dialog (defaults to None)
+        @type str (optional)
         """
         super().__init__(parent)
         if name:
@@ -45,6 +47,7 @@
         self.setupUi(self)
 
         self.project = project
+        self.__isRemote = isRemote
 
         debugClientsHistory = Preferences.getProject("DebugClientsHistory")
         self.debugClientPicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
@@ -61,8 +64,11 @@
 
         venvManager = ericApp().getObject("VirtualEnvManager")
 
+        # Virtual Environment
         self.venvGroupBox.setVisible(
             not self.project.getProjectData(dataKey="EMBEDDED_VENV")
+            and not isRemote
+            # TODO: change once remote environments have been implemented
         )
         self.venvComboBox.addItem("")
         if self.project.getProjectData(dataKey="EMBEDDED_VENV"):
@@ -89,7 +95,12 @@
                 else:
                     venvIndex = 0
         self.venvComboBox.setCurrentIndex(venvIndex)
-        if self.project.debugProperties["DEBUGCLIENT"]:
+
+        # Debug Client
+        self.debugClientGroup.setVisible(not isRemote)
+        if isRemote:
+            self.debugClientPicker.clear()
+        elif self.project.debugProperties["DEBUGCLIENT"]:
             self.debugClientPicker.setText(
                 self.project.debugProperties["DEBUGCLIENT"], toNative=False
             )
@@ -101,12 +112,17 @@
             else:
                 debugClient = ""
             self.debugClientPicker.setText(debugClient, toNative=False)
+
+        # Debug Environment
         self.debugEnvironmentOverrideCheckBox.setChecked(
             self.project.debugProperties["ENVIRONMENTOVERRIDE"]
         )
         self.debugEnvironmentEdit.setText(
             self.project.debugProperties["ENVIRONMENTSTRING"]
         )
+
+        # Remote (ssh) Debugger
+        self.remoteDebuggerGroup.setVisible(not isRemote)
         self.remoteDebuggerGroup.setChecked(
             self.project.debugProperties["REMOTEDEBUGGER"]
         )
@@ -120,11 +136,20 @@
         )
         self.translationRemoteEdit.setText(self.project.debugProperties["REMOTEPATH"])
         self.translationLocalEdit.setText(self.project.debugProperties["LOCALPATH"])
+
+        # Console Debugger
+        self.consoleDebuggerGroup.setVisible(not isRemote)
         self.consoleDebuggerGroup.setChecked(
             self.project.debugProperties["CONSOLEDEBUGGER"]
         )
         self.consoleCommandEdit.setText(self.project.debugProperties["CONSOLECOMMAND"])
-        self.redirectCheckBox.setChecked(self.project.debugProperties["REDIRECT"])
+
+        # Redirect stdin/stdout/stderr
+        self.redirectCheckBox.setChecked(
+            self.project.debugProperties["REDIRECT"] or isRemote
+        )
+
+        # No encoding
         self.noEncodingCheckBox.setChecked(self.project.debugProperties["NOENCODING"])
 
         msh = self.minimumSizeHint()
@@ -148,17 +173,20 @@
         """
         self.project.debugProperties["VIRTUALENV"] = self.venvComboBox.currentText()
 
-        self.project.debugProperties["DEBUGCLIENT"] = self.debugClientPicker.text(
-            toNative=False
-        )
-        if not self.project.debugProperties["DEBUGCLIENT"]:
-            if self.project.getProjectData(dataKey="PROGLANGUAGE") == "Python3":
-                debugClient = os.path.join(
-                    getConfig("ericDir"), "DebugClients", "Python", "DebugClient.py"
-                )
-            else:
-                debugClient = ""
-            self.project.debugProperties["DEBUGCLIENT"] = debugClient
+        if self.__isRemote:
+            self.project.debugProperties["DEBUGCLIENT"] = ""
+        else:
+            self.project.debugProperties["DEBUGCLIENT"] = self.debugClientPicker.text(
+                toNative=False
+            )
+            if not self.project.debugProperties["DEBUGCLIENT"]:
+                if self.project.getProjectData(dataKey="PROGLANGUAGE") == "Python3":
+                    debugClient = os.path.join(
+                        getConfig("ericDir"), "DebugClients", "Python", "DebugClient.py"
+                    )
+                else:
+                    debugClient = ""
+                self.project.debugProperties["DEBUGCLIENT"] = debugClient
 
         self.project.debugProperties[
             "ENVIRONMENTOVERRIDE"
@@ -166,25 +194,43 @@
         self.project.debugProperties[
             "ENVIRONMENTSTRING"
         ] = self.debugEnvironmentEdit.text()
-        self.project.debugProperties[
-            "REMOTEDEBUGGER"
-        ] = self.remoteDebuggerGroup.isChecked()
-        self.project.debugProperties["REMOTEHOST"] = self.remoteHostEdit.text()
-        self.project.debugProperties["REMOTECOMMAND"] = self.remoteCommandEdit.text()
-        self.project.debugProperties[
-            "REMOTEDEBUGCLIENT"
-        ] = self.remoteDebugClientEdit.text()
-        self.project.debugProperties[
-            "PATHTRANSLATION"
-        ] = self.pathTranslationGroup.isChecked()
-        self.project.debugProperties["REMOTEPATH"] = self.translationRemoteEdit.text()
-        self.project.debugProperties["LOCALPATH"] = self.translationLocalEdit.text()
-        self.project.debugProperties[
-            "CONSOLEDEBUGGER"
-        ] = self.consoleDebuggerGroup.isChecked()
-        self.project.debugProperties["CONSOLECOMMAND"] = self.consoleCommandEdit.text()
-        self.project.debugProperties["REDIRECT"] = self.redirectCheckBox.isChecked()
+
+        if self.__isRemote:
+            self.project.debugProperties["REMOTEDEBUGGER"] = False
+        else:
+            self.project.debugProperties[
+                "REMOTEDEBUGGER"
+            ] = self.remoteDebuggerGroup.isChecked()
+            self.project.debugProperties["REMOTEHOST"] = self.remoteHostEdit.text()
+            self.project.debugProperties[
+                "REMOTECOMMAND"
+            ] = self.remoteCommandEdit.text()
+            self.project.debugProperties[
+                "REMOTEDEBUGCLIENT"
+            ] = self.remoteDebugClientEdit.text()
+            self.project.debugProperties[
+                "PATHTRANSLATION"
+            ] = self.pathTranslationGroup.isChecked()
+            self.project.debugProperties[
+                "REMOTEPATH"
+            ] = self.translationRemoteEdit.text()
+            self.project.debugProperties["LOCALPATH"] = self.translationLocalEdit.text()
+
+        if self.__isRemote:
+            self.project.debugProperties["CONSOLEDEBUGGER"] = False
+        else:
+            self.project.debugProperties[
+                "CONSOLEDEBUGGER"
+            ] = self.consoleDebuggerGroup.isChecked()
+            self.project.debugProperties[
+                "CONSOLECOMMAND"
+            ] = self.consoleCommandEdit.text()
+
+        self.project.debugProperties["REDIRECT"] = (
+            self.redirectCheckBox.isChecked() or self.__isRemote
+        )
         self.project.debugProperties["NOENCODING"] = self.noEncodingCheckBox.isChecked()
+
         self.project.debugPropertiesLoaded = True
         self.project.debugPropertiesChanged = True
 

eric ide

mercurial