Add tests to check for existing files before copying template files.
Split load project, create new project, create new project from template,
and load project from history command events into simple methods that
perform the correct actions before loading the project. This greatly
simplifies the code.
Create a load project method that can be called from the event handlers
above. This simplified a lot of duplicate code that existed in many of
these event handlers.
Remove the dummy "noname.pro" file creation which created required some
ugly code to prevent this file from being created unexpectedly. Now
KiCad launches without setting a project file name when appropriate.
Fixes lp:1713951
https://bugs.launchpad.net/kicad/+bug/1713951
Fix the alignment of the unit static text control for uVia diameter and
drill size to match the rest of the units static text controls on the
global design rules tab.
Loading a design with micro vias enabled did check the box for enabling
micro vias in pcbnew. The value input fields for diameter and drill
size were not enabled.
This patch moves the functionality into an new function and calls that
from the onclick event of the checkbox and the init function of the
dialog.
It also fixes a corner case, when 2 zone with zone clearance = 0 are overlapping with different priorities
(previously, they were shortened)
Fixes: lp:1713028
https://bugs.launchpad.net/kicad/+bug/1713028
Test the result of wxFileName::MakeRelativeTo() before testing to see if
the resulting relative path starts with '.'. When a library with relative
path that contains a path name with $ as the first character,
MakeRelativeTo() calls Normalize() which attempts to do an environment
variable substitution that concatenates consecutive paths i.e. the path
/foo/$bar ends up being foo$bar which is obviously incorrect. This fix
is only a fix for absolute paths and files that contain path names that
begin with $. This still does not resolve the issue when adding a
library file relative to one of the search paths that contains a path
name that begins with a $. Fixing this would potentially break paths
that are expecting environment variable substitution.
Fixes lp:1712361
https://bugs.launchpad.net/kicad/+bug/1712361
Use sheet pin direction to calculate sheet minimum height and width.
Remove sheet pin offsetting as the new sheet height and width calculation
prevents invalid minimums.
Calculate the proper minimum height when resizing sheets to prevent resized
sheet height from always increasing.
Prevent the sheet pins from being drawn in the corners of the sheet when
updating the edge constraints on resize. This ensures that the sheet pin
is always drawn within the bounds of the sheet. Please note that this fix
may not be 100% accurate as is assumes the default grid size of 50 mils.
This may not be what the user expected but it guarantees that wires will
connect to the pin properly.
Fixes lp:1699796
https://bugs.launchpad.net/kicad/+bug/1699796
Before the change, the plugins had to be installed to one of the default
search paths, but it should not be necessary for developers working on
3D viewer plugins.
This was the behavior before the factoring out of COMPONENT_TREE. Moving
the history at the top just required inserting it at the right point;
fixing preselect involved wxEVT_INIT_DIALOG not propagating to the
panel. Simple solution was to move the parts of that event handler to
the constructor as they didn't have to be in an event handler anyway.
Fixes: lp:1707538
* https://bugs.launchpad.net/kicad/+bug/1707538
Instead of keeping all items in a boost::ptr_vector(), LIB_ITEMs are now
stored in an integer (KICAD_T) to LIB_ITEMS map.
The map allows to quickly access a subset of items of given type.
As the items are stored per type, there is no need to call
LIB_ITEMS::sort() to assure the correct drawing order. As a result,
libraries load faster.
To retain the old interface, there is a LIB_ITEMS_LIST wrapper for
the map, allowing the developers to access the items as if it was a flat
list-like structure.