Commit Graph

77 Commits

Author SHA1 Message Date
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
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
Jeff Young f098405218 Handle justification for vertical text when mirroring.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15036
2023-11-17 21:50:16 +00:00
Jeff Young 03953e80fc Enforce SCH_SHEET_PATH processing in (yet) more places.
Also fixes a bug where ERC testing for text variables in sheet pins
would start with the wrong sheet.

Also fixes a bug where ERC testing of similar labels would use the
wrong sheet.

Also fixes a bug where ERC testing of bus-to-net conflicts would use
the wrong sheet.

Also fixes a bug where ERC didn't process variable references when
checking hierarchical labels against sheet pins.

Also fixes a bug where ERC multiple-drivers and netclass-conflicts
tests didn't set a sheetpath.
2023-11-12 14:15:04 +00:00
Jeff Young 3819b2d5e7 Enforce SCH_SHEET_PATH processing in more places.
Making assumptions about the current SCH_SHEET_PATH has caused no end
of pain.
2023-11-11 17:46:06 +00:00
Jeff Young 7cca303f65 Expose missing properties for label shapes. 2023-10-22 12:33:55 +01:00
Jeff Young f50de028fb Make plotting of PDF property popups optional. 2023-10-21 21:52:51 +01:00
Seth Hillbrand d99641be40 ADDED: Git integration support
Adds support for project-based git integration, branch support, commit,
revert and updates

Fixes https://gitlab.com/kicad/code/kicad/issues/10441
2023-10-20 12:51:47 +00:00
jean-pierre charras 368233d6d7 EEschema: fix incorrect plot of SCH_DIRECTIVE_LABEL graphic shape.
Fixes #15675
https://gitlab.com/kicad/code/kicad/-/issues/15675
2023-09-18 09:07:51 +02:00
Jeff Young 394ab8ccb1 Implement printing and plotting for directive-specific label shapes.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15650
2023-09-14 17:43:22 +01:00
Jeff Young 0310973e3f Push TEXT_SPIN_STYLE from SCH_TEXT out to SCH_LABEL_BASE.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15444
2023-09-07 17:42:51 +01:00
Jeff Young 7b71e55ab9 Don't allow updates to shown_text outside of cacheShownText().
But also don't use cacheShownText() in c'tors, as it will not call
the subclass's version.
2023-08-07 23:22:09 +01:00
Jeff Young c30bdf9ba8 Implement second-level cache for escaped netnames.
While it's a bit of an encapsulation leak (see comment in
CONNECTION_SUBGRAPH::driverName()), it more than doubles undo/redo
performance in documents with *lots* of nets.
2023-08-07 21:44:04 +01:00
Jeff Young 5e112ca78e ADDED: parameterize font metrics and allow customization of overbar height. 2023-08-06 20:57:41 +01:00
Jeff Young 5bca002567 Swap non-temp and non-edit flags for SCH_ITEMs.
This is required to keep selected and brightened state across undo.

It's also probably required for things like IS_SHOWN_AS_BITMAP and
possibly ENTERED.  FWIW, most BOARD_ITEMs do a straight swap, including
the temp and edit flags.  But that seems like a risky change....

Also removes SyncView() call from Undo/Redo as that does a MODEL_RELOAD
which clears the selection.
2023-07-08 18:37:47 +01:00
Jon Evans bf2e9f8261 Properties for SCH_LINE
Also rename an incongruous setter
2023-06-24 20:08:42 -04:00
Jon Evans 3a0f8214fa ADDED: Properties panel for schematic editor
Initial infrastructure work; follow-ons will add more
properties for schematic items.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/6351
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14105
2023-06-22 22:32:24 -04:00
jean-pierre charras 03e846d8ea Eeschema: fix block mirroring of fields attached to labels (all types)
Fix incorrect orientation of the graphic shape of SCH_DIRECTIVE_LABEL items
after mirroring the item.
Similar to commit 898d88cc, but for block mirroring.
Fixes #14758
https://gitlab.com/kicad/code/kicad/-/issues/14758
2023-05-23 09:42:24 +02:00
jean-pierre charras 898d88cc11 Eeschema, directive labels: fix some issues:
- honor mirroring of fields attached to labels (all types)
- fix incorrect orientation of the graphic shape of SCH_DIRECTIVE_LABEL items
after mirroring the item.
Fixes #14758
https://gitlab.com/kicad/code/kicad/issues/14758
2023-05-18 10:28:27 +02:00
Jeff Young b41d446f58 Fix a bunch more issues with sheetpaths and allowExtraText.
A sheetpath is required to correctly resolve text variables.
Depending on currentSheet is rife with bugs.

There are many places where we do *not* want to be prepending
field names to the field values, such as netlisting,
building PDF hypertext menus, etc.

