summaryrefslogtreecommitdiff
path: root/TODO
blob: 65cae8845f58f331238d2ee2aff14a41a75ddd0e (plain)
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
Parsing and input processing:
- unify alignment, direction
- find libraries (e.g., from .pro)
- parse .kicad_wks
- 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)
- PDF TOC
- 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

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]]
- set/use location string via clipboard

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 to history, for hot-keys
- add manual selection with Up/Down/Enter
- highlight subsheets containing differences
- "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, see comment in gui/glabel.c:hover_glabel
- should there be a way to remove glabel highlighting ?
- comparing Neo900 fbc3a95 and 6a9f71a, sheet 2 has large offset differences,
  causing hover to have displaced AoIs in diff_old, and both AoIs and overlays
  are wrong in diff_new. Offset differences also defeat rapid switching between
  old and new as a means to spot differences.