mirror of
git://projects.qi-hardware.com/eda-tools.git
synced 2024-12-22 19:59:52 +02:00
78 lines
3.2 KiB
Plaintext
78 lines
3.2 KiB
Plaintext
Parsing and input processing:
|
|
- unify alignment, direction
|
|
- on parse error, politely complain, don't terminate;
|
|
convert abort / assert(0) to proper error indications
|
|
- quoted strings can have embedded double quotes, with \" (see parse_field)
|
|
- check what happens with UTF-8 (c4puter/motherboard)
|
|
|
|
Data model:
|
|
- implement destructors
|
|
- check for memory leaks
|
|
- sheets appearing multiple times are parsed anew each time. Should we try
|
|
to combine them ?
|
|
- likewise, reuse sheets and libraries that are the same in the next/previous
|
|
revision (according to their OID)
|
|
|
|
Visualization (dwg.c and such):
|
|
- glabel: build for "right" style, then rotate poly (like hlabel)
|
|
- show open pins / wires
|
|
- check remaining alignment / direction / rotation cases in switch statements
|
|
- support mirroring (and detect-complain if unexpected) [should be done now]
|
|
- pin shapes (inverted, clock, etc.)
|
|
- optionally display pin type
|
|
- record.c (bb_rot): implement bounding boxes for text
|
|
- nesting gfx in diff is a huge kludge, caused by global vars in gfx.c
|
|
|
|
Rendering:
|
|
- better text size guessing also for FIG
|
|
- consider switching to Hershey fonts (that's what eeschema uses, right ?)
|
|
(goal: prevent font geometry from changing when scaling)
|
|
- support fonts attributes ?
|
|
- support line thickness ?
|
|
- ~ as overline (grep for ~ in out.fig)
|
|
- let user set PNG size [we have zoom level]
|
|
- return indication of whether diff found any differences
|
|
- in diff, pass only options understood by cairo_png
|
|
- find out why in Cairo PDF non-dashed lines disappear if CAIRO_LINE_CAP_ROUND
|
|
- non-interactive diff mode currently requires both sheets to have identical
|
|
size
|
|
- diff area algorithm will fill anything resembling a closed path, no matter
|
|
how little is inside (e.g., a changed large but empty rectangle will be
|
|
filled)
|
|
|
|
GUI:
|
|
- fonts grow beyond their bounding boxes when zooming in
|
|
- dragging can be slow. maybe reusing old content and only redrawing new
|
|
will help ?
|
|
- highlight nets ?
|
|
- we use find_corresponding_sheet way too often. Consider changing curr_sheet
|
|
to new_sheet and old_sheet.
|
|
- introduce location string, as command-line argument, e.g.,
|
|
[top-sheet/]rev-old,rev-new[,x,y[,zoom]]
|
|
or maybe (allowing for sheets from completely different sources):
|
|
[revA]:[topA]:[sheetA][,[revB]:[topB]:[sheetB]][@x,y[,zoom]]
|
|
[revA]:[topA]:[sheetA][,[revB]:[topB]:[sheetB]][@x,y[,radius]]
|
|
- set/use location string via clipboard
|
|
- incremental search with / ? and maybe Ctrl-S and Ctrl-R
|
|
https://www.gnu.org/software/emacs/manual/html_node/emacs/Repeat-Isearch.html#Repeat-Isearch
|
|
- allow changing font size
|
|
- maybe allow changing diff contrast
|
|
|
|
GUI/history
|
|
- should have quick way to show diff of a single commit
|
|
- in history, set font to non-bold if showing details
|
|
- add scrolling with keys to history
|
|
- add manual selection with Up/Down/Enter
|
|
- "what I am selecting" indication (color of frames of sheets in history)
|
|
is not very clear.
|
|
|
|
GUI/sheets:
|
|
- need a way to change new/old sheet association, in case automatic selection
|
|
fails (reserved hotkeys: Left/Right)
|
|
|
|
GUI/glabels:
|
|
- maybe indicate how many times label is used on each sheet
|
|
- maybe indicate how it is used
|
|
- there can be "hanging" pop-ups, by design. See comment in
|
|
gui/glabel.c:hover_glabel
|