With that also begin reworking the internal structure of the simulation
model storage. Some models have parameter information extracted from
Ngspice, which was specially patched to faciliate that. The model is
stored and managed by the SPICE_MODEL class (later will be renamed to
SIM_MODEL).
The wxtimer can fire multiple times and there exists the possiblity for
this to happen before the flags are properly set to prevent it. This
creates a concurrency mutex to skip the EDA_DRAW_PANEL_GAL refresh if
one is already underway.
Fixes https://gitlab.com/kicad/code/kicad/issues/12094
(cherry picked from commit 39dd51490d)
These can happen when a tool is active that sends signals when exiting
(e.g. deselectEvent). These may be caught by the active loop in another
tool which might try to update the UI after it has been freed. By
marking all tools as "shutdown", the only event returned to them should
be null. As an extra precaution, we flag the shutdown globally within
the tool manager and check this flag before launching either events or
new tools
Fixes https://gitlab.com/kicad/code/kicad/issues/10698
Board setup rows should be sortable when inserting new elements. They
get sorted when saving, this keeps that representation while editing
Fixes https://gitlab.com/kicad/code/kicad/issues/12015
Also find a few more places where we are reaching into a new frame to
perform actions that need to have dialogs closed.
Running actions should also wait for the next cycle rather than being
immediately executed when we are calling into a new frame. This allow
for the cleanup actions onClose() to happen prior to the next action
starting
Fixes https://gitlab.com/kicad/code/kicad/issues/11891
Converts dialog_image_editor to panel_image_editor. Embeds this panel in
a new properties dialog for the schematic and PCB editors that allows
editing position, layer, locked status, etc. like other items.
Removes a nanny setting that prevented the use of
blind/buried/micro-vias without a checkbox. If the designer does not
want microvias in their board, they simply do not place microvias.
on gcc 12.1 / msys2 the large initialized list in bitmap_info.cpp breaks
the compiler (perhaps a bug in the compiler).
So, as workaround, the initialization sequence is modified.
Previous the cross-probing options were mixed between sending and
receiving cross-probe events. This clarifies so that all of the pcbnew
cross-probe options deal with whether the cross-probe is seen in pcbnew
and all of the eeschema options deal with seeing the event in eeschema.
Also updates the wording in the options panels to be the same where
possible and adds tooltips
Fixes https://gitlab.com/kicad/code/kicad/issues/11454
The swatches are surrounded by non-scaling icons. We should not scale
the swatches unless we also scale the icons. This patch makes all
elements in the appearance panel equally non-scaling
This relates to https://gitlab.com/kicad/code/kicad/-/issues/11880
The main purpose is to make changes in g_BitmapInfo more easy.
Although it is automatically generated, it is sometime more easy to modify
it by hand (the recreation of bitmaps stuff is time consumming), especially
during testing.
Thread pools are long-lasting executors that have close to zero overhead
when launching new jobs. This is advantageous over creating new threads
as we can use this for threading smalling jobs and smaller quanta. It
also avoids the heuristics needed to determine the optimal number of
threads to spawn
gcc ignores the c++17 standard advisory in some versions and simply
doesn't warn about unused private variables. Clang and MSVC do warn
about unused private variables and do follow the standard