easycoder 250809.1__tar.gz → 250809.2__tar.gz

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.

Files changed (172) hide show
  1. {easycoder-250809.1 → easycoder-250809.2}/PKG-INFO +2 -3
  2. {easycoder-250809.1 → easycoder-250809.2}/easycoder/__init__.py +1 -1
  3. {easycoder-250809.1 → easycoder-250809.2}/easycoder/ec_keyboard.py +38 -10
  4. {easycoder-250809.1 → easycoder-250809.2}/easycoder/ec_pyside.py +6 -12
  5. {easycoder-250809.1 → easycoder-250809.2}/.gitignore +0 -0
  6. {easycoder-250809.1 → easycoder-250809.2}/LICENSE +0 -0
  7. {easycoder-250809.1 → easycoder-250809.2}/README.md +0 -0
  8. {easycoder-250809.1 → easycoder-250809.2}/backdrop.jpg +0 -0
  9. {easycoder-250809.1 → easycoder-250809.2}/doc/README.md +0 -0
  10. {easycoder-250809.1 → easycoder-250809.2}/doc/core/README.md +0 -0
  11. {easycoder-250809.1 → easycoder-250809.2}/doc/core/conditions/boolean.md +0 -0
  12. {easycoder-250809.1 → easycoder-250809.2}/doc/core/conditions/empty.md +0 -0
  13. {easycoder-250809.1 → easycoder-250809.2}/doc/core/conditions/ends.md +0 -0
  14. {easycoder-250809.1 → easycoder-250809.2}/doc/core/conditions/even.md +0 -0
  15. {easycoder-250809.1 → easycoder-250809.2}/doc/core/conditions/exists.md +0 -0
  16. {easycoder-250809.1 → easycoder-250809.2}/doc/core/conditions/greater.md +0 -0
  17. {easycoder-250809.1 → easycoder-250809.2}/doc/core/conditions/hasProperty.md +0 -0
  18. {easycoder-250809.1 → easycoder-250809.2}/doc/core/conditions/includes.md +0 -0
  19. {easycoder-250809.1 → easycoder-250809.2}/doc/core/conditions/is.md +0 -0
  20. {easycoder-250809.1 → easycoder-250809.2}/doc/core/conditions/less.md +0 -0
  21. {easycoder-250809.1 → easycoder-250809.2}/doc/core/conditions/list.md +0 -0
  22. {easycoder-250809.1 → easycoder-250809.2}/doc/core/conditions/none.md +0 -0
  23. {easycoder-250809.1 → easycoder-250809.2}/doc/core/conditions/not.md +0 -0
  24. {easycoder-250809.1 → easycoder-250809.2}/doc/core/conditions/numeric.md +0 -0
  25. {easycoder-250809.1 → easycoder-250809.2}/doc/core/conditions/object.md +0 -0
  26. {easycoder-250809.1 → easycoder-250809.2}/doc/core/conditions/odd.md +0 -0
  27. {easycoder-250809.1 → easycoder-250809.2}/doc/core/conditions/starts.md +0 -0
  28. {easycoder-250809.1 → easycoder-250809.2}/doc/core/conditions/string.md +0 -0
  29. {easycoder-250809.1 → easycoder-250809.2}/doc/core/keywords/add.md +0 -0
  30. {easycoder-250809.1 → easycoder-250809.2}/doc/core/keywords/append.md +0 -0
  31. {easycoder-250809.1 → easycoder-250809.2}/doc/core/keywords/assert.md +0 -0
  32. {easycoder-250809.1 → easycoder-250809.2}/doc/core/keywords/begin.md +0 -0
  33. {easycoder-250809.1 → easycoder-250809.2}/doc/core/keywords/clear.md +0 -0
  34. {easycoder-250809.1 → easycoder-250809.2}/doc/core/keywords/close.md +0 -0
  35. {easycoder-250809.1 → easycoder-250809.2}/doc/core/keywords/create.md +0 -0
  36. {easycoder-250809.1 → easycoder-250809.2}/doc/core/keywords/debug.md +0 -0
  37. {easycoder-250809.1 → easycoder-250809.2}/doc/core/keywords/decrement.md +0 -0
  38. {easycoder-250809.1 → easycoder-250809.2}/doc/core/keywords/delete.md +0 -0
  39. {easycoder-250809.1 → easycoder-250809.2}/doc/core/keywords/divide.md +0 -0
  40. {easycoder-250809.1 → easycoder-250809.2}/doc/core/keywords/exit.md +0 -0
  41. {easycoder-250809.1 → easycoder-250809.2}/doc/core/keywords/file.md +0 -0
  42. {easycoder-250809.1 → easycoder-250809.2}/doc/core/keywords/fork.md +0 -0
  43. {easycoder-250809.1 → easycoder-250809.2}/doc/core/keywords/get.md +0 -0
  44. {easycoder-250809.1 → easycoder-250809.2}/doc/core/keywords/go.md +0 -0
  45. {easycoder-250809.1 → easycoder-250809.2}/doc/core/keywords/gosub.md +0 -0
  46. {easycoder-250809.1 → easycoder-250809.2}/doc/core/keywords/if.md +0 -0
  47. {easycoder-250809.1 → easycoder-250809.2}/doc/core/keywords/import.md +0 -0
  48. {easycoder-250809.1 → easycoder-250809.2}/doc/core/keywords/increment.md +0 -0
  49. {easycoder-250809.1 → easycoder-250809.2}/doc/core/keywords/index.md +0 -0
  50. {easycoder-250809.1 → easycoder-250809.2}/doc/core/keywords/init.md +0 -0
  51. {easycoder-250809.1 → easycoder-250809.2}/doc/core/keywords/input.md +0 -0
  52. {easycoder-250809.1 → easycoder-250809.2}/doc/core/keywords/load.md +0 -0
  53. {easycoder-250809.1 → easycoder-250809.2}/doc/core/keywords/lock.md +0 -0
  54. {easycoder-250809.1 → easycoder-250809.2}/doc/core/keywords/log.md +0 -0
  55. {easycoder-250809.1 → easycoder-250809.2}/doc/core/keywords/module.md +0 -0
  56. {easycoder-250809.1 → easycoder-250809.2}/doc/core/keywords/multiply.md +0 -0
  57. {easycoder-250809.1 → easycoder-250809.2}/doc/core/keywords/negate.md +0 -0
  58. {easycoder-250809.1 → easycoder-250809.2}/doc/core/keywords/on.md +0 -0
  59. {easycoder-250809.1 → easycoder-250809.2}/doc/core/keywords/open.md +0 -0
  60. {easycoder-250809.1 → easycoder-250809.2}/doc/core/keywords/pop.md +0 -0
  61. {easycoder-250809.1 → easycoder-250809.2}/doc/core/keywords/post.md +0 -0
  62. {easycoder-250809.1 → easycoder-250809.2}/doc/core/keywords/print.md +0 -0
  63. {easycoder-250809.1 → easycoder-250809.2}/doc/core/keywords/push.md +0 -0
  64. {easycoder-250809.1 → easycoder-250809.2}/doc/core/keywords/put.md +0 -0
  65. {easycoder-250809.1 → easycoder-250809.2}/doc/core/keywords/read.md +0 -0
  66. {easycoder-250809.1 → easycoder-250809.2}/doc/core/keywords/release.md +0 -0
  67. {easycoder-250809.1 → easycoder-250809.2}/doc/core/keywords/replace.md +0 -0
  68. {easycoder-250809.1 → easycoder-250809.2}/doc/core/keywords/return.md +0 -0
  69. {easycoder-250809.1 → easycoder-250809.2}/doc/core/keywords/run.md +0 -0
  70. {easycoder-250809.1 → easycoder-250809.2}/doc/core/keywords/save.md +0 -0
  71. {easycoder-250809.1 → easycoder-250809.2}/doc/core/keywords/script.md +0 -0
  72. {easycoder-250809.1 → easycoder-250809.2}/doc/core/keywords/send.md +0 -0
  73. {easycoder-250809.1 → easycoder-250809.2}/doc/core/keywords/set.md +0 -0
  74. {easycoder-250809.1 → easycoder-250809.2}/doc/core/keywords/shuffle.md +0 -0
  75. {easycoder-250809.1 → easycoder-250809.2}/doc/core/keywords/split.md +0 -0
  76. {easycoder-250809.1 → easycoder-250809.2}/doc/core/keywords/stack.md +0 -0
  77. {easycoder-250809.1 → easycoder-250809.2}/doc/core/keywords/stop.md +0 -0
  78. {easycoder-250809.1 → easycoder-250809.2}/doc/core/keywords/system.md +0 -0
  79. {easycoder-250809.1 → easycoder-250809.2}/doc/core/keywords/take.md +0 -0
  80. {easycoder-250809.1 → easycoder-250809.2}/doc/core/keywords/toggle.md +0 -0
  81. {easycoder-250809.1 → easycoder-250809.2}/doc/core/keywords/truncate.md +0 -0
  82. {easycoder-250809.1 → easycoder-250809.2}/doc/core/keywords/unlock.md +0 -0
  83. {easycoder-250809.1 → easycoder-250809.2}/doc/core/keywords/use.md +0 -0
  84. {easycoder-250809.1 → easycoder-250809.2}/doc/core/keywords/variable.md +0 -0
  85. {easycoder-250809.1 → easycoder-250809.2}/doc/core/keywords/wait.md +0 -0
  86. {easycoder-250809.1 → easycoder-250809.2}/doc/core/keywords/while.md +0 -0
  87. {easycoder-250809.1 → easycoder-250809.2}/doc/core/keywords/write.md +0 -0
  88. {easycoder-250809.1 → easycoder-250809.2}/doc/core/values/arg.md +0 -0
  89. {easycoder-250809.1 → easycoder-250809.2}/doc/core/values/args.md +0 -0
  90. {easycoder-250809.1 → easycoder-250809.2}/doc/core/values/cos.md +0 -0
  91. {easycoder-250809.1 → easycoder-250809.2}/doc/core/values/datime.md +0 -0
  92. {easycoder-250809.1 → easycoder-250809.2}/doc/core/values/decode.md +0 -0
  93. {easycoder-250809.1 → easycoder-250809.2}/doc/core/values/element.md +0 -0
  94. {easycoder-250809.1 → easycoder-250809.2}/doc/core/values/elements.md +0 -0
  95. {easycoder-250809.1 → easycoder-250809.2}/doc/core/values/empty.md +0 -0
  96. {easycoder-250809.1 → easycoder-250809.2}/doc/core/values/encode.md +0 -0
  97. {easycoder-250809.1 → easycoder-250809.2}/doc/core/values/error.md +0 -0
  98. {easycoder-250809.1 → easycoder-250809.2}/doc/core/values/files.md +0 -0
  99. {easycoder-250809.1 → easycoder-250809.2}/doc/core/values/float.md +0 -0
  100. {easycoder-250809.1 → easycoder-250809.2}/doc/core/values/from.md +0 -0
  101. {easycoder-250809.1 → easycoder-250809.2}/doc/core/values/hash.md +0 -0
  102. {easycoder-250809.1 → easycoder-250809.2}/doc/core/values/index.md +0 -0
  103. {easycoder-250809.1 → easycoder-250809.2}/doc/core/values/integer.md +0 -0
  104. {easycoder-250809.1 → easycoder-250809.2}/doc/core/values/json.md +0 -0
  105. {easycoder-250809.1 → easycoder-250809.2}/doc/core/values/keys.md +0 -0
  106. {easycoder-250809.1 → easycoder-250809.2}/doc/core/values/left.md +0 -0
  107. {easycoder-250809.1 → easycoder-250809.2}/doc/core/values/length.md +0 -0
  108. {easycoder-250809.1 → easycoder-250809.2}/doc/core/values/lowercase.md +0 -0
  109. {easycoder-250809.1 → easycoder-250809.2}/doc/core/values/memory.md +0 -0
  110. {easycoder-250809.1 → easycoder-250809.2}/doc/core/values/modification.md +0 -0
  111. {easycoder-250809.1 → easycoder-250809.2}/doc/core/values/modulo.md +0 -0
  112. {easycoder-250809.1 → easycoder-250809.2}/doc/core/values/newline.md +0 -0
  113. {easycoder-250809.1 → easycoder-250809.2}/doc/core/values/now.md +0 -0
  114. {easycoder-250809.1 → easycoder-250809.2}/doc/core/values/position.md +0 -0
  115. {easycoder-250809.1 → easycoder-250809.2}/doc/core/values/property.md +0 -0
  116. {easycoder-250809.1 → easycoder-250809.2}/doc/core/values/random.md +0 -0
  117. {easycoder-250809.1 → easycoder-250809.2}/doc/core/values/right.md +0 -0
  118. {easycoder-250809.1 → easycoder-250809.2}/doc/core/values/sin.md +0 -0
  119. {easycoder-250809.1 → easycoder-250809.2}/doc/core/values/stringify.md +0 -0
  120. {easycoder-250809.1 → easycoder-250809.2}/doc/core/values/tab.md +0 -0
  121. {easycoder-250809.1 → easycoder-250809.2}/doc/core/values/tan.md +0 -0
  122. {easycoder-250809.1 → easycoder-250809.2}/doc/core/values/timestamp.md +0 -0
  123. {easycoder-250809.1 → easycoder-250809.2}/doc/core/values/today.md +0 -0
  124. {easycoder-250809.1 → easycoder-250809.2}/doc/core/values/trim.md +0 -0
  125. {easycoder-250809.1 → easycoder-250809.2}/doc/core/values/type.md +0 -0
  126. {easycoder-250809.1 → easycoder-250809.2}/doc/core/values/uppercase.md +0 -0
  127. {easycoder-250809.1 → easycoder-250809.2}/doc/core/values/value.md +0 -0
  128. {easycoder-250809.1 → easycoder-250809.2}/doc/core/values/weekday.md +0 -0
  129. {easycoder-250809.1 → easycoder-250809.2}/doc/graphics/README.md +0 -0
  130. {easycoder-250809.1 → easycoder-250809.2}/doc/graphics/keywords/attach.md +0 -0
  131. {easycoder-250809.1 → easycoder-250809.2}/doc/graphics/keywords/close.md +0 -0
  132. {easycoder-250809.1 → easycoder-250809.2}/doc/graphics/keywords/create.md +0 -0
  133. {easycoder-250809.1 → easycoder-250809.2}/doc/graphics/keywords/ellipse.md +0 -0
  134. {easycoder-250809.1 → easycoder-250809.2}/doc/graphics/keywords/image.md +0 -0
  135. {easycoder-250809.1 → easycoder-250809.2}/doc/graphics/keywords/move.md +0 -0
  136. {easycoder-250809.1 → easycoder-250809.2}/doc/graphics/keywords/on.md +0 -0
  137. {easycoder-250809.1 → easycoder-250809.2}/doc/graphics/keywords/rectangle.md +0 -0
  138. {easycoder-250809.1 → easycoder-250809.2}/doc/graphics/keywords/render.md +0 -0
  139. {easycoder-250809.1 → easycoder-250809.2}/doc/graphics/keywords/run.md +0 -0
  140. {easycoder-250809.1 → easycoder-250809.2}/doc/graphics/keywords/set.md +0 -0
  141. {easycoder-250809.1 → easycoder-250809.2}/doc/graphics/keywords/text.md +0 -0
  142. {easycoder-250809.1 → easycoder-250809.2}/doc/graphics/values/attribute.md +0 -0
  143. {easycoder-250809.1 → easycoder-250809.2}/doc/graphics/values/window.md +0 -0
  144. {easycoder-250809.1 → easycoder-250809.2}/easycoder/close.png +0 -0
  145. {easycoder-250809.1 → easycoder-250809.2}/easycoder/ec_classes.py +0 -0
  146. {easycoder-250809.1 → easycoder-250809.2}/easycoder/ec_compiler.py +0 -0
  147. {easycoder-250809.1 → easycoder-250809.2}/easycoder/ec_condition.py +0 -0
  148. {easycoder-250809.1 → easycoder-250809.2}/easycoder/ec_core.py +0 -0
  149. {easycoder-250809.1 → easycoder-250809.2}/easycoder/ec_handler.py +0 -0
  150. {easycoder-250809.1 → easycoder-250809.2}/easycoder/ec_program.py +0 -0
  151. {easycoder-250809.1 → easycoder-250809.2}/easycoder/ec_timestamp.py +0 -0
  152. {easycoder-250809.1 → easycoder-250809.2}/easycoder/ec_value.py +0 -0
  153. {easycoder-250809.1 → easycoder-250809.2}/images/Semoigo Dawn.jpg +0 -0
  154. {easycoder-250809.1 → easycoder-250809.2}/json/graphics-demo.json +0 -0
  155. {easycoder-250809.1 → easycoder-250809.2}/plugins/ec_keyboard.py +0 -0
  156. {easycoder-250809.1 → easycoder-250809.2}/plugins/ec_p100.py +0 -0
  157. {easycoder-250809.1 → easycoder-250809.2}/plugins/ec_pyside6.py +0 -0
  158. {easycoder-250809.1 → easycoder-250809.2}/plugins/points.py +0 -0
  159. {easycoder-250809.1 → easycoder-250809.2}/plugins/sql.py +0 -0
  160. {easycoder-250809.1 → easycoder-250809.2}/pyproject.toml +0 -0
  161. {easycoder-250809.1 → easycoder-250809.2}/scripts/benchmark.ecs +0 -0
  162. {easycoder-250809.1 → easycoder-250809.2}/scripts/config.ecg +0 -0
  163. {easycoder-250809.1 → easycoder-250809.2}/scripts/ec_keyboard.py +0 -0
  164. {easycoder-250809.1 → easycoder-250809.2}/scripts/fizzbuzz.ecs +0 -0
  165. {easycoder-250809.1 → easycoder-250809.2}/scripts/hello.ecs +0 -0
  166. {easycoder-250809.1 → easycoder-250809.2}/scripts/points.ecs +0 -0
  167. {easycoder-250809.1 → easycoder-250809.2}/scripts/test.ecs +0 -0
  168. {easycoder-250809.1 → easycoder-250809.2}/scripts/tests.ecs +0 -0
  169. {easycoder-250809.1 → easycoder-250809.2}/test.py +0 -0
  170. {easycoder-250809.1 → easycoder-250809.2}/testrc.py +0 -0
  171. {easycoder-250809.1 → easycoder-250809.2}/testsql.py +0 -0
  172. {easycoder-250809.1 → easycoder-250809.2}/testui.py +0 -0
