Commit Graph

250 Commits

Author SHA1 Message Date
Marek Roszko cf2bb5692a Remove the wxLog calls from math/util.h for now
This was leaking windows headers and partial wx headers to 1084 compilation units......
This also means math/util.h is leaking to 1084 compilation units which seems a bit high too.
2021-06-01 18:44:22 -04:00
Jeff Young 46d746c9da Performance optimizations. 2021-06-01 23:11:54 +01:00
Tomasz Wlostowski 2d8264124d geometry: SHAPE_LINE_CHAIN::PathLength() now can accept the maximum index of the segment to calculate the length to 2021-05-29 00:13:24 +02:00
Tomasz Wlostowski 7553b7b092 geometry: add minimum distance threshold parameter to SHAPE_LINE_CHAIN::Find()/FindSegment() 2021-05-29 00:13:24 +02:00
Tomasz Wlostowski b3fb7190df geometry: SEG::Contains() should use Distance(), not SquaredDistance() for correct rounding 2021-05-29 00:13:24 +02:00
Tomasz Wlostowski e7fe8c4ddb geometry: rework SHAPE_LINE_CHAIN::Intersect() to explicitly indicate touching vertices and remove references to SEGs from INTERSECTION structure 2021-05-29 00:13:24 +02:00
Jon Evans f30ebbde33 Fix accuracy of tuning path calculation when measuring arcs
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8401
2021-05-10 21:22:51 -04:00
Ian McInerney 30c92fc5d1 Disable OSX automatic window tabbing 2021-05-09 12:59:57 +01:00
Tomasz Wlostowski dc70df6036 kiplatform: check for null window handle in IsWindowActive(). 2021-04-27 14:13:16 +02:00
Jon Evans 715c61ac9f PNS: Fix yet more arc edge cases
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8150
2021-04-12 19:59:55 -04:00
Jon Evans 1c431d9929 PNS: Fix some off-by-one errors with arc dragging 2021-04-11 22:12:53 -04:00
Jon Evans f5ef60c2f2 PNS: Fix shoving segment after arc 2021-04-11 18:06:21 -04:00
Jon Evans a26fc6d65d PNS: Fix several issues with arc dragging
Do not merge vertices that belong to different arcs
Fix start segment identification after arcs
Fix free-angle drag after arc

Fixes https://gitlab.com/kicad/code/kicad/-/issues/8173
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8150
2021-04-11 17:56:40 -04:00
jean-pierre charras 258fd07939 Fix a compil issue (at least on msys2) 2021-04-11 17:32:40 +02:00
Jon Evans 7ba110bd77 PNS: Fix dragging of segments with arcs in line 2021-04-11 10:18:57 -04:00
Thomas Pointhuber a30894e5a1 Allow SHAPE_LINE_CHAIN and SHAPE_ARC to be mirrored using a SEG 2021-04-11 13:27:25 +00:00
Jeff Young e04c820442 Formatting. 2021-04-09 14:02:13 +01:00
Roberto Fernandez Bautista b7bd7246af SHAPE_LINE_CHAIN::Split: Add integers before incrementing the iterator
Partially Fixes https://gitlab.com/kicad/code/kicad/-/issues/8131
2021-04-07 11:28:02 +00:00
Roberto Fernandez Bautista 235688e459 Less restrictive Arc Track Dragging tool
Use the connecting straight tracks even if not exactly parallel - allow
an error margin configurable in ADVANCED_CFG (default 1 degree). Also
be less strict about end point matching and use the width of the track
as the criteria to determine suitability.

Finally, delete any short lengths of track at the end of the operation
and amend the arc end points to keep connectivity.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/7967
2021-04-06 12:52:01 +00:00
Marcus A. Romer 1632707d9b Replace tabs with spaces 2021-04-05 01:13:39 +00:00
Jon Evans 2c05d99d9f SHAPE_POLY_SET: Fix segment collision testing
It appears as though there was an optimization to skip testing segments if
one of their endpoints (and only the A point) was inside.  Unclear the reason
for this, but I'm going to assume that it was intended to optimize the case
where both points are inside (like the point case above it).
2021-04-04 20:12:45 -04:00
Jon Evans 5bc1e55272 SHAPE_LINE_CHAIN: Don't crash if inserting point at the end 2021-04-04 19:38:54 -04:00
Jon Evans bd6539885b Fix SHAPE_POLY_SET::SquaredDistanceToPolygon ignoring aNearest if unlucky 2021-04-04 19:38:54 -04:00
Jon Evans 3c1a8f8c88 Fix MSW build, take 2 2021-04-02 20:16:25 -04:00
Jon Evans 80eee2decb Fix MSW build 2021-04-02 20:13:10 -04:00
Ian McInerney 8ea18c0639 Don't steal focus from other windows on GTK
Before, it was possible for the canvas to steal the
focus if the cursor was only moved over it and not
clicked. Now, the canvas will only take the focus if
the frame is active.

