easycoder 251104.1__py2.py3-none-any.whl → 251105.1__py2.py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- easycoder/__init__.py +1 -1
- easycoder/ec_border.py +15 -11
- easycoder/ec_classes.py +7 -2
- easycoder/ec_compiler.py +2 -1
- easycoder/ec_core.py +2 -9
- easycoder/ec_debug.py +781 -0
- easycoder/ec_handler.py +1 -0
- easycoder/ec_keyboard.py +50 -50
- easycoder/ec_program.py +44 -10
- easycoder/ec_pyside.py +82 -95
- easycoder/ec_timestamp.py +2 -1
- easycoder/icons/exit.png +0 -0
- easycoder/icons/run.png +0 -0
- easycoder/icons/step.png +0 -0
- easycoder/icons/stop.png +0 -0
- {easycoder-251104.1.dist-info → easycoder-251105.1.dist-info}/METADATA +1 -1
- easycoder-251105.1.dist-info/RECORD +24 -0
- easycoder-251104.1.dist-info/RECORD +0 -19
- /easycoder/{close.png → icons/close.png} +0 -0
- /easycoder/{tick.png → icons/tick.png} +0 -0
- {easycoder-251104.1.dist-info → easycoder-251105.1.dist-info}/WHEEL +0 -0
- {easycoder-251104.1.dist-info → easycoder-251105.1.dist-info}/entry_points.txt +0 -0
- {easycoder-251104.1.dist-info → easycoder-251105.1.dist-info}/licenses/LICENSE +0 -0
easycoder/ec_handler.py
CHANGED
easycoder/ec_keyboard.py
CHANGED
|
@@ -29,7 +29,7 @@ class Keyboard(Handler):
|
|
|
29
29
|
self.dialog = dialog
|
|
30
30
|
|
|
31
31
|
# dialog.setWindowTitle('')
|
|
32
|
-
dialog.setWindowFlags(Qt.FramelessWindowHint)
|
|
32
|
+
dialog.setWindowFlags(Qt.WindowType.FramelessWindowHint)
|
|
33
33
|
dialog.setModal(True)
|
|
34
34
|
dialog.setFixedWidth(500)
|
|
35
35
|
dialog.setStyleSheet('background-color: white;border:1px solid black;')
|
|
@@ -38,7 +38,7 @@ class Keyboard(Handler):
|
|
|
38
38
|
shadow = QGraphicsDropShadowEffect(dialog)
|
|
39
39
|
shadow.setBlurRadius(40)
|
|
40
40
|
shadow.setOffset(0, 4)
|
|
41
|
-
shadow.setColor(Qt.black)
|
|
41
|
+
shadow.setColor(Qt.GlobalColor.black)
|
|
42
42
|
dialog.setGraphicsEffect(shadow)
|
|
43
43
|
|
|
44
44
|
# Add the keyboard
|
|
@@ -186,43 +186,43 @@ class VirtualKeyboard(QStackedWidget):
|
|
|
186
186
|
|
|
187
187
|
# Row 2: qwertyuiop
|
|
188
188
|
row2 = KeyboardRow([
|
|
189
|
-
QSpacerItem(20, 40, QSizePolicy.Expanding, QSizePolicy.Minimum),
|
|
189
|
+
QSpacerItem(20, 40, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum),
|
|
190
190
|
*[KeyboardButton(self.buttonHeight, self.buttonHeight, self.onClickChar, char) for char in 'qwertyuiop'],
|
|
191
|
-
QSpacerItem(20, 40, QSizePolicy.Expanding, QSizePolicy.Minimum)
|
|
191
|
+
QSpacerItem(20, 40, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
|
|
192
192
|
])
|
|
193
193
|
rowList.append(row2)
|
|
194
194
|
|
|
195
195
|
# Row 3: asdfghjkl with horizontal stretches
|
|
196
196
|
row3 = KeyboardRow([
|
|
197
|
-
QSpacerItem(20, 40, QSizePolicy.Expanding, QSizePolicy.Minimum),
|
|
197
|
+
QSpacerItem(20, 40, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum),
|
|
198
198
|
*[KeyboardButton(self.buttonHeight, self.buttonHeight, self.onClickChar, char) for char in 'asdfghjkl'],
|
|
199
|
-
QSpacerItem(20, 40, QSizePolicy.Expanding, QSizePolicy.Minimum)
|
|
199
|
+
QSpacerItem(20, 40, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
|
|
200
200
|
])
|
|
201
201
|
rowList.append(row3)
|
|
202
202
|
|
|
203
203
|
# Row 4: Shift, ZXC..., Backspace
|
|
204
204
|
row4 = KeyboardRow([
|
|
205
|
-
QSpacerItem(20, 40, QSizePolicy.Expanding, QSizePolicy.Minimum),
|
|
205
|
+
QSpacerItem(20, 40, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum),
|
|
206
206
|
KeyboardButton(self.buttonHeight * 1.5, self.buttonHeight, self.onClickShift, None, 'img/up.png'),
|
|
207
|
-
QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Fixed, QSizePolicy.Minimum),
|
|
207
|
+
QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Minimum),
|
|
208
208
|
*[KeyboardButton(self.buttonHeight, self.buttonHeight, self.onClickChar, char) for char in 'zxcvbnm'],
|
|
209
|
-
QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Fixed, QSizePolicy.Minimum),
|
|
209
|
+
QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Minimum),
|
|
210
210
|
KeyboardButton(self.buttonHeight * 1.5, self.buttonHeight, self.onClickBack, None, 'img/back.png'),
|
|
211
|
-
QSpacerItem(20, 40, QSizePolicy.Expanding, QSizePolicy.Minimum)
|
|
211
|
+
QSpacerItem(20, 40, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
|
|
212
212
|
])
|
|
213
213
|
rowList.append(row4)
|
|
214
214
|
|
|
215
215
|
# Row 5: Numbers, Space, Enter
|
|
216
216
|
row5 = KeyboardRow([
|
|
217
|
-
QSpacerItem(20, 40, QSizePolicy.Expanding, QSizePolicy.Minimum),
|
|
217
|
+
QSpacerItem(20, 40, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum),
|
|
218
218
|
KeyboardButton(self.buttonHeight * 1.5, self.buttonHeight, self.onClickNumbers, None, 'img/numbers.png'),
|
|
219
|
-
QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Fixed, QSizePolicy.Minimum),
|
|
219
|
+
QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Minimum),
|
|
220
220
|
KeyboardButton(self.buttonHeight, self.buttonHeight, self.onClickChar, ","),
|
|
221
221
|
KeyboardButton(self.buttonHeight * 5, self.buttonHeight, self.onClickSpace, None, 'keyboard/space.png'),
|
|
222
222
|
KeyboardButton(self.buttonHeight, self.buttonHeight, self.onClickChar, "."),
|
|
223
|
-
QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Fixed, QSizePolicy.Minimum),
|
|
223
|
+
QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Minimum),
|
|
224
224
|
KeyboardButton(self.buttonHeight * 1.5, self.buttonHeight, self.onClickEnter, None, 'img/enter.png'),
|
|
225
|
-
QSpacerItem(20, 40, QSizePolicy.Expanding, QSizePolicy.Minimum)
|
|
225
|
+
QSpacerItem(20, 40, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
|
|
226
226
|
])
|
|
227
227
|
rowList.append(row5)
|
|
228
228
|
|
|
@@ -243,43 +243,43 @@ class VirtualKeyboard(QStackedWidget):
|
|
|
243
243
|
|
|
244
244
|
# Row 2: Uppercase QWERTY
|
|
245
245
|
row2 = KeyboardRow([
|
|
246
|
-
QSpacerItem(20, 40, QSizePolicy.Expanding, QSizePolicy.Minimum),
|
|
246
|
+
QSpacerItem(20, 40, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum),
|
|
247
247
|
*[KeyboardButton(self.buttonHeight, self.buttonHeight, self.onClickChar, char) for char in 'QWERTYUIOP'],
|
|
248
|
-
QSpacerItem(20, 40, QSizePolicy.Expanding, QSizePolicy.Minimum)
|
|
248
|
+
QSpacerItem(20, 40, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
|
|
249
249
|
])
|
|
250
250
|
rowList.append(row2)
|
|
251
251
|
|
|
252
252
|
# Row 3: Uppercase ASDFGHJKL with horizontal stretches
|
|
253
253
|
row3 = KeyboardRow([
|
|
254
|
-
QSpacerItem(20, 40, QSizePolicy.Expanding, QSizePolicy.Minimum),
|
|
254
|
+
QSpacerItem(20, 40, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum),
|
|
255
255
|
*[KeyboardButton(self.buttonHeight, self.buttonHeight, self.onClickChar, char) for char in 'ASDFGHJKL'],
|
|
256
|
-
QSpacerItem(20, 40, QSizePolicy.Expanding, QSizePolicy.Minimum)
|
|
256
|
+
QSpacerItem(20, 40, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
|
|
257
257
|
])
|
|
258
258
|
rowList.append(row3)
|
|
259
259
|
|
|
260
260
|
# Row 4: Shift, Uppercase ZXC..., Backspace
|
|
261
261
|
row4 = KeyboardRow([
|
|
262
|
-
QSpacerItem(20, 40, QSizePolicy.Expanding, QSizePolicy.Minimum),
|
|
262
|
+
QSpacerItem(20, 40, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum),
|
|
263
263
|
KeyboardButton(self.buttonHeight * 1.5, self.buttonHeight, self.onClickShift, None, 'img/up.png'),
|
|
264
|
-
QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Fixed, QSizePolicy.Minimum),
|
|
264
|
+
QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Minimum),
|
|
265
265
|
*[KeyboardButton(self.buttonHeight, self.buttonHeight, self.onClickChar, char) for char in 'ZXCVBNM'],
|
|
266
|
-
QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Fixed, QSizePolicy.Minimum),
|
|
266
|
+
QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Minimum),
|
|
267
267
|
KeyboardButton(self.buttonHeight * 1.5, self.buttonHeight, self.onClickBack, None, 'img/back.png'),
|
|
268
|
-
QSpacerItem(20, 40, QSizePolicy.Expanding, QSizePolicy.Minimum)
|
|
268
|
+
QSpacerItem(20, 40, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
|
|
269
269
|
])
|
|
270
270
|
rowList.append(row4)
|
|
271
271
|
|
|
272
272
|
# Row 5: Numbers, Space, Enter
|
|
273
273
|
row5 = KeyboardRow([
|
|
274
|
-
QSpacerItem(20, 40, QSizePolicy.Expanding, QSizePolicy.Minimum),
|
|
274
|
+
QSpacerItem(20, 40, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum),
|
|
275
275
|
KeyboardButton(self.buttonHeight * 1.5, self.buttonHeight, self.onClickNumbers, None, 'img/numbers.png'),
|
|
276
|
-
QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Fixed, QSizePolicy.Minimum),
|
|
276
|
+
QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Minimum),
|
|
277
277
|
KeyboardButton(self.buttonHeight, self.buttonHeight, self.onClickChar, ","),
|
|
278
278
|
KeyboardButton(self.buttonHeight * 5, self.buttonHeight, self.onClickSpace, None, 'img/space.png'),
|
|
279
279
|
KeyboardButton(self.buttonHeight, self.buttonHeight, self.onClickChar, "."),
|
|
280
|
-
QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Fixed, QSizePolicy.Minimum),
|
|
280
|
+
QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Minimum),
|
|
281
281
|
KeyboardButton(self.buttonHeight * 1.5, self.buttonHeight, self.onClickEnter, None, 'img/enter.png'),
|
|
282
|
-
QSpacerItem(20, 40, QSizePolicy.Expanding, QSizePolicy.Minimum)
|
|
282
|
+
QSpacerItem(20, 40, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
|
|
283
283
|
])
|
|
284
284
|
rowList.append(row5)
|
|
285
285
|
|
|
@@ -296,43 +296,43 @@ class VirtualKeyboard(QStackedWidget):
|
|
|
296
296
|
|
|
297
297
|
# Row 1: Numbers
|
|
298
298
|
row1 = KeyboardRow([
|
|
299
|
-
QSpacerItem(0, 0, QSizePolicy.Expanding, QSizePolicy.Minimum),
|
|
299
|
+
QSpacerItem(0, 0, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum),
|
|
300
300
|
*[KeyboardButton(self.buttonHeight, self.buttonHeight, self.onClickChar, char) for char in '1234567890'],
|
|
301
|
-
QSpacerItem(0, 0, QSizePolicy.Expanding, QSizePolicy.Minimum)
|
|
301
|
+
QSpacerItem(0, 0, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
|
|
302
302
|
])
|
|
303
303
|
rowList.append(row1)
|
|
304
304
|
|
|
305
305
|
# Row 2: Symbols
|
|
306
306
|
row2 = KeyboardRow([
|
|
307
|
-
QSpacerItem(0, 0, QSizePolicy.Expanding, QSizePolicy.Minimum),
|
|
307
|
+
QSpacerItem(0, 0, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum),
|
|
308
308
|
*[KeyboardButton(self.buttonHeight, self.buttonHeight, self.onClickChar, char) for char in '@#£&_-()=%'],
|
|
309
|
-
QSpacerItem(0, 0, QSizePolicy.Expanding, QSizePolicy.Minimum)
|
|
309
|
+
QSpacerItem(0, 0, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
|
|
310
310
|
])
|
|
311
311
|
rowList.append(row2)
|
|
312
312
|
|
|
313
313
|
# Row 3: Symbols with horizontal stretches
|
|
314
314
|
row3 = KeyboardRow([
|
|
315
|
-
QSpacerItem(0, 0, QSizePolicy.Expanding, QSizePolicy.Minimum),
|
|
315
|
+
QSpacerItem(0, 0, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum),
|
|
316
316
|
KeyboardButton(self.buttonHeight, self.buttonHeight, self.onClickSymbols, None, 'img/symbols.png'),
|
|
317
|
-
QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Fixed, QSizePolicy.Minimum),
|
|
317
|
+
QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Minimum),
|
|
318
318
|
*[KeyboardButton(self.buttonHeight, self.buttonHeight, self.onClickChar, char) for char in '"*\'/:!?+'],
|
|
319
|
-
QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Fixed, QSizePolicy.Minimum),
|
|
319
|
+
QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Minimum),
|
|
320
320
|
KeyboardButton(self.buttonHeight, self.buttonHeight, self.onClickBack, None, 'img/back.png'),
|
|
321
|
-
QSpacerItem(20, 40, QSizePolicy.Expanding, QSizePolicy.Minimum)
|
|
321
|
+
QSpacerItem(20, 40, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
|
|
322
322
|
])
|
|
323
323
|
rowList.append(row3)
|
|
324
324
|
|
|
325
325
|
# Row 4: Numbers, Space, Enter
|
|
326
326
|
row4 = KeyboardRow([
|
|
327
|
-
QSpacerItem(0, 0, QSizePolicy.Expanding, QSizePolicy.Minimum),
|
|
327
|
+
QSpacerItem(0, 0, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum),
|
|
328
328
|
KeyboardButton(self.buttonHeight * 1.5, self.buttonHeight, self.onClickLetters, None, 'img/letters.png'),
|
|
329
|
-
QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Fixed, QSizePolicy.Minimum),
|
|
329
|
+
QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Minimum),
|
|
330
330
|
KeyboardButton(self.buttonHeight, self.buttonHeight, self.onClickChar, ","),
|
|
331
331
|
KeyboardButton(self.buttonHeight * 5.2, self.buttonHeight, self.onClickSpace, None, 'keyboard/space.png'),
|
|
332
332
|
KeyboardButton(self.buttonHeight, self.buttonHeight, self.onClickChar, "."),
|
|
333
|
-
QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Fixed, QSizePolicy.Minimum),
|
|
333
|
+
QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Minimum),
|
|
334
334
|
KeyboardButton(self.buttonHeight * 1.5, self.buttonHeight, self.onClickEnter, None, 'img/enter.png'),
|
|
335
|
-
QSpacerItem(10, 40, QSizePolicy.Expanding, QSizePolicy.Minimum)
|
|
335
|
+
QSpacerItem(10, 40, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
|
|
336
336
|
])
|
|
337
337
|
rowList.append(row4)
|
|
338
338
|
|
|
@@ -349,43 +349,43 @@ class VirtualKeyboard(QStackedWidget):
|
|
|
349
349
|
|
|
350
350
|
# Row 1: Extended symbols
|
|
351
351
|
row1 = KeyboardRow([
|
|
352
|
-
QSpacerItem(0, 0, QSizePolicy.Expanding, QSizePolicy.Minimum),
|
|
352
|
+
QSpacerItem(0, 0, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum),
|
|
353
353
|
*[KeyboardButton(self.buttonHeight, self.buttonHeight, self.onClickChar, char) for char in '$€¥¢©®µ~¿¡'],
|
|
354
|
-
QSpacerItem(0, 0, QSizePolicy.Expanding, QSizePolicy.Minimum)
|
|
354
|
+
QSpacerItem(0, 0, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
|
|
355
355
|
])
|
|
356
356
|
rowList.append(row1)
|
|
357
357
|
|
|
358
358
|
# Row 2: Additional symbols
|
|
359
359
|
row2 = KeyboardRow([
|
|
360
|
-
QSpacerItem(0, 0, QSizePolicy.Expanding, QSizePolicy.Minimum),
|
|
360
|
+
QSpacerItem(0, 0, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum),
|
|
361
361
|
*[KeyboardButton(self.buttonHeight, self.buttonHeight, self.onClickChar, char) for char in '¼½¾[]{}<>^'],
|
|
362
|
-
QSpacerItem(0, 0, QSizePolicy.Expanding, QSizePolicy.Minimum)
|
|
362
|
+
QSpacerItem(0, 0, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
|
|
363
363
|
])
|
|
364
364
|
rowList.append(row2)
|
|
365
365
|
|
|
366
366
|
# Row 3: Symbols with horizontal stretches
|
|
367
367
|
row3 = KeyboardRow([
|
|
368
|
-
QSpacerItem(0, 0, QSizePolicy.Expanding, QSizePolicy.Minimum),
|
|
368
|
+
QSpacerItem(0, 0, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum),
|
|
369
369
|
KeyboardButton(self.buttonHeight, self.buttonHeight, self.onClickNumbers, None, 'img/numbers.png'),
|
|
370
|
-
QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Fixed, QSizePolicy.Minimum),
|
|
370
|
+
QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Minimum),
|
|
371
371
|
*[KeyboardButton(self.buttonHeight, self.buttonHeight, self.onClickChar, char) for char in '`;÷\\∣|¬±'],
|
|
372
|
-
QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Fixed, QSizePolicy.Minimum),
|
|
372
|
+
QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Minimum),
|
|
373
373
|
KeyboardButton(self.buttonHeight, self.buttonHeight, self.onClickBack, None, 'img/back.png'),
|
|
374
|
-
QSpacerItem(0, 0, QSizePolicy.Expanding, QSizePolicy.Minimum)
|
|
374
|
+
QSpacerItem(0, 0, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
|
|
375
375
|
])
|
|
376
376
|
rowList.append(row3)
|
|
377
377
|
|
|
378
378
|
# Row 4: Numbers, Space, Enter
|
|
379
379
|
row4 = KeyboardRow([
|
|
380
|
-
QSpacerItem(0, 0, QSizePolicy.Expanding, QSizePolicy.Minimum),
|
|
380
|
+
QSpacerItem(0, 0, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum),
|
|
381
381
|
KeyboardButton(self.buttonHeight, self.buttonHeight, self.onClickLetters, None, 'img/letters.png'),
|
|
382
|
-
QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Fixed, QSizePolicy.Minimum),
|
|
382
|
+
QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Minimum),
|
|
383
383
|
KeyboardButton(self.buttonHeight, self.buttonHeight, self.onClickChar, ","),
|
|
384
384
|
KeyboardButton(self.buttonHeight * 3, self.buttonHeight, self.onClickSpace, None, 'img/space.png'),
|
|
385
|
-
QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Fixed, QSizePolicy.Minimum),
|
|
385
|
+
QSpacerItem(self.buttonHeight * 0.05, 0, QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Minimum),
|
|
386
386
|
*[KeyboardButton(self.buttonHeight, self.buttonHeight, self.onClickChar, char) for char in '✕§¶°'],
|
|
387
387
|
KeyboardButton(self.buttonHeight, self.buttonHeight, self.onClickEnter, None, 'img/enter.png'),
|
|
388
|
-
QSpacerItem(0, 0, QSizePolicy.Expanding, QSizePolicy.Minimum)
|
|
388
|
+
QSpacerItem(0, 0, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
|
|
389
389
|
])
|
|
390
390
|
rowList.append(row4)
|
|
391
391
|
|
easycoder/ec_program.py
CHANGED
|
@@ -19,11 +19,17 @@ class Program:
|
|
|
19
19
|
def __init__(self, argv):
|
|
20
20
|
global queue
|
|
21
21
|
print(f'EasyCoder version {version("easycoder")}')
|
|
22
|
+
print(argv)
|
|
22
23
|
if len(argv) == 0:
|
|
23
24
|
print('No script supplied')
|
|
24
25
|
exit()
|
|
25
26
|
if argv in ['-v', '--version']: return
|
|
26
|
-
|
|
27
|
+
if argv[0:6] == 'debug ':
|
|
28
|
+
scriptName = argv[6:]
|
|
29
|
+
self.debugging = True
|
|
30
|
+
else:
|
|
31
|
+
scriptName = argv
|
|
32
|
+
self.debugging = False
|
|
27
33
|
|
|
28
34
|
f = open(scriptName, 'r')
|
|
29
35
|
source = f.read()
|
|
@@ -47,16 +53,20 @@ class Program:
|
|
|
47
53
|
self.useClass(Core)
|
|
48
54
|
self.externalControl = False
|
|
49
55
|
self.ticker = 0
|
|
56
|
+
self.usingGraphics = False
|
|
57
|
+
self.debugger = None
|
|
50
58
|
self.running = True
|
|
51
59
|
|
|
52
60
|
# This is called at 10msec intervals by the GUI code
|
|
53
61
|
def flushCB(self):
|
|
54
62
|
self.ticker += 1
|
|
63
|
+
# if self.ticker % 1000 == 0: print(f'GUI Tick {self.ticker}')
|
|
55
64
|
flush()
|
|
56
65
|
|
|
57
66
|
def start(self, parent=None, module = None, exports=[]):
|
|
58
67
|
self.parent = parent
|
|
59
68
|
self.exports = exports
|
|
69
|
+
if self.debugging: self.useGraphics()
|
|
60
70
|
if module != None:
|
|
61
71
|
module['child'] = self
|
|
62
72
|
startCompile = time.time()
|
|
@@ -85,6 +95,16 @@ class Program:
|
|
|
85
95
|
time.sleep(0.01)
|
|
86
96
|
else:
|
|
87
97
|
break
|
|
98
|
+
|
|
99
|
+
# Use the graphics module
|
|
100
|
+
def useGraphics(self):
|
|
101
|
+
if not self.usingGraphics:
|
|
102
|
+
print('Loading graphics module')
|
|
103
|
+
from .ec_pyside import Graphics
|
|
104
|
+
self.graphics = Graphics
|
|
105
|
+
self.useClass(Graphics)
|
|
106
|
+
self.usingGraphics = True
|
|
107
|
+
return True
|
|
88
108
|
|
|
89
109
|
# Import a plugin
|
|
90
110
|
def importPlugin(self, source):
|
|
@@ -147,8 +167,9 @@ class Program:
|
|
|
147
167
|
name = value['name']
|
|
148
168
|
symbolRecord = self.getSymbolRecord(name)
|
|
149
169
|
# if symbolRecord['hasValue']:
|
|
150
|
-
|
|
151
|
-
|
|
170
|
+
if symbolRecord:
|
|
171
|
+
handler = self.domainIndex[symbolRecord['domain']].valueHandler('symbol')
|
|
172
|
+
result = handler(symbolRecord)
|
|
152
173
|
# else:
|
|
153
174
|
# # Call the given domain to handle a value
|
|
154
175
|
# # domain = self.domainIndex[value['domain']]
|
|
@@ -181,7 +202,10 @@ class Program:
|
|
|
181
202
|
return None
|
|
182
203
|
|
|
183
204
|
def getValue(self, value):
|
|
184
|
-
|
|
205
|
+
result = self.evaluate(value)
|
|
206
|
+
if result:
|
|
207
|
+
return result.get('content') # type: ignore[union-attr]
|
|
208
|
+
return None
|
|
185
209
|
|
|
186
210
|
def getRuntimeValue(self, value):
|
|
187
211
|
if value is None:
|
|
@@ -287,9 +311,9 @@ class Program:
|
|
|
287
311
|
return
|
|
288
312
|
|
|
289
313
|
def releaseParent(self):
|
|
290
|
-
if self.parent.waiting and self.parent.program.running:
|
|
291
|
-
self.parent.waiting = False
|
|
292
|
-
self.parent.program.run(self.parent.pc)
|
|
314
|
+
if self.parent and self.parent.waiting and self.parent.program.running: # type: ignore[union-attr]
|
|
315
|
+
self.parent.waiting = False # type: ignore[union-attr]
|
|
316
|
+
self.parent.program.run(self.parent.pc) # type: ignore[union-attr]
|
|
293
317
|
|
|
294
318
|
# Flush the queue
|
|
295
319
|
def flush(self, pc):
|
|
@@ -321,6 +345,8 @@ class Program:
|
|
|
321
345
|
break
|
|
322
346
|
elif self.pc == None or self.pc == 0 or self.pc >= len(self.code):
|
|
323
347
|
break
|
|
348
|
+
elif self.debugger != None and not self.debugger.continueExecution():
|
|
349
|
+
break
|
|
324
350
|
|
|
325
351
|
# Run the script at a given PC value
|
|
326
352
|
def run(self, pc):
|
|
@@ -378,9 +404,9 @@ class Program:
|
|
|
378
404
|
if type(v2) == int:
|
|
379
405
|
if type(v1) != int:
|
|
380
406
|
v2 = f'{v2}'
|
|
381
|
-
if v1 > v2:
|
|
407
|
+
if v1 > v2: # type: ignore[operator]
|
|
382
408
|
return 1
|
|
383
|
-
if v1 < v2:
|
|
409
|
+
if v1 < v2: # type: ignore[operator]
|
|
384
410
|
return -1
|
|
385
411
|
return 0
|
|
386
412
|
|
|
@@ -395,8 +421,16 @@ class Program:
|
|
|
395
421
|
|
|
396
422
|
# This is the program launcher
|
|
397
423
|
def Main():
|
|
424
|
+
print(sys.argv)
|
|
398
425
|
if (len(sys.argv) > 1):
|
|
399
|
-
|
|
426
|
+
# Check if 'debug' is the first argument
|
|
427
|
+
if sys.argv[1] == 'debug' and len(sys.argv) > 2:
|
|
428
|
+
# Create program with debug flag
|
|
429
|
+
program = Program(sys.argv[2])
|
|
430
|
+
program.debugging = True
|
|
431
|
+
program.start()
|
|
432
|
+
else:
|
|
433
|
+
Program(sys.argv[1]).start()
|
|
400
434
|
else:
|
|
401
435
|
Program('-v')
|
|
402
436
|
|