1
0
mirror of git://projects.qi-hardware.com/eda-tools.git synced 2024-11-30 07:11:52 +02:00
Commit Graph

304 Commits

Author SHA1 Message Date
Werner Almesberger
fc1fbece43 eeshow/gui/: bring back scrolling of the history
Now it's more usable than before, since clicking between commits won't
close the history.
2016-08-18 02:05:43 -03:00
Werner Almesberger
547e7059ae eeshow/gui/gui.c: begin moving input (mouse, keyboard) handling to input.c (WIP)
We had input state scattered all over the place. This cleans things up.
We also merge the functions of left and (previously) middle button.

This breaks history panning.
2016-08-18 01:49:20 -03:00
Werner Almesberger
c4811c8dd6 eeshow/: util.h and diag.c go to misc/ 2016-08-17 21:37:15 -03:00
Werner Almesberger
4836dcb0ca eeshow/delta.c: goes to kicad/ 2016-08-17 21:33:10 -03:00
Werner Almesberger
766f1d64f3 eeshow/misc.c: goes to gfx/, too 2016-08-17 21:31:56 -03:00
Werner Almesberger
9829f7070f eeshow/: move graphics low-level functions to gfx/ 2016-08-17 21:28:42 -03:00
Werner Almesberger
c353129172 eeshow/kicad/dwg.h: don't include fig.h; forgot to include text.h in lib.h 2016-08-17 21:17:35 -03:00
Werner Almesberger
e0c1e533f4 eeshow/: move parsing and high-level rendering to kicad/ 2016-08-17 21:15:44 -03:00
Werner Almesberger
097192b7b4 eeshow/: move file and history access to file/ 2016-08-17 21:07:13 -03:00
Werner Almesberger
b9329b09d2 eeshow/fmt-pango.c, fmt-pango.h: also move to gui/ 2016-08-17 21:00:02 -03:00
Werner Almesberger
4d40267974 eeshow/: move gui* into subdirectory gui/ 2016-08-17 20:54:25 -03:00
Werner Almesberger
bcd34eaf7d eeshow/diag.h: use __attribute__((format(printf, ... 2016-08-17 04:43:15 -03:00
Werner Almesberger
7604c64d16 eeshow/DEMO: add Olimex A64-OLinuXino 2016-08-17 04:42:00 -03:00
Werner Almesberger
6f79ecdc3f eeshow/gui.c (show_history): skip (compact) commits without changes 2016-08-17 04:41:27 -03:00
Werner Almesberger
3674d4eb75 eeshow/fmt-pango.c: support %u format; use __attribute__((format... 2016-08-17 04:39:59 -03:00
Werner Almesberger
a0be60f935 eeshow/style.h (COLOR_COMP_DWG_BG): use lighter yellow for background
0xffffc2 is the same color KiCad uses.
2016-08-16 12:27:37 -03:00
Werner Almesberger
f08f43d706 eeshow/fig.c: output all user-defined colors 2016-08-16 12:20:27 -03:00
Werner Almesberger
5edf1923f0 eeshow/TODO: update 2016-08-16 05:19:23 -03:00
Werner Almesberger
18fc781b01 eeshow/DEMO: add c4puter/motherboard as another example 2016-08-16 05:17:05 -03:00
Werner Almesberger
f893e17ed9 eeshow/sch-parse.c (parse_field): accept escaped quotes (WIP)
We should also remove the backslash.
2016-08-16 05:15:38 -03:00
Werner Almesberger
3c7033ce61 eeshow/: missing sheets are now flagged in red, instead of failing the revision 2016-08-16 04:07:42 -03:00
Werner Almesberger
e349ae0d1f eeshow/delta.c (sheet_eq): check if one sheet title is NULL
May have caused a segfault.
2016-08-16 03:47:35 -03:00
Werner Almesberger
c5fcf2c16e eeshow/diff.c (AREA_FILL): change from yellow to light purple
The yellow looked almost like eeschema's background fill color, making it
difficult to see change indications.
2016-08-16 03:19:39 -03:00
Werner Almesberger
06a614d2c2 eeshow/git-file.c (find_file): use git_repository_workdir, for submodules 2016-08-16 03:14:50 -03:00
Werner Almesberger
ccf77a541d eeshow/cro.c (cr_arc): close the path for filled arcs
Else, we'd get little "horns" at the ends.
2016-08-16 02:33:37 -03:00
Werner Almesberger
ae80cde66c eeshow/lib-render.c (draw_arc): support filling 2016-08-16 02:33:35 -03:00
Werner Almesberger
7603e917c3 eeshow/lib-parse.c (parse_def): suppress pin name and number if power symbol 2016-08-16 02:14:45 -03:00
Werner Almesberger
a03f41a845 eeshow/text.c (text_fig): correct vertical alignment of multi-line text
We used the first line as alignment point, not the last line.
2016-08-16 02:06:40 -03:00
Werner Almesberger
6fe19f52e9 eeshow/: support selection of "De Morgan" style 2016-08-16 01:47:07 -03:00
Werner Almesberger
7d72a28c31 eeshow/fig.c (fig_init): use getline instead of fgets 2016-08-16 01:34:26 -03:00
Werner Almesberger
37351bf8bc eeshow/file.c (file_read): use getline instead of fgets
OSHW-SCHEM-PCB10mm of github.com:cpavlina/kicad-schlib/library/symbol.lib
has a line > 1000 characters.
2016-08-16 01:24:04 -03:00
Werner Almesberger
8a087797b2 eeshow/lib-parse.c (decode_style): also recognize "Italic" 2016-08-16 01:00:20 -03:00
Werner Almesberger
b9e51a7788 eeshow/README: document modes of usage 2016-08-16 00:21:33 -03:00
Werner Almesberger
0119b82340 eeshow/gui.c (button_press_event): filter out double-click
That tripped an assertion in gui-aoi.c
2016-08-16 00:19:51 -03:00
Werner Almesberger
0d975a57d0 eeeshow/gui-aoi.c (aoi_down): don't accept click on non-clickable AoI 2016-08-16 00:19:23 -03:00
Werner Almesberger
b67f6b9a96 eeshow/gui-over.c: make list doubly-linked; reverse when dy < 0 2016-08-15 04:47:43 -03:00
Werner Almesberger
375efa6476 eeshow/gui.c (hover_glabel): don't test outer loop variable in inner loop 2016-08-15 04:34:02 -03:00
Werner Almesberger
562f36b20c eeshow/gui-over.c: outwitted myself with the overlay direction logic 2016-08-15 04:33:34 -03:00
Werner Almesberger
5e9bc68093 eeshow/gui.c (set_history_style): show revisions without valid sheets in red 2016-08-15 00:53:14 -03:00
Werner Almesberger
8d465b0da0 eeshow/gui-over.c (overlay_draw): simplify; correct reverse alignment 2016-08-14 14:52:07 -03:00
Werner Almesberger
a61560f119 eeshow/gui.c (on_draw_event): don't reverse direction at end of history 2016-08-14 14:36:34 -03:00
Werner Almesberger
d8f3319264 eeshow/gui-over.c: more fine-grained control over stacking direction 2016-08-14 14:35:57 -03:00
Werner Almesberger
a3301f95ae eeshow/gui.c: show progress bar on main window 2016-08-14 13:51:30 -03:00
Werner Almesberger
6345c44dad eeshow/: history list can now be dragged 2016-08-14 13:01:58 -03:00
Werner Almesberger
5ccd805b43 eeshow/gui-aoi.c: prepare API for future dragging support 2016-08-14 12:31:09 -03:00
Werner Almesberger
c00f065993 eeshow/sch-parse.c (recurse_sheet): sheet->title must be malloc'ed 2016-08-14 12:13:33 -03:00
Werner Almesberger
93b7269a3e eeshow/: field visibility in schematics completely overrides library 2016-08-14 10:55:22 -03:00
Werner Almesberger
88287cae35 eeshow/delta.c (comp_fields_eq): remove redundant initialization 2016-08-14 10:41:31 -03:00
Werner Almesberger
57dbe2344c eeshow/sch-parse.c (parse_field): fix small memory leak 2016-08-14 10:21:11 -03:00
Werner Almesberger
092386d0c2 eeshow/gui.c: show commits that don't change the schematics in grey 2016-08-14 10:13:41 -03:00
Werner Almesberger
bbfa7c573a eeshow/sch-parse.c (parse_line): always initialize u.text.shape
Even for text and (local) labels, which use no shape attribute.
2016-08-14 10:12:58 -03:00
Werner Almesberger
dd952eabf1 eeshow/delta.c (obj_eq): optionally recurse into sub-sheets 2016-08-13 03:19:40 -03:00
Werner Almesberger
174a57d6c5 eeshow/delta.c (sheet_eq): sheet comparison, for history compression 2016-08-13 03:16:14 -03:00
Werner Almesberger
d63c1a8ffe eeshow/gui.c (parse_files): don't expect number of libs to be constant 2016-08-12 14:50:13 -03:00
Werner Almesberger
4c86cc1b46 eeshow/: missing components are no longer fatal 2016-08-12 14:43:29 -03:00
Werner Almesberger
7af9b85e6c eeshow/: add a progress bar when starting (WIP)
Positioning is still very bad.
2016-08-12 14:43:29 -03:00
Werner Almesberger
5a7ddc8b95 eeshow/: convert "perror" to diagnostic functions 2016-08-12 14:43:28 -03:00
Werner Almesberger
d1fdcaeab4 eeshow/gui.c: limit = 0 means "no limit", not "no revisions" 2016-08-12 10:42:03 -03:00
Werner Almesberger
62ca12c2da eeshow/: use dedicated functions for diagnostics, instead of fprintf and exit 2016-08-12 10:40:55 -03:00
Werner Almesberger
3e236d0456 eeshow/: output progress messages with "progress" 2016-08-11 17:44:26 -03:00
Werner Almesberger
5581a34444 eeshow/main.c (verbose): move to new file diag.c
In preparation of a more flexible diagnostics system.
2016-08-11 16:36:24 -03:00
Werner Almesberger
1a7c311c87 eeshow/lib-render.c (draw_pin_name): "~" means "no name" 2016-08-11 10:08:28 -03:00
Werner Almesberger
5a2324169e eeshow/: properly handle fake history record for uncommitted changes 2016-08-11 03:24:34 -03:00
Werner Almesberger
2ef7eab861 eeshow/lib-render.c (draw_pin_name): skip initial ~ in pin name 2016-08-11 03:09:23 -03:00
Werner Almesberger
82635e8a41 eeshow/sch-parse.c (parse_line): use sub-sheet name as title, instead of title
In Anelok, all sheets have the same title, but different sub-sheet names.
So this is probably a more reliable heuristic.
2016-08-11 02:49:40 -03:00
Werner Almesberger
7cc2142e83 eeshow/sch-parse.c: remove #include left over from debugging 2016-08-11 02:44:33 -03:00
Werner Almesberger
f6352219b1 eeshow/sch-render.c (render_sheet): place subsheet labels correctly 2016-08-11 02:43:01 -03:00
Werner Almesberger
353aec1863 eeshow/dwg.c (dwg_hlabel): style for tri-state is the same as for bidir 2016-08-11 02:42:37 -03:00
Werner Almesberger
bddbad65f1 eeshow/misc.c (matrix_to_angle, matrix_is_mirrored): add matrix 0, -1, 1, 0
Probably mirrored + 270 deg.
2016-08-11 02:35:56 -03:00
Werner Almesberger
06d5a924c6 eeshow/: support component aliases 2016-08-11 02:32:00 -03:00
Werner Almesberger
3e102752f6 eeshow/gui.c (select_subsheet): do nothing if we didn't load subsheets 2016-08-11 01:49:49 -03:00
Werner Almesberger
f5c908c36f eeshow/gui.c: proof-of-concept implementation of jumping by glabel
What's still missing:
- don't require click to dehover
- help to find glabel on destination sheet
- help with finding glabel on current sheet
- avoid darkened overlap
- maybe indicate in/out/bidir/passive
2016-08-11 01:27:59 -03:00
Werner Almesberger
cfa25b4b4c eeshow/gui.c: show glabel pop-up on glabel 2016-08-10 23:47:08 -03:00
Werner Almesberger
0fdce017fb eeshow/: make glabels hoverable (WIP) 2016-08-10 21:50:07 -03:00
Werner Almesberger
08de2f7b4b eeshow/sch.h (sch_obj_glabel): indicate global labels (in data) more clearly 2016-08-10 20:49:01 -03:00
Werner Almesberger
d63b534fb3 eeshow/gui.c: show sheet number on hover 2016-08-10 20:41:33 -03:00
Werner Almesberger
8a0a79e461 eeshow/util.h (alloc_type_n): get rid of all these alloc_size(sizeof(foo), n) 2016-08-10 20:28:31 -03:00
Werner Almesberger
2ab72ab0e3 eeshow/gui.c (sheet_selector_recurse): we can now jump to the exact sheet
No need for the "go up" hack.
2016-08-10 20:24:03 -03:00
Werner Almesberger
97de1dda47 eeshow/gui.c (struct gui_sheet): record ctx, to allow for simpler callbacks 2016-08-10 20:20:51 -03:00
Werner Almesberger
cf2ca585f5 eeshow/gui.c: write down some more thoughts on making caching better 2016-08-10 20:15:07 -03:00
Werner Almesberger
9524447bf1 eeshow/sch.h (struct sheet.parent): remove; we can just record it locally 2016-08-10 19:41:17 -03:00
Werner Almesberger
8f352832e0 eeshow/: simple caching of sheets
We only reuse previous sheets if ...

- they have no sub-sheets, and
- all the libraries are identical.

This reduces the -N-150 time from 8.3 s (caching only libraries) to 4.3 s.

Since we only need to know whether there are sub-sheets, but not what
exactly they are, we can also partially undo the previous commit,
77c0e07590
2016-08-10 19:37:44 -03:00
Werner Almesberger
77c0e07590 aeeshow/sch.h, sch-parse.c: record subsheets in parent, for future caching 2016-08-10 16:33:40 -03:00
Werner Almesberger
b6975e3998 eeshow/gui.c: only parse libraries if any have changed
This reduced the time for
./eeshow -N-150 -r neo900.lib /home/qi/kicad-libs/components/powered.lib /home/n9/ee/hw/neo900.sch

from 10.3 (not caching anything) s to 8.3 s (caching libraries).
2016-08-10 16:17:58 -03:00
Werner Almesberger
fb6d6c026b eeshow/git-file.c (related_other_repo): print warning only once 2016-08-10 16:03:16 -03:00
Werner Almesberger
ab613fcc86 eeshow/lib-parse.c (lib_parse_file): separate "core" from lib_parse 2016-08-10 15:26:03 -03:00
Werner Almesberger
4a2177e041 eeshow/gui.c (add_hist): avoid excessive use of "(*anchor)" 2016-08-10 14:07:03 -03:00
Werner Almesberger
971ba27131 eeshow/gui.c (struct gui_hist.hist): rename to vcs_hist
Removing some ambiguity.
2016-08-10 14:05:11 -03:00
Werner Almesberger
3d794c5965 eeshow/file.c, git-file.c: give access to object IDs, for caching 2016-08-10 13:52:56 -03:00
Werner Almesberger
54922dc343 eeshow/: option -N depth to limit history depth; -N-depth exits after parsing 2016-08-10 09:08:22 -03:00
Werner Almesberger
02e4d6e071 eeshow/TODO: update, add more GUI-related items 2016-08-10 09:08:15 -03:00
Werner Almesberger
539f72b0d9 eeshow/gui.c: move style definitions to gui-style.h 2016-08-09 19:21:02 -03:00
Werner Almesberger
ea3f98c569 eeshow/gui-style.h, gui-style.c: remove unused styles 2016-08-09 19:14:15 -03:00
Werner Almesberger
2682625e7d eeshow/gui.c (setup_styles): we no longer need this (compose on the fly) 2016-08-09 19:05:03 -03:00
Werner Almesberger
672228148d eeshow/gui.c: replace {curr,last}_hist with {new,old}_hist
Since we already change the UI paradigm, this greatly simplifies the code.
2016-08-09 19:01:05 -03:00
Werner Almesberger
2bd452d3b3 eeshow/gui.c: redesign selection history to use old/new paradigm (WIP)
Also improved visual representation.
2016-08-09 18:28:59 -03:00
Werner Almesberger
6bb814bae6 eeshow/gui-over.h: use struct for color, instead of array
That way, we can use assignments on them.
2016-08-09 16:01:01 -03:00
Werner Almesberger
f973abd98c eeshow/gui-over.c: move styles to gui-style.c 2016-08-09 15:30:30 -03:00
Werner Almesberger
315494d617 eeshow/diff.c: make red a little less dominant 2016-08-09 14:19:21 -03:00
Werner Almesberger
29f4db55ed eeshow/gui.c: newer revision is on top and in diffs it's green 2016-08-09 14:16:05 -03:00
Werner Almesberger
afe744c63e eeshow/gui.c: clicking outside the history list now closes it 2016-08-09 13:28:27 -03:00
Werner Almesberger
bfd2ef39a2 eeshow/gui-over.c: style is now copied, not just referenced
This way, we can generate styles on the fly and won't have to manage a
huge collection of pre-designed styles.
2016-08-09 13:13:18 -03:00
Werner Almesberger
bbb375ce26 eeshow/gui.c: show clickable overlay boxes also for parents of current sheet 2016-08-09 12:55:29 -03:00
Werner Almesberger
629b9356e2 eeshow/: fix offset calculation and also get rid of rounding artefacts 2016-08-09 12:28:21 -03:00
Werner Almesberger
cc3befe110 eeshow/diff.c (diff_to_canvas): simplify offset calculation 2016-08-09 12:08:08 -03:00
Werner Almesberger
d4e3018c12 eeshow/gui.c (go_to_sheet): don't try to access history if we have none 2016-08-09 12:03:36 -03:00
Werner Almesberger
d320dbbf2b eeshow/diff.c (diff_to_canvas): fix offset calculation 2016-08-09 11:21:52 -03:00
Werner Almesberger
20c821f0ba eeshow/gui.c (curr_sheet_size): also support diff mode 2016-08-09 11:20:54 -03:00
Werner Almesberger
eff0ad4860 eeshow/gui.c (zoom_to_extents): abstract obtaining the sheet size 2016-08-09 10:58:29 -03:00
Werner Almesberger
be43cce751 eeshow/cro.c (cro_img_end): flush surface
It worked without it, but better safe than sorry.
2016-08-09 10:27:22 -03:00
Werner Almesberger
029cc30700 eeshow/diff.c: free list of highlighted areas 2016-08-09 10:24:08 -03:00
Werner Almesberger
71e79a20d0 eeshow/diff.c (diff_to_canvas): point out flaw in offset calculation 2016-08-09 10:20:46 -03:00
Werner Almesberger
4988736351 eeshow/gui.c: experimentally use pixel differences (WIP)
This still has a number of bugs but the basics work.
The most glaring issues:
- AoI coordinates are wrong, so AoIs don't really work
- "center and zoom to extents" is all wrong
2016-08-09 10:16:31 -03:00
Werner Almesberger
e59fff3363 eeshow/diff.c (diff_to_canvas): draw pixel differences to canvas (WIP)
Offsets still aren't right.
2016-08-09 10:14:36 -03:00
Werner Almesberger
bcec5c005f eeshow/cro.c (cro_img): draw on image for external use 2016-08-09 10:09:08 -03:00
Werner Almesberger
13828eff94 eeshow/sch-parse.c (free_sheet): don't free recursively (caller frees all) 2016-08-08 23:44:27 -03:00
Werner Almesberger
cd0ee8932d eeshow/cro.c (cro_get_size): split from end_common 2016-08-08 17:16:50 -03:00
Werner Almesberger
e874d66ebb eeshow/cro.c: disentangle interfaces
They all are very similar but still differ in subtle ways.
2016-08-08 17:00:33 -03:00
Werner Almesberger
a564b5d03e eeshow/cro.c (new_cc): separate context creation from option parsing 2016-08-08 16:54:09 -03:00
Werner Almesberger
52ab16d62a eeshow/cro.c (cr_png_end): was almost identical to cro_img_end, unify 2016-08-08 16:49:37 -03:00
Werner Almesberger
f8cc8ba598 eeshow/gui.c (gui): set default size to 640 x 480 pixels 2016-08-07 22:34:01 -03:00
Werner Almesberger
24422a7721 eeshow/gui.c: show either revisions or history, never both at the same time
Also move the revisions to the left edge, to ease navigation.
2016-08-07 21:47:50 -03:00
Werner Almesberger
aeedab62f7 eeshow/git-file.c (canonical_path_into_repo): really catch divergent paths 2016-08-07 16:13:28 -03:00
Werner Almesberger
43542d6504 eeshow/diff.c (differences): clean up pixel processing 2016-08-07 16:03:56 -03:00
Werner Almesberger
3b8b8a20d2 eeshow/lib-parse.c (parse_def): don't break free'ing the component name 2016-08-07 16:03:13 -03:00
Werner Almesberger
9c988e2d7e eeshow/delta.c: compare components object by object 2016-08-07 14:31:38 -03:00
Werner Almesberger
f40f012a1e eeshow/: add color overriding; basic infrastructure for viewing deltas 2016-08-07 14:06:50 -03:00
Werner Almesberger
ba62fc4fc4 eeshow/delta.c: very coarse structural deltas (WIP) 2016-08-07 14:05:57 -03:00
Werner Almesberger
4418741fc6 eeshow/style.h, style.c: add Green, Red, Green2, Green3, and a user light grey 2016-08-07 14:05:31 -03:00
Werner Almesberger
d953345397 eeshow/cro.h, cro.c: add color override 2016-08-07 08:13:16 -03:00
Werner Almesberger
c2c58f6892 eeshow/: selection of 2nd history entry (for comparisons, WIP) 2016-08-07 07:51:56 -03:00
Werner Almesberger
15deee6955 eeshow/gui-over.c: more structured approach to composing styles 2016-08-07 06:24:10 -03:00
Werner Almesberger
cb7902fcb2 eeshow/gui.c (struct gui_ctx.vcs_overlays): rename to hist_overlays
We use "hist" everywhere else to refer to the history in the GUI context.
2016-08-07 06:23:04 -03:00
Werner Almesberger
bd7149ba0b eeshow/gui.c (setup_styles): present history "ragged right" 2016-08-07 06:16:41 -03:00
Werner Almesberger
56e36b7e9d eeshow/: move sheet overlays to right screen edge; move history left 2016-08-07 06:13:26 -03:00
Werner Almesberger
c908e4de0e eeshow/gui.c: show details also on hover in history list 2016-08-07 05:22:55 -03:00
Werner Almesberger
3c71bf7b05 eeshow/: hovering over the revision shows more details 2016-08-07 05:09:34 -03:00
Werner Almesberger
cb4ee6d5b9 eeshow/: work around the ink_rect.y bug more elegantly
Still have no clue what causes this.
2016-08-06 23:02:42 -03:00
Werner Almesberger
51f6852bf9 eeshow/: overlays can now have different styles (WIP) 2016-08-06 20:46:03 -03:00
Werner Almesberger
18c3b6e476 eeshow/: use printf-style formatting for overlay text; test mode -F fmt string 2016-08-06 19:14:31 -03:00
Werner Almesberger
45726be08f eeshow/gui-over.c (overlay_draw): use Pango 2016-08-06 13:38:13 -03:00
Werner Almesberger
3b5daecbd6 eeshow/gui.c (go_to_sheet): don't "render" (record) sheets before shown 2016-08-06 10:19:16 -03:00
Werner Almesberger
acbce9a214 eeshow/gui.c: add navigation in history 2016-08-06 10:00:29 -03:00
Werner Almesberger
b067cf9a38 eeshow/gui.c: parse sheets for each revision
We currenly make no effort to avoid duplicate work, so this is slow.
Also, we don't actually do anything with the revision information, yet.
2016-08-06 09:27:22 -03:00
Werner Almesberger
8fb867105c eeshow/git-hist.c (vcs_git_get_rev), git-hist.h: revision string from history 2016-08-06 01:18:43 -03:00
Werner Almesberger
a58bc93d69 eeshow/: more error returns in file functions; file_open_revision
file_open_revision is for opening files based on the revision history.
2016-08-06 01:15:49 -03:00
Werner Almesberger
ce5111ae07 eeshow/gui.c (gui): quit if we couldn't parse (and don't segfault) 2016-08-05 21:28:45 -03:00
Werner Almesberger
fffa29bbb3 eeshow/main.c (usage): update to show GUI invocation 2016-08-05 21:19:56 -03:00
Werner Almesberger
21c9a6e1aa eeshow/Makefile (test, testref): must use -- fig for FIG output
Anything without -- goes to the GUI (except for development options like
-C and -H).
2016-08-05 21:17:50 -03:00
Werner Almesberger
e949130daf eeshow/main.c (main): gtk_init removes --, so only call it if we have none 2016-08-05 21:14:26 -03:00