Skip to content

Commit ecb7586

Browse files
committed
250809.2
1 parent 631826b commit ecb7586

File tree

5 files changed

+45
-23
lines changed

5 files changed

+45
-23
lines changed
Binary file not shown.

easycoder/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,4 @@
1111
from .ec_timestamp import *
1212
from .ec_value import *
1313

14-
__version__ = "250809.1"
14+
__version__ = "250809.2"

easycoder/ec_keyboard.py

Lines changed: 38 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,6 @@ def __init__(self, program, keyboardType, receiverLayout, receivers, caller = No
7070
self.program = program
7171
self.keyboardType = keyboardType
7272
self.receivers = receivers
73-
self.selectedReceiver = receivers[0]
7473

7574
dialog = QDialog(caller)
7675
self.dialog = dialog
@@ -80,7 +79,6 @@ def __init__(self, program, keyboardType, receiverLayout, receivers, caller = No
8079
dialog.setModal(True)
8180
dialog.setFixedWidth(500)
8281
dialog.setStyleSheet('background-color: white;border:1px solid black;')
83-
self.originalText = self.selectedReceiver.getContent()
8482

8583
# Add drop shadow
8684
shadow = QGraphicsDropShadowEffect(dialog)
@@ -96,7 +94,18 @@ def __init__(self, program, keyboardType, receiverLayout, receivers, caller = No
9694
border.iconClicked.connect(self.reject)
9795
layout.addWidget(border)
9896
layout.addLayout(receiverLayout)
99-
layout.addWidget(VirtualKeyboard(keyboardType, 42, self.selectedReceiver, dialog.accept))
97+
self.vk = VirtualKeyboard(keyboardType, 42, receivers[0], dialog.accept)
98+
layout.addWidget(self.vk)
99+
100+
restore = []
101+
index = 0
102+
for receiver in receivers:
103+
receiver.field.setContainer(self)
104+
receiver.index = index
105+
restore.append(receiver.getContent())
106+
index += 1
107+
self.restore = restore
108+
self.selectedReceiver = receivers[0]
100109

101110
# Position at bottom of parent window
102111
dialog.show() # Ensure geometry is calculated
@@ -108,8 +117,24 @@ def __init__(self, program, keyboardType, receiverLayout, receivers, caller = No
108117

109118
dialog.exec()
110119

120+
def setClickSource(self, field):
121+
receivers = self.receivers
122+
index = 0
123+
for receiver in receivers:
124+
if receiver.field == field:
125+
self.selectedReceiver = receiver
126+
break
127+
index += 1
128+
111129
def reject(self):
112-
self.selectedReceiver.setContent(self.originalText)
130+
selectedReceiver = self.selectedReceiver
131+
receivers = self.receivers
132+
index = 0
133+
for receiver in receivers:
134+
if receiver == selectedReceiver:
135+
break
136+
index += 1
137+
receiver.setContent(self.restore[index])
113138
self.dialog.reject()
114139

115140
class TextReceiver():
@@ -185,11 +210,11 @@ def __init__(self, rows):
185210
self.addLayout(row)
186211

187212
class VirtualKeyboard(QStackedWidget):
188-
def __init__(self, keyboardType, buttonHeight, textField, onFinished):
213+
def __init__(self, keyboardType, buttonHeight, receiver, onFinished):
189214
super().__init__()
190215
self.keyboardType = keyboardType
191216
self.buttonHeight = buttonHeight
192-
self.textField = textField
217+
self.receiver = receiver
193218
self.onFinished = onFinished
194219
self.setStyleSheet('background-color: #ccc;border:none;')
195220

@@ -410,11 +435,14 @@ def addKeyboardLayout3(self):
410435
container = QWidget()
411436
container.setLayout(keyboardView)
412437
self.addWidget(container)
438+
439+
def setClickSource(self, receiver):
440+
self.receiver = receiver
413441

414442
# Callback functions
415443
def onClickChar(self,keycode):
416444
# print(f"Key pressed: {keycode}")
417-
self.textField.addCharacter(keycode)
445+
self.receiver.addCharacter(keycode)
418446

419447
def onClickShift(self,keycode):
420448
# print("Shift pressed")
@@ -437,13 +465,13 @@ def onClickSymbols(self,keycode):
437465

438466
def onClickBack(self,keycode):
439467
# print("Backspace pressed")
440-
self.textField.backspace()
468+
self.receiver.backspace()
441469

442470
def onClickSpace(self,keycode):
443471
# print("Space pressed")
444-
self.textField.addCharacter(' ')
472+
self.receiver.addCharacter(' ')
445473

446474
def onClickEnter(self,keycode):
447475
# print("Enter pressed")
448-
if self.keyboardType == 'multiline': self.textField.addCharacter('\n')
476+
if self.keyboardType == 'multiline': self.receiver.addCharacter('\n')
449477
else: self.onFinished()

easycoder/ec_pyside.py

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -84,32 +84,28 @@ class ClickableLineEdit(QLineEdit):
8484

8585
def __init__(self):
8686
super().__init__()
87-
self.program = None
8887

89-
def setCallback(self, program, pc):
90-
self.program = program
91-
self.pc = pc
88+
def setContainer(self, container):
89+
self.container = container
9290

9391
def mousePressEvent(self, event):
9492
self.clicked.emit()
9593
super().mousePressEvent(event)
96-
if self.program != None: self.program.run(self.pc)
94+
if self.container != None: self.container.setClickSource(self)
9795

9896
class ClickablePlainTextEdit(QPlainTextEdit):
9997
clicked = Signal()
10098

10199
def __init__(self):
102100
super().__init__()
103-
self.program = None
104101

105-
def setCallback(self, program, pc):
106-
self.program = program
107-
self.pc = pc
102+
def setContainer(self, container):
103+
self.container = container
108104

109105
def mousePressEvent(self, event):
110106
self.clicked.emit()
111107
super().mousePressEvent(event)
112-
if self.program != None: self.program.run(self.pc)
108+
if self.container != None: self.container.setClickSource(self)
113109

114110
#############################################################################
115111
# Keyword handlers
@@ -816,8 +812,6 @@ def r_on(self, command):
816812
keyword = record['keyword']
817813
if keyword == 'pushbutton':
818814
widget.clicked.connect(lambda: self.run(command['goto']))
819-
if keyword in ['lineinput', 'multiline']:
820-
widget.setCallback(self.program, command['goto'])
821815
elif keyword == 'combobox':
822816
widget.currentIndexChanged.connect(lambda: self.run(command['goto']))
823817
elif keyword == 'listbox':

0 commit comments

Comments
 (0)