Root/
| 1 | Parsing 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 | |
| 8 | Data 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 | |
| 16 | Visualization (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 | |
| 26 | Rendering: |
| 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 | |
| 43 | GUI: |
| 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 | |
| 61 | GUI/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 | |
| 69 | GUI/sheets: |
| 70 | - need a way to change new/old sheet association, in case automatic selection |
| 71 | fails (reserved hotkeys: Left/Right) |
| 72 | |
| 73 | GUI/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 |
Branches:
master
