33 self.setupUi(self) |
33 self.setupUi(self) |
34 self.setObjectName("MicroPythonPage") |
34 self.setObjectName("MicroPythonPage") |
35 |
35 |
36 self.colorSchemeComboBox.addItems(sorted(AnsiColorSchemes.keys())) |
36 self.colorSchemeComboBox.addItems(sorted(AnsiColorSchemes.keys())) |
37 |
37 |
|
38 # populate the chart theme combobox |
|
39 try: |
|
40 from PyQt5.QtChart import QChart |
|
41 |
|
42 self.chartThemeComboBox.addItem(self.tr("Automatic"), |
|
43 -1) |
|
44 self.chartThemeComboBox.addItem(self.tr("Light"), |
|
45 QChart.ChartThemeLight); |
|
46 self.chartThemeComboBox.addItem(self.tr("Dark"), |
|
47 QChart.ChartThemeDark); |
|
48 self.chartThemeComboBox.addItem(self.tr("Blue Cerulean"), |
|
49 QChart.ChartThemeBlueCerulean); |
|
50 self.chartThemeComboBox.addItem(self.tr("Brown Sand"), |
|
51 QChart.ChartThemeBrownSand); |
|
52 self.chartThemeComboBox.addItem(self.tr("Blue NCS"), |
|
53 QChart.ChartThemeBlueNcs); |
|
54 self.chartThemeComboBox.addItem(self.tr("High Contrast"), |
|
55 QChart.ChartThemeHighContrast); |
|
56 self.chartThemeComboBox.addItem(self.tr("Blue Icy"), |
|
57 QChart.ChartThemeBlueIcy); |
|
58 self.chartThemeComboBox.addItem(self.tr("Qt"), |
|
59 QChart.ChartThemeQt); |
|
60 except ImportError: |
|
61 self.chartThemeComboBox.setEnabled(False) |
|
62 |
38 self.mpyCrossPicker.setMode(E5PathPickerModes.OpenFileMode) |
63 self.mpyCrossPicker.setMode(E5PathPickerModes.OpenFileMode) |
39 self.mpyCrossPicker.setFilters(self.tr("All Files (*)")) |
64 self.mpyCrossPicker.setFilters(self.tr("All Files (*)")) |
40 |
65 |
41 self.dfuUtilPathPicker.setMode(E5PathPickerModes.OpenFileMode) |
66 self.dfuUtilPathPicker.setMode(E5PathPickerModes.OpenFileMode) |
42 self.dfuUtilPathPicker.setFilters(self.tr("All Files (*)")) |
67 self.dfuUtilPathPicker.setFilters(self.tr("All Files (*)")) |
43 |
68 |
44 # set initial values |
69 # set initial values |
|
70 # serial link parameters |
45 self.timeoutSpinBox.setValue( |
71 self.timeoutSpinBox.setValue( |
46 Preferences.getMicroPython("SerialTimeout") / 1000) |
72 Preferences.getMicroPython("SerialTimeout") / 1000) |
47 # converted to seconds |
73 # converted to seconds |
48 self.syncTimeCheckBox.setChecked( |
74 self.syncTimeCheckBox.setChecked( |
49 Preferences.getMicroPython("SyncTimeAfterConnect")) |
75 Preferences.getMicroPython("SyncTimeAfterConnect")) |
|
76 |
|
77 # REPL Pane |
50 self.colorSchemeComboBox.setCurrentIndex( |
78 self.colorSchemeComboBox.setCurrentIndex( |
51 self.colorSchemeComboBox.findText( |
79 self.colorSchemeComboBox.findText( |
52 Preferences.getMicroPython("ColorScheme"))) |
80 Preferences.getMicroPython("ColorScheme"))) |
53 self.replWrapCheckBox.setChecked( |
81 self.replWrapCheckBox.setChecked( |
54 Preferences.getMicroPython("ReplLineWrap")) |
82 Preferences.getMicroPython("ReplLineWrap")) |
|
83 |
|
84 # Chart Pane |
|
85 index = self.chartThemeComboBox.findData( |
|
86 Preferences.getMicroPython("ChartColorTheme")) |
|
87 if index < 0: |
|
88 index = 0 |
|
89 self.chartThemeComboBox.setCurrentIndex(index) |
|
90 |
|
91 # MPY Cross Compiler |
55 self.mpyCrossPicker.setText( |
92 self.mpyCrossPicker.setText( |
56 Preferences.getMicroPython("MpyCrossCompiler")) |
93 Preferences.getMicroPython("MpyCrossCompiler")) |
|
94 |
|
95 # PyBoard specifics |
57 self.dfuUtilPathPicker.setText( |
96 self.dfuUtilPathPicker.setText( |
58 Preferences.getMicroPython("DfuUtilPath")) |
97 Preferences.getMicroPython("DfuUtilPath")) |
|
98 |
|
99 # firmware URL |
59 self.micropythonFirmwareUrlLineEdit.setText( |
100 self.micropythonFirmwareUrlLineEdit.setText( |
60 Preferences.getMicroPython("MicroPythonFirmwareUrl")) |
101 Preferences.getMicroPython("MicroPythonFirmwareUrl")) |
61 self.circuitpythonFirmwareUrlLineEdit.setText( |
102 self.circuitpythonFirmwareUrlLineEdit.setText( |
62 Preferences.getMicroPython("CircuitPythonFirmwareUrl")) |
103 Preferences.getMicroPython("CircuitPythonFirmwareUrl")) |
63 self.microbitFirmwareUrlLineEdit.setText( |
104 self.microbitFirmwareUrlLineEdit.setText( |
64 Preferences.getMicroPython("MicrobitFirmwareUrl")) |
105 Preferences.getMicroPython("MicrobitFirmwareUrl")) |
|
106 |
|
107 # documentation URL |
65 self.micropythonDocuUrlLineEdit.setText( |
108 self.micropythonDocuUrlLineEdit.setText( |
66 Preferences.getMicroPython("MicroPythonDocuUrl")) |
109 Preferences.getMicroPython("MicroPythonDocuUrl")) |
67 self.circuitpythonDocuUrlLineEdit.setText( |
110 self.circuitpythonDocuUrlLineEdit.setText( |
68 Preferences.getMicroPython("CircuitPythonDocuUrl")) |
111 Preferences.getMicroPython("CircuitPythonDocuUrl")) |
69 self.microbitDocuUrlLineEdit.setText( |
112 self.microbitDocuUrlLineEdit.setText( |
71 |
114 |
72 def save(self): |
115 def save(self): |
73 """ |
116 """ |
74 Public slot to save the MicroPython configuration. |
117 Public slot to save the MicroPython configuration. |
75 """ |
118 """ |
|
119 # serial link parameters |
76 Preferences.setMicroPython( |
120 Preferences.setMicroPython( |
77 "SerialTimeout", |
121 "SerialTimeout", |
78 self.timeoutSpinBox.value() * 1000) |
122 self.timeoutSpinBox.value() * 1000) |
79 # converted to milliseconds |
123 # converted to milliseconds |
80 Preferences.setMicroPython( |
124 Preferences.setMicroPython( |
81 "SyncTimeAfterConnect", |
125 "SyncTimeAfterConnect", |
82 self.syncTimeCheckBox.isChecked()) |
126 self.syncTimeCheckBox.isChecked()) |
|
127 |
|
128 # REPL Pane |
83 Preferences.setMicroPython( |
129 Preferences.setMicroPython( |
84 "ColorScheme", |
130 "ColorScheme", |
85 self.colorSchemeComboBox.currentText()) |
131 self.colorSchemeComboBox.currentText()) |
86 Preferences.setMicroPython( |
132 Preferences.setMicroPython( |
87 "ReplLineWrap", |
133 "ReplLineWrap", |
88 self.replWrapCheckBox.isChecked()) |
134 self.replWrapCheckBox.isChecked()) |
|
135 |
|
136 # Chart Pane |
|
137 Preferences.setMicroPython( |
|
138 "ChartColorTheme", |
|
139 self.chartThemeComboBox.currentData()) |
|
140 |
|
141 # MPY Cross Compiler |
89 Preferences.setMicroPython( |
142 Preferences.setMicroPython( |
90 "MpyCrossCompiler", |
143 "MpyCrossCompiler", |
91 self.mpyCrossPicker.text()) |
144 self.mpyCrossPicker.text()) |
|
145 |
|
146 # PyBoard specifics |
92 Preferences.setMicroPython( |
147 Preferences.setMicroPython( |
93 "DfuUtilPath", |
148 "DfuUtilPath", |
94 self.dfuUtilPathPicker.text()) |
149 self.dfuUtilPathPicker.text()) |
|
150 |
|
151 # firmware URL |
95 Preferences.setMicroPython( |
152 Preferences.setMicroPython( |
96 "MicroPythonFirmwareUrl", |
153 "MicroPythonFirmwareUrl", |
97 self.micropythonFirmwareUrlLineEdit.text()) |
154 self.micropythonFirmwareUrlLineEdit.text()) |
98 Preferences.setMicroPython( |
155 Preferences.setMicroPython( |
99 "CircuitPythonFirmwareUrl", |
156 "CircuitPythonFirmwareUrl", |
100 self.circuitpythonFirmwareUrlLineEdit.text()) |
157 self.circuitpythonFirmwareUrlLineEdit.text()) |
101 Preferences.setMicroPython( |
158 Preferences.setMicroPython( |
102 "MicrobitFirmwareUrl", |
159 "MicrobitFirmwareUrl", |
103 self.microbitFirmwareUrlLineEdit.text()) |
160 self.microbitFirmwareUrlLineEdit.text()) |
|
161 |
|
162 # documentation URL |
104 Preferences.setMicroPython( |
163 Preferences.setMicroPython( |
105 "MicroPythonDocuUrl", |
164 "MicroPythonDocuUrl", |
106 self.micropythonDocuUrlLineEdit.text()) |
165 self.micropythonDocuUrlLineEdit.text()) |
107 Preferences.setMicroPython( |
166 Preferences.setMicroPython( |
108 "CircuitPythonDocuUrl", |
167 "CircuitPythonDocuUrl", |