When it was uninitialized, cancelling the dialog could lead to the
sheet's annotations being cleared because the variable wasn't set
to false anywhere.
Apparently the < operator was never implemented for SCH_JUNCTION objects
so they were not get sorted which was causing the large diffs between
schematic saves.
Fixes https://gitlab.com/kicad/code/kicad/issues/4370
(cherry picked from commit 35f3eb6220)
recreate comboboxes when clearing toolbars. Clearing toolbars delete only
tools, not other widgets. recreating comboboxes creates strange cosmetic issues.
From master, commit 598ed8b39.
Move the hierarchical sheet loading outside of the try exception block
so that any sheets that were loaded when a schematic file load fails
are loaded rather than skipped. This allows more of the schematic to
be loaded when any parser errors occur.
(cherry picked from commit 1a8082c6d6)
SCH_SHEET objects can only have another SCH_SHEET object as a parent
or nullptr for the root sheet so overload EDA_ITEM::SetParent() to
prevent the parent from being set to another type of object and add
some checks to the root sheet code just in case someone gets clever
and attempts to bypass the overloaded SetParent() call.
(cherry picked from commit fa57c8a570)
Once the gal canvas hsad the focus, it was not possible to use arrow keys in library
or symbols or fp lists even after clicking on an item.
This focus issue is now fixed.
From the fix in Master
Use an underscore character instead of a semicolon between the library
ID library nickname and symbol name in library ID search strings when
looking up symbols in the cache library since that is how they are saved
when creating the cache library. This fixes rescuing missing symbols
from the cache when they have been removed from the original library and
preventing a broken symbol link indicator from being shown when a symbol
is removed from the library.
Add some defensive testing to make sure the library passed to function
SchGetLibPart() is actually the cache library.
(cherry picked from commit f6d7ef367d)
The code that checked for pin conflicts to determine if a symbol needed
rescued did not check either the pin convert setting so it was possible
for a pin from the other convert on symbols that do not have identical
units to appear to not have a pin conflict. Add tests for pin unit and
convert setting to prevent that from breaking the comparison. This must
have always been broken.
Fix the symbol preview widget to prevent drawing all symbols on top of
each other (if we need to do this the code will have to be revised) and
also show the convert if valid.
Fix broken symbol cache library when saving alias symbols.
Fixes https://gitlab.com/kicad/code/kicad/issues/3879
(cherry picked from commit e91f1f57dd)
The margin fix prevented some schematics from printing. Reverting in
favor of transitioning to the Cairo print base in eeschema
(cherry picked from commit 9de7547c25)
Previously, to list changes, the Reference field was used in comparisons.
In complex hierarchies, this is incorrect: the Reference field contains
only the last displayed reference, not the reference of a given sheet.
The comparison uses now the sheet paths for ref and unit selection.
From a similar fix in master branch.
The symbol check output the HTML message for each item. This is _very_
slow and can lock the system reponsiveness. Changing to a queue/flush
method is much faster
cherry-picked from 245b778454
When searching for fields, the code was sometimes comparing
translated and not translated names. This is an issue for mandatory fields,
in non English languages.
From master branch.
This part of the check removes recursive sheets from the schematic when
loading and notifies the user that their schematic has been repaired.
(cherry picked from commit 128ec782dd)
We need to ensure that the appended sheet does not already exist in the
parent hierarchy. We do this for new sheets but need to check for
existing ones as well.
Fixes#3806 | https://gitlab.com/kicad/code/kicad/issues/3806
(cherry picked from commit 7ac83ac64d)
Spice lines defining circuit elements are contained in a .subckt ..
.ends block. The intervening lines should be exported to the netlist as
well as the control lines.
(cherry picked from commit d9eaff1c99)
Fix overzealous test if the new file name is the same as an existing
file name.
Fix a potential comparison bug due to missing file extension.
(cherry picked from commit b66ecf141f)
Apparently there are some issues with wxString::CmpNoCase() that was
causing the sheet file name case sensitivity test to incorrectly fail.
Converting the name strings to lower case before comparing resolved
the issue.
(cherry picked from commit 773f45aae3)
Add missing check for root sheet when searching sheet hierarchies for
already loaded schematics. This prevents the root sheet from being
omitted when adding new sheets using the root sheet file name.
CHANGED: Make file name tests case sensitive so that schematic sheet
file names on non-Windows systems can be uses as expected.
Warn users when attempting to use schematic file names that only vary
by case sensitivity that doing so will result in a project that is not
portable to Windows.
Fixes lp:1843415
https://bugs.launchpad.net/kicad/+bug/1843415
(cherry picked from commit d4cea0f2b7)
It happens when the spice library model shown in dialog is a large file.
Looks like the wxTextCtrl used to displays the library content
creates the crash ( GKT bug?) for large texts.
The fix is to replace this wxTextCtrlt by a wxStyledTextCtrl.
It has advantages (does not crash... and much faster display) and
inconvenients (cannot disable editing).
Fixes: lp:1853161
https://bugs.launchpad.net/kicad/+bug/1853161
The .op command is isolated, so differentiating from .option with a
space will only work if we ensure all commandlines have a space at their
end.
(cherry picked from commit 4004c733c8)
The logic handling the two bug reports attached to this code is now
higher up in the chain. As it stood, warping before right-click meant
that we cannot affect any point on the wire that is not an endpoint.