@@ -1,12 +1,11 @@
1
- Metadata-Version: 2.4
1
+ Metadata-Version: 2.3
2
2
  Name: easycoder
3
- Version: 250809.1
3
+ Version: 250809.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>
7
7
  Description-Content-Type: text/markdown
8
8
  Classifier: License :: OSI Approved :: MIT License
9
- License-File: LICENSE
10
9
  Requires-Dist: pytz
11
10
  Requires-Dist: requests
12
11
  Requires-Dist: psutil
@@ -11,4 +11,4 @@ from .ec_pyside import *
11
11
  from .ec_timestamp import *
12
12
  from .ec_value import *
13
13
 
14
- __version__ = "250809.1"
14
+ __version__ = "250809.2"
@@ -70,7 +70,6 @@ class Keyboard(Handler):
70
70
  self.program = program
71
71
  self.keyboardType = keyboardType
72
72
  self.receivers = receivers
73
- self.selectedReceiver = receivers[0]
74
73
 
75
74
  dialog = QDialog(caller)
76
75
  self.dialog = dialog
@@ -80,7 +79,6 @@ class Keyboard(Handler):
80
79
  dialog.setModal(True)
81
80
  dialog.setFixedWidth(500)
82
81
  dialog.setStyleSheet('background-color: white;border:1px solid black;')
