Also fixes a bug where an empty window would get left when loading
a file from the KiCad manager window errored out.
Also fixes a bug where we were getting the wrong exception because
we were rethrowing the type-casted one (rather than just calling
throw).
Fixes https://gitlab.com/kicad/code/kicad/issues/8604
It's tempting to say that we don't need to exclude filename chars
from symbols, but we might regret that decision down the road. Better
to just escape them.
Fixes https://gitlab.com/kicad/code/kicad/issues/8694
wxString::Format is redundant in a wxLogXXX call.
Error messages should generally be translatable.
Error messages should use generally consistent sentence forms.
You probably do want it in VALUE, but not REFERENCE, and certainly
not FOOTPRINT or DATASHEET. User fields are more likely to be
part numbers, etc. (and don't want conversion).
Fixes https://gitlab.com/kicad/code/kicad/issues/8617
1) Make sure we set an absolute path on the sheet.
2) Don't mix RTree iterators; wires get skipped between buses.
3) Implement a real ERC error so we don't assert.
Fixes https://gitlab.com/kicad/code/kicad/issues/7042
Simplify logic by adding quadrant-based BUS_ENTRY ctor.
Fix issue with bus entry size having been in mils rather than IU.
Fix issues with logic.
Fixes https://gitlab.com/kicad/code/kicad/issues/7042
The same logic block to resolve possible symlinks exists in 5 different
places now. This change moves this duplicated code to a static member
function of WX_FILENAME instead.
Use `realpath(3)` instead of `readlink(3)`, which offers support for
relative and absolute symlinks alike, since all symbolic links will be
resolved to the absolute path of the linked-to file.
Fixes#8082
This was leaking windows headers and partial wx headers to 1084 compilation units......
This also means math/util.h is leaking to 1084 compilation units which seems a bit high too.
In CADSTAR pins are single points. We can replicate the original look
of the schematic in most cases by searching the symbol for straight
segments that are coincident with the pin and use those to calculate
a suitable pin length and angle.
Create a new LIB_PART for scaled symbols. These will be then embedded
into the schematic file. However when "update from library" is done,
it will revert to the unscaled symbol.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8494
Differentiates better between the EDA_ITEM IsModified(), referring to
items themselves changing and the EDA_SCREEN IsContentModified(),
referring to whether we have made any unsaved changes.
Use justification instead of orientation relative to the anchor point when
describing text direction and alignment. This seems to be the preferred
method by most users so hopefully this will eliminate some confusion.
Fix a bug in the s-expression schematic parser that failed to take into
account how graphical text alignment is defined for graphic text objects
compared to label text objects.
Fixes https://gitlab.com/kicad/code/kicad/issues/6489
Save sheet and symbol instance information to the clipboard on copy
Load sheet and symbol instance information from the clipboard on paste
and renumber page numbers after loading.
Correctly handle pasting in a multiple hierarchy by ensuring symbol and
sheet instances are updated for all instances of the destination sheet.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8207
Avoid code duplication by moving all common code to a new function
SCH_SEXPR_PLUGIN::saveInstances
Also fixes a bug that was resulting in footprint and value information
not being saved for subsheets that were root sheets in a different
project.
This change is a bit more invasive than the description above would
suggest. UUIDs have been added to all schematics. For now, it's only
useful to the root schematic so that the UUID in the project file does
not change every time the project file is save. In the future, it may
be useful to store and check the schematic UUIDs against the one's saved
in the project file.
Fixes https://gitlab.com/kicad/code/kicad/issues/7763
If a field name is already in use, try to rename the new field name
(adding the suffix "_1" or "_2" or ... )
This is especially critical when a non mandatory field has the same name as
a mandatory field (was crashing before)
Fixes#8081https://gitlab.com/kicad/code/kicad/issues/8081
The previous assumption was that a part definition would always hold
the information about the symbol. However some designs have symbol
instances that refer to a different symbol definition than that
specified in the part.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7808
Always add a label at bus terminals to ensure connectivity. The original
design might already have a bus terminal with a given location.
If the original design does not have a label, just make it very small
to keep connectivity but make the design look visually similar to
the original.
This fix required sorting all of the LIB_PART draw items to ensure
accurate comparison between the symbols stored in the schematic and the
original library symbols. This has a noticeable impact on symbol library
load performance. It may also cause significant changes the next time
the library is saved due to changes in the draw item sorting. Hashing
may be a better solution here but this addressed the immediate problem.
A skeleton method SCH_SCREEN::SwapSymbolLinks() was added because there
is most likely an issue with orphaned symbols in the schematic library
symbol cache during undo/redo operations. More testing is required to
verify this.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7263
Rewrite of the calculation to convert CADSTAR to KiCad coordinates,
rounding half way cases away from zero.
Use integer division instead of double, to ensure precision.