-
Notifications
You must be signed in to change notification settings - Fork 4
/
REMINDERS
386 lines (383 loc) · 14.9 KB
/
REMINDERS
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
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
Completed Items
- A function panel. The panel should include a list of defined functions.
Drag and drop function.
- ASH and children with views.
- ASH and optional parameters (list -details). Optional parameters are not
necessary.
- ASH and redo / undo.
- ASH and set widget-size and minimum sizes.
- ASH and the mouse.
- ASH splitter state.
- ASH: Control + End, Control + Home.
- ASH: page scrolling via keyboard (Page Down).
- About.
- Add --open-arduino-diagram option.
- Add close buttons to dialogs and windows.
- Add newly-created projects to Recent Files menu.
- Add widget actions to Edit menu. No. Instead, Shift key and the
primary mouse button should display the object's context menu.
- Adjust changed state of parent canvas if redo / undo stack of a child
is at level zero. This is very difficult. Quite simple: review states of
known redo / undo stacks.
- Alignment panel. The panel must allow interaction with separated windows.
Per diagram.
- Alignment tool should be a child of the view's window.
- Allow for objects to be excluded from the generated source.
- Allow opening of multiple files.
- Allow removal of individual items from Recent Diagrams.
- Allow removal of wire by click.
- Allow setting of function names.
- Android release.
- Android:
Adding user functions via drag (Completed)
Application icon (Completed)
Close buttons (Completed)
Context menus (Completed)
Display widget property editors via double-click (Completed)
Drag & drop (Completed)
Proper window hiding via hide() (Completed)
Tools button (Completed)
- Apply canvas settings.
- Arduino icons.
- Arithmetic and subtraction (-). Special parsing.
- Arrays.
- Arrow object is sometimes distorted.
- Assign new names to functions pasted on main canvases.
- Attach Structures to canvas page. Android and others.
- Awesome color images to buttons instead of basic backgrounds.
- Background color for natively-drawn widget.
- Canvas background color redo / undo.
- Canvas printing! Save as PNG instead.
- Center child edit windows!
- Center child window with respect to separated diagram if necessary.
- Close a function's Objects Alignment dialog if its editing window is closed.
- Close all edit windows on simulated delete.
- Close edit windows via Control + W.
- Close floating context menu of newly-created object upon delete.
- Combination boxes are obscured by view's margins. Scroll to see all
options
- Command-line help.
- Comment block and directional arrows.
- Comment widget and redo / undo stack is empty, however, the canvas remains
in a modified state.
- Complete SipHash diagram.
- Completed Categories
Advanced I/O
Analog I/O
Arithmetic Operators
Bits And Bytes
Bitwise Operators
Boolean Operators
Characters
Compound Operators
Constants
Conversions
Digital I/O
Flow Control
Logical Operators
Mathematics
Random
Serial
Stream
Structures
Syntax
Time
Trigonometry
Utilities
Variables
- Confirm closing of changed separated windows.
- Confirmation prompt on closing of edited diagrams.
- Connect Has Input(s) / Has Output and Set Port Colors.
- Constants.
- Context menu action states.
- Context menu icons.
- Context menu on main tab widget.
- Context menus should be available as tools. See Tools Bar.
- Copy & paste.
- Copy Edit menu to child edit windows and separated windows.
Redo / undo stack.
- Copy Object should result in a copied object even if the object is not
selected.
- Copy children!
- Copy functions from User Functions dialog. Or, dock User Functions.
- Copy wires of cloned functions, if necessary.
- Copy wires. Very difficult.
- Correct drag & drop of -= operator.
- Ctrl + W and docked property editors.
- Custom input and output port colors.
- Dark mode on Windows. Fusion.
- Define databases.
- Define input parameters from connected objects. Order is also important.
- Delegate object constructors.
- Denote function return. See return flow control.
- Denote occupied objects (functions, loop(), setup(), etc).
- Depict changed pages. Window titles, etc.
- Depict cloned functions. Function definitions will contain labels having
f symbols.
- Depict main functions via immutable themes.
- Detect scene boundaries and prevent placement outside of.
- Detect scene boundaries of object scenes.
- Disable redo / undo of line-edit widgets? No.
- Disable style sheets for natively-drawn widgets.
- Discover a function clone's correct parent function after opening a data file.
- Display Tools modes in menu and / or status bar.
- Display condition / label in flow control's edit window.
- Display floating zoom widgets. Action widgets instead.
- Display main() function. Fixed position? Yes.
- Display new item icon if dragging is ready.
(QDragManager::drag in possibly invalid state)
- Display serial port errors.
- Display tool mode in status bar.
- Display totals in Find Objects; status bar?
- Do not align, stack, etc. unless coordinates would change.
- Do not allow drag-and-drop operations for unaffiliated functions.
- Do not clone pasted functions without parents unless they already exist.
- Do not create a new wire if two objects are connected with a wire
that resides in the redo / undo stack. Re-wire objects on undo events.
- Do not delete function duplicates if one duplicate is removed.
- Do not discover parent functions for copied functions.
- Do not display order values for decorative objects.
- Do not save children of flow control objects if those objects
do not support children.
- Documentation.
- Docked User Functions.
- Docked floating context menus.
- Dots and grids.
- Double-click to edit for editable widgets.
- Drag and copy.
- Drag multiple items.
- Dragging an item onto a diagram and scroll bars.
- Dragging multiple items onto a canvas is incorrect.
- Draw and, not, or, etc. objects.
- Draw disconnect symbols.
- Draw input and output connectors.
- Edit window icons.
- Editable geometry in context menu.
- Enable categories icons for new diagrams.
- Error dialog.
- Ethernet class. Include required header file too. See Catalog category.
- Exiting does not require closing of pages.
- Filter mouse scrolling on combination boxes. Prevent accidental changes.
- Find Objects:
Copy context-menu action
Delete context-menu action
Search field
- Find and take me to your leader (scroll-to, show edit view).
- Find objects.
Edit context-menu action
- Flow-control objects and edit views (break does not have a view).
- Flow-control syntax colors.
- Focused combination boxes and resize requests malfunction.
- Font color for natively-drawn widget.
- Font hinting option for the application font.
- Full-screen and normal-screen modes.
- Function clones should have redo / undo stack of parent function.
- Function clones.
- Function input parameters.
- Function names and deleted functions; uniqueness errors.
- Function redo / undo private container. The redo / undo stack must be
separate of the function's parent view.
- Function return type via context menu.
- Functions are defined on the main view. Allow multiple instances of
a defined function. All duplicate instances should be duplicates of a single
definition.
- Generate periodically.
- Generate source from terminal for testing results.
- Generate to clipboard buffer.
- Generate view.
- Group delete.
- Group disconnect tool.
- Hide alignment options.
- Hide resize helpers on widget drag move.
- Horizontal arrow object for decorating:
Color
Show both, left, or right arrows
- Icons and themes.
- Identifiers are incorrect for function children.
- Improve detection of invalid variable names.
- Improve resizing of syntax widgets.
- Include Arduino language reference in binary.
- Include Examples with Android.
- Include Examples in Debian distributions.
- Include Examples in MacOS distribution.
- Indicate wire input / output.
- Inspect coordinates upon opening of diagrams. Adjust.
- Integrate isFullyWired().
- Intelligent beginMacro() / endMacro().
- Intelligent select mode: select or wire by proximity.
- Intelligent woody.
- Interactive natural language shell. Forever.
- Keywords (function names, variable names, etc.). Highlight errors.
- Languages option.
- Limit SQL text retrieval via SUBSTR().
- List of recent files.
- Lock color (similar to selection color).
- Menu hovering and status bar text. QStatusTipEvent.
- Miniture views.
- Modern Qt connect() (except for QOverload() (PowerPC)).
- Movement via arrows. Increase distance if Shift is depressed.
- Multiple inputs or single input? Single!
- Numeric sort in Find Widgets and Type Total column.
- Object border color.
- Object numbers should be sequenced.
- Option: override diagram fonts.
- Order items by bubbles and coordinates. Orders describe order in
generated source.
- Order: top-bottom followed by left-right.
- Other constants.
- Page shortcut (Alt-1, etc.).
- Pass undo stack from top-level view to child views.
- Paste function's state in canvas floating menu is incorrect.
- Paste in child views. Redo / undo.
- Pasting multiple objects does not respect their original relative positions.
Functional!
- Pasting of a function definition onto the main diagram should result
in a non-clone function.
- Percolate redo / undo of functions through child views.
- Periodic backup.
- Periodically-generated source and redo / undo.
- Portable output location.
- PowerPC (QOverload()).
- Prepare Copy, Delete, Paste, and Select All states.
- Prepare parents after cloning objects.
- Prepare settings of child views on initialization.
- Print preview.
- Private Arduino constructors (QWidget), (qint64, QWidget).
- Promote comment widget (see glitch_object_lineedit).
- Proper indentation of generated source.
- QSerialPort for direct communications with Arduino boards.
- Qt 6.5.1 LTS for Windows.
- Raise currently-selected function via z-value. This will allow the
function's combination box to float above other widgets.
- Recreating functions and unique names.
- Redo / undo and nested objects.
- Redo / undo function names.
- Redo / undo history panel.
- Redo / undo lock positions.
- Redo / undo shortcuts on edit windows.
- Redo / undo style sheets.
- Release notes under Help.
- Remove context menu buttons on Windows.
- Remove function clones.
- Remove function copies from diagram(s) on parent removal.
- Remove functions from User Functions on redo / undo.
- Remove logical operator as it duplicates boolean operator.
- Remove missing diagram files.
- Reopen child windows after undo of delete. Probably not pleasant if there
are numerous windows. Not necessary
- Reparent support panels if a canvas is separated. Not necessary. Append
Qt::Dialog to separated window's window flags. Not standard.
- Replace theme icons with true icons.
- Replace-with context menus for natively-drawn Arduino structures. Object
promotion.
- Reset object order on delete / redo / undo.
- Resize objects manually.
- Resize objects? Yes, option included.
- Retain Find Objects selection after an action.
- Retain Tools Bar position.
- Retain edit window geometry and state.
- Retain loop(), setup () style sheets.
- Retain scroll bar positions in Source View.
- Return pointers for functions.
- Review changed() signal. Emit whenever an object has changed.
- Review existence of redo / undo stack in Arduino objects.
- Review lengthy tool tips.
- SPI, USB, Wire (https://www.arduino.cc/reference/en). See Catalog
category.
- SQLite modes. Not necessary.
- Save As.
- Save button on tab.
- Save canvas settings.
- Save loop() and setup() style sheets.
- Save option from child views.
- Save position-locked property.
- Save, Save As on separated windows.
- Scroll a view during selection.
- Scroll a view if an item is moved via arrow keys.
- Search structures.
- Secondary view (preview) and pasting: QCursor::pos().
- Select all.
- Selection rectangle moves wired objects. Ignore wires.
- Separate database objects when opening an existing diagram.
- Separate panels for all categories.
- Separated window and full-screen mode.
- Separated window: context menu, generate source, save.
- Set Floating Context Menu widgets colors.
- Set child window titles to parent diagram name.
- Set focus on plain-text-edit during mouse-press event. Discover the
"viewport" widget.
- Shadow copies of loop() and setup().
- Shortcuts in object views.
- Show expected parameters of Arduino functions. Tool tips or minimal
floating dialogs.
- Show identifiers in Find Objects.
- Show object coordinates in redo / undo text.
- Show statistics in ASH::list.
- Show tooltip source of editable widgets. A source preview is provided.
- Single redo / undo stack per diagram.
- Sort contents of combination boxes in UI files:
Canvas Settings
Glitch Preferences
Serial Port Window
- Sort structures for languages.
- Source preview and lost focus.
- Source preview search.
- Split properties via special regular expression.
- Splitter states and redo / undo. Not necessary.
- Stack (z-values) widgets.
- Structures context menu on view object.
- Style sheets. User input is not validated.
- The name of the display in settings should be separate from the file name.
- Tools Bar?
- Tools:
Compress selected objects
Resize selected objects
- Transparent widgets, if system allows it.
- Underline function clone name if parent function has members.
- Undo macros for group actions.
- Unique widget colors. Background and border colors. Style sheets.
- Unite separated windows.
- Variable (combination boxes) functions.
- Variable clones. Not necessary.
- Verify setProperties() for default values.
- View separation.
- Virtual method setUndoStack() called in glitch_object::glitch_object().
- Warn of faulty home directory: read and write permissions.
- Warn of missing SQLite driver.
- Warn of recursive functions. Recursion is normal.
- Warn on diagram overwrite during initialization.
- Widget fonts.
- Widgets for decorations.
- Windows 10, 11, etc. Deprecate Windows 7.
- Windows distclean.
- Wire color setting.
- Wire is not intially drawn if objects are connected at a great distance.
Set initial bounding rectangle.
- Wire options:
color alpha
width
- Wire redo / undo.
- Wiring.
- Wiring beyond the scene. Issue prepareGeometryChange() before preparing
the bounding rectangle. Not necessary. Approximate the bounding rectangle.
- Wiring: curves and / or poly-lines options.
- Zoom features.
- glitch_canvas_settings::settings(). Not needed.
- prepareGeometryChange() may decrease performance. Implement shape().
- setWindowIcon(windowIcon()) on child dialogs.
Remaining Items
- ASH.
- Context-menu for attaching widgets to input / output ports of other widgets.
- Custom shortcuts.
- Display context cursor as mouse hovers over a port.
- Insert-between-widgets option.
- Nested flow-control scenes. Very difficult.
- Pasting a function clone in a child of another diagram must result
in a new main-window function in the other diagram.
- Recursive copying of nested function definitions.
- Replace comment widget with a text graphics item.
- Resizing after a font is difficult because of redo / undo.
- Snap-to-visible-grid.
- Windows and GDI objects. Remove QGraphicsProxyWidget from as many
structures as possible. Replace QWidget in glitch_object with
QGraphicsWidget.