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