Root/eeshow/TODO

Source at commit 0adf7363cd584d494871f99789fa5ae0e7e02573 created 7 years 4 months ago.
By Werner Almesberger, TODO: we now parse project files, too :)
1Parsing and input processing:
2- unify alignment, direction
3- on parse error, politely complain, don't terminate;
4  convert abort / assert(0) to proper error indications
5- quoted strings can have embedded double quotes, with \" (see parse_field)
6- check what happens with UTF-8 (c4puter/motherboard)
7
8Data model:
9- implement destructors
10- check for memory leaks
11- sheets appearing multiple times are parsed anew each time. Should we try
12  to combine them ?
13- likewise, reuse sheets and libraries that are the same in the next/previous
14  revision (according to their OID)
15
16Visualization (dwg.c and such):
17- glabel: build for "right" style, then rotate poly (like hlabel)
18- show open pins / wires
19- check remaining alignment / direction / rotation cases in switch statements
20- support mirroring (and detect-complain if unexpected) [should be done now]
21- pin shapes (inverted, clock, etc.)
22- optionally display pin type
23- record.c (bb_rot): implement bounding boxes for text
24- nesting gfx in diff is a huge kludge, caused by global vars in gfx.c
25
26Rendering:
27- better text size guessing also for FIG
28- consider switching to Hershey fonts (that's what eeschema uses, right ?)
29  (goal: prevent font geometry from changing when scaling)
30- support fonts attributes ?
31- support line thickness ?
32- ~ as overline (grep for ~ in out.fig)
33- let user set PNG size [we have zoom level]
34- return indication of whether diff found any differences
35- in diff, pass only options understood by cairo_png
36- find out why in Cairo PDF non-dashed lines disappear if CAIRO_LINE_CAP_ROUND
37- non-interactive diff mode currently requires both sheets to have identical
38  size
39- diff area algorithm will fill anything resembling a closed path, no matter
40  how little is inside (e.g., a changed large but empty rectangle will be
41  filled)
42
43GUI:
44- fonts grow beyond their bounding boxes when zooming in
45- dragging can be slow. maybe reusing old content and only redrawing new
46  will help ?
47- highlight nets ?
48- we use find_corresponding_sheet way too often. Consider changing curr_sheet
49  to new_sheet and old_sheet.
50- introduce location string, as command-line argument, e.g.,
51  [top-sheet/]rev-old,rev-new[,x,y[,zoom]]
52  or maybe (allowing for sheets from completely different sources):
53  [revA]:[topA]:[sheetA][,[revB]:[topB]:[sheetB]][@x,y[,zoom]]
54  [revA]:[topA]:[sheetA][,[revB]:[topB]:[sheetB]][@x,y[,radius]]
55- set/use location string via clipboard
56- incremental search with / ? and maybe Ctrl-S and Ctrl-R
57  https://www.gnu.org/software/emacs/manual/html_node/emacs/Repeat-Isearch.html#Repeat-Isearch
58- allow changing font size
59- maybe allow changing diff contrast
60
61GUI/history
62- should have quick way to show diff of a single commit
63- in history, set font to non-bold if showing details
64- add scrolling with keys to history
65- add manual selection with Up/Down/Enter
66- "what I am selecting" indication (color of frames of sheets in history)
67  is not very clear.
68
69GUI/sheets:
70- need a way to change new/old sheet association, in case automatic selection
71  fails (reserved hotkeys: Left/Right)
72
73GUI/glabels:
74- maybe indicate how many times label is used on each sheet
75- maybe indicate how it is used
76- there can be "hanging" pop-ups, by design. See comment in
77  gui/glabel.c:hover_glabel
78

Archive Download this file

Branches:
master



interactive