If global or local labels are floating -> error
If global or local labels are only connected to one pin -> warning
Rather than forcing two different errors depending on whether the label
is local or global
We reuse the CANDIDATE flag in various places across the codebase,
which is probably incorrect given the original intention for the
flag. Clearing it before use would be a performance hit for incremental
connectivity - and we can't rely on other users of the flag to clear
it for us. So we now use a new flag just for connectivity to avoid
other users trampling on connectivity updates.
Propagating to neighboring connections when not a net will cause an
infinite recursion crash. Use the wxCHECK2 instead of wxASSERT to
prevent this.
Add a bunch of question comments where the use of wxASSERT is questionable.
Now that we are threading things in different frames, we need to watch
that we are not waiting for a process to complete in one frame while
working in another. To accomplish this, we only wait for our own loop
results
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20572
Support explicit jumper symbols, defined either by a
flag that all pins with the same number are connected,
or by explicit groups of jumpered pins
Fixes https://gitlab.com/kicad/code/kicad/-/issues/2558
Having thread pool as its own singleton in the library meant that each
kiface had its own threadpool, leading to many multiples of the threads
being started. Placing a singleton class in PGM_BASE ensures that all
kifaces use the same thread pool.
The singleton class can be extended to provide single instance
guarantee for any element across kifaces
Recommendation is to avoid using the year nomenclature as this
information is already encoded in the git repo. Avoids needing to
repeatly update.
Also updates AUTHORS.txt from current repo with contributor names
When navigating to a sheet without the highlighted net, there was a
chance for an uninitialized pointer deref. This also gathers the
highlighted nets into the navigator as well as their subsuming buses
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18419
If two nets are joined by a global power pin but both have global labels
that override the net name, we still want them to be merged. This
checks for all net names in the drivers when looking for subgraph
merging candidates
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18092
Also removes the side-effect that SCH_SHEET_LIST's
c'tor would sort the list (and write virtual page
numbers) anytime the starting sheet was the root.
Also, definitely don't build a SHEET_LIST (sorted or
otherwise) if you're not even going to use it.
Also don't build SCH_SHEET_LISTs on idle events. Better
to just always have the Next Sheet button enabled (we
already beep if you click it and there's no next sheet).
Also, use a SCREEN_LIST when you can. It's much cheaper
to create.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17984
When moving / deleting a power symbol, in some instances the
symbol is marked dirty, and sometimes the pin (depending on
whether the symbol is the primary edited item, or whether
the pin is identified through an edited item subgraph). If
the pin and the symbol are marked dirty, the pin dirty flag
was not being cleared.
Additionally, not all extracted items were being deleted
from subgraphs correctly.
Both resulted in dirty state and duplicated items in the
subgraphs during incremental connectivity, which resulted
in essentially corrupted subgraph states.