Commit Graph

78 Commits

Author SHA1 Message Date
Jeff Young c549a214c9 Performance: don't alloc std::vector in critical areas.
For some history, see also aa2ad3b44c
2024-06-21 19:07:46 +01:00
Mike Williams a5e2615251 Revert "SCH/LIB SYMBOL: never allow null LIB_SYMBOLs in SCH_SYMBOL"
This reverts commit 0b187e7122.
2024-06-12 13:30:29 -04:00
Mike Williams 0b187e7122 SCH/LIB SYMBOL: never allow null LIB_SYMBOLs in SCH_SYMBOL
Also always always flatten incoming lib symbols.
2024-06-10 08:36:42 -04:00
Jeff Young edc7603d2a Make it clear that GetSheets() is heavy.
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.
2024-06-06 18:00:59 +01:00
Jeff Young a6e8cfe35f Performance for large hierarchies: avoid sorting
Don't sort SCH_SHEET_LISTs if we're just scanning the doc.
2024-06-06 11:53:01 +01:00
Wayne Stambaugh c5a02fc266 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.
2024-03-09 08:50:26 -05:00
Jeff Young aef87b9796 Push thickness handling down into EDA_TEXT::SetBold().
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17077

Fixes https://gitlab.com/kicad/code/kicad/-/issues/14875
2024-02-25 17:28:52 +00:00
Jeff Young df83e24eb7 Cleanup.
It's been a long time since line style was specific to plotting.
2023-11-25 13:12:45 +00: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 30928796bd Repair new switch-based Global Update Text & Graphics.
We were forgetting to handle wire and bus labels.
2023-07-16 20:41:23 +01:00
Jeff Young a16033f624 Fix logic errors in DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS::visitItem().
(We can't exit out if it doesn't match a particular type as we haven't
checked the other types yet.  Use a switch to prevent this.)

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15206
2023-07-16 14:43:29 +01:00
Jeff Young 8f1b9119bf Upgrade some symbol editor stuff to SCHEMATIC_COMMIT.
Also renames SCHEMATIC_COMMIT to SCH_COMMIT since it's not schematic-specifc.
2023-06-09 22:41:47 +01:00
Jeff Young e698156975 Upgrade many editing actions to SCHEMATIC_COMMIT. 2023-06-09 22:41:47 +01:00
Jeff Young dcfd426333 Upgrade some dialogs to SCHEMATIC_COMMIT. 2023-06-09 22:41:47 +01:00
Wayne Stambaugh 831a6d55fc Fix potential stale pointer bug in schematic highlight connection code.
SCH_CONNECTION objects are temporary and can become stale any time the
connectivity is updated.  Keeping them around to reference later is a
bad idea.  Even if the object pointer is still valid in an SCH_ITEM in
the undo/redo buffers, comparing the pointer against another pointer as
a test to see if they are the same connection is not valid.  Saving the
connection name is safe and ensures the connection is the same even if
the pointers differ.
2023-05-16 20:06:21 -04:00
Marek Roszko aacc9746e3 Yeet the last of wxSize/wxPoint to stop leaking gdicmn everywhere 2023-02-18 22:57:18 -05:00
Jeff Young 5967ab9a4d Don't allow SCH_LABEL_LOCATE_ANY_T to steal SCH_LABEL_LOCATE_WIRE_T's items.
Fixes https://gitlab.com/kicad/code/kicad/issues/13936
2023-02-16 13:21:00 +00:00
Jeff Young 25783f3b7e Add label fields to Edit Text and Graphics Properties dialog.
Fixes https://gitlab.com/kicad/code/kicad/issues/13632
2023-01-24 00:07:40 +00:00
Seth Hillbrand e6dbca051c Force realtime connectivity on
The pressure relief valve was not useful for common work patterns as it
forced the recalculation on many common actions such as bus expansion.
This caused it to actually feel slower than with the pressure relief
valve off.

For most schematics, realtime is now fast enough to not need the valve
and for those that are extremely complex, removing the valve helps this
run more predictably
2023-01-20 15:17:57 -08:00
Jeff Young 668180f96a Add "show field names" to Global Edit Text & Graphics Properties.
Fixes https://gitlab.com/kicad/code/kicad/issues/12641
2022-10-14 23:04:09 +01:00
Jeff Young aa2ad3b44c Move KICAD_T[] to std::initializer_list<KICAD_T>. 2022-08-20 10:28:11 +01:00
Jeff Young 616e9b4f4b Be cognizant of symbol transform when setting justification.
Fixes https://gitlab.com/kicad/code/kicad/issues/11465
2022-05-26 10:54:08 +01:00
Jeff Young e80c5a4e4e Add text colour to Edit Text & Graphics Properties.
Fixes https://gitlab.com/kicad/code/kicad/issues/11459
2022-05-06 00:06:00 +01:00
Jeff Young 804ab5609e Add dash-dot-dot to Edit Text & Graphics Properties.
Also fixes a bug where textboxes and shapes  weren't correctly updated.

