Seth Hillbrand
0586f02f00
Move wire/junction actions out of SCHEMATIC
...
They are tool actions and require that the tool holder is valid, so they
really need to be where this is only ever true
Fixes https://gitlab.com/kicad/code/kicad/-/issues/21510
2025-08-19 15:47:54 -07:00
Dhineshkumar S
f650999004
Eeschema: Add option to show unconnected wire crossings as hop-overs.
2025-06-15 16:53:40 +02:00
Marek Roszko
1da8ddbadd
Move CleanUp to SCHEMATIC
2025-06-04 20:33:48 -04:00
Marek Roszko
fcc09a5ce6
Move BreakSegment(s/OnJunction) out of SCH_EDIT_FRAME
2025-06-04 20:33:47 -04:00
Jeff Young
f58fc0b952
Rewrite GROUP undo based on uuids.
...
This also removes the GROUP/UNGROUP-specific undo actions.
This also fixes a bunch of undo bugs when duplicating
group members, creating pins, etc.
This also fixes some undo bugs when dividing wires etc.
This also fixes some bugs with new sch items not
being created within an entered group.
2025-05-21 14:24:59 +01:00
Jeff Young
5996cffabc
EE -> SCH (no functional changes)
2025-03-13 13:15:47 +00:00
Seth Hillbrand
0b2d4d4879
Revise Copyright statement to align with TLF
...
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
2025-01-01 14:12:04 -08:00
Jeff Young
c549a214c9
Performance: don't alloc std::vector in critical areas.
...
For some history, see also aa2ad3b44c3e533cf00a5077db17fb0ee7e302eb
2024-06-21 19:07:46 +01:00
Yon Uriarte
f3c2083018
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.
2024-02-23 19:21:44 +00:00
Seth Hillbrand
0f44876205
Thou shalt not modify the container over which you interate
...
Lest the memory gremlins are loosed upon the world.
Always use an intermediate container when collecting items to remove.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15281
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15195
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15321
2023-08-02 15:59:56 -07:00
Jeff Young
922f7128a9
Move item updating and view refresh to SCH_COMMIT::Push().
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15132
2023-07-07 15:40:01 +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
Roberto Fernandez Bautista
c4bde9c7e8
Extract SCH_LINE::BreakAt( aP ) from SCH_EDIT_FRAME::BreakSegment
2023-01-15 19:17:40 +01:00
Roberto Fernandez Bautista
7332c0c54d
Move SCH_EDIT_FRAME::GetSchematicConnections into SCH_SCREEN::GetConnections
2023-01-15 19:17:38 +01:00
Roberto Fernandez Bautista
64105dcf84
Extract GetBusesAndWires function out of SCH_EDIT_FRAME::BreakSegments
...
This function is called by SCH_EDIT_FRAME::AddJunction
2023-01-15 19:17:38 +01:00
Mike Williams
6816ee937a
Flags: remove unused IS_DRAGGING
2022-12-28 12:27:57 -05:00
Mike Williams
6cc17e4a16
Schematic: new flag IS_BROKEN for trimming BreakSegment danglers
2022-12-28 12:27:57 -05:00
Jeff Young
f00ec339fd
Don't set IS_NEW flags during clean-up operations.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/13252
2022-12-24 11:17:13 +00:00
Mike Williams
5e72a1008b
Schematic: don't trim unchanged segments that are connected
...
Previously if you had a wire with two unconnected ends and dragged the
end of another wire to connect with one end, it would delete the first
wire.
2022-12-13 09:03:23 -05:00
Jeff Young
7e0ba42f0e
Bug fixes for dragging labels attached to wires in orthogonal mode.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/12677
2022-11-25 15:05:15 +00:00
Jeff Young
2dc6300501
Move EDA_ITEM bounding boxes to BOX2I.
2022-08-31 10:16:55 +01:00
Jeff Young
aa2ad3b44c
Move KICAD_T[] to std::initializer_list<KICAD_T>.
2022-08-20 10:28:11 +01:00
Seth Hillbrand
a365afde3c
Ensure merged line gets selected if either parent is
...
We were only checking for the selection of a single line that gets
merged. This prevents the merged line from being highlighted but not
selected after merging
Fixes https://gitlab.com/kicad/code/kicad/issues/10202
(cherry picked from commit addc5574b483f00a956d5797a83b90bd754637da)
2022-01-01 16:53:52 -08:00
Marek Roszko
c4c56de708
Neurotically update position wxPoint usages
2022-01-01 11:55:51 -05: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
5d751bef74
Be cognizant of connectivity dirtiness when cloning wires.
...
While the root case is wires, it really applies to all SCH_ITEMs.
Fixes https://gitlab.com/kicad/code/kicad/issues/9628
2021-11-25 01:24:35 +00:00
Jeff Young
996a5b85a6
Overhaul IsJunctionNeeded logic to support all the different cases.
...
Several clients were using this with different needs. The API is
now more explicit (and there are more options under the hood).
Fixes https://gitlab.com/kicad/code/kicad/issues/9518
2021-11-04 12:57:16 +00:00
Seth Hillbrand
854472d550
Prevent automatic RTree recaching
...
Calling UpdateItem() may be performed by in a common loop, e.g. for(
SCH_ITEM* item : GetScreen()->Items() ) or similar. We cannot call
GetScreen()->Update( SCH_ITEM* ) in this routine as it will remove and
re-add the item to the RTree, invalidating iterators. If needed, the
items need to be cached to an external container before updating
Fixes https://gitlab.com/kicad/code/kicad/issues/9318
2021-10-05 20:13:15 -07:00
Wayne Stambaugh
cb72da294a
More NULL expunging.
2021-07-16 16:13:41 -04:00
Jeff Young
0598c82972
Terminology (use present tense for flags).
2021-05-31 12:26:44 +01:00
Wayne Stambaugh
1786ae8773
Eeschema: use symbol nomenclature for object file naming.
2021-02-24 08:48:02 -05:00
Jeff Young
b938df0e46
Coding policy.
2021-02-23 12:49:02 +00:00
Seth Hillbrand
24795f5b12
Fix overzealous breakSegments()
...
We cannot break segements that are merely close or on endpoints, so we
filter these prior to the break routine. Failing to do this was
overloading our undo stack with bogus values
Fixes https://gitlab.com/kicad/code/kicad/issues/7553
Fixes https://gitlab.com/kicad/code/kicad/issues/7557
Fixes https://gitlab.com/kicad/code/kicad/issues/7554
2021-02-16 10:12:30 -08:00
Seth Hillbrand
02c7fcdc84
Fix BreakWire tool
...
Adds ability to start new commit to eeschema, allowing all
AddItemsToUndoList to always append without foreknowledge. Keeps newly
split wires on the tool until placed
Fixes https://gitlab.com/kicad/code/kicad/issues/7512
2021-02-12 17:17:12 -08:00
Seth Hillbrand
b2cd1fddf9
Prevent invalidating iterators
...
When iterating over RTree, we cannot modify the RTree without
invalidating our iterators, so we use a temporary structure to hold the
schematic items
Fixes https://gitlab.com/kicad/code/kicad/issues/7228
2021-01-23 13:41:00 -08: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
jean-pierre charras
976b7e1c47
Eeschema: Move last netlist code to netlist_exporters folder
2020-10-26 18:40:58 +01:00
Marek Roszko
1c0700fbc4
Quiet gcc warning about assignment
2020-10-24 00:50:02 -04:00
Jeff Young
176f461b2c
Fix a corner case of wire merging.
...
We want to look for a junction before merging two touching colinear
segments, but the old code would also check for a junction when
merging two overlapping segments, which is not what you want.
Fixes https://gitlab.com/kicad/code/kicad/issues/5960
2020-10-21 18:51:47 +01:00
Jeff Young
339fa5e0e3
Hack around the mess that we've made of line styles. :(
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5960
2020-10-21 18:51:47 +01:00
Marek Roszko
12d21e34e2
Remove trigo.h from eda_text.h
2020-10-13 23:37:48 -04:00
jean-pierre charras
7865d8de43
more cleanup about removing useless include
2020-10-02 15:50:46 +02: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
Mark Roszko
1082402b33
Convert UNDO_REDO_T to an enum class
2020-08-26 18:04:32 +00:00
Seth Hillbrand
ee5c991d2f
eeschema: Ensure all wires are joined
...
When running the cleanup routine, we should check that we haven't
changed our lines during the process. If we have, we run again to pick
up the new merges
Fixes https://gitlab.com/kicad/code/kicad/issues/5265
2020-08-20 06:49:05 -07:00
Jeff Young
827138f6b4
Remove left-over debug code.
2020-08-10 14:17:17 +01:00
Jeff Young
f4ab14f32d
Performance improvements for SchematicCleanup().
...
Fixes https://gitlab.com/kicad/code/kicad/issues/4563
2020-08-10 12:41:52 +01:00
Jeff Young
7340c97ef9
Undo for schematic-wide operations.
...
Editing value/footprint fields of multi-unit components.
Find/Change.
Annotation.
Back annotation.
Fixes https://gitlab.com/kicad/code/kicad/issues/2122
Fixes https://gitlab.com/kicad/code/kicad/issues/4869
Fixes https://gitlab.com/kicad/code/kicad/issues/3933
Fixes https://gitlab.com/kicad/code/kicad/issues/4871
Fixes https://gitlab.com/kicad/code/kicad/issues/3899
2020-07-13 12:32:17 +01:00