Werner Almesberger
fd18690498
eeshow/gui/input.c: add tracing (-v -v -v); rename input_normal to input_idle
2016-08-18 04:34:51 -03:00
Werner Almesberger
822a14fc55
eeshow/gui/sheet.c: improve sectioning of code
2016-08-18 04:22:27 -03:00
Werner Almesberger
aca913b333
eeshow/gui/history.c: void forward-declaration of history_input_ops
2016-08-18 04:12:14 -03:00
Werner Almesberger
8d3b642fb2
eeshow/gui/history.c: provide complete set of input functions
2016-08-18 04:10:35 -03:00
Werner Almesberger
9792a22799
eeshow/gui/gui.c (eeschema_coord): only used in glabel.c, move there
2016-08-18 04:01:45 -03:00
Werner Almesberger
23fed29423
eeshow/gui/gui.c: move history list to history.c
2016-08-18 03:59:12 -03:00
Werner Almesberger
4ae81be02a
eeshow/gui/gui.c: move sheet navigation to sheet.c
2016-08-18 03:50:43 -03:00
Werner Almesberger
4191931c06
eeshow/gui/gui.c: move global label pop-up to glabel.c
2016-08-18 03:07:43 -03:00
Werner Almesberger
6975c2b6d5
eeshow/gui/gui.c: move progress bar handling to progress.c
2016-08-18 02:53:39 -03:00
Werner Almesberger
f981ec1a63
eeshow/gui/gui.c: move common data structures to common.h
...
Preparing for splitting gui.c into more manageable parts.
2016-08-18 02:48:57 -03:00
Werner Almesberger
ab1948a62c
eeshow/gui/gui.c: dragging closes glabel pop-up
2016-08-18 02:44:06 -03:00
Werner Almesberger
6847165604
eeshow/aoi.c, aoi.h: remove dragging support (now in input.c)
...
The crazy detour through aoi.c and over.c is no longer needed.
2016-08-18 02:13:55 -03:00
Werner Almesberger
d78caddaf9
eeshow/gui/over.h, over.c: remove dragging support (now input.c)
...
The crazy detour through aoi.c and over.c is no longer needed.
2016-08-18 02:08:02 -03:00
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