83
- self.originalText = self.selectedReceiver.getContent()
84
82
 
85
83
  # Add drop shadow
86
84
  shadow = QGraphicsDropShadowEffect(dialog)
@@ -96,7 +94,18 @@ class Keyboard(Handler):
96
94
  border.iconClicked.connect(self.reject)
97
95
  layout.addWidget(border)
98
96
  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]
100
109
 
101
110
  # Position at bottom of parent window
102
111
  dialog.show() # Ensure geometry is calculated
@@ -108,8 +117,24 @@ class Keyboard(Handler):
108
117
 
109
118
  dialog.exec()
110
119
 
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
+
111
129
  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])
113
138
  self.dialog.reject()
114
139
 
115
140
  class TextReceiver():
@@ -185,11 +210,11 @@ class KeyboardView(QVBoxLayout):
185
210
  self.addLayout(row)
186
211
 
187
212
  class VirtualKeyboard(QStackedWidget):
188
- def __init__(self, keyboardType, buttonHeight, textField, onFinished):
213
+ def __init__(self, keyboardType, buttonHeight, receiver, onFinished):
189
214
  super().__init__()
190
215
  self.keyboardType = keyboardType
191
216
  self.buttonHeight = buttonHeight
192
- self.textField = textField
217
+ self.receiver = receiver
193
218
  self.onFinished = onFinished