Also, Find/Replace needs to work on unresolved text, as
that's what we're going to display (and if replace nuked
your variable references you wouldn't be happy).
2023-05-05 17:23:52 +01:00
Jeff Young 4b0027a5d7 Implement better sheet-path awareness for label text var resolution. 2023-04-28 00:32:49 +01:00
jean-pierre charras de579af352 SCH_LABEL_BASE::SetPosition(): ensure field positions are also handled.
Fixes #14520
https://gitlab.com/kicad/code/kicad/issues/14520
2023-04-12 11:15:17 +02:00
jean-pierre charras 51d46c0e73 plotters rework: add plot fct to use TEXT_ATTRIBUTES class to pass text settings
Old PLOTTER::Text is not (yet) removed, but it use negative text size
to mirrored text, which is not really compatible with some plotters (especially PDF).
Using TEXT_ATTRIBUTES is much easy and much better,
so PLOTTER::PlotText() is added.
Note: "old" PLOTTER::Text() is not removed yet.
2023-02-26 14:44:53 +01:00
Jeff Young 2a5bb71fbd ADDED operating point text variables for labels and symbols.
ADDED formatting for cursors and operationg points

Also fixes a bunch of bugs to make the new cursors work with .ac sims.

Fixes https://gitlab.com/kicad/code/kicad/issues/11253

Fixes https://gitlab.com/kicad/code/kicad/issues/6965
2023-02-11 21:11:07 +00:00
Jeff Young 26c821962f Simplify and regularize text variable substitution architecture.
EDA_ITEMs are responsible for giving their parent a crack at it if
they failed to resolve it.  This recurses all the way up to the schematic/
board, and then to the project.

Cross-reference handling is also move to the EDA_ITEMs.  It must be done
before bubbling up so that we don't end up in loops.  (The aDepth parameter
will break the loop, but without having done anything useful.)

Fixes https://gitlab.com/kicad/code/kicad/issues/13541
2023-01-17 17:05:41 +00:00
Marek Roszko d2c0f5fc2a More wxSing 2023-01-16 23:14:38 -05:00
Jon Evans c530bdb5a1 Rename GetSelectMenuText to GetItemDescription
This descriptive text is used for many more things than
just the select menu these days.
2023-01-11 22:27:44 -05:00
Jeff Young e927328ecf Don't rely on field ID for intersheetrefs.
It will be -1, for instance, after a duplicate.
2022-12-28 15:15:54 +00:00
jean-pierre charras a57ca559aa sch_field named Intersheetref in global labels: fix incorrect behavior when loading a sch file.
This is a special field, always existing, that cannot be handled like other fields.
Also avoid using translated names when initializing the field name.
Translated names can be used only in UI, not in internal data.
fixes #13113
fixes #13125
2022-12-11 18:56:14 +01:00
Jeff Young ae9405a4d3 Handle string escaping for Find/Replace in labels.
Fixes https://gitlab.com/kicad/code/kicad/issues/12789
2022-11-05 10:23:12 +00:00
Wayne Stambaugh 6a0db3e7e2 Fix Coverity warnings. 2022-10-26 14:39:44 -04:00
Jeff Young cef7cd8f7c Move default font to RENDER_SETTINGS.
Fixes https://gitlab.com/kicad/code/kicad/issues/12723
2022-10-22 21:32:42 +01:00
jean-pierre charras 63002cec57 Do not add a title/comment in mandatory field strings when writting netlists.
This is mainly for "Sheetfile" property because current it is the only one
that has a title when plotting/drawing it.
2022-10-22 12:50:26 +02:00
Jeff Young 838bd7292c Default intersheet ref field visibility to off, and show warning
when user tries to edit via Symbol Properties or Field Propeties.
2022-09-26 21:00:46 +01:00
Jeff Young 10d8db482e Init intersheet refs field pos to local {0,0}, not global {0,0}
Fixes https://gitlab.com/kicad/code/kicad/issues/12517
2022-09-26 21:00:46 +01:00
Marek Roszko f2377b447d Add hierarchical label group in pdf outline 2022-09-24 22:36:06 -04:00
Jeff Young 5fc02a63a3 Use netclass colours for label graphics, text and fields.
Fixes https://gitlab.com/kicad/code/kicad/issues/4984
2022-09-24 23:51:40 +01:00
Alex 58b03b0a1c Small optimizations. 2022-09-22 17:22:04 +00:00
Jeff Young 64a6fc0fd4 Push UNITS_PROVIDER down into a low-level mixin.
This allows us to also construct cheap UNIT_PROVIDERs for specific
tasks when necessary.
2022-09-19 17:10:59 +01:00
Jeff Young 45d6b4a9fc Readability improvements. 2022-09-19 11:18:20 +01:00
Marek Roszko 61e11d6896 Strip out Mils2Iu 2022-09-16 21:09:27 -04:00
Mark Roszko b00178adb3 Nuke base_units from orbit 2022-09-16 04:38:10 +00:00
Jeff Young 4973816f90 Fix errant format specifier. 2022-09-09 18:09:09 +01:00
jean-pierre charras 2033d9a6c5 SCH_LABEL_BASE::ResolveTextVar(): Protect against null pointer
It can happen in QA tests.
2022-09-08 17:12:32 +02:00
Jeff Young 9bed145475 Allow the current sheet a chance to resolve text variables.
Fixes https://gitlab.com/kicad/code/kicad/issues/8692
2022-09-08 14:10:18 +01:00
Jeff Young b80824951e Clean up some of the PDF hypertext stuff, and add opening HTTP[S] urls.
Fixes https://gitlab.com/kicad/code/kicad/issues/12153
2022-09-06 13:59:52 +01:00
Jeff Young 8afc1db7a6 Property popups for symbols, labels, sheets, and footprints in PDF.
Fixes https://gitlab.com/kicad/code/kicad/issues/5521
2022-09-06 13:59:52 +01:00
Jeff Young 12171603d5 Replace missing LAYER_DANGLING from global label view layers.
Fixes https://gitlab.com/kicad/code/kicad/issues/11796
2022-09-04 10:34:32 +01:00
Jeff Young f17a865593 Move EDA_ITEM hitTest to BOX2I. 2022-08-31 17:18:45 +01:00
Jeff Young 2dc6300501 Move EDA_ITEM bounding boxes to BOX2I. 2022-08-31 10:16:55 +01:00