Commit Graph

11124 Commits

Author SHA1 Message Date
Seth Hillbrand 26629928c3 Incremental updates should not clear globals
Netclass assignments are stored in the project level but
CONNECTION_GRAPH updates would clear the assignments.  This keeps
existing netname->netclass assignments but updates any netnames that
were changed by the incremental updates.  Absolute updates are not
affected and fully recreate the net name to netclass map

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17720

(cherry picked from commit e538b98286)
2024-04-14 14:14:38 -07:00
Seth Hillbrand 55c864ec45 Fix incremental connectivity
The connectivity routine would consider symbols, overwriting unused
subgraphs for pins that were not in the change list.  This is resolved
by updating the full connectivity to only use pins in the graph since
symbols are not connected independently.

In the process of adding QA tests for this change, additional issues
with the schematic QA were discovered.  Specifically, we were not
properly setting the root sheet UUID.  This was partially masked by a
const_cast setting of the RefDes in sch_symbol when called the RefDes
getter.  This exposed the fact that our QA ERC numbers did not match the
schematic editor stand alone ERC numbers.  So the test value for one
check needed to be updated

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17528

(cherry picked from commit a9f35ba42e)
2024-04-14 14:14:38 -07:00
Seth Hillbrand 4481fcc75e Check for valid shared pointer before locking
We don't neccesarily have a valid pointer to the parent lib symbol when
checking if it is a power symbol, so fall back to the local flag if this
is the case

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17182
2024-04-11 14:42:53 -07:00
Wayne Stambaugh c4c804edf7 Update hierarchy navigator when undoing or redoing sheet name changes.
Use new schematic commit object in the edit sheet properties dialog.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17721

(cherry picked from commit ec310ac3ed)
2024-04-11 10:51:04 -04:00
Wayne Stambaugh b26ca0e21a Maintain hierarchy navigator expansion state between edits.
Prevent the hierarchy navigator from being rebuilt unless there are actual
sheet changes that would cause a change to the tree.

Save the tree expansion state before rebuilding the tree and then restore
the expansion state to the previous state sans edits.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16635

(cherry picked from commit 797ab998cc)
2024-04-11 10:32:40 -04:00
afkiwers f7765ea5b9 add support to update an already existing field
(cherry picked from commit d45911f54b)
2024-04-09 23:37:52 +00:00
Jon Evans 30df673ffa Check for bus no-connects in ERC
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13285


(cherry picked from commit ce846f5c22)
2024-04-07 12:50:45 +00:00
Seth Hillbrand b1677d5f47 Clean and standardize cross-probing action
Between schematic and pcb editors, we want the following actions:

- Single click on ERC/DRC item should show the item in the ERC/DRC
  window.  But if the window is not visible, it should only update the
  status bar
- Double click on ERC/DRC item should show and raid the ERC/DRC window
  as well as select the line item

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17383