194
219
  self.setStyleSheet('background-color: #ccc;border:none;')
195
220
 
@@ -410,11 +435,14 @@ class VirtualKeyboard(QStackedWidget):
410
435
  container = QWidget()
411
436
  container.setLayout(keyboardView)
412
437
  self.addWidget(container)
438
+
439
+ def setClickSource(self, receiver):
440
+ self.receiver = receiver
413
441
 
414
442
  # Callback functions
415
443
  def onClickChar(self,keycode):
416
444
  # print(f"Key pressed: {keycode}")
417
- self.textField.addCharacter(keycode)
445
+ self.receiver.addCharacter(keycode)
418
446
 
419
447
  def onClickShift(self,keycode):
420
448
  # print("Shift pressed")
@@ -437,13 +465,13 @@ class VirtualKeyboard(QStackedWidget):
437
465
 
438
466
  def onClickBack(self,keycode):
439
467
  # print("Backspace pressed")
440
- self.textField.backspace()
468
+ self.receiver.backspace()
441
469
 
442
470
  def onClickSpace(self,keycode):
443
471
  # print("Space pressed")
444
- self.textField.addCharacter(' ')
472
+ self.receiver.addCharacter(' ')
445
473
 
446
474
  def onClickEnter(self,keycode):
447
475
  # print("Enter pressed")
