Previously we call only setlocale( xx, "C" ), but it was not enough on Windows.
Now we call wxLocale("C")
wxLocale calls setlocale, but also make some others initialization in wxWidgets.
It fixes some issues related to comma versus point as fp separator.
Especially wxWidgets warnings are no longer thrown, and a one case of incorrect
conversion is fixed.
However, wxLocale( "C" ) also switches the current translations to English, so
loading files can have a slightly different behavior
The preferred list isn't actually in use anymore at this point, so
it currently has no effect other than to mess things up since we
aren't keeping track of which modules have been rejected when we
check the module count.
Fixes https://gitlab.com/kicad/code/kicad/issues/3721
(cherry picked from commit d02c0da3ab)
(From master, commit 8f3e8cf)
Sometimes a dxf curve is a "degenerated" bezier curve having only 3 points.
(a control point is at same location as a end point)
This commit fix incorrect import of these curves.
Fixes#3845https://gitlab.com/kicad/code/kicad/issues/3845
Move vector should not affect start/end points as they are assumed to
always be 0,0. Polygon is defined by outline only.
(cherry-picked from 32674ef360)
The new line collision search uses BBox() to check for colliding
objects. BBox in the SHAPE_LINE_CHAIN did not include width as the
chains were assumed to be zero-width. This is not the case for
PNS::LINE elements.
We mostly don't notice this because DRC checks for SEGMENT collisions
but it becomes obvious/annoying when we cannot place a track for unknown
reasons and the snap-back doesn't take line width into account.
Fixes#3776 | https://gitlab.com/kicad/code/kicad/issues/3776
(cherry picked from commit fe15511d38)
When routing where we hit multiple obstacles, we choose the shortest
path to allow overlapping hits to choose the shorter path, thus giving a
better chance of returning true for the DRC-compliant path.
Fixes#3773 | https://gitlab.com/kicad/code/kicad/issues/3773
(cherry picked from commit 38f13ef481)
It happens on Windows, and wxWidgets 3.1.3. It is created by
PNS_TUNE_STATUS_POPUP instance used in tool. I am pretty sure this crash is
created by the stack switching when managing events, due to some changes in
wxWidgets code.
The fix creates the instance on the heap, instead of on the stack.
This is not the first time I see this kind of issue.
From master, commit 21dd8db
Previously, if a SMD pad was round, itb was seen as BGA pad.
But this is not always true. so use always SMD PAD attribute,
until an explicit BGA pad attribute is added in Pcbnew
The IFACE for kicad refers to the board hidden state, not the
temporarily hidden state used by the router. We allow snapping to items
that have been removed by the temporary router state to provide snapping
to original track location.
Fixes#1827 | https://gitlab.com/kicad/code/kicad/issues/1827
Happens when right clicking on an item in displayed lists.
The crash was due to a bug in wxWidgets, and the fix is only a workaround
From commit 5cd7f3fd in master branch.
Also remove duplicate code.
Pad ratsnest settings set to global settings during initilization.
Fixes: lp:1848488
* https://bugs.launchpad.net/kicad/+bug/1848488
(cherry picked from commit 29ce76b4e4)
(slightly modified due to settings structure difference between
master and 5.1)
The aperture option created a Connector pad only on the paste layer.
This is incorrect: the SMD type only is acceptable.
Connector is *only* for edge card connectors.
Moreover, The dialog did not even accept the setting defined by this dialog...
In high contrast mode, the holes of buried vias and microvias were no darkened when not on the active layer.
In high contrast mode, the outer circle of buried vias and microvias were alway darkened.
In high contrast mode, when the selected layer is non visible through-vias are now darkend.
Fixes: lp:1844982
* https://bugs.launchpad.net/kicad/+bug/1844982
(cherry picked from commit 04edc6ceff)
We want to avoid selecting items that are disabled in the item list.
Our standard method is in the GetViewLOD() that performs both size and
visibility. This extends the check to module text and via.
Fixes: lp:1851133
* https://bugs.launchpad.net/kicad/+bug/1851133
In Python3, all division operators promote integers to floats. We need
to downcast back to integer for the polygon vertices.
There was also an unhandled overflow in the QR generation that allowed
more than 512 bits to be loaded. This overflows the type of QR we
generate, so this truncates the input string to 62 bytes ( leaving 12
bits for the checksum )
Fixes: lp:1850223
* https://bugs.launchpad.net/kicad/+bug/1850223
(cherry picked from commit 9bccbaf497)
The oval clearance adds an edge on the 0-length side of a circular oval.
This is not needed and can affect the fill algorithm. Instead, we treat
round ovals as circles for pad polygons
Fixes: lp:1849846
* https://bugs.launchpad.net/kicad/+bug/1849846
The constrained draw was constraining the polygon size to fit the
existing points rather than extending the existing points to fit the
user's intent.
This adds a 90° double-joint for the completion polygon that allows the
user to complete common constrained polygons visually based on the
preview with a double-click to finish.
(cherry picked from commit bae50fab9f)
Fixes: lp:1849299
* https://bugs.launchpad.net/kicad/+bug/1849299