-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathChangelog.txt
More file actions
367 lines (297 loc) · 10.6 KB
/
Changelog.txt
File metadata and controls
367 lines (297 loc) · 10.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
0.38:
* PySide6.Table: add click/dblclick
0.37:
* PySide6.Table: accept headers in TableNode usage
0.36:
* PySide6.Combobox: handle exception
0.35:
* Fix memory leaks
0.34:
* PySide6.Canvas.drawShapely: use OddEvenFill instead of QPainterPath.subtracted()
0.33:
* PySide6.Canvas.drawShapely: add cache to prevent expensive QPainterPath.subtracted()
0.32:
* PySide6.ComboBox: ignore signals to retired nodes
0.31:
* PySide6.Checkbox: fix setting bool value
0.30:
* PySide6.ComboBox: find initial index with string comparison
* DOM: fix updating old VDOM in S3-2-2
0.29:
* Add State(date, deep=True) and Unstate()
0.28:
* Fix PySide6.Modal
0.27:
* PySide6: catch RuntimeError: Internal C++ object (PySide6.QtWidgets.QLabel) already deleted.)
* sync wx.Canvas.{width,height} with PySide6.Canvas
0.26:
* Fix reference before assignment
* Fix property initialization
* PySide6.ComboBox: fix change event recursion
0.25:
* Implement list/dict model for Checkbox
0.24:
* Set PySide6.Driver.pui_movable = False
0.23:
* Add .tag() for debugging without interfering id/key
* DOM: fix sync case S3-2-2
* Add pui_movable to work around layout issue when QSpacerItem is reused
0.22:
* implement __eq__() for state classes
0.21:
* PySide6.Scroll: fix memory leak by releasing reference to retired nodes
0.20:
* PySide6.Canvas: fix memory leak by properly retiring old v-nodes
0.19:
* Bugfies for V-DOM sync
0.18:
* Add PySide6.Stack and its cookbook
* Add flet.Divider
* PySide6.layous: support drop event
* Update documentation
0.17:
* PySide6.Canvas: immediately redraw if painter function return true
* PySide6: add ImageResource.crop()
* PySide6: update ImageResource.scale()
0.16:
* Pyside6: handle weight change in HBox/VBox
* PySide6: add ImageResource class with .scale()
* Revise all TextField implementations about edit_model behavior
* wx.TextField: clear focus when enter is pressed or clicked outside
0.15:
* PySide6.Window: add windows workaround for maximize=True
* Fix unset index for Combobox
0.14:
* Update sizing documentation
* Update auto-sizing for textual/wx
* Improve responsiveness for wx
* Allow using different label/value in ComboBoxItem
* Make PySide6.Image clickable
* PySide6.Image: refresh when file mtime is changed
* PySide6.Image: be shrinkable if weight is set
* PySide6.Canvas: add .loadImage and .drawImage
* PySide6.Canvas: pass modifiers with wheelEvent
0.13:
* Bugfixes for PySide6.Tree
0.12:
* Add alternative Table usage with TableNode
* PySide6: Add drop event
* Add alternative Tree usage with TreeNode
0.11:
* TextField: fix updating model and edit buffter control when edit_model is not used
0.10:
* Integrate jurigged for hot-reloading
* Add PUIView.wait()
* ComboBoxItem: set text as id to properly trigger DOM update
* Fix DictBinding.emit()
* Add PySide.Tree
* Fix PySide6.Application.quit()
0.9.1:
* Fix notifying change in StateObject
0.9:
* Fix virtual node sync and partial sync for subviews (tests/nested_view.py, tests/virtual_nodes.py)
* wx.Window: handle icon setting
* Fix Binding.emit()
* PySide6.Table: fix refresh issue
* Add BaseTableAdapter
* Use per-key listeners for StateObject
0.8:
* Add MouseButton enum
* PySide6.Canvas: pass button value in mouse events #5
* PySide6.Canvas: finish .drawShapely() (full support to GeometryCollection)
* wx.Canvas: add .drawShapely() (full support to GeometryCollection)
* wx: Add auto padding and auto layout weight
* PySide6/wx: handle syntax difference in file dialog filter
0.7.1:
* prevent double call to content() and UI handle loss during updating virtual view
* trigger vparent redraw on view node
* PySide6.Tab: properly find tab if tab content is inside a virtual node
0.7:
* Add {PySide6,wx}.Divider
* PySide6.Canvas: add .drawShapely()
0.6.1:
* Update files dialogs interface (types arg)
0.6:
* Add wx.Checkbox
* Add wx.RadioButton
* PySide6.ComboBox: fix change event
* Add wx.ComboBox
* Add wx.Canvas
* wx: add imperative dialogs
* {PySide6,wx}.Canvas.drawText: support color and size
* wx: fix Spacer/Scroll
* Add wx.Progressbar
0.5:
* Add PySide6.Application.quit()
* Update TextField interface: add edit_buffer_binding
* TextField: update .{input, change} callback interface
* Improve virtual nodes support
* Fix with the latest textual
* Update layout strategy for textual
* PySide6.Canvas: support drawText(anchor=)
0.4:
* PySide6: fix handling busy redraw events
* TimelimeView: setDaemon(True) for timer thread
* PySide6.Canvas: add .dblclick()
* PySide6.Canvas: add .drawPolygon()
Breaking Change:
* pass event object to click listener
* PySide6.Combobox: update callback interface
0.3.8:
* PySide6.TextField: separate .change and .input events
0.3.7:
* PySide6.RadioButton: fix triggering click callback
* PySide6.Window: clear focus for QLineEdit when the window is clicked
* PySide6.TextField: clear focus when enter is pressed
0.3.6:
* PySide6.Canvas: add .drawEllipse()
* PySide6.Canvas: add .{mousedown,mouseup,mousemove,wheel} events
* PySide6.Canvas: support drawText(rotate=)
* PySide6.Window: add .keypress event
* PySide6.Checkbox: connect click event
* PySide6.TextField: update focus policy
0.3.5:
* PySide6: accept style (theme) parameter
* PySide6.Canvas: add .drawRect()
* Add @PUIApp decorator
* Trigger view update with state(None)
* Add PySide6.Image
* Fix PySide6.Application threading issue
* PySide6.{Application,Window}: add icon support
0.3.4:
* Add PySide6.MatplotlibCanvas
* PySide6: update signal connection type to prevent nested view redraw
* State: register listener to returned value if it is a state object
0.3.3:
* Rename .tag() => .id()
* PySide6.Scroll: fix snapping to end when initial content is smaller than container
* PySide6.Canvas: get auto width/height if not specified
0.3.2:
* Support batched state mutation (see `tests/batched_state_mutation.py`)
* Supported ToolBarAction with icon
* Add WxPython backend
* Add PySide6.Grid
0.3.1:
* PySide6.Table:implement autofit
* PySide6.table: header show/hide control
* QtInPui: include widget id in node key to fix VDOM diff/patch
* PySide6.QToolBar: add toolbar QWidget support (by @j8xixo12)
0.3:
* PySide6 interoperability
0.2.7: 2023 Jul 20
* Add PySide6.Table
* State Binding: add .emit()
0.2.6: 2023 Jul 3
* Update dialogs interfaces
0.2.5: 2023 Jul 3
* Add textual.MarkDown
* Fix threading issue for subview updating
* Add PySide6.Modal
* Add PySide6.{OpenDirectory, OpenFile, OpenFiles, SaveFile, Information, Warning, Critical, Confirm, Prompt}
* Add Text(selectable=), Label(selectable=) for PySide6
* Add PySide6.TextField.change()
0.2.4: 2023 Jun 19
* Add PySide6.{QtTabWidget, QtTab}
* Add tkinter.{TkNotebook, TkNotebookFrame}
* Add flet.{FTabs, FTab}
* Add textual.{TTabs, TTab}
* Use unified naming for all backends (eg. QtTabWidget->Tabs)
* Rename .tk() -> .tkinter()
0.2.3: 2023 Jun 8
* Add flet.FMarkDown
* Fix applying .flet() params
* Add flet.FCanvas
* tkinter: Apply .style() params
* tkinter: improve Scroll()
* tkinter: Add TkRadiobutton, TkCheckbutton
* flet: Add FRadio, FCheckbox
0.2.2: 2023 Jun 6
* Flet: fix scroll
* Flet: workaround progressbar sizing issue
* Textual: improve layout sizing
* PySide6.QtMdiArea: add addSubWindow, removeSubWindow
* Add .style(color=,bgColor=,fontSize=,fontWeight=,fontFamily=)
0.2.1: 2023 May 24
* Add state.bind(getter=,setter=)
* Add empty .textual(), .tk()
* Flet: add FScroll, clickable FLabel
* Add QtWrapper and cookbook example
* Add QtMdiArea and QtMdiSubWindow
* Add QtMenuBar, QtMenu, QtAction
* Add QtSplitter
* Add FColumn.flet(alignment=,horizontal_alignment), FRow.flet(alignment=,vertical_alignment=)
* Update DOM Syncer
0.2.0: 2023 May 16
* Implemente TkCanvas.drawPolyline
* Add QtHtml/QtMarkdownn/QtRadioButton/QtCheckbox
* Change Button interface
* Cookbook: add progressbar
* Remove urwid backend
* Add textual backend
0.1.15: 2023 May 12
* Update canvas interface
* Fix tkWindow interface
0.1.14: 2023 May 11
* Remove Qt5 backend
* Bugfixes
* Cookbook: add scroll/canvas
0.1.13: 2023 May 11
* Accept arguments for click callback
* Add .layout(padding=)
* Fix timer-node relation issue after TimelineView v-dom sync
* Add Cookbook
0.1.12: 2023 May 7
* PySide6: Add QtComboBox, QtComboBoxItem, QtText as Text
* PySide6: Add .qt() for direct qt control (was in .layout())
* PySide6: Support .qt(StyleSheet=)
* PySide6: Add .click(callback) for QtLabel
* PySide6: Support horizontal/vertical settings in QtScrollArea
* State: Support callback registration: state(key, callback)
* Add example/pyside6_feedparser.py
0.1.11: 2023 May 2
* PySide6: bug and performance fixes
0.1.10: 2023 May 1
* Support PySide.QtWindow(maximize=)
* Support PySide.QtWindow(fullscreen=)
0.1.9: 2023 May 1
* Add PySide6.QtScrollArea
* Add PySide6.QtSpacerItem as Spacer
* Fix sizing for PySide6.QtCanvas
* Add support of color/width for tkinter.TkCanvasLine
* Add tkinter.TkCanvasPolyline
* Add basic tkinter.TkScroll
* Add .{inner, outer} properties
* Support QtCanvas(bgColor=)
0.1.8: 2023 Apr 30
* Add PySide6.QtCanvasPolyline
0.1.7: 2023 Apr 30
* State: don't trigger draw if value is unchanged
* Remove inspect-based find_pui()
* Pros: performance, no runtime inspect operations
* Cons: no filename/lineno info
0.1.6: 2023 Apr 30
* Split application/window
* PySide6.QCanvasLine: support color and width
* tkinter
* Fix canvas children traversal after setting terminal=True
* Fix nested view
* Resizable window
0.1.5: 2023 Apr 29
* Add __version__
0.1.4: 2023 Apr 29
* Nested View
* Cache view stack in thread local storage
0.1.3: 2023 Apr 15
* Preliminary support for urwid
* StateObject / StateList / StateDict
* TimelineView
* Hot-reload driven by Reloadium
0.1.2: 2023 Mar 14
* View decorator
* State and Binding
* simple DOM sync
* Preliminary support for tkinter/Qt5/PySide6/flet
* Canvas
* Generic interface
POC: 2023 Mar 10
* inspect-based hierarchy builder