~sethh/kicad:segments

Last commit made on 2019-05-23
Get this branch:
git clone -b segments https://git.launchpad.net/~sethh/kicad
Only Seth Hillbrand can upload to this branch. If you are Seth Hillbrand please log in for upload directions.

Branch merges

Branch information

Name:
segments
Repository:
lp:~sethh/kicad

Recent commits

f7a489f... by Seth Hillbrand

pcbnew: Add arc approximation setting to board

This places the arc approximation setting in the kicad_pcb file and uses
it for all parts of the board rendering where arcs are converted to
segments. This allows the user to customize their speed vs. accuracy
tradeoff. The default setting of maximum error of 0.005mm is acceptable
for small boards on moderate systems.

01f21cc... by Seth Hillbrand

pcbnew: Remove segment count from board file

This removes the setting for number of segments per circle from the zone
definition. All segment counts are handled by absolute error allowed.

c52ff1c... by Wayne Stambaugh

Symbol Editor: fix datasheet field bug loading old symbol libraries.

This only applies to the root symbol when the datasheet field is not
empty and the datasheet for root symbol alias in the document file is
empty. Use the root symbol datasheet field value when adding a new
symbol that meets this criteria.

The root symbol datasheet field gets copied to the root symbol alias
datasheet member variable so if the symbol is modified and saved, the
datasheet information is saved in the .dcm file.

https://bugs.launchpad.net/kicad/+bug/1830078

Fixes lp:1830078

a045642... by John Beard

Sexpr: Do not leak memory on parse exception

Use std::unique_ptr to guard against leaking the new'd pointers
in SEXPR lists if there is an exception during parse.

This was noticable during the Sexpr/ParseExceptions unit test.

Fixes: lp:1830209
* https://bugs.launchpad.net/kicad/+bug/1830209

83e08c9... by jean-pierre charras

Fix crash in Eeschema when clicking on a menubar item.
It happens if an other frame (libedit) was opened, a menubar clicked, an this frame was closed.

300f5cb... by Wayne Stambaugh

Eeschema: fix datasheet field bug loading old symbol libraries.

This only applies to the root symbol when the datasheet field is not
empty and the datasheet for root symbol alias in the document file is
empty. Use the root symbol datasheet field value when adding a new
symbol that meets this criteria.

https://bugs.launchpad.net/kicad/+bug/1830083

Fixes lp:1830083

840e08f... by John Beard

QA eeschema: add some tests

This adds a few tests on:

* LIB_PART
* SCH_PIN
* SCH_SHEET
* SCH_SHEET_PATH

These tests exercise some of the basic code paths in these classes
and show some of the expected behaviours.

None of these tests are particularly ground-breaking, but they
provide a starting point to build out further tests, and to ensure
the already-covered behaviour is stable.

It does expose some places where SCH_SHEET could probably use const.

0617bff... by John Beard

Eeschema: build with object libraries

This is done to allow access to the eeschema library
internals for purposes of test and script access, as the
DLL library has highly restrictive -fvisibility settings
that otherwise prevent the tests being able to access 99.9%
of the eeschema library functions (only a single function
is APIEXPORT'ed, therefore that's the only test we can do).

Using object libraries is a bit of a hack, and makes for
a slower link when done for multiple targets, but with the currently
supported CMake versions, it's about as good as we can get.

A better solution in the longer term may be to break eeschema_kiface(_objects)
into many smaller libraries, each of which has a much more defined scope,
rather than one big interlinked amorphous lump. This has the advantage that
each module is testable in isolation, and we get better organisation of
inter-dependencies in the codebase.

Then, the kiface DLL will gather these sub-libs and present what
is needed on the visible DLL API. Thus, we get both a testable
suite of library functions, and a restricted kiface DLL interface.

e1f6230... by John Beard

Do not statically construct wxTimer

If you construct wxTimer statically, it will be constructed
before WX init, which means you might get assertions about
missing m_impl's within the timer class.

The solution is to construct the wxTimer at run time. In this
case, static within the function will be constructed only after
the function is called (and actually the scope only needed to be
this function anyway).

75cea18... by jean-pierre charras

Pcbnew, toolbars: fix incorrect icons