Check for already loaded schematics in the current sheet path as well
as the current project root sheet path to prevent multiple loads of
shared schematic. This bug was causing shared sheets to be loaded more
than once which caused instance data to get separated by each copy rather
than saved in one copy of the schematic which would result in all instance
data being lost except the last saved copy of the schematic. This bug has
been around forever and may be the cause of some unexplained schematic
instance data corruption issues. This bug does not apply when opening
the full project.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/11076
This is a special field, always existing, that cannot be handled like other fields.
Also avoid using translated names when initializing the field name.
Translated names can be used only in UI, not in internal data.
fixes#13113fixes#13125
Shared schematics can have a root sheet instance when opened with the
schematic editor in stand alone mode. This would cause a crash when
opening the shared schematic in a project where it was shared because
the root instance was trying to be saved in the normal sheet instance
data which is not valid.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13102
The crash was caused by an unhandled exception. The uncaught exception
caused a cacophony of null configuration setting pointers so guards were
added to prevent crashes should other exceptions occur that do not get
handled correctly.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13046
... to netclass flags. They're now directive labels and the netclass
field isn't auto-added anymore. However, we *do* auto-add an intersheet
refs field, and that's required.
While we never allow the creation of mirrored text elements in the
schematic and symbol library editors, external generation of symbols may
cause the property to be set, which can then never be changed. This
leaves the property unset for all elements
Fixes https://gitlab.com/kicad/code/kicad/issues/13007
This will make it possible to maintain sheet instance information when
copying and pasting from any sheet other that the root sheet of a
project.
Setting and getting sheet page numbers must now be performed using a
sheet path. This was done to ensure that the instance paths were not
getting changed unexpectedly from different code paths.
This fix makes some fundamental changes to the way symbols are rescued:
* The new symbol library file format is used when rescuing symbols defined
in the symbol library table.
* The original library nickname is appended to the symbol name rather than
the rescue library nickname when rescuing symbol defined in the symbol
library table.
* Escaping strings has been removed from legacy library rescues since the
legacy library file format never supported it.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/12525
Fixes https://gitlab.com/kicad/code/kicad/-/issues/12624