When removing a point from the polygon, the vertex is removed before it
is tested for validity. If it fails validation, the edit is reverted
and the point count doesn't change, so the view update only modifies the
existing points. But the revert may also have changed the shared
pointer to the point array, invalidating the view's copy.
Fixes: lp:1821909
* https://bugs.launchpad.net/kicad/+bug/1821909
(cherry picked from commit 940aef77af)
Both Cairo and OpenGL had issues (different, though) with circles that are
thicker in line width than they have radius. This corrects the OpenGL
implementation (radius is calculated to the outer edge) as well as Cairo
(line width needs to be clamped to twice the radius)
Fixes: lp:1822765
* https://bugs.launchpad.net/kicad/+bug/1822765
(cherry picked from commit db0523626c)
There is a circular dependency between the GRAPHICS_IMPORTER object and
the GRAPHICS_IMPORT_PLUGIN object which makes sharing the settings in
the GRAPHICS_IMPORTER unwieldy. This fix is a ugly hack that resolves
the issue. The underlying issue will require some major refactoring.
Fixes lp:1821234
https://bugs.launchpad.net/kicad/+bug/1821234
(cherry picked from commit 120ab06db4)
Improve padding, spacing and alignment of dialog layout.
Fix title capitalization.
Make file dialog wildcard string translatable.
Remove fixed initial dialog size to allow sizers to work their magic.
Replace OK button event handler with TransferDataFromWindow.
Remember last line width units between dialog instances and sessions.
Save configuration file settings in a separate group and remove GfxImport
prefix from the entry names.
Add fencing to dialog header file to prevent nested includes.
Fixes lp:1822568
https://bugs.launchpad.net/kicad/+bug/1822568
(cherry picked from commit d2cb0ca75f)
Also provide a utility function to get this path, and
a way to override at run time to quickly sub in alternative
data.
The test itself is still broken, as this plugin won't accept
a call to Load() without a KiWay.
(cherry picked from commit 88faac309f)
Redesignate the eagle test as eeschema tests and build
more like the other unit tests.
Enable as a test in Ctest now that the test executes without
crashing.
The loading of the file with the hardocded part is still
not enabled, as this needs more infrastructure to support it.
(cherry picked from commit 4eb30f6b85)
Statically constructing wxCursors as used for the probe
and tune cursors crashes the qa_eagle_plugin test
instantly.
Fix this by introducing a new class CURSOR_STORE,
which allows to abstract the platform wierdness of wxCursors
and allow the simulator to laziliy init its own cursors
at runtime.
This code isn't properly tested, as these cursors are never
actually used. However, it does allow the eeschema unit test
to run.
Fixes: lp:1781191
* https://bugs.launchpad.net/kicad/+bug/1781191
(cherry picked from commit 6f1c3f5ef8)
This inserts a translation map in the layer names so that the old stable
files with Italian/French layer names get updated to the standard
English layer names (instead of not opening).
Fixes: lp:1370575
* https://bugs.launchpad.net/kicad/+bug/1370575
(cherry picked from commit 6f4d1345f3)
This is only for the current GerbView session. When GerbView is closed,
the last open gerber file dialog wildcard setting is lost.
(cherry picked from commit f20a1314ff)
They don't really help any, and they confuse some users into
thinking they need angle brackets around real values.
Fixes: lp:1821601
* https://bugs.launchpad.net/kicad/+bug/1821601
Save/restore default netclass.
Read layers back in with correct syntax ('.' between keyword and layer name).
Write layers to project file.
Read/write layer enablement bits.
Don't set solder paste margin min to 0 (most of them are negative).
Fixes: lp:1811990
* https://bugs.launchpad.net/kicad/+bug/1811990
The keeps all the formatting config together in the Git ecosystem
and keeps the config on a per-repo basis, unless the user explicitly
sets it --global.
Keep the old env var behaviour for now for backwards compatibility.
(cherry picked from commit a7270f8c1c)
Add a .gitattributes files to provide a place to store file
attributes. Add a custom attribute for files that should be under
KiCad style guidelines.
Exclude generated files from the style enforcement. So far:
* bitmap .cpp files
* wxFormBuilder base classes
* Lemon grammars
It's now trivial to add the 'generated' attribute to any such
file.
Putting this into .gitattributes also means it can be retreived
programmatically, by other scripts, git alaises or on the command
line.
Use the attributes to provide a utility script to show or apply
formatting to controlled files (plain git clang-format won't
pick up our custom git attributes). Add details for the script in
the dev docs.
Also modiify the check-format hook to follow the .gitattributes
and only apply to cached (staged for commit) changes. Then you
won't be stopped committing because of bad formatting in unstaged
changed, or uncontrolled files.
Concept and some aspects of the implementation inspired by
CMake commit d5f39a56 [1].
[1]: d5f39a56a4
tool
(cherry picked from commit a69cdf1793)
Before Boost 1.64, there was no test logging function
for std::nullptr_t.
Add a logging struct to Boost to deal with this, and some
macros to assist in similar cases. These macros are bit
untidy-looking, but due to GCC bug #56480, we can't use
namespace aliasing to solve this. From Boost 1.64 onwards,
these namespaces are not needed at all.
Remove some code added to work around lack of nullptr printing
in the past.
These macros, and the nullptr printer, can be removed when
the Boost min version is 1.64 or greater.
(cherry picked from commit ad76ebd82a)
The extra field metadata is not really needed nor helpful as various
other additional licenses are used within the KiCad project.
All used licenses are documented with the file LICENSE.README within top
root folder of the source.
(cherry picked from commit e5de787f88)
Enforce the following format:
template<>
void function<TYPE>()
Rather than:
template<> void function<TYPE>()
This is the more common format in KiCad (about 8:1) and agrees
with the uncrustify.cfg rules.
(cherry picked from commit 3536840f52)
Tab through the grid vertically, then horizontally, as the fields
are laid out with "related" fields (like the co-ords) vertically.
Also neaten headers.
Fixes: lp:1821887
* https://bugs.launchpad.net/kicad/+bug/1821887
(cherry picked from commit d6b8e9e037)
Make a few things const (specficially the reference into
m_fieldStore - we should commit to not modifying that in this
function.
Also avoid a couple of needless string copies.
Also explicitly dereference the into a (non-const) reference at the outset.
For the whole if this function, comp is the same object and may not
be null (as it is used unchecked).
(cherry picked from commit edd94ce2d6)
For now fields created in Fields Editor are placed at
position (0, 0).
Every new field must be placed at the origin of
the parent component.
(cherry picked from commit 11f03c8551)
Introduced by 416e64a334. The code
appears to have been stepped on purpose but this would be incorrect for
most applications. There remains a good deal of cleanup in mathplot
available for the motivated dev.
Fixes: lp:1810311
* https://bugs.launchpad.net/kicad/+bug/1810311
(cherry picked from commit c1c4a0925d)