448
- if self.keyboardType == 'multiline': self.textField.addCharacter('\n')
476
+ if self.keyboardType == 'multiline': self.receiver.addCharacter('\n')
449
477
  else: self.onFinished()
@@ -84,32 +84,28 @@ class Graphics(Handler):
84
84
 
85
85
  def __init__(self):
86
86
  super().__init__()
87
- self.program = None
88
87
 
89
- def setCallback(self, program, pc):
90
- self.program = program
91
- self.pc = pc
88
+ def setContainer(self, container):
89
+ self.container = container
92
90
 
93
91
  def mousePressEvent(self, event):
94
92
  self.clicked.emit()
95
93
  super().mousePressEvent(event)
96
- if self.program != None: self.program.run(self.pc)
94
+ if self.container != None: self.container.setClickSource(self)
97
95
 
98
96
  class ClickablePlainTextEdit(QPlainTextEdit):
99
97
  clicked = Signal()
100
98
 
101
99
  def __init__(self):
102
100
  super().__init__()
103
- self.program = None
104
101
 
105
- def setCallback(self, program, pc):
106
- self.program = program
107
- self.pc = pc
102
+ def setContainer(self, container):
103
+ self.container = container
108
104
 
109
105
  def mousePressEvent(self, event):
110
106
  self.clicked.emit()
111
107
  super().mousePressEvent(event)
112
- if self.program != None: self.program.run(self.pc)
108
+ if self.container != None: self.container.setClickSource(self)
113
109
 
114
110
  #############################################################################
115
111
  # Keyword handlers
@@ -816,8 +812,6 @@ class Graphics(Handler):
816
812
  keyword = record['keyword']
817
813
  if keyword == 'pushbutton':
818
814
  widget.clicked.connect(lambda: self.run(command['goto']))
819
- if keyword in ['lineinput', 'multiline']:
820
- widget.setCallback(self.program, command['goto'])
821
815
  elif keyword == 'combobox':
822
816
  widget.currentIndexChanged.connect(lambda: self.run(command['goto']))
823
817
  elif keyword == 'listbox':
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes