- !! Eeschema uses Eagle plugin for loading schematics (i.e. it does not
use KiCad format anymore)
- Fixed build errors
- Fixed a few crashes
- Code formatting
(On windows, xsltproc.exe does not accept '\' in output filename, only '/' like on Unix, so this separator is converted when possible)
Minor code cleanup
This fixes potential DRC false positive bugs that occur when inner layers
are removed from the board but the actual objects on contained on those
layers remain in the board.
Since Pcbnew does not handle odd number layers, this is not a perfect fix.
When the user chooses the front or back layer only options from the layer
setup dialog, objects on the copper layers will not be removed. This will
not cause the false positive issue described above.
Get rid of dialog OK and cancel button event handlers and use the proper
TranferData(To/From)Window for handling control data.
Add PCB_LAYER_COLLECTOR for collecting board objects by layer. Factor out
redundant [] operators into base PCB_COLLECTOR object.
Fixes lp:893950
https://bugs.launchpad.net/kicad/+bug/893950
Don't prompt the user to save the project file after the schematic plot
settings change. It is not done this way anywhere else in KiCad.
Fixes lp:1478131
https://bugs.launchpad.net/kicad/+bug/1478131
Add EDA_DRAW_FRAME::isBusy() method to test if the current item is being
edited or a block operation is in progress.
Ignore undo and redo commands when editor is busy.
Fixes lp:1718656
https://bugs.launchpad.net/kicad/+bug/1718656
Make all trace environment variable strings upper case and prefix with
KICAD_TRACE_ for consistency.
Add Doxygen group for the trace environment variable strings.
Derive the dialog from DIALOG_SHIM and show dialog quasi-modally to prevent
other KiCad main frame window events from being blocked.
Remove redundant storing of parent window pointer.
Verify parent window pointer is actually a SCH_EDIT_FRAME since the dialog
directly accesses parent object methods.
Replace static event table with dynamic event handling.
Fixes lp:1718241
https://bugs.launchpad.net/kicad/+bug/1718241
This fixes a build error on MSVC. The code may actually be legal, but a
proof of that would require a lengthy dissertation on argument promotion
rules for the ternary operator, and the simplest rule of promoting both
cases to a wxString rvalue is not likely to be what is intended here.
Fortunately, this expression can be simplified.
- pad names are stored as wxString instead of a char[4] & integer union
- removed pad name to string conversion functions
- fixed pad & pin properties dialog restrictions regarding the name
length
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
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.
Create a new dialog to edit global and project specific symbol library
tables.
Add menu entries for new symbol library table editor in schematic editor
and symbol library editor main frame menus.
Add command event handler for symbol library table editor dialog to
SCH_BASE_FRAME so it is accessible from derived frames.
Fix bug in default environment variables initialization. A test for
existing user defined environment variables was preventing any new
default environment variables added to the list from being initialized.
Create a dialog to give the user options to configure the global symbol
library table the first time Eeschema is run when no global symbol library
table exists.
Add information when dummy symbol is used for library symbols that could
not be found to give the user some useful information to help track down
the broken link rather than display an empty message panel.
This forces the compiler class specific features rather than borrowing
from the base class's std::string. In some cases prior to this,
wxString( std::string ) was being called rather than UTF8::operator
wxString() leading to garbled wxStrings.
Added function UTF8::wx_str() which is of great convenience also.
Implicit conversions still work as before, and hopefully more reliably.
This commit was too broad and not cognizant of the purpose of the class
UTF8.
Add MAYBE_VERIFY_UTF8() macro, which can trap non-UTF8 encoded strings in
debug builds.
Use that macro conditionally in class UTF8 to trap non-UTF8 encoded strings
being put into UTF8 instances.
Due to library list repopulation on refresh, the unit was being
overwritten with 1. Now, we track whether the unit needs to be
overwritten.
Fixes: lp:1677736
* https://bugs.launchpad.net/kicad/+bug/1677736
The illegal white space testing for reference and value (library editor
only) fields are adequate to ensure the user cannot enter invalid white
space characters. Leading and/or trailing white space should not be an
issue for field storage in the schematic file as they are quoted. Rather
than silently removing the leading and/or trailing white space which is
frowned upon, let the user fix it.
Fixes lp:1659526
https://bugs.launchpad.net/kicad/+bug/1659526
Fix potential memory leak in both footprint and symbol library table
parsers when a duplicate library nickname entry exists.
Parse entire symbol library table before raising duplicate nickname
exception.
Improve the duplicate library table nickname error message to make
life easier for users to fix broken tables.
This is more a workaround than a fix.
The crash was due to the fact the library cache is modified on the disk with the saving process.
Fixes: lp:1702707
https://bugs.launchpad.net/kicad/+bug/1702707
The previous fix was building the full name incorrectly, when this name contains a path not relative to the project.
Fixes: lp:1700331
https://bugs.launchpad.net/kicad/+bug/1700331
Initializing wxFileName objects by using string assignment or the single
string argument ctor will cause wxFileName to parse everything to the
right of the first dot as the file extension. Therefore, file names such
as foo.1.lib and bar.baz.lib will fail. This is probably not the only
place in the KiCad source where this can occur.
Fixes lp:1700331
https://bugs.launchpad.net/kicad/+bug/1700331
Add Resolve() and ResolveAll() methods the SCH_COMPONENT object to use the
symbol library table to obtain links to the library symbols.
Add LoadAlias() method to SYMBOL_LIB_TABLE to find an alias by it's LIB_ID.
Clean up Doxygen comments to match coding policy changes.
The zoom window toolbar button is on the right toolbar separated from the
other zoom buttons on the top toolbar. Move the zoom window button to the
top toolbar beside the other zoom buttons.
Before the refactor library browser display Bezier curves correctly only
once, at other times they were just straight lines or crashed the
application.
The symbol library header was setting the text thickness using the
last line thickness setting which is incorrect so use the default
thickness when creating new text objects.
Fixes lp:1635344
https://bugs.launchpad.net/kicad/+bug/1635344
- Removed ability to generate BOM to file
- Removed Save/Cancel window when closing table
- No longer updates table <after> table is closed
- Bugfix for field names (previously comparison was case insensitive)