src/eric7/Project/DebuggerPropertiesDialog.py

branch
server
changeset 10631
00f5aae565a3
parent 10439
21c28b0f9e41
child 10632
1109854f15f9
equal deleted inserted replaced
10630:552a790fd9bc 10631:00f5aae565a3
26 """ 26 """
27 Class implementing a dialog for entering project specific debugger 27 Class implementing a dialog for entering project specific debugger
28 settings. 28 settings.
29 """ 29 """
30 30
31 def __init__(self, project, parent=None, name=None): 31 def __init__(self, project, isRemote=False, parent=None, name=None):
32 """ 32 """
33 Constructor 33 Constructor
34 34
35 @param project reference to the project object 35 @param project reference to the project object
36 @type Project 36 @type Project
37 @param parent parent widget of this dialog 37 @param isRemote flag indicating a remote project (defaults to False)
38 @type QWidget 38 @type bool (optional)
39 @param name name of this dialog 39 @param parent parent widget of this dialog (defaults to None)
40 @type str 40 @type QWidget (optional)
41 @param name name of this dialog (defaults to None)
42 @type str (optional)
41 """ 43 """
42 super().__init__(parent) 44 super().__init__(parent)
43 if name: 45 if name:
44 self.setObjectName(name) 46 self.setObjectName(name)
45 self.setupUi(self) 47 self.setupUi(self)
46 48
47 self.project = project 49 self.project = project
50 self.__isRemote = isRemote
48 51
49 debugClientsHistory = Preferences.getProject("DebugClientsHistory") 52 debugClientsHistory = Preferences.getProject("DebugClientsHistory")
50 self.debugClientPicker.setMode(EricPathPickerModes.OPEN_FILE_MODE) 53 self.debugClientPicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
51 self.debugClientPicker.setInsertPolicy(QComboBox.InsertPolicy.InsertAtTop) 54 self.debugClientPicker.setInsertPolicy(QComboBox.InsertPolicy.InsertAtTop)
52 self.debugClientPicker.setSizeAdjustPolicy( 55 self.debugClientPicker.setSizeAdjustPolicy(
59 62
60 self.translationLocalCompleter = EricDirCompleter(self.translationLocalEdit) 63 self.translationLocalCompleter = EricDirCompleter(self.translationLocalEdit)
61 64
62 venvManager = ericApp().getObject("VirtualEnvManager") 65 venvManager = ericApp().getObject("VirtualEnvManager")
63 66
67 # Virtual Environment
64 self.venvGroupBox.setVisible( 68 self.venvGroupBox.setVisible(
65 not self.project.getProjectData(dataKey="EMBEDDED_VENV") 69 not self.project.getProjectData(dataKey="EMBEDDED_VENV")
70 and not isRemote
71 # TODO: change once remote environments have been implemented
66 ) 72 )
67 self.venvComboBox.addItem("") 73 self.venvComboBox.addItem("")
68 if self.project.getProjectData(dataKey="EMBEDDED_VENV"): 74 if self.project.getProjectData(dataKey="EMBEDDED_VENV"):
69 venvIndex = 0 75 venvIndex = 0
70 else: 76 else:
87 if venvName: 93 if venvName:
88 venvIndex = max(0, self.venvComboBox.findText(venvName)) 94 venvIndex = max(0, self.venvComboBox.findText(venvName))
89 else: 95 else:
90 venvIndex = 0 96 venvIndex = 0
91 self.venvComboBox.setCurrentIndex(venvIndex) 97 self.venvComboBox.setCurrentIndex(venvIndex)
92 if self.project.debugProperties["DEBUGCLIENT"]: 98
99 # Debug Client
100 self.debugClientGroup.setVisible(not isRemote)
101 if isRemote:
102 self.debugClientPicker.clear()
103 elif self.project.debugProperties["DEBUGCLIENT"]:
93 self.debugClientPicker.setText( 104 self.debugClientPicker.setText(
94 self.project.debugProperties["DEBUGCLIENT"], toNative=False 105 self.project.debugProperties["DEBUGCLIENT"], toNative=False
95 ) 106 )
96 else: 107 else:
97 if self.project.getProjectData(dataKey="PROGLANGUAGE") == "Python3": 108 if self.project.getProjectData(dataKey="PROGLANGUAGE") == "Python3":
99 getConfig("ericDir"), "DebugClients", "Python", "DebugClient.py" 110 getConfig("ericDir"), "DebugClients", "Python", "DebugClient.py"
100 ) 111 )
101 else: 112 else:
102 debugClient = "" 113 debugClient = ""
103 self.debugClientPicker.setText(debugClient, toNative=False) 114 self.debugClientPicker.setText(debugClient, toNative=False)
115
116 # Debug Environment
104 self.debugEnvironmentOverrideCheckBox.setChecked( 117 self.debugEnvironmentOverrideCheckBox.setChecked(
105 self.project.debugProperties["ENVIRONMENTOVERRIDE"] 118 self.project.debugProperties["ENVIRONMENTOVERRIDE"]
106 ) 119 )
107 self.debugEnvironmentEdit.setText( 120 self.debugEnvironmentEdit.setText(
108 self.project.debugProperties["ENVIRONMENTSTRING"] 121 self.project.debugProperties["ENVIRONMENTSTRING"]
109 ) 122 )
123
124 # Remote (ssh) Debugger
125 self.remoteDebuggerGroup.setVisible(not isRemote)
110 self.remoteDebuggerGroup.setChecked( 126 self.remoteDebuggerGroup.setChecked(
111 self.project.debugProperties["REMOTEDEBUGGER"] 127 self.project.debugProperties["REMOTEDEBUGGER"]
112 ) 128 )
113 self.remoteHostEdit.setText(self.project.debugProperties["REMOTEHOST"]) 129 self.remoteHostEdit.setText(self.project.debugProperties["REMOTEHOST"])
114 self.remoteCommandEdit.setText(self.project.debugProperties["REMOTECOMMAND"]) 130 self.remoteCommandEdit.setText(self.project.debugProperties["REMOTECOMMAND"])
118 self.pathTranslationGroup.setChecked( 134 self.pathTranslationGroup.setChecked(
119 self.project.debugProperties["PATHTRANSLATION"] 135 self.project.debugProperties["PATHTRANSLATION"]
120 ) 136 )
121 self.translationRemoteEdit.setText(self.project.debugProperties["REMOTEPATH"]) 137 self.translationRemoteEdit.setText(self.project.debugProperties["REMOTEPATH"])
122 self.translationLocalEdit.setText(self.project.debugProperties["LOCALPATH"]) 138 self.translationLocalEdit.setText(self.project.debugProperties["LOCALPATH"])
139
140 # Console Debugger
141 self.consoleDebuggerGroup.setVisible(not isRemote)
123 self.consoleDebuggerGroup.setChecked( 142 self.consoleDebuggerGroup.setChecked(
124 self.project.debugProperties["CONSOLEDEBUGGER"] 143 self.project.debugProperties["CONSOLEDEBUGGER"]
125 ) 144 )
126 self.consoleCommandEdit.setText(self.project.debugProperties["CONSOLECOMMAND"]) 145 self.consoleCommandEdit.setText(self.project.debugProperties["CONSOLECOMMAND"])
127 self.redirectCheckBox.setChecked(self.project.debugProperties["REDIRECT"]) 146
147 # Redirect stdin/stdout/stderr
148 self.redirectCheckBox.setChecked(
149 self.project.debugProperties["REDIRECT"] or isRemote
150 )
151
152 # No encoding
128 self.noEncodingCheckBox.setChecked(self.project.debugProperties["NOENCODING"]) 153 self.noEncodingCheckBox.setChecked(self.project.debugProperties["NOENCODING"])
129 154
130 msh = self.minimumSizeHint() 155 msh = self.minimumSizeHint()
131 self.resize(max(self.width(), msh.width()), msh.height()) 156 self.resize(max(self.width(), msh.width()), msh.height())
132 157
146 """ 171 """
147 Public method to store the entered/modified data. 172 Public method to store the entered/modified data.
148 """ 173 """
149 self.project.debugProperties["VIRTUALENV"] = self.venvComboBox.currentText() 174 self.project.debugProperties["VIRTUALENV"] = self.venvComboBox.currentText()
150 175
151 self.project.debugProperties["DEBUGCLIENT"] = self.debugClientPicker.text( 176 if self.__isRemote:
152 toNative=False 177 self.project.debugProperties["DEBUGCLIENT"] = ""
153 ) 178 else:
154 if not self.project.debugProperties["DEBUGCLIENT"]: 179 self.project.debugProperties["DEBUGCLIENT"] = self.debugClientPicker.text(
155 if self.project.getProjectData(dataKey="PROGLANGUAGE") == "Python3": 180 toNative=False
156 debugClient = os.path.join( 181 )
157 getConfig("ericDir"), "DebugClients", "Python", "DebugClient.py" 182 if not self.project.debugProperties["DEBUGCLIENT"]:
158 ) 183 if self.project.getProjectData(dataKey="PROGLANGUAGE") == "Python3":
159 else: 184 debugClient = os.path.join(
160 debugClient = "" 185 getConfig("ericDir"), "DebugClients", "Python", "DebugClient.py"
161 self.project.debugProperties["DEBUGCLIENT"] = debugClient 186 )
187 else:
188 debugClient = ""
189 self.project.debugProperties["DEBUGCLIENT"] = debugClient
162 190
163 self.project.debugProperties[ 191 self.project.debugProperties[
164 "ENVIRONMENTOVERRIDE" 192 "ENVIRONMENTOVERRIDE"
165 ] = self.debugEnvironmentOverrideCheckBox.isChecked() 193 ] = self.debugEnvironmentOverrideCheckBox.isChecked()
166 self.project.debugProperties[ 194 self.project.debugProperties[
167 "ENVIRONMENTSTRING" 195 "ENVIRONMENTSTRING"
168 ] = self.debugEnvironmentEdit.text() 196 ] = self.debugEnvironmentEdit.text()
169 self.project.debugProperties[ 197
170 "REMOTEDEBUGGER" 198 if self.__isRemote:
171 ] = self.remoteDebuggerGroup.isChecked() 199 self.project.debugProperties["REMOTEDEBUGGER"] = False
172 self.project.debugProperties["REMOTEHOST"] = self.remoteHostEdit.text() 200 else:
173 self.project.debugProperties["REMOTECOMMAND"] = self.remoteCommandEdit.text() 201 self.project.debugProperties[
174 self.project.debugProperties[ 202 "REMOTEDEBUGGER"
175 "REMOTEDEBUGCLIENT" 203 ] = self.remoteDebuggerGroup.isChecked()
176 ] = self.remoteDebugClientEdit.text() 204 self.project.debugProperties["REMOTEHOST"] = self.remoteHostEdit.text()
177 self.project.debugProperties[ 205 self.project.debugProperties[
178 "PATHTRANSLATION" 206 "REMOTECOMMAND"
179 ] = self.pathTranslationGroup.isChecked() 207 ] = self.remoteCommandEdit.text()
180 self.project.debugProperties["REMOTEPATH"] = self.translationRemoteEdit.text() 208 self.project.debugProperties[
181 self.project.debugProperties["LOCALPATH"] = self.translationLocalEdit.text() 209 "REMOTEDEBUGCLIENT"
182 self.project.debugProperties[ 210 ] = self.remoteDebugClientEdit.text()
183 "CONSOLEDEBUGGER" 211 self.project.debugProperties[
184 ] = self.consoleDebuggerGroup.isChecked() 212 "PATHTRANSLATION"
185 self.project.debugProperties["CONSOLECOMMAND"] = self.consoleCommandEdit.text() 213 ] = self.pathTranslationGroup.isChecked()
186 self.project.debugProperties["REDIRECT"] = self.redirectCheckBox.isChecked() 214 self.project.debugProperties[
215 "REMOTEPATH"
216 ] = self.translationRemoteEdit.text()
217 self.project.debugProperties["LOCALPATH"] = self.translationLocalEdit.text()
218
219 if self.__isRemote:
220 self.project.debugProperties["CONSOLEDEBUGGER"] = False
221 else:
222 self.project.debugProperties[
223 "CONSOLEDEBUGGER"
224 ] = self.consoleDebuggerGroup.isChecked()
225 self.project.debugProperties[
226 "CONSOLECOMMAND"
227 ] = self.consoleCommandEdit.text()
228
229 self.project.debugProperties["REDIRECT"] = (
230 self.redirectCheckBox.isChecked() or self.__isRemote
231 )
187 self.project.debugProperties["NOENCODING"] = self.noEncodingCheckBox.isChecked() 232 self.project.debugProperties["NOENCODING"] = self.noEncodingCheckBox.isChecked()
233
188 self.project.debugPropertiesLoaded = True 234 self.project.debugPropertiesLoaded = True
189 self.project.debugPropertiesChanged = True 235 self.project.debugPropertiesChanged = True
190 236
191 self.__saveHistories() 237 self.__saveHistories()
192 238

eric ide

mercurial