Project/DebuggerPropertiesDialog.py

changeset 0
de9c2efb9d02
child 12
1d8dd9706f46
equal deleted inserted replaced
-1:000000000000 0:de9c2efb9d02
1 # -*- coding: utf-8 -*-
2
3 # Copyright (c) 2005 - 2009 Detlev Offenbach <detlev@die-offenbachs.de>
4 #
5
6 """
7 Module implementing a dialog for entering project specific debugger settings.
8 """
9
10 import os
11 import sys
12
13 from PyQt4.QtCore import *
14 from PyQt4.QtGui import *
15
16 from E4Gui.E4Completers import E4FileCompleter, E4DirCompleter
17
18 from Ui_DebuggerPropertiesDialog import Ui_DebuggerPropertiesDialog
19
20 import Utilities
21
22 from eric4config import getConfig
23
24
25 class DebuggerPropertiesDialog(QDialog, Ui_DebuggerPropertiesDialog):
26 """
27 Class implementing a dialog for entering project specific debugger settings.
28 """
29 def __init__(self, project, parent = None, name = None):
30 """
31 Constructor
32
33 @param project reference to the project object
34 @param parent parent widget of this dialog (QWidget)
35 @param name name of this dialog (string)
36 """
37 QDialog.__init__(self, parent)
38 if name:
39 self.setObjectName(name)
40 self.setupUi(self)
41
42 self.debugClientCompleter = E4FileCompleter(self.debugClientEdit)
43 self.interpreterCompleter = E4FileCompleter(self.interpreterEdit)
44 self.translationLocalCompleter = E4DirCompleter(self.translationLocalEdit)
45
46 self.project = project
47
48 if self.project.debugProperties["INTERPRETER"]:
49 self.interpreterEdit.setText(self.project.debugProperties["INTERPRETER"])
50 else:
51 if self.project.pdata["PROGLANGUAGE"][0] in ["Python", "Python3"]:
52 self.interpreterEdit.setText(sys.executable)
53 elif self.project.pdata["PROGLANGUAGE"][0] == "Ruby":
54 self.interpreterEdit.setText("/usr/bin/ruby")
55 if self.project.debugProperties["DEBUGCLIENT"]:
56 self.debugClientEdit.setText(self.project.debugProperties["DEBUGCLIENT"])
57 else:
58 if self.project.pdata["PROGLANGUAGE"][0] == "Python":
59 debugClient = os.path.join(getConfig('ericDir'),
60 "DebugClients", "Python", "DebugClient.py")
61 elif self.project.pdata["PROGLANGUAGE"][0] == "Python3":
62 debugClient = os.path.join(getConfig('ericDir'),
63 "DebugClients", "Python3", "DebugClient.py")
64 elif self.project.pdata["PROGLANGUAGE"][0] == "Ruby":
65 debugClient = os.path.join(getConfig('ericDir'),
66 "DebugClients", "Ruby", "DebugClient.rb")
67 else:
68 debugClient = ""
69 self.debugClientEdit.setText(debugClient)
70 self.debugEnvironmentOverrideCheckBox.setChecked(\
71 self.project.debugProperties["ENVIRONMENTOVERRIDE"])
72 self.debugEnvironmentEdit.setText(\
73 self.project.debugProperties["ENVIRONMENTSTRING"])
74 self.remoteDebuggerGroup.setChecked(\
75 self.project.debugProperties["REMOTEDEBUGGER"])
76 self.remoteHostEdit.setText(\
77 self.project.debugProperties["REMOTEHOST"])
78 self.remoteCommandEdit.setText(\
79 self.project.debugProperties["REMOTECOMMAND"])
80 self.pathTranslationGroup.setChecked(\
81 self.project.debugProperties["PATHTRANSLATION"])
82 self.translationRemoteEdit.setText(\
83 self.project.debugProperties["REMOTEPATH"])
84 self.translationLocalEdit.setText(\
85 self.project.debugProperties["LOCALPATH"])
86 self.consoleDebuggerGroup.setChecked(\
87 self.project.debugProperties["CONSOLEDEBUGGER"])
88 self.consoleCommandEdit.setText(\
89 self.project.debugProperties["CONSOLECOMMAND"])
90 self.redirectCheckBox.setChecked(\
91 self.project.debugProperties["REDIRECT"])
92 self.noEncodingCheckBox.setChecked(\
93 self.project.debugProperties["NOENCODING"])
94
95 @pyqtSlot()
96 def on_interpreterButton_clicked(self):
97 """
98 Private slot to handle the interpreter selection.
99 """
100 file = QFileDialog.getOpenFileName(\
101 self,
102 self.trUtf8("Select interpreter for Debug Client"),
103 self.interpreterEdit.text(),
104 "")
105
106 if file:
107 self.interpreterEdit.setText(Utilities.toNativeSeparators(file))
108
109 @pyqtSlot()
110 def on_debugClientButton_clicked(self):
111 """
112 Private slot to handle the Debug Client selection.
113 """
114 filters = self.project.dbgFilters[self.project.pdata["PROGLANGUAGE"][0]]
115 filters += self.trUtf8("All Files (*)")
116 file = QFileDialog.getOpenFileName(\
117 self,
118 self.trUtf8("Select Debug Client"),
119 self.debugClientEdit.text(),
120 filters)
121
122 if file:
123 self.debugClientEdit.setText(Utilities.toNativeSeparators(file))
124
125 def storeData(self):
126 """
127 Public method to store the entered/modified data.
128 """
129 self.project.debugProperties["INTERPRETER"] = \
130 self.interpreterEdit.text()
131 if not self.project.debugProperties["INTERPRETER"]:
132 if self.project.pdata["PROGLANGUAGE"][0] in ["Python", "Python3"]:
133 self.project.debugProperties["INTERPRETER"] = sys.executable
134 elif self.project.pdata["PROGLANGUAGE"][0] == "Ruby":
135 self.project.debugProperties["INTERPRETER"] = "/usr/bin/ruby"
136
137 self.project.debugProperties["DEBUGCLIENT"] = \
138 self.debugClientEdit.text()
139 if not self.project.debugProperties["DEBUGCLIENT"]:
140 if self.project.pdata["PROGLANGUAGE"][0] == "Python":
141 debugClient = os.path.join(getConfig('ericDir'),
142 "DebugClients", "Python", "DebugClient.py")
143 elif self.project.pdata["PROGLANGUAGE"][0] == "Python3":
144 debugClient = os.path.join(getConfig('ericDir'),
145 "DebugClients", "Python3", "DebugClient.py")
146 elif self.project.pdata["PROGLANGUAGE"][0] == "Ruby":
147 debugClient = os.path.join(getConfig('ericDir'),
148 "DebugClients", "Ruby", "DebugClient.rb")
149 else:
150 debugClient = ""
151 self.project.debugProperties["DEBUGCLIENT"] = debugClient
152
153 self.project.debugProperties["ENVIRONMENTOVERRIDE"] = \
154 self.debugEnvironmentOverrideCheckBox.isChecked()
155 self.project.debugProperties["ENVIRONMENTSTRING"] = \
156 self.debugEnvironmentEdit.text()
157 self.project.debugProperties["REMOTEDEBUGGER"] = \
158 self.remoteDebuggerGroup.isChecked()
159 self.project.debugProperties["REMOTEHOST"] = \
160 self.remoteHostEdit.text()
161 self.project.debugProperties["REMOTECOMMAND"] = \
162 self.remoteCommandEdit.text()
163 self.project.debugProperties["PATHTRANSLATION"] = \
164 self.pathTranslationGroup.isChecked()
165 self.project.debugProperties["REMOTEPATH"] = \
166 self.translationRemoteEdit.text()
167 self.project.debugProperties["LOCALPATH"] = \
168 self.translationLocalEdit.text()
169 self.project.debugProperties["CONSOLEDEBUGGER"] = \
170 self.consoleDebuggerGroup.isChecked()
171 self.project.debugProperties["CONSOLECOMMAND"] = \
172 self.consoleCommandEdit.text()
173 self.project.debugProperties["REDIRECT"] = \
174 self.redirectCheckBox.isChecked()
175 self.project.debugProperties["NOENCODING"] = \
176 self.noEncodingCheckBox.isChecked()
177 self.project.debugPropertiesLoaded = True

eric ide

mercurial