src/eric7/Project/DebuggerPropertiesDialog.py

branch
eric7
changeset 9221
bf71ee032bb4
parent 9209
b99e7fd55fd3
child 9398
b5426d4f2187
equal deleted inserted replaced
9220:e9e7eca7efee 9221:bf71ee032bb4
28 class DebuggerPropertiesDialog(QDialog, Ui_DebuggerPropertiesDialog): 28 class DebuggerPropertiesDialog(QDialog, Ui_DebuggerPropertiesDialog):
29 """ 29 """
30 Class implementing a dialog for entering project specific debugger 30 Class implementing a dialog for entering project specific debugger
31 settings. 31 settings.
32 """ 32 """
33
33 def __init__(self, project, parent=None, name=None): 34 def __init__(self, project, parent=None, name=None):
34 """ 35 """
35 Constructor 36 Constructor
36 37
37 @param project reference to the project object 38 @param project reference to the project object
38 @param parent parent widget of this dialog (QWidget) 39 @param parent parent widget of this dialog (QWidget)
39 @param name name of this dialog (string) 40 @param name name of this dialog (string)
40 """ 41 """
41 super().__init__(parent) 42 super().__init__(parent)
42 if name: 43 if name:
43 self.setObjectName(name) 44 self.setObjectName(name)
44 self.setupUi(self) 45 self.setupUi(self)
45 46
46 debugClientsHistory = Preferences.getProject( 47 debugClientsHistory = Preferences.getProject("DebugClientsHistory")
47 "DebugClientsHistory")
48 self.debugClientPicker.setMode(EricPathPickerModes.OPEN_FILE_MODE) 48 self.debugClientPicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
49 self.debugClientPicker.setInsertPolicy( 49 self.debugClientPicker.setInsertPolicy(QComboBox.InsertPolicy.InsertAtTop)
50 QComboBox.InsertPolicy.InsertAtTop)
51 self.debugClientPicker.setSizeAdjustPolicy( 50 self.debugClientPicker.setSizeAdjustPolicy(
52 QComboBox.SizeAdjustPolicy.AdjustToMinimumContentsLengthWithIcon) 51 QComboBox.SizeAdjustPolicy.AdjustToMinimumContentsLengthWithIcon
52 )
53 self.debugClientPicker.setPathsList(debugClientsHistory) 53 self.debugClientPicker.setPathsList(debugClientsHistory)
54 self.debugClientClearHistoryButton.setIcon( 54 self.debugClientClearHistoryButton.setIcon(UI.PixmapCache.getIcon("editDelete"))
55 UI.PixmapCache.getIcon("editDelete")) 55
56
57 venvManager = ericApp().getObject("VirtualEnvManager") 56 venvManager = ericApp().getObject("VirtualEnvManager")
58 57
59 self.venvComboBox.addItem("") 58 self.venvComboBox.addItem("")
60 self.venvComboBox.addItems(sorted(venvManager.getVirtualenvNames())) 59 self.venvComboBox.addItems(sorted(venvManager.getVirtualenvNames()))
61 60
62 self.translationLocalCompleter = EricDirCompleter( 61 self.translationLocalCompleter = EricDirCompleter(self.translationLocalEdit)
63 self.translationLocalEdit) 62
64
65 self.project = project 63 self.project = project
66 64
67 if self.project.debugProperties["VIRTUALENV"]: 65 if self.project.debugProperties["VIRTUALENV"]:
68 venvIndex = max(0, self.venvComboBox.findText( 66 venvIndex = max(
69 self.project.debugProperties["VIRTUALENV"])) 67 0,
68 self.venvComboBox.findText(self.project.debugProperties["VIRTUALENV"]),
69 )
70 else: 70 else:
71 if self.project.pdata["PROGLANGUAGE"] == "Python3": 71 if self.project.pdata["PROGLANGUAGE"] == "Python3":
72 venvName = Preferences.getDebugger("Python3VirtualEnv") 72 venvName = Preferences.getDebugger("Python3VirtualEnv")
73 else: 73 else:
74 venvName = "" 74 venvName = ""
79 else: 79 else:
80 venvIndex = 0 80 venvIndex = 0
81 self.venvComboBox.setCurrentIndex(venvIndex) 81 self.venvComboBox.setCurrentIndex(venvIndex)
82 if self.project.debugProperties["DEBUGCLIENT"]: 82 if self.project.debugProperties["DEBUGCLIENT"]:
83 self.debugClientPicker.setText( 83 self.debugClientPicker.setText(
84 self.project.debugProperties["DEBUGCLIENT"], 84 self.project.debugProperties["DEBUGCLIENT"], toNative=False
85 toNative=False) 85 )
86 else: 86 else:
87 if self.project.pdata["PROGLANGUAGE"] == "Python3": 87 if self.project.pdata["PROGLANGUAGE"] == "Python3":
88 debugClient = os.path.join( 88 debugClient = os.path.join(
89 getConfig('ericDir'), 89 getConfig("ericDir"), "DebugClients", "Python", "DebugClient.py"
90 "DebugClients", "Python", "DebugClient.py") 90 )
91 else: 91 else:
92 debugClient = "" 92 debugClient = ""
93 self.debugClientPicker.setText(debugClient, toNative=False) 93 self.debugClientPicker.setText(debugClient, toNative=False)
94 self.debugEnvironmentOverrideCheckBox.setChecked( 94 self.debugEnvironmentOverrideCheckBox.setChecked(
95 self.project.debugProperties["ENVIRONMENTOVERRIDE"]) 95 self.project.debugProperties["ENVIRONMENTOVERRIDE"]
96 )
96 self.debugEnvironmentEdit.setText( 97 self.debugEnvironmentEdit.setText(
97 self.project.debugProperties["ENVIRONMENTSTRING"]) 98 self.project.debugProperties["ENVIRONMENTSTRING"]
99 )
98 self.remoteDebuggerGroup.setChecked( 100 self.remoteDebuggerGroup.setChecked(
99 self.project.debugProperties["REMOTEDEBUGGER"]) 101 self.project.debugProperties["REMOTEDEBUGGER"]
100 self.remoteHostEdit.setText( 102 )
101 self.project.debugProperties["REMOTEHOST"]) 103 self.remoteHostEdit.setText(self.project.debugProperties["REMOTEHOST"])
102 self.remoteCommandEdit.setText( 104 self.remoteCommandEdit.setText(self.project.debugProperties["REMOTECOMMAND"])
103 self.project.debugProperties["REMOTECOMMAND"])
104 self.pathTranslationGroup.setChecked( 105 self.pathTranslationGroup.setChecked(
105 self.project.debugProperties["PATHTRANSLATION"]) 106 self.project.debugProperties["PATHTRANSLATION"]
106 self.translationRemoteEdit.setText( 107 )
107 self.project.debugProperties["REMOTEPATH"]) 108 self.translationRemoteEdit.setText(self.project.debugProperties["REMOTEPATH"])
108 self.translationLocalEdit.setText( 109 self.translationLocalEdit.setText(self.project.debugProperties["LOCALPATH"])
109 self.project.debugProperties["LOCALPATH"])
110 self.consoleDebuggerGroup.setChecked( 110 self.consoleDebuggerGroup.setChecked(
111 self.project.debugProperties["CONSOLEDEBUGGER"]) 111 self.project.debugProperties["CONSOLEDEBUGGER"]
112 self.consoleCommandEdit.setText( 112 )
113 self.project.debugProperties["CONSOLECOMMAND"]) 113 self.consoleCommandEdit.setText(self.project.debugProperties["CONSOLECOMMAND"])
114 self.redirectCheckBox.setChecked( 114 self.redirectCheckBox.setChecked(self.project.debugProperties["REDIRECT"])
115 self.project.debugProperties["REDIRECT"]) 115 self.noEncodingCheckBox.setChecked(self.project.debugProperties["NOENCODING"])
116 self.noEncodingCheckBox.setChecked( 116
117 self.project.debugProperties["NOENCODING"])
118
119 msh = self.minimumSizeHint() 117 msh = self.minimumSizeHint()
120 self.resize(max(self.width(), msh.width()), msh.height()) 118 self.resize(max(self.width(), msh.width()), msh.height())
121 119
122 @pyqtSlot() 120 @pyqtSlot()
123 def on_debugClientPicker_aboutToShowPathPickerDialog(self): 121 def on_debugClientPicker_aboutToShowPathPickerDialog(self):
124 """ 122 """
125 Private slot to perform actions before the debug client selection 123 Private slot to perform actions before the debug client selection
126 dialog is shown. 124 dialog is shown.
127 """ 125 """
128 filters = self.project.getDebuggerFilters( 126 filters = self.project.getDebuggerFilters(self.project.pdata["PROGLANGUAGE"])
129 self.project.pdata["PROGLANGUAGE"])
130 filters += self.tr("All Files (*)") 127 filters += self.tr("All Files (*)")
131 self.debugClientPicker.setFilters(filters) 128 self.debugClientPicker.setFilters(filters)
132 129
133 def storeData(self): 130 def storeData(self):
134 """ 131 """
135 Public method to store the entered/modified data. 132 Public method to store the entered/modified data.
136 """ 133 """
137 self.project.debugProperties["VIRTUALENV"] = ( 134 self.project.debugProperties["VIRTUALENV"] = self.venvComboBox.currentText()
138 self.venvComboBox.currentText() 135
139 ) 136 self.project.debugProperties["DEBUGCLIENT"] = self.debugClientPicker.text(
140 137 toNative=False
141 self.project.debugProperties["DEBUGCLIENT"] = (
142 self.debugClientPicker.text(toNative=False)
143 ) 138 )
144 if not self.project.debugProperties["DEBUGCLIENT"]: 139 if not self.project.debugProperties["DEBUGCLIENT"]:
145 if self.project.pdata["PROGLANGUAGE"] == "Python3": 140 if self.project.pdata["PROGLANGUAGE"] == "Python3":
146 debugClient = os.path.join( 141 debugClient = os.path.join(
147 getConfig('ericDir'), 142 getConfig("ericDir"), "DebugClients", "Python", "DebugClient.py"
148 "DebugClients", "Python", "DebugClient.py") 143 )
149 else: 144 else:
150 debugClient = "" 145 debugClient = ""
151 self.project.debugProperties["DEBUGCLIENT"] = debugClient 146 self.project.debugProperties["DEBUGCLIENT"] = debugClient
152 147
153 self.project.debugProperties["ENVIRONMENTOVERRIDE"] = ( 148 self.project.debugProperties[
154 self.debugEnvironmentOverrideCheckBox.isChecked() 149 "ENVIRONMENTOVERRIDE"
155 ) 150 ] = self.debugEnvironmentOverrideCheckBox.isChecked()
156 self.project.debugProperties["ENVIRONMENTSTRING"] = ( 151 self.project.debugProperties[
157 self.debugEnvironmentEdit.text() 152 "ENVIRONMENTSTRING"
158 ) 153 ] = self.debugEnvironmentEdit.text()
159 self.project.debugProperties["REMOTEDEBUGGER"] = ( 154 self.project.debugProperties[
160 self.remoteDebuggerGroup.isChecked() 155 "REMOTEDEBUGGER"
161 ) 156 ] = self.remoteDebuggerGroup.isChecked()
162 self.project.debugProperties["REMOTEHOST"] = ( 157 self.project.debugProperties["REMOTEHOST"] = self.remoteHostEdit.text()
163 self.remoteHostEdit.text() 158 self.project.debugProperties["REMOTECOMMAND"] = self.remoteCommandEdit.text()
164 ) 159 self.project.debugProperties[
165 self.project.debugProperties["REMOTECOMMAND"] = ( 160 "PATHTRANSLATION"
166 self.remoteCommandEdit.text() 161 ] = self.pathTranslationGroup.isChecked()
167 ) 162 self.project.debugProperties["REMOTEPATH"] = self.translationRemoteEdit.text()
168 self.project.debugProperties["PATHTRANSLATION"] = ( 163 self.project.debugProperties["LOCALPATH"] = self.translationLocalEdit.text()
169 self.pathTranslationGroup.isChecked() 164 self.project.debugProperties[
170 ) 165 "CONSOLEDEBUGGER"
171 self.project.debugProperties["REMOTEPATH"] = ( 166 ] = self.consoleDebuggerGroup.isChecked()
172 self.translationRemoteEdit.text() 167 self.project.debugProperties["CONSOLECOMMAND"] = self.consoleCommandEdit.text()
173 ) 168 self.project.debugProperties["REDIRECT"] = self.redirectCheckBox.isChecked()
174 self.project.debugProperties["LOCALPATH"] = ( 169 self.project.debugProperties["NOENCODING"] = self.noEncodingCheckBox.isChecked()
175 self.translationLocalEdit.text()
176 )
177 self.project.debugProperties["CONSOLEDEBUGGER"] = (
178 self.consoleDebuggerGroup.isChecked()
179 )
180 self.project.debugProperties["CONSOLECOMMAND"] = (
181 self.consoleCommandEdit.text()
182 )
183 self.project.debugProperties["REDIRECT"] = (
184 self.redirectCheckBox.isChecked()
185 )
186 self.project.debugProperties["NOENCODING"] = (
187 self.noEncodingCheckBox.isChecked()
188 )
189 self.project.debugPropertiesLoaded = True 170 self.project.debugPropertiesLoaded = True
190 self.project.debugPropertiesChanged = True 171 self.project.debugPropertiesChanged = True
191 172
192 self.__saveHistories() 173 self.__saveHistories()
193 174
194 def __saveHistories(self): 175 def __saveHistories(self):
195 """ 176 """
196 Private method to save the path picker histories. 177 Private method to save the path picker histories.
197 """ 178 """
198 debugClient = self.debugClientPicker.text(toNative=False) 179 debugClient = self.debugClientPicker.text(toNative=False)
199 debugClientsHistory = self.debugClientPicker.getPathItems() 180 debugClientsHistory = self.debugClientPicker.getPathItems()
200 if debugClient not in debugClientsHistory: 181 if debugClient not in debugClientsHistory:
201 debugClientsHistory.insert(0, debugClient) 182 debugClientsHistory.insert(0, debugClient)
202 Preferences.setProject("DebugClientsHistory", 183 Preferences.setProject("DebugClientsHistory", debugClientsHistory)
203 debugClientsHistory) 184
204
205 @pyqtSlot() 185 @pyqtSlot()
206 def on_debugClientClearHistoryButton_clicked(self): 186 def on_debugClientClearHistoryButton_clicked(self):
207 """ 187 """
208 Private slot to clear the debug clients history. 188 Private slot to clear the debug clients history.
209 """ 189 """
210 self.__clearHistory(self.debugClientPicker) 190 self.__clearHistory(self.debugClientPicker)
211 191
212 def __clearHistory(self, picker): 192 def __clearHistory(self, picker):
213 """ 193 """
214 Private method to clear a path picker history. 194 Private method to clear a path picker history.
215 195
216 @param picker reference to the path picker 196 @param picker reference to the path picker
217 @type EricComboPathPicker 197 @type EricComboPathPicker
218 """ 198 """
219 currentText = picker.text() 199 currentText = picker.text()
220 picker.clear() 200 picker.clear()
221 picker.setText(currentText) 201 picker.setText(currentText)
222 202
223 self.__saveHistories() 203 self.__saveHistories()

eric ide

mercurial