- New public static function OPENGL_GAL::CheckFeatures() gets called in EDA_DRAW_PANEL_GAL::SwitchBackend() before switching to OPENGL_GAL
- Moved all OpenGL feature checks from OPENGL_GAL constructor to OPENGL_GAL::init()
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4714
In some cases, the BeforeReset() will cause an iteration over the tree
elements. If we have deleted an element before doing this, we risk a
corruption/crash.
Fixes https://gitlab.com/kicad/code/kicad/issues/6192
(cherry picked from commit 3bd080b64e)
Loading the schematic symbol preserves the invalid LIB_ID characters in
the symbol name. Unfortunately, loading the library symbol automatically
fixes the invalid characters so this caused the symbol rescue to not find
library symbols with invalid characters. Replacing the invalid characters
in the schematic symbol name during rescue fixed the issue. This fix
isn't perfect because there is the off chance that replacing the invalid
characters could lead to a name clash in the library resulting in the
incorrect symbol to be rescued.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/2319
(cherry picked from commit d90d734166)
Just because we find a label reference does not mean that is where the
color is stored. We do an exhaustive search through the hierarchy for
the correct color data
Fixes https://gitlab.com/kicad/code/kicad/issues/6107
(cherry picked from commit 75c2d1a0bf)
We modified how we search for color information. Changing the version
data will for models to reload instead of keeping the cached data with
(possibly) missing color information
(cherry picked from commit b51ca1ab0e)
Assemblies may not have their face information in the top level of the
file. Search recurses to get the explicit shape in sub assemblies as
well.
Fixes https://gitlab.com/kicad/code/kicad/issues/5163
(cherry picked from commit a2168c6add)
Python threading can cause issues with zone filler, connectivity
calculations and many other parts. This forces the emitted code to hold
the GIL when running.
Fixes https://gitlab.com/kicad/code/kicad/issues/4436
On wxWidgets 3.0.5, in some cases calling ReCreateParameterList() generates
a EVT_GRID_CMD_CELL_CHANGED that call ParametersUpdated()
and creating an infinite loop
Note also it happens **only for languages using a comma** instead
of a point for floating point separator
It does not happen on wxWidgets 3.1.4
From master branch
Using wxFileName::GetPath( wxPATH_WITH_SEPARATOR ) does not include the
drive specifier (A:, B:, C:, etc.) on windows which fails the comparison
with the project path 100% of the time. wxFileName::GetPathWithSep()
solves the issue nicely.
Fixes https://gitlab.com/kicad/code/kicad/issues/5077
(cherry picked from commit 03423f13a1)
The stepping is in a static event handler, so it is called
after the dynamic handler and so the dynamic handler must
allow the event to continue processing.
Fixes https://gitlab.com/kicad/code/kicad/issues/5319
Previously the variables that were defined externally weren't being
readded to the variable map, so they would not appear in the dialog
the next time.
(Cherry-picked from fedc6519cd)
Just setting the text field is not guaranteed to fire
a text event, so we must forcefully call the regenerate
function to ensure the preselect is handled.
Fixes https://gitlab.com/kicad/code/kicad/issues/4105
(Cherry-picked from 63b53c3968)
The base GAL has the linewidth property already, and its
accessor will only return the base version. This was causing
problems with the Cairo printing GAL, since that setter wasn't
using the base class version. Also, this removes the print-specific
setter, since the actual setting of line width shouldn't be done
there and is instead done where the drawing happens.
Fixes https://gitlab.com/kicad/code/kicad/issues/5089
(Cherry-picked from 5684708b22)
Previously, they were being interpreted as inches, and then being
displayed as mils - leading to a multiplication by 1000 if there
was no unit string included.
Fixes https://gitlab.com/kicad/code/kicad/issues/5117
(Cherry-picked from 259cacf648)
Modules are not members of BOARD_CONNECTED_ITEM, so we cannot use this
as a proxy for membership in the connectivity or ratsnest calculations.
Fixes https://gitlab.com/kicad/code/kicad/issues/5140
This is the proper fix for the symbole preview widget. It will ensure
there are no size changes between the two panels (preview and status),
and also ensure that the status panel has the same background color as
the preview panel.
Fixes https://gitlab.com/kicad/code/kicad/issues/4997
This canvas supports mouse interaction, and navigating using the
scrollbars is very difficult (it causes large jumps). Also, having
the scrollbars causes the background to bleed through around them,
making them appear floating in the canvas.
Fixes https://gitlab.com/kicad/code/kicad/issues/4997
This ensures that when the project or an environment variable is changed
in pcbnew, the Python interpreter is updated to reflect that.
This is a backport version of the master-branch commit, and will not
synchronize any changes to the environment variables if they are made
from frames other tna Pcbnew.
Fixes https://gitlab.com/kicad/code/kicad/issues/5071
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.
Previously it would just not open any project at all. This
was a problem for some launchers, which would pass an empty string
when no file is passed by the user.
Fixes https://gitlab.com/kicad/code/kicad/issues/5055
Another static cast was left. changed now to dyn_cast
We need to be careful in the connectivity system to always use
dyn_cast/dynamic_cast and check the return when dealing with board
items.
Fixes https://gitlab.com/kicad/code/kicad/issues/5082