Fixes https://gitlab.com/kicad/code/kicad/issues/7233
2021-04-03 00:17:28 +01:00
Jeff Young b6f2941a06 Another try a allowing touching courtyards.
Fixes https://gitlab.com/kicad/code/kicad/issues/8076
2021-03-31 22:54:30 +01:00
Ian McInerney 41f88dbabc Refactor platform-specific init into two phases
The first phase is for the environment before the OS
apps are created, and the second phase is for after
the OS app is created but before all of our processing.

Fixes https://gitlab.com/kicad/code/kicad/issues/7992
2021-03-23 19:11:08 +00:00
Jon Evans cdb352bb24 Allow finding kicad_3dsg when running from build dir
This might also come in handy later when we use more dynamic libs
2021-03-21 09:16:47 -04:00
Jon Evans f1c599fa4d Tweak PCB selection behavior to reduce unintuitive behavior
We were discarding shapes too aggressively for having a
larger area than a shape underneath.

Let's also try showing fewer disambiguation menus, in particular
always preferring items on the active layer when the candidates
include overlapping items of similar area on other layers.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/7949
2021-03-20 13:11:51 -04:00
Roberto Fernandez Bautista e4b99b9bb5 Fix SHAPE_ARC::Collide and add Unit Tests 2021-03-20 16:11:43 +00:00
Marek Roszko 917e368db3 Add missing header that broke msvc builds 2021-03-20 10:28:35 -04:00
Jon Evans 61c9645220 Fix Windows build 2021-03-19 18:36:16 -04:00
Ian McInerney 008f0d55c3 Add an interceptor for GTK error messages to hide them
wxWidgets seems to cause GTK to spam messages to the terminal,
and we have no control over that. So lets hide the messages
so no one complains about them. If people really want to see
them, they can add the KICAD_SHOW_GTK_MESSAGES build flag to CMake
and they can watch them scroll past.
2021-03-19 22:05:00 +00:00
Ian McInerney 3036683a2c Move platform-specific init tasks into KIPLATFORM 2021-03-19 21:26:07 +00:00
Seth Hillbrand 48bd564639 Add Dark mode detection to MacOS 2021-03-16 21:58:42 +00:00
Jon Evans a9f86c6f3d Enable icon themes for Windows
Windows 10 "dark mode" is not supported and likely won't be,
but high-contrast mode and manual color theme editing is still
possible.
2021-03-14 15:39:47 -04:00
Dominik Wernberger e2aa7be4b3 Added a lot of consts and refactored a few lines 2021-03-08 12:49:48 -08:00
Mikolaj Wielgus 0f22b54cd8 Clip the leader lines properly when using circular text frame
Fixes https://gitlab.com/kicad/code/kicad/issues/7810
2021-03-07 21:19:19 +00:00
Tomasz Wlostowski 87ea540953 Fix whitespace errors 2021-02-25 17:18:23 +01:00
Tomasz Wlostowski f7f5e67f56 geometry: SHAPE_LINE_CHAIN::Simplify() now correctly simplifies last 3 colinear vertices 2021-02-25 17:18:23 +01:00
Tomasz Wlostowski baacb9c85a geometry: fix MTV calculation for simple polygons 2021-02-25 17:18:23 +01:00
Seth Hillbrand 507ca9bc73 Add DPI scaling to KIPLATFORM
GTK needs to check current scaling but wx doesn't provide this
functionality in 3.0, so we can bypass by going straight to the source.
2021-02-22 17:38:27 -08:00
Jeff Young e89f9db438 Footprint disallow layer checking needs to be based on courtyards.
Fixes https://gitlab.com/kicad/code/kicad/issues/7620
2021-02-20 14:13:36 +00:00
Jon Evans 079203c345 Change Linux documents path to XDG_DATA_HOME
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7543
2021-02-17 20:25:50 -05:00
Roberto Fernandez Bautista 2d66abdc89 CADSTAR PCB Archive Importer: More improvements to loading of zones
Adds a new function Area() to SHAPE_POLY_SET
2021-02-10 18:49:21 +00:00
Jon Evans 1ba7bebce6 Handle lack of a Documents directory 2021-02-09 20:15:30 -05:00
Marek Roszko 872184fe8b Revert "Bump minimum required CMake version to 3.10"
This reverts commit a475f45753.
2021-02-09 18:46:13 -05:00
Jon Evans 9728ceab0d Fall back to explicit documents path if XDG special dirs are missing
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7452
2021-02-08 20:21:39 -05:00
Simon Richter a475f45753 Bump minimum required CMake version to 3.10
This allows us to remove even more workarounds
2021-02-08 12:23:08 +00:00