(cherry picked from commit 0f57d76ecd)
2024-04-01 17:55:29 -07:00
James J 75ef003747 Add option to preserve custom power flag values in Update Symbols from Library dialog
(cherry picked from commit bf7896a0e1)
2024-03-30 14:15:29 +00:00
Jeff Young 857219d70d Fix merge error. 2024-03-29 18:26:14 +00:00
Jeff Young 92275c41cc ADDED: Expose units and DeMorgan to properties system.
(Also fixes inheritance bug in LIB_PIN's properties.)

(cherry picked from commit 58df9c96f4)
2024-03-29 17:49:48 +00:00
Jeff Young 1f461c7508 Close active cell editor when showing/hiding columns.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17425

(cherry picked from commit f3ce3bc758)
2024-03-29 17:45:35 +00:00
Jeff Young f3621496fb Don't show hidden text in symbol previews.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17526

(cherry picked from commit 1e6eb652aa)
2024-03-29 17:44:47 +00:00
Alex Shvartzkop 70a6697c16 Fix warning due to unused angle in EasyEDA Pro schematic parser.
(cherry picked from commit 1c7e3871b5)
2024-03-23 14:52:05 +00:00
dsa-t 605fe4ce99 Disallow cross-probing when not on Symbol Fields Table Edit tab.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17531


(cherry picked from commit db12f2af49)

ce625541 Disallow cross-probing when not on Symbol Fields Table Edit tab.
2024-03-21 19:09:34 +00:00
Jeff Young a3ee317277 Fix copy/pasta in tooltips.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17515

(cherry picked from commit 913e6b47d7)
2024-03-21 18:19:48 +00:00
Jeff Young 9704543b7a Don't assume all glyphs are outline with an outline font.
Underline and overbar may be stroke glyphs.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17478
2024-03-18 22:20:44 +00:00
Roberto Fernandez Bautista c935ef890a Database library cache: fix memory leak
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17435

(cherry picked from commit 4851b0f1ac)
2024-03-17 11:41:46 +01:00
Wayne Stambaugh e904731e28 Do not update schematic connectivity for irrelevant property changes.
Prior to this change, the schematic connectivity was updated any time a
change was made to a connectable object.  Now the connectivity is only
updated when an object change actually affects the connectivity.  Other
properties like line width, fill type, custom fonts, etc. will not cause
the connectivity graph to be rebuilt.

The SCH_COMMIT flag SKIP_CONNECTIVITY has been removed.  All schematic
objects can test if they are connectable and if there have been changes
to any connection properties that require a connectivity rebuild.

Remove duplicate rebuild connectivity calls from editor control tool.
This was causing the tangling end test to get called four times on every
undo and redo action because the dangling end test is already called in
the connectivity graph calculation code.

Update connectivity when changing label names which fixes an unreported
connectivity bug.

(cherry picked from commit c5a02fc266)
2024-03-16 09:36:56 -04:00
jean-pierre charras b718c228fe Symbol Editor: do not allow to select fully invisible pins and fields
Of course, invisible pins or fields shown by using option Show invisible
pins or Show invisible fields can be selected.
From master branch
2024-03-15 15:03:38 +01:00
jean-pierre charras 3d04d78f76 Symbol Editor do not display bounding box of invisible pins and fields 2024-03-15 15:03:38 +01:00
Wayne Stambaugh ab6c64b49a Clean up debugging output accidentally left in previous commit.
(cherry picked from commit 33566f88a9)
2024-03-15 07:59:20 -04:00
Wayne Stambaugh dd71173263 Fix broken paste special keep existing symbol annotations.
This was only broken for symbols on the sheet where the symbols were
copied from.  The symbol annotation for all sub-sheets was preserved.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17231

(cherry picked from commit 0ff8d21459)
2024-03-15 07:59:20 -04:00
Alex Shvartzkop c7608c4bad EasyEDA Std: support multiple schematic sheets.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17219

(cherry picked from commit c056ef407a)
2024-03-15 01:17:50 +03:00
Alex Shvartzkop 10ca34e2a7 EasyEDA Std: support Dot and Clock symbol pin styles.
(cherry picked from commit cc181df916)
2024-03-15 01:17:50 +03:00
Alex Shvartzkop e4fc918b11 EasyEDA Std: hide invisible text in symbols.
(cherry picked from commit 69b15e83c5)
2024-03-15 01:17:50 +03:00
Alex Shvartzkop c1a21c9ab1 EasyEDA Pro schematic: place items on root sheet when it's the only sheet.
(cherry picked from commit 563278d0f6)
2024-03-15 01:17:50 +03:00
Alex Shvartzkop e196f71d58 Support Altium Schematic ASCII import
(cherry picked from commit defcb49ac8)
2024-03-15 01:17:49 +03:00
Jon Evans 8afbe544a3 Set description on Altium imported symbols
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16943


(cherry picked from commit 4bc69183ab)
2024-03-14 21:00:58 +00:00
Jeff Young 838cefaf48 Default is a valid netclass, even if it's not in m_NetClasses.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17388

(cherry picked from commit dac16a02cc)
2024-03-14 18:07:48 +00:00
Jeff Young 2609882346 Update m_LastLegendPosition after setting dirty bit.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17411

(cherry picked from commit 7341d4bf37)
2024-03-14 18:07:07 +00:00
Jeff Young 091b34c05f Don't show normal cut/copy/paste items in Signals grid.
(Do allow a copy of signal names though.)

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17395

(cherry picked from commit ed61c5593f)
2024-03-14 18:05:47 +00:00
Jeff Young e893ed4590 Pass symbol's netlist to footprint preview widget.
This allows us to show the pin functions on the corresponding
pads.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17349

(cherry picked from commit 72ba31ba27)
2024-03-14 18:04:52 +00:00
Jeff Young 03af8dcc88 Convert OP text variables pin names/numbers to SPICE vectors.
Also fixes a wrap-around bug in SPICE_VALUE::Normalize() where
it would lose the run of itself if the value was already
normalized to either the largest or smallest UNIT_PREFIX.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17228

(cherry picked from commit ff8ddae9bd)
2024-03-14 18:03:42 +00:00
jean-pierre charras d295014a8c DIALOG_ERC: fix crash when set to ignore a an ERC violation.
If a ERC violation is set to ignore, all corresponding markers are deleted.
But if one of these markers is selected, a crash happens.
Now all selected objects are deselected before deleting markers.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17375
2024-03-11 14:30:08 +01:00
Mike Williams 1b5e18d95f schematic: legacy kicad schematic files don't have a default description field
Without this, we would parse a legacy schematic symbol field at the same
index as the new description field's index into description, instead of into
a user field.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/17202
2024-03-06 11:03:00 -05:00
Jon Evans 31ae825b9d Prevent use-after-free of symbol screens
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17204


(cherry picked from commit 1600d8bead)
2024-03-06 03:54:14 +00:00
Jon Evans 98d26e77c9 Update a few more list/tree views for macOS
(cherry picked from commit 1988aac2b3)
2024-03-05 13:39:39 +00:00
Wayne Stambaugh 742529da26 Update net navigator when cross probing from board editor net highlight.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16838

(cherry picked from commit 66925ec2a2)
2024-03-03 08:57:54 -05:00
Jeff Young 1664e02fa6 Don't draw the selection if it's not from the current screen.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17132
2024-03-02 18:56:57 +00:00
Roberto Fernandez Bautista f7ddd211d9 kicad_cli: Allow upgrade of legacy and non-kicad symbol libraries 2024-03-02 18:22:18 +01:00
jean-pierre charras 655cee523b Eeschema: fix crash when editing a old legacy schematic with missing libs,
and trying to edit a dummy symbol. (crash due to a null pointer due to missing lib)
From master branch
Fixes #17232
https://gitlab.com/kicad/code/kicad/-/issues/17232
2024-03-02 15:32:37 +01:00
Jeff Young fa4d759fcb First alt-pin menu item must be fetched from the LIB_PIN.
(The SCH_PIN will return any alt function already assigned.)

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17221
2024-03-02 12:16:33 +00:00
Jeff Young 41f9baf9dc Cleanup. 2024-02-29 17:38:18 +00:00
Jeff Young 1cd5827078 _() -> _HKI() for group names.
(cherry picked from commit d08e0e9eaa)
2024-02-29 17:38:18 +00:00
Jeff Young b07d43a24a Expose text size for SCH_FIELDs.
(cherry picked from commit 2dce618f9f)
2024-02-29 17:38:18 +00:00
Alex Shvartzkop 978fa63490 Allow .kicad_sym in Import Symbol filters.
(cherry picked from commit cd27f801f6)
2024-02-29 14:36:57 +00:00
Alex Shvartzkop 0dab086f0c EasyEDA Std import: support multiline text on PCB.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17171
2024-02-29 03:54:01 +03:00
Wayne Stambaugh 9508b79cc3 Fix sheet pin align to grid issue.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16920

(cherry picked from commit 141d03c266)
2024-02-28 12:00:01 -05:00
Alex Shvartzkop bec068324e Keep schematic text upright (especially when opening v6 schematic).
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17082
2024-02-28 18:25:08 +03:00
jean-pierre charras fce4ec6a9b Eeschema, DIALOG_CHANGE_SYMBOLS: fix incorrect initial lib link name when
changing symbols: the "old" displayed link was in fact the new link because
the link was updated before the report is created.
Fixes #17162
https://gitlab.com/kicad/code/kicad/-/issues/17162
2024-02-28 11:23:35 +01:00
Jon Evans a9e6031ae6 Remove unnecessary assert
GetModifyHash can be called before a row is loaded


(cherry picked from commit 31fab831ad)
2024-02-28 00:03:37 +00:00
Jeff Young 1fc79b9a46 Fix typo.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16991

(cherry picked from commit a5fda819eb)
2024-02-27 17:16:53 +00:00
Jeff Young d94b0771ca Only change pin assignments from user interaction.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16349
2024-02-26 19:01:07 +00:00
Jeff Young 2f8f7c11f1 Handle single-source DC analyses correctly.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17119
2024-02-26 18:10:10 +00:00
jean-pierre charras c1755835eb Symbol editor: add option (view menu+toolbar) to show/hide invisible pins and fields
From master branch
Fixes #8020
https://gitlab.com/kicad/code/kicad/-/issues/8020
2024-02-25 17:40:40 +01:00
Jon Evans 46555ab975 Fix use-after-free in Altium importer
If the library already contains a symbol with the same name,
SaveSymbol will replace the existing symbol,
which will invalidate a cached pointer.


(cherry picked from commit d939004bbd)
2024-02-25 13:47:30 +00:00
Jeff Young 74339e9a9f Support pin count and footprint filters in symbol editor.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17105
2024-02-25 13:13:54 +00:00
Jeff Young 2b09653abb Don't import invalid polygons.
If we *do* get a 2-point polygon in SVG, import it as a segment.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17091

(cherry picked from commit dba2fdb6d3)
2024-02-25 12:29:02 +00:00
Jeff Young 87944e06ac Fix missing unit initialization.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17076
2024-02-24 22:35:05 +00:00
Alex Shvartzkop 97ff48b426 Add bottom panel to have correct background in fp/sym chooser frames.
See https://gitlab.com/kicad/code/kicad/-/issues/15810
2024-02-24 15:17:28 +00:00
Alex Shvartzkop badc4e7411 Hide unused message panel in footprint/symbol chooser frames.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15810
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15889
2024-02-24 15:17:28 +00:00
Andrej Krpic 14d71c8ca6 Fix collecting of signals for S-Parameters analysis
(cherry picked from commit 006f93773c)
2024-02-23 20:35:36 +00:00
Yon Uriarte 7d5583f687 Performance UpdateDanglingState
Avoid O(N^2) by spatial sorting, don't run checks if the bounding boxes
don't overlap.
A second copy is ordered by type to help classes that only want to check
a few types having to walk the whole list.

(cherry picked from commit b7b64d959f)
2024-02-23 14:36:50 -05:00
Yon Uriarte ffd470d94d Performance SCH_EDIT_FRAME::SchematicCleanUp
Avoid O(N^2) comparisonis by spatial presorting. If bounding boxes don't
overlap there's no need to run expensive checks.

(cherry picked from commit f3c2083018)
2024-02-23 14:36:36 -05:00
Alex Shvartzkop e68df8e1d1 Performance optimizations for database libraries. 2024-02-23 17:22:20 +00:00
Alex Shvartzkop 3e26e7b646 Normalize SCH_PIN BBox to fix assert. 2024-02-23 17:22:20 +00:00
Alex Shvartzkop a13e4e7d9f Eeschema: select graphical shapes based on effective shapes. 2024-02-23 17:22:20 +00:00
Jeff Young c8495d81bb Update VDMOS models to ngspice-41 (and later) defaults.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17073
2024-02-23 16:06:55 +00:00
Roberto Fernandez Bautista 3f47e03317 Thread safety: replace ++m_modHash by IncrementModifyHash()
(cherry picked from commit d464d7995b)
2024-02-23 16:49:35 +01:00
Roberto Fernandez Bautista 9004f92689 Add cache to SCH_IO_DATABASE to improve loading performance
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17031

(cherry picked from commit 991ddfe6be)
2024-02-23 16:49:35 +01:00
Roberto Fernandez Bautista a928299ae0 Legacy libraries: De-duplicate field names on load
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16902

(cherry picked from commit 07ab18a1e6)
2024-02-23 16:49:35 +01:00
Roberto Fernandez Bautista 1a7237f38b Altium: Don't create duplicate fields
(cherry picked from commit 420413969e)
2024-02-23 16:49:35 +01:00
Roberto Fernandez Bautista b3b6637b44 Altium: Don't load library parameters with an owner for now
In Altium many objects can have parameters (including pins). For now
we will drop library parameters belonging to any sub-components of a
symbol.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17048

(cherry picked from commit 1a6e6a06eb)
2024-02-23 16:49:35 +01:00
Jeff Young adae4de438 Don't use EQUALITY flag when doing a symbol diff with library.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16944
2024-02-22 23:37:50 +00:00
Jeff Young 51848a0b43 Code cleanup and compiler warnings. 2024-02-22 23:37:45 +00:00
Jeff Young 2d7f4faf72 Set up default netclass wire & bus widths.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17024
2024-02-22 23:37:42 +00:00
Jeff Young c75bb5d01a Formatting. 2024-02-22 23:37:39 +00:00
Jeff Young df8f043c16 Improve layout of schematic colors preview.
Also, set pin name/number sizes.  Don't use defaults (which
will get plucked out of the Symbol Editor's settings).

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17043
2024-02-22 23:37:30 +00:00
Jeff Young b6036f368e When updating RefDes only update the prefix.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16991
2024-02-22 23:37:18 +00:00
Jeff Young 25291d6e3a Check known m_Desc field before m_Fields.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16971
2024-02-22 23:37:15 +00:00
Jeff Young f4a085575a Show friendly name in toolbar button tooltips.
(Don't require the same text to be put into the tooltip.
It's error-prone and also disallows us from having a separate
tooltip for toolbar buttons.)

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17009
2024-02-22 23:37:13 +00:00
Jeff Young a34b242f4e Delete empty Netclass fields only if there are others.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16997
2024-02-22 23:37:08 +00:00
Jeff Young a610542a19 Various string issues held over from 8.0 string freeze. 2024-02-22 23:36:37 +00:00
Jeff Young 2ab492474e Improve alignment tooltips. 2024-02-22 23:36:34 +00:00
Jeff Young 3caede3799 Ignore duplicate/repeat when drawing an existing item.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16885
2024-02-22 23:36:30 +00:00
Jeff Young 9d40374baf Don't capture references to local variables for CallAfter.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16934
2024-02-22 23:36:27 +00:00
Wayne Stambaugh 27911d9b5a Fix crash when changing sheet file name that contains a highlighted net.
Performing a full connectivity rebuild after changing a sheet file name
ensures that there are no stale connectivity object pointers laying around.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17011
2024-02-17 08:50:22 -05:00
Ian McInerney 206a631135 Ensure stream is valid before checking for Eagle XML tag
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16989
Fixes KICAD-7QQ
2024-02-16 11:14:10 +00:00
Marek Roszko f894a41dc2 LIB_SYMBOL::IsMulti() seems to be wrong, use the iterate conditional as the multi-unit check instead
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16932
2024-02-16 00:18:05 -05:00
Marek Roszko 9e08e6e4f1 USe setactive in cli in the LoadSchematic helper too 2024-02-16 00:08:10 -05:00
Jon Evans 7b0bb59b37 Remove hard-coded versioned env vars in most places 2024-02-15 15:31:08 +00:00
Seth Hillbrand 0775d1364a Add bezier icon
Fixes https://gitlab.com/kicad/code/kicad/issues/16830
2024-02-14 02:01:01 +01:00
Marek Roszko f73d45b0cf Add $schema prop to drc/erc 2024-02-13 19:08:55 -05:00
Mike Williams c92728715d Schematic: import schematic sheet content, allow move and undo
Otherwise, the schematic is just plopped on the screen, causing
connections and junctions to be missing that should be present.
2024-02-13 12:18:46 -05:00
Jeff Young 12c8f5b14d Update compatibility mode and save flags in ngspice.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16955
2024-02-13 14:50:15 +00:00
Marek Roszko 2afe4db945 Add some missing newlines in cli output without changing strings 2024-02-11 21:12:21 -05:00
Marek Roszko 6a37f99e94 Fix crash if we exit lib table setup
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16917
2024-02-11 21:05:23 -05:00
Marek Roszko d694bb5960 Use file name rather than path for erc/drc json and text reports 2024-02-11 20:16:22 -05:00
Alex b5982f7319 EasyEDA import: force close some line chains. 2024-02-11 23:52:56 +03:00