Fixes https://gitlab.com/kicad/code/kicad/issues/11522
2022-05-02 17:22:13 +01:00
Jeff Young e6f11c5c39 Reset outline font if bold or italic changed.
Fixes https://gitlab.com/kicad/code/kicad/issues/11462
2022-04-26 12:52:29 +01:00
Jeff Young 6b99a937d8 Look for sheet pins inside sheets.
Fixes https://gitlab.com/kicad/code/kicad/issues/11297
2022-03-31 22:10:45 +01:00
Jeff Young e68e2e973e Separate Line Properties dialog from Bus/Wire, and handle Junctions in Bus/Wire.
Fixes https://gitlab.com/kicad/code/kicad/issues/9979
2022-03-16 14:56:32 +00:00
Jeff Young 67eb138a4b Fix copy/pasta.
Fixes https://gitlab.com/kicad/code/kicad/issues/10957
2022-02-25 00:49:41 +00:00
Jeff Young 3409783d9f Break sch_text.h/.cpp into sch_text and sch_label.
Also moves SCH_NETCLASS_FLAG to SCH_DIRECTIVE_LABEL, and remaps Altium
harnesses from SCH_TEXT to SCH_DIRECTIVE_LABEL.
2022-01-28 21:38:15 +00:00
Jeff Young 267eca28cd Font support for global edit text & graphics dialogs. 2022-01-11 15:34:24 +00:00
Jeff Young c3552a940a Make sure standard OK/Cancel buttons respond to current language.
Fixes https://gitlab.com/kicad/code/kicad/issues/9635
2021-12-24 18:13:11 +00:00
Jeff Young 2bc86fa0a8 Shapes for schematic.
ADDED arc, circle and rectangle shapes for schematic.  Shapes support
line styles and fill colors.

CHANGED sheet background color in Edit Text & Graphics Properties to
fill color (and it now affects shapes).

Pushed STROKE_PARAMS down into common and moved all shapes to using it
for stroke descriptions.
2021-12-23 20:36:07 +00:00
Jeff Young 6818539f6d Repair is-selected logic in various global editors.
Fixes https://gitlab.com/kicad/code/kicad/issues/9090
2021-09-04 18:10:25 +01:00
Jeff Young 21365fff3e Disambiguate JunctionDiameter from EffectiveJunctionDiameter.
ADDED Junction Size and Color to Edit Text & Graphics properties.

The added feature is only because it's the only way to recover from
the buggy behaviour having changed all your junctions to overridden
values.

Also adds help texts to the Junction Dot Properties dialog to
specify how to get schematic dot sizes and eeschema colors.

Also fixes the terminology in the Line/Wire/Bus Properties dialog
(the default widths come from the netclasses, not from eeschema).

Fixes https://gitlab.com/kicad/code/kicad/issues/9040
2021-08-31 12:18:02 +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
Jeff Young 726f4d8016 Fix up some more cases of missing escaping for symbol names.
Fixes https://gitlab.com/kicad/code/kicad/issues/8694
2021-07-28 16:40:38 +01:00
Jeff Young 00504368d6 Better label for fieldname filter, and single undo for all sheets.
Fixes https://gitlab.com/kicad/code/kicad/issues/8704
2021-06-30 18:45:18 +01:00
Wayne Stambaugh ee3eac325d Expunge the use of the word part from Eeschema code. 2021-06-15 08:32:11 -04:00
Wayne Stambaugh fbc135e69f Rename SCH_COMPONENT to SCH_SYMBOL. 2021-06-10 10:34:49 -04:00
Jeff Young 2e3860de6f Naming conventions. 2021-05-05 22:58:40 +01:00
Jeff Young 76ba11bd86 AppendUndo needs to be set after the first undo...
... not after the first change.

Fixes https://gitlab.com/kicad/code/kicad/issues/8148
2021-04-16 18:20:55 +01:00
Jonathan Haas 846e4aed42 Fix selection filter in Edit Text and Graphics dialog
Fixes https://gitlab.com/kicad/code/kicad/issues/7966

Fixes https://gitlab.com/kicad/code/kicad/issues/8149
2021-04-10 15:49:23 +00:00
Jeff Young 8a33542bcd SCH_COMPONENT::GetField() expects a vector index, not a field id.
Check this at compile time.  Callers wanting to use an index now must
use SCH_COMPONENT::GetFields()[i] instead.

Fixes https://gitlab.com/kicad/code/kicad/issues/7757
2021-02-28 15:10:37 +00:00
jean-pierre charras 1ac81c04e5 Bugfix for "Edit text and graphic properties" dialog: vertical alignment code
erroneously checked against change in horizontal alignment UI item
2021-02-25 12:52:04 +01:00
Wayne Stambaugh 1786ae8773 Eeschema: use symbol nomenclature for object file naming. 2021-02-24 08:48:02 -05:00
Jon Evans 8135abffde Allow applying global edit actions to selected items only 2021-02-14 18:39:33 -05:00
Jeff Young a207bd97bb Naming conventions. 2020-11-17 16:05:49 +00:00
Jeff Young f0d0e17aab Prepare for MODULE -> FOOTPRINT. 2020-11-13 15:16:24 +00:00
Jeff Young bd103c133d Don't save junction colours when they're inherited.
Also fixes Edit Text & Graphics Properties to be able to clear
colours from junctions.

Fixes https://gitlab.com/kicad/code/kicad/issues/6018
2020-11-03 14:07:50 +00: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