easycoder 250819.3__py2.py3-none-any.whl → 250824.2__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.
Potentially problematic release.
This version of easycoder might be problematic. Click here for more details.
- easycoder/__init__.py +2 -1
- easycoder/ec_border.py +63 -0
- easycoder/ec_keyboard.py +2 -61
- easycoder/ec_pyside.py +112 -50
- {easycoder-250819.3.dist-info → easycoder-250824.2.dist-info}/METADATA +1 -1
- {easycoder-250819.3.dist-info → easycoder-250824.2.dist-info}/RECORD +9 -8
- {easycoder-250819.3.dist-info → easycoder-250824.2.dist-info}/WHEEL +0 -0
- {easycoder-250819.3.dist-info → easycoder-250824.2.dist-info}/entry_points.txt +0 -0
- {easycoder-250819.3.dist-info → easycoder-250824.2.dist-info}/licenses/LICENSE +0 -0
easycoder/__init__.py
CHANGED
|
@@ -6,9 +6,10 @@ from .ec_condition import *
|
|
|
6
6
|
from .ec_core import *
|
|
7
7
|
from .ec_handler import *
|
|
8
8
|
from .ec_keyboard import *
|
|
9
|
+
from .ec_border import *
|
|
9
10
|
from .ec_program import *
|
|
10
11
|
from .ec_pyside import *
|
|
11
12
|
from .ec_timestamp import *
|
|
12
13
|
from .ec_value import *
|
|
13
14
|
|
|
14
|
-
__version__ = "
|
|
15
|
+
__version__ = "250824.2"
|
easycoder/ec_border.py
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import os
|
|
2
|
+
from PySide6.QtWidgets import QWidget
|
|
3
|
+
from PySide6.QtGui import QPixmap, QPainter
|
|
4
|
+
from PySide6.QtCore import Qt, Signal, QRect
|
|
5
|
+
|
|
6
|
+
class Border(QWidget):
|
|
7
|
+
tickClicked = Signal()
|
|
8
|
+
closeClicked = Signal()
|
|
9
|
+
|
|
10
|
+
def __init__(self):
|
|
11
|
+
super().__init__()
|
|
12
|
+
self.size = 40
|
|
13
|
+
self.setFixedHeight(self.size)
|
|
14
|
+
self._drag_active = False
|
|
15
|
+
self._drag_start_pos = None
|
|
16
|
+
|
|
17
|
+
def paintEvent(self, event):
|
|
18
|
+
painter = QPainter(self)
|
|
19
|
+
painter.setRenderHint(QPainter.Antialiasing)
|
|
20
|
+
# Draw the tick icon
|
|
21
|
+
self.tick = QPixmap(f'{os.path.dirname(os.path.abspath(__file__))}/tick.png').scaled(self.size, self.size, Qt.KeepAspectRatio, Qt.SmoothTransformation)
|
|
22
|
+
x = 0
|
|
23
|
+
y = 0
|
|
24
|
+
painter.drawPixmap(x, y, self.tick)
|
|
25
|
+
# Draw the close icon
|
|
26
|
+
self.close = QPixmap(f'{os.path.dirname(os.path.abspath(__file__))}/close.png').scaled(self.size, self.size, Qt.KeepAspectRatio, Qt.SmoothTransformation)
|
|
27
|
+
x = self.width() - self.close.width()
|
|
28
|
+
y = 0
|
|
29
|
+
painter.drawPixmap(x, y, self.close)
|
|
30
|
+
|
|
31
|
+
def mousePressEvent(self, event):
|
|
32
|
+
# Tick icon
|
|
33
|
+
x = 0
|
|
34
|
+
y = 0
|
|
35
|
+
tickRect = self.tick.rect().translated(x, y)
|
|
36
|
+
# Close icon
|
|
37
|
+
x = self.width() - self.close.width()
|
|
38
|
+
y = 0
|
|
39
|
+
closeRect = self.close.rect().translated(x, y)
|
|
40
|
+
if tickRect.contains(event.pos()):
|
|
41
|
+
self.tickClicked.emit()
|
|
42
|
+
if closeRect.contains(event.pos()):
|
|
43
|
+
self.closeClicked.emit()
|
|
44
|
+
elif QRect(0, 0, self.width(), self.height()).contains(event.pos()):
|
|
45
|
+
if hasattr(self.window().windowHandle(), 'startSystemMove'):
|
|
46
|
+
self.window().windowHandle().startSystemMove()
|
|
47
|
+
else:
|
|
48
|
+
self._drag_active = True
|
|
49
|
+
self._drag_start_pos = event.globalPosition().toPoint()
|
|
50
|
+
self._dialog_start_pos = self.window().pos()
|
|
51
|
+
else:
|
|
52
|
+
super().mousePressEvent(event)
|
|
53
|
+
|
|
54
|
+
def mouseMoveEvent(self, event):
|
|
55
|
+
if self._drag_active:
|
|
56
|
+
delta = event.globalPosition().toPoint() - self._drag_start_pos
|
|
57
|
+
self.window().move(self._dialog_start_pos + delta)
|
|
58
|
+
else:
|
|
59
|
+
super().mouseMoveEvent(event)
|
|
60
|
+
|
|
61
|
+
def mouseReleaseEvent(self, event):
|
|
62
|
+
self._drag_active = False
|
|
63
|
+
super().mouseReleaseEvent(event)
|
easycoder/ec_keyboard.py
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import os
|
|
2
1
|
from .ec_handler import Handler
|
|
2
|
+
from .ec_border import Border
|
|
3
3
|
from PySide6.QtWidgets import (
|
|
4
4
|
QDialog,
|
|
5
5
|
QVBoxLayout,
|
|
@@ -18,65 +18,6 @@ from PySide6.QtCore import Qt, QTimer, Signal, QRect
|
|
|
18
18
|
|
|
19
19
|
class Keyboard(Handler):
|
|
20
20
|
iconClicked = Signal()
|
|
21
|
-
|
|
22
|
-
class Border(QWidget):
|
|
23
|
-
tickClicked = Signal()
|
|
24
|
-
closeClicked = Signal()
|
|
25
|
-
|
|
26
|
-
def __init__(self):
|
|
27
|
-
super().__init__()
|
|
28
|
-
self.size = 40
|
|
29
|
-
self.setFixedHeight(self.size)
|
|
30
|
-
self._drag_active = False
|
|
31
|
-
self._drag_start_pos = None
|
|
32
|
-
|
|
33
|
-
def paintEvent(self, event):
|
|
34
|
-
painter = QPainter(self)
|
|
35
|
-
painter.setRenderHint(QPainter.Antialiasing)
|
|
36
|
-
# Draw the tick icon
|
|
37
|
-
self.tick = QPixmap(f'{os.path.dirname(os.path.abspath(__file__))}/tick.png').scaled(self.size, self.size, Qt.KeepAspectRatio, Qt.SmoothTransformation)
|
|
38
|
-
x = 0
|
|
39
|
-
y = 0
|
|
40
|
-
painter.drawPixmap(x, y, self.tick)
|
|
41
|
-
# Draw the close icon
|
|
42
|
-
self.close = QPixmap(f'{os.path.dirname(os.path.abspath(__file__))}/close.png').scaled(self.size, self.size, Qt.KeepAspectRatio, Qt.SmoothTransformation)
|
|
43
|
-
x = self.width() - self.close.width()
|
|
44
|
-
y = 0
|
|
45
|
-
painter.drawPixmap(x, y, self.close)
|
|
46
|
-
|
|
47
|
-
def mousePressEvent(self, event):
|
|
48
|
-
# Tick icon
|
|
49
|
-
x = 0
|
|
50
|
-
y = 0
|
|
51
|
-
tickRect = self.tick.rect().translated(x, y)
|
|
52
|
-
# Close icon
|
|
53
|
-
x = self.width() - self.close.width()
|
|
54
|
-
y = 0
|
|
55
|
-
closeRect = self.close.rect().translated(x, y)
|
|
56
|
-
if tickRect.contains(event.pos()):
|
|
57
|
-
self.tickClicked.emit()
|
|
58
|
-
if closeRect.contains(event.pos()):
|
|
59
|
-
self.closeClicked.emit()
|
|
60
|
-
elif QRect(0, 0, self.width(), self.height()).contains(event.pos()):
|
|
61
|
-
if hasattr(self.window().windowHandle(), 'startSystemMove'):
|
|
62
|
-
self.window().windowHandle().startSystemMove()
|
|
63
|
-
else:
|
|
64
|
-
self._drag_active = True
|
|
65
|
-
self._drag_start_pos = event.globalPosition().toPoint()
|
|
66
|
-
self._dialog_start_pos = self.window().pos()
|
|
67
|
-
else:
|
|
68
|
-
super().mousePressEvent(event)
|
|
69
|
-
|
|
70
|
-
def mouseMoveEvent(self, event):
|
|
71
|
-
if self._drag_active:
|
|
72
|
-
delta = event.globalPosition().toPoint() - self._drag_start_pos
|
|
73
|
-
self.window().move(self._dialog_start_pos + delta)
|
|
74
|
-
else:
|
|
75
|
-
super().mouseMoveEvent(event)
|
|
76
|
-
|
|
77
|
-
def mouseReleaseEvent(self, event):
|
|
78
|
-
self._drag_active = False
|
|
79
|
-
super().mouseReleaseEvent(event)
|
|
80
21
|
|
|
81
22
|
def __init__(self, program, keyboardType, receiverLayout, receivers, caller = None, parent=None):
|
|
82
23
|
super().__init__(program.compiler)
|
|
@@ -103,7 +44,7 @@ class Keyboard(Handler):
|
|
|
103
44
|
# Add the keyboard
|
|
104
45
|
layout = QVBoxLayout(dialog)
|
|
105
46
|
|
|
106
|
-
border =
|
|
47
|
+
border = Border()
|
|
107
48
|
border.tickClicked.connect(self.dialog.accept)
|
|
108
49
|
border.closeClicked.connect(self.reject)
|
|
109
50
|
layout.addWidget(border)
|
easycoder/ec_pyside.py
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import sys
|
|
1
|
+
import sys, os
|
|
2
2
|
from .ec_handler import Handler
|
|
3
3
|
from .ec_classes import RuntimeError
|
|
4
|
-
from
|
|
5
|
-
from PySide6.
|
|
4
|
+
from .ec_border import Border
|
|
5
|
+
from PySide6.QtCore import Qt, QTimer, Signal, QRect
|
|
6
|
+
from PySide6.QtGui import QPixmap, QPainter
|
|
6
7
|
from PySide6.QtWidgets import (
|
|
7
8
|
QApplication,
|
|
8
9
|
QCheckBox,
|
|
@@ -34,7 +35,8 @@ from PySide6.QtWidgets import (
|
|
|
34
35
|
QSizePolicy,
|
|
35
36
|
QDialog,
|
|
36
37
|
QMessageBox,
|
|
37
|
-
QDialogButtonBox
|
|
38
|
+
QDialogButtonBox,
|
|
39
|
+
QGraphicsDropShadowEffect
|
|
38
40
|
)
|
|
39
41
|
|
|
40
42
|
class Graphics(Handler):
|
|
@@ -65,19 +67,7 @@ class Graphics(Handler):
|
|
|
65
67
|
]
|
|
66
68
|
|
|
67
69
|
def dialogTypes(self):
|
|
68
|
-
return ['confirm', 'lineedit', 'multiline']
|
|
69
|
-
|
|
70
|
-
class ECDialog(QDialog):
|
|
71
|
-
def __init__(self, parent, record):
|
|
72
|
-
super().__init__(parent)
|
|
73
|
-
self.record = record
|
|
74
|
-
|
|
75
|
-
def showEvent(self, event):
|
|
76
|
-
super().showEvent(event)
|
|
77
|
-
QTimer.singleShot(100, self.afterShown)
|
|
78
|
-
|
|
79
|
-
def afterShown(self):
|
|
80
|
-
if 'action' in self.record: self.record['action']()
|
|
70
|
+
return ['confirm', 'lineedit', 'multiline', 'generic']
|
|
81
71
|
|
|
82
72
|
class ClickableLineEdit(QLineEdit):
|
|
83
73
|
clicked = Signal()
|
|
@@ -300,7 +290,7 @@ class Graphics(Handler):
|
|
|
300
290
|
|
|
301
291
|
# Create a window
|
|
302
292
|
def k_createWindow(self, command):
|
|
303
|
-
|
|
293
|
+
title = None
|
|
304
294
|
x = None
|
|
305
295
|
y = None
|
|
306
296
|
w = self.compileConstant(640)
|
|
@@ -309,7 +299,7 @@ class Graphics(Handler):
|
|
|
309
299
|
token = self.peek()
|
|
310
300
|
if token in ['title', 'at', 'size', 'layout']:
|
|
311
301
|
self.nextToken()
|
|
312
|
-
if token == 'title':
|
|
302
|
+
if token == 'title': title = self.nextValue()
|
|
313
303
|
elif token == 'at':
|
|
314
304
|
x = self.nextValue()
|
|
315
305
|
y = self.nextValue()
|
|
@@ -323,6 +313,7 @@ class Graphics(Handler):
|
|
|
323
313
|
command['layout'] = record['name']
|
|
324
314
|
else: return False
|
|
325
315
|
else: break
|
|
316
|
+
command['title'] = title
|
|
326
317
|
command['x'] = x
|
|
327
318
|
command['y'] = y
|
|
328
319
|
command['w'] = w
|
|
@@ -456,6 +447,9 @@ class Graphics(Handler):
|
|
|
456
447
|
elif self.peek() == 'value':
|
|
457
448
|
self.nextToken()
|
|
458
449
|
command['value'] = self.nextValue()
|
|
450
|
+
elif self.peek() == 'with':
|
|
451
|
+
self.nextToken()
|
|
452
|
+
command['layout'] = self.nextToken()
|
|
459
453
|
else: break
|
|
460
454
|
if not 'title' in command: command['title'] = self.compileConstant('')
|
|
461
455
|
if not 'value' in command: command['value'] = self.compileConstant('')
|
|
@@ -510,14 +504,20 @@ class Graphics(Handler):
|
|
|
510
504
|
|
|
511
505
|
def r_createWindow(self, command, record):
|
|
512
506
|
window = QMainWindow()
|
|
513
|
-
|
|
507
|
+
title = self.getRuntimeValue(command['title'])
|
|
508
|
+
if title == None: title = 'EasyCoder Main Window'
|
|
509
|
+
window.setWindowTitle(title)
|
|
514
510
|
w = self.getRuntimeValue(command['w'])
|
|
515
511
|
h = self.getRuntimeValue(command['h'])
|
|
516
512
|
x = command['x']
|
|
517
513
|
y = command['y']
|
|
518
|
-
if
|
|
514
|
+
if hasattr(self.program, 'screenWidth'): screenWidth = self.program.screenWidth
|
|
515
|
+
else: screenWidth = self.program.parent.program.screenWidth
|
|
516
|
+
if hasattr(self.program, 'screenHeight'): screenHeight = self.program.screenHeight
|
|
517
|
+
else: screenHeight = self.program.parent.program.screenHeight
|
|
518
|
+
if x == None: x = (screenWidth - w) / 2
|
|
519
519
|
else: x = self.getRuntimeValue(x)
|
|
520
|
-
if y == None: y = (
|
|
520
|
+
if y == None: y = (screenHeight - h) / 2
|
|
521
521
|
else: y = self.getRuntimeValue(x)
|
|
522
522
|
window.setGeometry(x, y, w, h)
|
|
523
523
|
record['window'] = window
|
|
@@ -625,32 +625,61 @@ class Graphics(Handler):
|
|
|
625
625
|
return self.nextPC()
|
|
626
626
|
|
|
627
627
|
def r_createDialog(self, command, record):
|
|
628
|
+
|
|
629
|
+
class ECDialog(QDialog):
|
|
630
|
+
def __init__(self, parent, record):
|
|
631
|
+
super().__init__(parent)
|
|
632
|
+
self.record = record
|
|
633
|
+
|
|
634
|
+
def showEvent(self, event):
|
|
635
|
+
super().showEvent(event)
|
|
636
|
+
QTimer.singleShot(100, self.afterShown)
|
|
637
|
+
|
|
638
|
+
def afterShown(self):
|
|
639
|
+
if 'action' in self.record: self.record['action']()
|
|
640
|
+
|
|
628
641
|
win = command['window']
|
|
629
642
|
if win != None:
|
|
630
643
|
win = self.getVariable(win)['window']
|
|
631
|
-
dialog =
|
|
632
|
-
mainLayout = QVBoxLayout(dialog)
|
|
633
|
-
dialog.setWindowTitle(self.getRuntimeValue(command['title']))
|
|
644
|
+
dialog = ECDialog(win, record)
|
|
634
645
|
dialogType = command['type'].lower()
|
|
635
646
|
dialog.dialogType = dialogType
|
|
636
|
-
|
|
637
|
-
if dialogType == '
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
dialog.
|
|
642
|
-
dialog.
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
647
|
+
mainLayout = QVBoxLayout(dialog)
|
|
648
|
+
if dialogType == 'generic':
|
|
649
|
+
dialog.setFixedWidth(500)
|
|
650
|
+
dialog.setFixedHeight(500)
|
|
651
|
+
dialog.setWindowFlags(Qt.FramelessWindowHint)
|
|
652
|
+
dialog.setModal(True)
|
|
653
|
+
dialog.setStyleSheet('background-color: white;border:1px solid black;')
|
|
654
|
+
|
|
655
|
+
border = Border()
|
|
656
|
+
border.tickClicked.connect(dialog.accept)
|
|
657
|
+
border.closeClicked.connect(dialog.reject)
|
|
658
|
+
mainLayout.addWidget(border)
|
|
659
|
+
if 'layout' in command:
|
|
660
|
+
layout = self.getVariable(command['layout'])['widget']
|
|
661
|
+
mainLayout.addLayout(layout)
|
|
662
|
+
dialog.setLayout(mainLayout)
|
|
663
|
+
else:
|
|
664
|
+
dialog.setWindowTitle(self.getRuntimeValue(command['title']))
|
|
665
|
+
prompt = self.getRuntimeValue(command['prompt'])
|
|
666
|
+
if dialogType == 'confirm':
|
|
667
|
+
mainLayout.addWidget(QLabel(prompt))
|
|
668
|
+
elif dialogType == 'lineedit':
|
|
669
|
+
mainLayout.addWidget(QLabel(prompt))
|
|
670
|
+
dialog.lineEdit = self.ClickableLineEdit(dialog)
|
|
671
|
+
dialog.value = self.getRuntimeValue(command['value'])
|
|
672
|
+
dialog.lineEdit.setText(dialog.value)
|
|
673
|
+
mainLayout.addWidget(dialog.lineEdit)
|
|
674
|
+
elif dialogType == 'multiline':
|
|
675
|
+
mainLayout.addWidget(QLabel(prompt))
|
|
676
|
+
dialog.textEdit = self.ClickablePlainTextEdit(self)
|
|
677
|
+
dialog.textEdit.setText(dialog.value)
|
|
678
|
+
mainLayout.addWidget(dialog.textEdit)
|
|
679
|
+
buttonBox = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel)
|
|
680
|
+
buttonBox.accepted.connect(dialog.accept)
|
|
681
|
+
buttonBox.rejected.connect(dialog.reject)
|
|
682
|
+
mainLayout.addWidget(buttonBox, alignment=Qt.AlignHCenter)
|
|
654
683
|
record['dialog'] = dialog
|
|
655
684
|
return self.nextPC()
|
|
656
685
|
|
|
@@ -934,11 +963,12 @@ class Graphics(Handler):
|
|
|
934
963
|
return self.nextPC()
|
|
935
964
|
|
|
936
965
|
# set [the] width/height [of] {widget} [to] {value}
|
|
937
|
-
# set [the] layout of {window} to {layout}
|
|
966
|
+
# set [the] layout of {window}/{widget} to {layout}
|
|
938
967
|
# set [the] spacing of {layout} to {value}
|
|
939
968
|
# set [the] text [of] {label}/{button}/{lineinput}/{multiline} [to] {text}
|
|
940
969
|
# set [the] color [of] {label}/{button}/{lineinput}/{multiline} [to] {color}
|
|
941
970
|
# set [the] state [of] {checkbox} [to] {state}
|
|
971
|
+
# set [the] style of {widget} to {style}
|
|
942
972
|
# set {listbox} to {list}
|
|
943
973
|
# set blocked true/false
|
|
944
974
|
def k_set(self, command):
|
|
@@ -959,7 +989,8 @@ class Graphics(Handler):
|
|
|
959
989
|
self.skip('of')
|
|
960
990
|
if self.nextIsSymbol():
|
|
961
991
|
record = self.getSymbolRecord()
|
|
962
|
-
|
|
992
|
+
keyword = record['keyword']
|
|
993
|
+
if keyword in ['window', 'widget']:
|
|
963
994
|
command['name'] = record['name']
|
|
964
995
|
self.skip('to')
|
|
965
996
|
if self.nextIsSymbol():
|
|
@@ -992,6 +1023,22 @@ class Graphics(Handler):
|
|
|
992
1023
|
if self.nextIsSymbol():
|
|
993
1024
|
record = self.getSymbolRecord()
|
|
994
1025
|
if record['keyword'] == 'checkbox':
|
|
1026
|
+
command['name'] = record['name']
|
|
1027
|
+
self.skip('to')
|
|
1028
|
+
if self.peek() == 'checked':
|
|
1029
|
+
command['value'] = self.compileConstant(True)
|
|
1030
|
+
self.nextToken()
|
|
1031
|
+
elif self.peek() == 'unchecked':
|
|
1032
|
+
command['value'] = self.compileConstant(False)
|
|
1033
|
+
self.nextToken()
|
|
1034
|
+
else: command['value'] = self.nextValue()
|
|
1035
|
+
self.add(command)
|
|
1036
|
+
return True
|
|
1037
|
+
elif token == 'style':
|
|
1038
|
+
self.skip('of')
|
|
1039
|
+
if self.nextIsSymbol():
|
|
1040
|
+
record = self.getSymbolRecord()
|
|
1041
|
+
if record['extra'] == 'gui':
|
|
995
1042
|
command['name'] = record['name']
|
|
996
1043
|
self.skip('to')
|
|
997
1044
|
command['value'] = self.nextValue()
|
|
@@ -1064,11 +1111,17 @@ class Graphics(Handler):
|
|
|
1064
1111
|
widget = self.getVariable(command['name'])['widget']
|
|
1065
1112
|
widget.setFixedWidth(self.getRuntimeValue(command['value']))
|
|
1066
1113
|
elif what == 'layout':
|
|
1067
|
-
window = self.getVariable(command['name'])['window']
|
|
1068
1114
|
content = self.getVariable(command['layout'])['widget']
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
window
|
|
1115
|
+
record = self.getVariable(command['name'])
|
|
1116
|
+
keyword = record['keyword']
|
|
1117
|
+
if keyword == 'window':
|
|
1118
|
+
window = record['widget']
|
|
1119
|
+
container = QWidget()
|
|
1120
|
+
container.setLayout(content)
|
|
1121
|
+
window.setCentralWidget(container)
|
|
1122
|
+
elif keyword == 'widget':
|
|
1123
|
+
widget = record['widget']
|
|
1124
|
+
widget.setLayout(content)
|
|
1072
1125
|
elif what == 'spacing':
|
|
1073
1126
|
layout = self.getVariable(command['name'])['widget']
|
|
1074
1127
|
layout.setSpacing(self.getRuntimeValue(command['value']))
|
|
@@ -1184,7 +1237,9 @@ class Graphics(Handler):
|
|
|
1184
1237
|
elif 'dialog' in command:
|
|
1185
1238
|
record = self.getVariable(command['dialog'])
|
|
1186
1239
|
dialog = record['dialog']
|
|
1187
|
-
if dialog.dialogType == '
|
|
1240
|
+
if dialog.dialogType == 'generic':
|
|
1241
|
+
record['result'] = dialog.exec()
|
|
1242
|
+
elif dialog.dialogType == 'confirm':
|
|
1188
1243
|
record['result'] = True if dialog.exec() == QDialog.Accepted else False
|
|
1189
1244
|
elif dialog.dialogType == 'lineedit':
|
|
1190
1245
|
if dialog.exec() == QDialog.Accepted:
|
|
@@ -1220,6 +1275,13 @@ class Graphics(Handler):
|
|
|
1220
1275
|
self.app.lastWindowClosed.connect(on_last_window_closed)
|
|
1221
1276
|
self.app.exec()
|
|
1222
1277
|
|
|
1278
|
+
# Declare a widget variable
|
|
1279
|
+
def k_widget(self, command):
|
|
1280
|
+
return self.compileVariable(command, 'gui')
|
|
1281
|
+
|
|
1282
|
+
def r_widget(self, command):
|
|
1283
|
+
return self.nextPC()
|
|
1284
|
+
|
|
1223
1285
|
# Declare a window variable
|
|
1224
1286
|
def k_window(self, command):
|
|
1225
1287
|
return self.compileVariable(command)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: easycoder
|
|
3
|
-
Version:
|
|
3
|
+
Version: 250824.2
|
|
4
4
|
Summary: Rapid scripting in English
|
|
5
5
|
Keywords: compiler,scripting,prototyping,programming,coding,python,low code,hypertalk,computer language,learn to code
|
|
6
6
|
Author-email: Graham Trott <gtanyware@gmail.com>
|
|
@@ -1,18 +1,19 @@
|
|
|
1
|
-
easycoder/__init__.py,sha256=
|
|
1
|
+
easycoder/__init__.py,sha256=FBDKkZRmKr4-4O6k4qlAGQdcF1e9_WuEOOjNatbcRXo,339
|
|
2
2
|
easycoder/close.png,sha256=3B9ueRNtEu9E4QNmZhdyC4VL6uqKvGmdfeFxIV9aO_Y,9847
|
|
3
|
+
easycoder/ec_border.py,sha256=KpOy0Jq8jI_6DYGo4jaFvoBP_jTIoAYWrmuHhl-FXA4,2355
|
|
3
4
|
easycoder/ec_classes.py,sha256=PWPaJuTfaWD4-tgT-2WWOgeFV_jXxlxyKCxvXyylCUU,1824
|
|
4
5
|
easycoder/ec_compiler.py,sha256=-uuXDbfgFBGXSrr7EneDnnneFOFsU-UuCIpNHsCqY0s,5289
|
|
5
6
|
easycoder/ec_condition.py,sha256=YXvSBQKEzKGCcgUGo3Qp8iHolXmm2BpEm0NimSDszIM,785
|
|
6
7
|
easycoder/ec_core.py,sha256=r0bFQV3LXCCh4CP6289h6UvK6gpq4L0BQDrEWkeVo_0,98040
|
|
7
8
|
easycoder/ec_handler.py,sha256=ohf3xUuWw_Qb5SZnulGtDhvCb11kvWtYfgbQTiOXpIY,2261
|
|
8
|
-
easycoder/ec_keyboard.py,sha256=
|
|
9
|
+
easycoder/ec_keyboard.py,sha256=ru-HdWolBMZJPyck2s72In9tXFeLJQSPtR1TpjmIo90,18350
|
|
9
10
|
easycoder/ec_program.py,sha256=7h2QKGunsiu5l2OKn-sw-Dd70kZJrb4b2idHubeSXDs,9989
|
|
10
|
-
easycoder/ec_pyside.py,sha256=
|
|
11
|
+
easycoder/ec_pyside.py,sha256=0hIyQRWiYu-cTZiekVXg0CuIVWOrFrAI7R1fk12lYMQ,53342
|
|
11
12
|
easycoder/ec_timestamp.py,sha256=myQnnF-mT31_1dpQKv2VEAu4BCcbypvMdzq7_DUi1xc,277
|
|
12
13
|
easycoder/ec_value.py,sha256=zgDJTJhIg3yOvmnnKIfccIizmIhGbtvL_ghLTL1T5fg,2516
|
|
13
14
|
easycoder/tick.png,sha256=OedASXJJTYvnza4J6Kv5m5lz6DrBfy667zX_WGgtbmM,9127
|
|
14
|
-
easycoder-
|
|
15
|
-
easycoder-
|
|
16
|
-
easycoder-
|
|
17
|
-
easycoder-
|
|
18
|
-
easycoder-
|
|
15
|
+
easycoder-250824.2.dist-info/entry_points.txt,sha256=JXAZbenl0TnsIft2FcGJbJ-4qoztVu2FuT8PFmWFexM,44
|
|
16
|
+
easycoder-250824.2.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
17
|
+
easycoder-250824.2.dist-info/WHEEL,sha256=Dyt6SBfaasWElUrURkknVFAZDHSTwxg3PaTza7RSbkY,100
|
|
18
|
+
easycoder-250824.2.dist-info/METADATA,sha256=vWzjOLuY0i8teLLIPL_NJ3JsoOVOJHVd3A6r3aQl_Wo,6897
|
|
19
|
+
easycoder-250824.2.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|