Seth Hillbrand
d653484d72
Move connected_items from hash table to tree
...
This gains about 10% speed in heavily connected sheets
Fixes https://gitlab.com/kicad/code/kicad/issues/10974
(cherry picked from commit 187aa1c171
)
2022-03-11 16:58:38 -08:00
Seth Hillbrand
5b5c7d41b4
Break up buildConnectionGraph for debugging
...
Needed to find bottlenecks in fns, so break out individual sections of
the massive function for easier understanding.
buildItemSubgraphs (one section of the previous function) would build
millions of connections that were never used as stacked pins created X!
connections. Also tested using sets instead of lists and keeping unique
lists to avoid flagging but none of these were as performant as using
flags to remember which items had already been processed.
Fixes https://gitlab.com/kicad/code/kicad/issues/10974
(cherry picked from commit 17b1b68ac7
)
2022-03-11 16:58:38 -08:00
Seth Hillbrand
8fd87e1f04
Change connectivity item group from set to vector
...
Reserve space for new items to speed construction of connectivity graph
Fixes https://gitlab.com/kicad/code/kicad/issues/10974
(cherry picked from commit 7aebc4b11f
)
2022-03-05 13:04:11 -05:00
Jeff Young
c7dda3fbec
Formatting.
2022-02-22 22:19:55 +00:00
Marek Roszko
c4c56de708
Neurotically update position wxPoint usages
2022-01-01 11:55:51 -05:00
Marek Roszko
347e03363a
Convert wxPoint/wxSize starting from EDA_RECT usages
2022-01-01 11:30:33 -05:00
Jeff Young
e48d4a653a
Pick better auto-generated netnames.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/4312
2021-12-24 18:13:16 +00:00
Jeff Young
889970a449
SCH_NETCLASS_FLAGs and SCH_FIELDs for labels.
...
ADDED: a new label type for netclass flags.
ADDED: the ability to define fields on labels.
2021-12-24 16:13:27 +00:00
Jon Evans
a205595404
PROF_COUNTER -> PROF_TIMER
...
I want to add an event counter, and this one is a timer
2021-12-05 14:25:37 -05:00
jean-pierre charras
3a00d76207
Fix a compil warning (shadowed var) and add a comment.
2021-12-01 11:05:16 +01:00
Jon Evans
d7f5917fb0
ERC: flag duplicated local labels with no pins as floating
...
See https://gitlab.com/kicad/code/kicad/-/issues/9593
2021-11-27 22:34:11 -05:00
Jon Evans
08cb573e11
Do not propagate bus entries across buses and wires at the same point
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/9678
2021-11-25 13:36:30 -05:00
Jeff Young
7fc04c3cf2
Fixes for realtime connectivity being off.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/9628
2021-11-24 13:20:44 +00:00
Wayne Stambaugh
53f5d616aa
Coverity issue fixes.
2021-11-13 11:38:31 -05:00
Jeff Young
83e5208213
Fix a couple of holes in the IsTestEnabled() checks.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/7270
2021-11-04 16:24:06 +00:00
Jeff Young
75b5bcf46d
Make Coverity happy.
2021-10-19 17:14:04 +01:00
Jeff Young
4e48a16847
Look for all types of label conficts in ERC.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/9367
2021-10-18 18:09:40 +01:00
Jeff Young
f606679164
Proper numeric sorting for intersheet refs.
...
Also expunges the horrifically named std::remove and std::remove_if
(neither of which remove anything).
2021-10-01 18:29:21 +01:00
Jeff Young
6aaf4413b3
Fix kicad_string.h / string.cpp mismatch.
...
They don't define a KiCad string class, so the header file name was
somewhat misleading. But the fact that they didn't match definitely
made coding more difficult.
2021-07-29 16:03:25 +01:00
Jon Evans
3aab37bd2a
Fix determinism issue when comparing a local and hierarchical label
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8406
2021-07-03 16:43:00 -04:00
Jeff Young
bcdec0dea7
Move '~' pin name processing to LIB_PIN and SCH_PIN.
...
This will also allow us to do variable processing in the future if
desired.
2021-06-12 19:54:34 +01:00
Wayne Stambaugh
fbc135e69f
Rename SCH_COMPONENT to SCH_SYMBOL.
2021-06-10 10:34:49 -04:00
Marek Roszko
4df3cb912d
Remove another leaky wx/log.h header
2021-06-03 08:11:15 -04:00
Jon Evans
9effeb1fcb
Don't crash if an invalid bus connection is made
...
Certain situations can trigger the stale cleanup being run
on a bus that doesn't actually contain the stated member.
In this case we should just keep calm and carry on -- who knows
what netlist will be generated, but we shouldn't crash.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8530
2021-06-01 21:49:25 -04:00
Jon Evans
55c1d814f9
Fix hierarchical propagation for designs with unmatched hier ports
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8397
2021-05-10 17:54:09 -04:00
Jeff Young
2e3860de6f
Naming conventions.
2021-05-05 22:58:40 +01:00
Wayne Stambaugh
2b86b34124
Eeschema: split out SCH_SHEET_PIN declarations into separate header.
2021-04-06 17:15:49 -04:00
Wayne Stambaugh
1786ae8773
Eeschema: use symbol nomenclature for object file naming.
2021-02-24 08:48:02 -05:00
Jon Evans
d951ac5bfe
Fix logic issue with sheet pin ERC
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7592
2021-02-18 12:10:59 -05:00
Jon Evans
212c67c365
Fix bus<>net conflict ERC not checking local labels
2021-02-14 21:35:29 -05:00
Jon Evans
07e1ae1b56
Fix logic of global label ERC check
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7392
2021-02-13 10:29:31 -05:00
Jon Evans
dbd749c07a
ERC warn if hierarchical labels have no matching sheet pin
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7511
2021-02-13 10:24:22 -05:00
Jon Evans
7015f4cf75
Use full names for bus membership ERC checking
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7522
2021-02-13 10:09:16 -05:00
Jon Evans
73ea0fc15e
Always upgrade to a stronger driver even if the path is longer
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7492
2021-02-11 17:25:14 -05:00
Jon Evans
8e9b457887
Make sure sheet pin connections get reset every time
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7499
2021-02-11 17:25:14 -05:00
Jeff Young
0ba0160da9
Add a PT_NIC pin electrical type and a netlist token for SCH_NO_CONNECT.
...
ADDED a new pin electrical type "free" for internally unconnected pins.
CHANGED the "unconnected" pin electrical type is now represented by
"no_connect" in files and netlists. (The legacy syntax is also accepted
in files.)
2021-01-23 00:10:01 +00:00
Jeff Young
274fc60fe9
Formatting.
2021-01-23 00:10:01 +00:00
Jon Evans
6cd4fcf30c
Don't pick a name with a longer path to override with
...
Only triggered on some platforms because of compiler-dependent
unordered_set iteration
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7169
2021-01-18 21:50:26 -05:00
Jeff Young
95ca5a0233
Don't record null drivers.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/7155
2021-01-17 16:24:22 +00:00
Jeff Young
f3a6d2655e
Improvements to ERC and bus parsing.
...
1) Add some nullptr safety to ERC.
2) Allow unconnected flagging on bus/wire entries.
3) Allow commas in bus group definitions.
Fixes https://gitlab.com/kicad/code/kicad/issues/7155
2021-01-17 16:24:22 +00:00
Jon Evans
02681fcf0e
Move no-connect processing to connection graph
...
This way the net names can be inspected in eeschema and cross-probing works.
Testcases updated for the name changes
CHANGED: all unconnected pins are now included in the netlist with no_connect_ prefixes
2021-01-14 20:55:49 -05:00
Jon Evans
9b69c1e198
Fix a bone-headed cause of non-determinism
2021-01-14 19:20:37 -05:00
Jon Evans
654e9a77db
Connectivity: defer and parallelize item updates
...
Good for ~15% performance improvement in large designs
2021-01-14 12:21:19 -05:00
Jon Evans
6fb1ed2824
Make sure hierarchical overrides are deterministic
...
Without alphabetic sorting here, we are at the mercy of
the r-tree and multithreading.
2021-01-14 12:21:19 -05:00
Jon Evans
b90e72ed07
Don't simplify hierarchical nets based on weak drivers
...
This behavior provided shorter net names, but was confusing if
the user gives an explicit strong driver in the subsheet but not
one in the parent sheet.
Testcases updated for net name changes; connectivity is the same
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4201
2021-01-13 22:10:56 -05:00
Jon Evans
24ff66f5a2
ERC: flag unconnected sheet pins
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/1780
2021-01-13 19:47:28 -05:00
Jon Evans
693e40b5b0
Exclude buses from dangling label checks
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7017
2021-01-13 19:37:05 -05:00
Jon Evans
ede500f117
Don't create multiple markers for the same issue
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7016
2021-01-12 23:24:13 -05:00
Jon Evans
5ceadbda3b
Don't show redundant ERC markers from subsheets
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7016
2021-01-12 23:24:13 -05:00
Jeff Young
c3d46c1cb5
Add ncPins to the list of no_connect_ nets.
...
This allows the info to be acted upon in PCBNew (for instance, clearance
rules).
Fixes https://gitlab.com/kicad/code/kicad/issues/6991
2021-01-07 21:56:04 +00:00
Jon Evans
487aa37d2e
Connectivity: don't rename things multiple times in subsheets
...
Depending on what order the subgraphs are processed in, it's
possible to hit a case where the parent sheet renames a bus
member before the bus neighbor renaming logic runs. In this
case, we don't want to apply the bus neighbor logic as it will
break connectivity to the parent sheet if that bus was not
also renamed (for example, if the hier ports only make net
connections and not bus connections)
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6887
2020-12-29 16:42:30 -05:00
Jon Evans
e33a331095
Don't ERC check absorbed subgraphs
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6861
2020-12-27 15:31:48 -05:00
Jeff Young
3d852372ca
Handle nested unescaping (for buses in particular).
...
Also adds a few missing unescape() calls when showing netnames to the
user.
Fixes https://gitlab.com/kicad/code/kicad/issues/6400
2020-12-20 15:59:09 +00:00
Seth Hillbrand
7b9c21e290
Not connected pins should not get connected
...
This prevents splitting wires/busses on the NC pin end. It also keeps
NC pins out of the netlist.
Fixes https://gitlab.com/kicad/code/kicad/issues/6777
2020-12-17 11:56:42 -08:00
Jon Evans
6544dca056
Ensure driver connections are always properly initialized
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6694
2020-12-12 10:43:30 -05:00
Jeff Young
ad281f7538
Remove duplicated TestDanglingEnds routines.
...
Also adds a changedItemHandler so that the single remaining version
can update the view.
Fixes https://gitlab.com/kicad/code/kicad/issues/6581
2020-12-06 21:24:16 +00:00
Jeff Young
c85ef8eb69
Make updating netnames in backannotate more discrete.
...
Trying to be too smart was producing unexpected results.
Fixes https://gitlab.com/kicad/code/kicad/issues/6480
2020-11-25 22:16:56 +00:00
Jeff Young
9c7c05c161
Mostly formatting cleanup but a few type-casting cleanups too.
2020-11-24 22:16:41 +00:00
Jeff Young
44850e9409
Fix nullptr crash.
2020-11-24 14:13:03 +00:00
Jeff Young
c94001839b
Minor performance improvements to connection graph.
2020-11-23 19:47:55 +00:00
jean-pierre charras
94a358c592
fix 2 compil issues
2020-11-17 19:32:20 +01:00
Jeff Young
6654c03041
Embarking on the next adventure: component -> symbol.
2020-11-15 20:23:15 +00:00
jean-pierre charras
79dd6e6476
Eeschema, ERC: fix missing call to subgraph->ResolveDrivers() when test driver
...
conflicts (more than one name for a net) is disabled.
This missing call was creating issues in tests that need a full connection
calculation, especially ercCheckFloatingWires()
2020-11-10 11:30:30 +01:00
Jeff Young
7c505da368
Make sure ERC tests honour the severity settings.
...
(And in particular, IGNORE.)
Fixes https://gitlab.com/kicad/code/kicad/issues/6178
2020-11-01 17:38:24 +00:00
Jon Evans
31d502735c
Better messages for bus entry conflict ERC
2020-10-27 22:05:35 -04:00
Jon Evans
2edd246f36
Use explicit message for multiple drivers ERC
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/3980
2020-10-25 18:30:22 -04:00
Jon Evans
ee08a3488f
Fix missing driver conflict ERC
2020-10-25 18:13:03 -04:00
Jon Evans
7d09681f9e
Improve reporting on NC and global label ERCs
2020-10-21 22:14:04 -04:00
Jeff Young
16d5f95981
Meet irreflexive requirements of std::sort
...
Fixes https://gitlab.com/kicad/code/kicad/issues/6053
2020-10-18 21:03:01 +01:00
Jeff Young
81e1bc9df0
Keep track of driver changes so the view can be updated.
...
Also make renaming of nets a bit more stable.
Fixes https://gitlab.com/kicad/code/kicad/issues/6018
2020-10-17 20:40:05 +01:00
Marek Roszko
5302f7ce73
Remove kicad_string.h from eda_text.h
2020-10-14 19:18:38 -04:00
Jon Evans
61f731aa1d
Fix disambiguation for vector buses with different ranges
...
Previously disambiguation was looking for exact matches,
but vector buses are permitted to have different ranges and
still participate in merging, so they need to be disambiguated.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5925
2020-10-08 22:26:24 -04:00
Jon Evans
8f4fba4c67
Don't deallocate absorbed SGs anymore
...
Now there is some code depending on access to them
outside the context of connectivity calculation...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5928
2020-10-08 21:24:35 -04:00
Jeff Young
4565631728
Finish moving eeschema assigned netclasses to sheet-path-relative.
...
Also adds code for the case where a new label is created on a net
with an existing netclass assignment.
Fixes https://gitlab.com/kicad/code/kicad/issues/5886
2020-10-07 16:31:55 +01:00
Jon Evans
bdb18022c0
Flag all dangling labels, not just isolated ones
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/1788
2020-10-04 17:13:42 -04:00
Seth Hillbrand
02a5d47de9
Avoid passing references in EESchema
...
This returns the connection list by value. This allows easier Python
use
Also renames m_End() to GetEnd()
2020-09-08 06:29:27 -07:00
Jon Evans
be0aad5984
Move similar labels check to new connectivity engine
2020-08-30 15:43:16 -04:00
Jon Evans
48d7c46a53
Move pin table checks to new connectivity system
2020-08-30 15:43:16 -04:00
Jon Evans
1d2838bd92
Fix overzealous driver check that was causing false positives
2020-08-25 21:54:14 -04:00
Jon Evans
d40ae3de46
ADDED: ERC check for missing hier labels for sheet ports
...
A subsheet may have more than one instance of a hier label,
but it's generally a mistake if there is no matching hier label
for a port on the parent sheet.
This is harder to do today now that we don't have manual tool
for placing hier ports, but it's still possible if you place
ports but then rename the label on the subsheet.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/3468
2020-08-25 21:52:52 -04:00
Jon Evans
45cae6405d
Improve no-connect ERC and check for floating wires
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/2393
Fixes https://gitlab.com/kicad/code/kicad/-/issues/2038
2020-08-25 18:00:16 -04:00
Jeff Young
97c34e2516
ADDED alternate pin definitions and assignments.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/2002
2020-08-21 18:29:36 +01:00
Tomasz Wlostowski
d937fadd6f
Migrate RC_ITEM to use shared_ptr
2020-08-13 14:50:59 +02:00
Jon Evans
9a801d8b72
Don't disrupt diff pairs when auto-renaming buses
...
With bus groups we can use the prefix to disambiguate
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4916
2020-07-20 20:41:56 -04:00
Jon Evans
66bdd37637
Connectivity optimizations
...
Cache names of potential driving items
Change a few data structures based on profiling
2020-07-09 18:14:37 -04:00
Jon Evans
282fcd5f3c
Connectivity optimizations
...
Don't copy the recursion test cache when copy-constructing
SCH_SHEET_PATHs as it's not needed in connectivity
Fix a few places that were copying unnecessarily
2020-07-08 17:42:12 -04:00
Jon Evans
23ce2d2e36
Re-add missing include
2020-07-06 19:47:07 -04:00
Jeff Young
3939b31027
Integration of netclasses into Eeschema.
...
This is mostly architecture, with the hookup of the Schematic Setup
dialog's Net Classes page. Things like assigning to a net on the
canvas to follow.
Fixes https://gitlab.com/kicad/code/kicad/issues/2132
Fixes https://gitlab.com/kicad/code/kicad/issues/4581
2020-07-06 20:00:50 +01:00
Jon Evans
12b4a55ae8
Port Eeschema to new project settings
...
DRC/ERC error serialization changed to use explicit tokens
Old stored severities and ignored errors are discarded
2020-07-02 22:08:54 -04:00
Jon Evans
8a0277eb2e
Fix null graph in some connections
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4747
2020-06-29 20:27:08 -04:00
Jon Evans
13baf548ca
Ensure merged buses have all members
2020-05-25 17:35:26 -04:00
Jon Evans
82a2530863
Fix missing inits of graph in a few places
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4532
2020-05-24 19:17:01 -04:00
Jon Evans
1e69f592f6
Rework net highlighting to use connections instead of strings
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/1933
Fixes https://gitlab.com/kicad/code/kicad/-/issues/3921
2020-05-24 10:46:05 -04:00
Jon Evans
48ab1d1a93
Set sheet pins to bus color if they are a bus in the child sheet
...
As a visual aid, we can peek into the child to see if a pin
represents a bus in the child (in the case of aliases etc
we might not be able to tell by the name of the pin).
Only do this if there isn't anything else driving a connection
onto the sheet pin in the parent sheet.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/2619
2020-05-23 23:57:10 -04:00
Jon Evans
de9520d65e
Finish porting netlisters to use CONNECTION_GRAPH
2020-05-23 12:45:24 -04:00
Jon Evans
f4d7c323f5
Coverity fixes
2020-05-18 22:58:28 -04:00
Jon Evans
d7bd4c9b04
Move Eeschema globals to new SCHEMATIC object
...
Set up a new lineage for SCH_ITEMS to get back to the SCHEMATIC
they live on: Items will all be parented to the SCH_SCREEN that
they are added to, and each SCH_SCREEN will point back to the
SCHEMATIC that it is part of. Note that this hierarchy is not
the same as the actual schematic hierarchy, which continues to
be managed through SCH_SHEETs and SCH_SHEET_PATHS.
2020-05-18 13:04:56 -04:00
Ian McInerney
99dcadf7e6
Introduce new KI_FALLTHROUGH macro
...
Annotate purposeful fallthroughs in switch statements with the
KI_FALLTHROUGH macro.
2020-04-25 00:44:09 +01:00
Jeff Young
e14e3faed6
Use resolved text for connections.
2020-04-24 22:17:45 +01:00
Jeff Young
1535c83b88
Lay some groundwork for adding distances to DRC errors.
...
modified: eeschema/lib_rectangle.cpp
2020-04-24 14:46:22 +01:00
Jon Evans
f7ebf2af5e
Add separate color setting for bus junctions
...
Fix plotting and printing to use bus color when
connectivity detects that the junction is on a bus.
Fixes #4098
2020-04-22 21:55:48 -04:00
Jon Evans
d7d1ea33ac
Check for conflicts before promoting sheet pins to be strong drivers
...
Fixes https://gitlab.com/kicad/code/kicad/issues/4201
2020-04-19 19:13:24 -04:00
Seth Hillbrand
ba8c3a5582
Reverting part of cee973dc04
...
Iterators are invalidated by vector reallocation. We need to keep the
count in the loop in order to have a valid position in the vector
Fixes https://gitlab.com/kicad/code/kicad/issues/4073
2020-03-20 08:44:21 -07:00
jean-pierre charras
53dfcd84cb
Fix missing include
...
Fixes #4058
https://gitlab.com/kicad/code/kicad/issues/4058
2020-03-16 19:09:35 +01:00
Jeff Young
cee973dc04
Move ERC error reporting over to the new framework.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/1989
2020-03-16 11:06:15 +00:00
Jeff Young
437f888c25
Schematic Setup dialog.
...
Includes:
- moving some of the project settings from the Preferences dialog
- ERC severites
- project-specific field-name templates
Fixes https://gitlab.com/kicad/code/kicad/issues/2145
2020-03-10 18:54:17 +00:00
Jon Evans
1e104d5bd4
Don't promote globals from locals on a different sheet
...
Fixes #4004
2020-03-05 19:08:55 -05:00
Jeff Young
129042f8a6
Convert timestamps to UUIDs.
2020-02-20 21:29:52 +00:00
Jon Evans
e59a3d981e
Implement a new settings framework across all of KiCad
...
CHANGED: Settings are now stored in versioned sub-directories
ADDED: First-run dialog for migrating settings from a previous version
CHANGED: Settings are now stored as JSON files instead of wxConfig-style INI files
CHANGED: Color settings are now all stored in a separate settings file
CHANGED: The symbol editor and footprint editor now have their own settings files
CHANGED: Color settings are no longer exposed through BOARD object
CHANGED: Page layout editor now uses Eeschema's color scheme
Settings are now managed through a central SETTINGS_MANAGER held by PGM_BASE.
Existing settings will be migrated from the wxConfig format on first run of each application.
Per-application settings are now stored in one class for each application.
2020-02-19 23:44:56 -05:00
Jon Evans
fe375b4419
Allow sheet pins to be strong drivers if they don't conflict with anything
...
Also try harder to match bus members in case one was renamed by a higher
priority label.
Fixes https://gitlab.com/kicad/code/kicad/issues/3797
2020-02-05 14:23:55 +00:00
Jon Evans
ac875e26a8
Fix handling of SCH_PINs on multi-unit parts
...
Fixes https://gitlab.com/kicad/code/kicad/issues/3770
2020-02-04 11:51:29 +00:00
Jon Evans
41725e6b07
Sort nets in netlist by name; generate ordered net codes
2020-01-22 14:59:02 +00:00
Mark Roszko
70908043a3
Convert enums inside eeschema and the symbol editor to be scoped
...
Scope: NETLIST_ITEM, CONNECTION_TYPE, ELECTRICAL_PINTYPE,
NET_CONNECTION, NETLIST_ITEM, GRAPHIC_PINSHAPE
Note, the pin type enum had PT_ added to the front to prevent
shadowing of the INPUT symbol on msys2 (see discussion at
c17c9960d8
)
2020-01-18 20:51:28 +00:00
Jeff Young
836c1ea56e
Fix a bunch of un-caught boost::bad_pointer exceptions.
...
This also removes vector cover types which do nothing except obfuscate
the underlying implementation.
Mainly changes SCH_SHEET_PINS and CONFIG_PARAM_ARRAY (which will soon
be replaced by Jon's new stuff).
2020-01-12 19:55:00 +00:00
Seth Hillbrand
6e5e453d0d
Replace EESchema DLIST
...
This moves EESchema DLIST structures to rtree. These changes are more
fundamental than the pcbnew changes from 9163ac543
888c01d11
d1877d7c1
and 961b22d60
as eeschema operations were more dependent on passing
drawing list references around with SCH_ITEM* objects.
2020-01-10 06:37:08 -08:00
jean-pierre charras
03611f7bb7
missing change
2020-01-09 09:14:04 +01:00
jean-pierre charras
c17c9960d8
Eeschema: fix a colliding name between sch_text.h and a Windows/msys2 header.
...
"INPUT" declaration in sch_text.h generate *a lot of* compil warnings.
So it is replaced by PS_INPUT.
For consistency, others member of enum class PINSHEETLABEL_SHAPE are also renamed.
2020-01-09 08:52:30 +01:00
Mark Roszko
ca34ade00c
Make global labels have the same spin style as net/hierarchical labels
...
For legacy reasons, it stored left and right "spin" as flipped integers in the file format.
But the code handled the flip in multiple locations rather than just doing it on file io.
This change unifies the internal code and does the mapping in the file I/O.
2020-01-08 19:07:55 +00:00
Jon Evans
b4cc28a5b6
Fix memory leaks in CONNECTION_GRAPH
...
Fixes #3692
2020-01-07 00:13:19 -05:00
Jon Evans
856decc29b
Fix a few issues with bus member propagation to subsheets
...
Fixes #3728
2020-01-04 10:38:50 -05:00
Jon Evans
1bffe7f48b
Ensure power pins win over bus member renaming
...
Also switch to a scoped enum for PRIORITY
Fixes https://gitlab.com/kicad/code/kicad/issues/3728
2020-01-02 22:09:15 -05:00
jean-pierre charras
034b87dec0
Eeschema: connection_graph.cpp: clear old pointers to avoid using outdated or deleted data.
...
m_connected_bus_item and m_connected_bus_items pointers were not cleared when
rebuilding connection data.
So in some cases these pointers were not updated, and created a crash
once the old data was no longer available (deleted)
2019-12-23 14:55:47 +01:00
jean-pierre charras
7b80b2dc7b
Eeschema: fix a crash that sometimes happens with bus entries,
...
connected to the same point on a bus.
The pointers used in previous code could be null, but they were not tested.
The pointer validity is now tested.
2019-12-22 16:19:05 +01:00
Mark Roszko
11ff16be4e
Switch to scoped enums
2019-12-20 14:11:39 +00:00
Jon Evans
8b87dc7e0f
A slightly better ERC check for hierarchical labels
...
Fixes: lp:1839822
* https://bugs.launchpad.net/kicad/+bug/1839822
2019-11-29 21:11:44 -05:00
Jeff Young
56bf72cc5d
OpenGL context must be saved/restored around a translation.
...
Also includes a bunch of code cleanup.
Fixes: lp:1838655
* https://bugs.launchpad.net/kicad/+bug/1838655
2019-08-07 19:25:03 +01:00
Jeff Young
fb1d7811b1
Internal netnames must be used internally.
...
GetShownNetname() is only for the GUI, or for external programs.
Fixes: lp:1834510
* https://bugs.launchpad.net/kicad/+bug/1834510
2019-08-03 21:35:55 -06:00
Jon Evans
ab766e6c1c
Don't absorb neighbors based on weak component pins
...
Fixes: lp:1838140
* https://bugs.launchpad.net/kicad/+bug/1838140
2019-07-27 11:29:11 -04:00
Jon Evans
b99c71744f
Properly handle nested bus absorption
2019-07-27 10:51:38 -04:00
Jon Evans
607650be22
Connectivity: don't consider neighbor propagation when types don't match
...
Fixes: lp:1831608
* https://bugs.launchpad.net/kicad/+bug/1831608
2019-06-05 22:26:44 -04:00
Jon Evans
42887544c9
Connectivity: ensure globally-labeled buses are always propagated
...
Fixes: lp:1822964
* https://bugs.launchpad.net/kicad/+bug/1822964
2019-06-05 21:33:20 -04:00
Jon Evans
8d8c743f97
Connectivity: remove unused method
2019-06-05 21:27:56 -04:00
Jon Evans
256d7b0714
ERC: Use local paths for bus<>bus entry testing
...
Fixes: lp:1831365
* https://bugs.launchpad.net/kicad/+bug/1831365
2019-06-02 11:34:15 -04:00
Jon Evans
27a2b840ec
Eeschema: Fix multiple net label ERC after sorting changes
...
Fixes: lp:1831003
* https://bugs.launchpad.net/kicad/+bug/1831003
2019-05-31 21:55:54 -04:00
Jon Evans
4e6c9ac7b1
Remove defunct junction code that left some isolated
...
Fixes: lp:1828716
* https://bugs.launchpad.net/kicad/+bug/1828716
2019-05-23 22:58:46 -04:00
Jon Evans
ee095a6711
Make sure secondary drivers are followed-up on after absorption
2019-05-12 20:23:16 -04:00
Jon Evans
019f63cd95
Don't merge subgraphs by matching sheet pin names
2019-05-12 18:41:04 -04:00
Jon Evans
1de5b83d82
Promote net names to higher in hierarchy when possible
2019-05-07 21:59:36 -04:00
Jon Evans
81993eef83
Ensure bus member links get updated in hierarchical situations
2019-05-07 21:31:53 -04:00
Jon Evans
3d3c280f22
Fix hierarchical linking if parent sheet has a weak driver
2019-05-07 21:31:53 -04:00
Jon Evans
316be464ab
Handle higher-priority connection drivers located in subsheets
...
Fixes: lp:1827850
* https://bugs.launchpad.net/kicad/+bug/1827850
2019-05-06 22:09:05 -04:00
Jon Evans
09c9db472e
Properly handle buses that have been linked by net wires only
...
Fixes: lp:1825532
* https://bugs.launchpad.net/kicad/+bug/1825532
2019-05-05 19:48:55 -04:00
Jon Evans
e9eacbc91c
Ensure subgraphs with multiple labels get sorted
2019-05-05 19:09:05 -04:00
Jon Evans
019a731e03
Back-propagate from child sheets when two parents point to one child
2019-05-05 16:05:36 -04:00
Jon Evans
6d918ea1f1
A few fixes and refactors to connectivity propagation
2019-05-05 00:03:58 -04:00
Jon Evans
2f2d48938e
Ensure connection sheet is properly reset at reinit time
2019-05-04 22:23:35 -04:00
Jon Evans
efa0c97da9
Make sure net name prefixes carry through to netlist
2019-05-01 20:48:27 -04:00
Jon Evans
4efed8a4dd
Ensure global labels get flagged as lonely in all circumstances
...
Fixes: lp:1827214
* https://bugs.launchpad.net/kicad/+bug/1827214
2019-05-01 20:15:21 -04:00
Jon Evans
a5a2152ff4
Cache subgraphs by sheet path
2019-04-29 19:58:02 -04:00
Jon Evans
c054944d67
Set real-time connectivity to on by default with a safety valve
2019-04-29 18:59:32 -04:00