Preferences/ConfigurationPages/DebuggerPythonPage.py

changeset 6381
37f23590dbbc
parent 6380
4a932a7ab987
child 6382
4d6e43200bc7
equal deleted inserted replaced
6380:4a932a7ab987 6381:37f23590dbbc
1 # -*- coding: utf-8 -*-
2
3 # Copyright (c) 2006 - 2018 Detlev Offenbach <detlev@die-offenbachs.de>
4 #
5
6 """
7 Module implementing the Debugger Python configuration page.
8 """
9
10 from __future__ import unicode_literals
11
12 from E5Gui.E5Application import e5App
13 from E5Gui.E5PathPicker import E5PathPickerModes
14
15 from .ConfigurationPageBase import ConfigurationPageBase
16 from .Ui_DebuggerPythonPage import Ui_DebuggerPythonPage
17
18 import Preferences
19
20
21 class DebuggerPythonPage(ConfigurationPageBase, Ui_DebuggerPythonPage):
22 """
23 Class implementing the Debugger Python configuration page.
24 """
25 def __init__(self):
26 """
27 Constructor
28 """
29 super(DebuggerPythonPage, self).__init__()
30 self.setupUi(self)
31 self.setObjectName("DebuggerPythonPage")
32
33 try:
34 virtualenvManager = e5App().getObject("VirtualEnvManager")
35 except KeyError:
36 from VirtualEnv.VirtualenvManager import VirtualenvManager
37 virtualenvManager = VirtualenvManager()
38 self.venvComboBox.addItems(
39 [""] + sorted(virtualenvManager.getVirtualenvNamesForVariant(2)))
40
41 self.debugClientPicker.setMode(E5PathPickerModes.OpenFileMode)
42 self.debugClientPicker.setToolTip(self.tr(
43 "Press to select the Debug Client via a file selection dialog"))
44 self.debugClientPicker.setFilters(self.tr("Python Files (*.py *.py2)"))
45
46 # set initial values
47 venvName = Preferences.getDebugger("Python2VirtualEnv")
48 if venvName:
49 index = self.venvComboBox.findText(venvName)
50 if index < 0:
51 index = 0
52 self.venvComboBox.setCurrentIndex(index)
53 dct = Preferences.getDebugger("DebugClientType")
54 if dct == "standard":
55 self.standardButton.setChecked(True)
56 else:
57 self.customButton.setChecked(True)
58 self.debugClientPicker.setText(
59 Preferences.getDebugger("DebugClient"), toNative=False)
60 self.pyRedirectCheckBox.setChecked(
61 Preferences.getDebugger("PythonRedirect"))
62 self.pyNoEncodingCheckBox.setChecked(
63 Preferences.getDebugger("PythonNoEncoding"))
64 self.sourceExtensionsEdit.setText(
65 Preferences.getDebugger("PythonExtensions"))
66
67 def save(self):
68 """
69 Public slot to save the Debugger Python configuration.
70 """
71 Preferences.setDebugger(
72 "Python2VirtualEnv",
73 self.venvComboBox.currentText())
74 if self.standardButton.isChecked():
75 dct = "standard"
76 else:
77 dct = "custom"
78 Preferences.setDebugger("DebugClientType", dct)
79 Preferences.setDebugger(
80 "DebugClient",
81 self.debugClientPicker.text(toNative=False))
82 Preferences.setDebugger(
83 "PythonRedirect",
84 self.pyRedirectCheckBox.isChecked())
85 Preferences.setDebugger(
86 "PythonNoEncoding",
87 self.pyNoEncodingCheckBox.isChecked())
88 Preferences.setDebugger(
89 "PythonExtensions",
90 self.sourceExtensionsEdit.text())
91
92
93 def create(dlg):
94 """
95 Module function to create the configuration page.
96
97 @param dlg reference to the configuration dialog
98 @return reference to the instantiated page (ConfigurationPageBase)
99 """
100 page = DebuggerPythonPage()
101 return page

eric ide

mercurial