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
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 addc5574b4
)
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
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
Jeff Young
20c00cbb21
Finish off "busses" -> "buses".
...
Fixes https://gitlab.com/kicad/code/kicad/issues/4144
2020-04-02 18:27:05 +01:00
Seth Hillbrand
ef00fa6008
Cleanup busses
...
At some point the buses were no longer being addressed in
SchematicCleanup(). This re-adds bus segments to the checklist for
segments to merge/clean
2020-01-22 05:53:40 -08: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
Ian McInerney
079423c3cc
eeschema: Remove unused include of eeschema_id.h
2020-01-03 16:04:54 +00:00
Seth Hillbrand
cda291adae
eeschema: Clean bits of DLIST
...
Removes the extra DLIST manipulation from SCH_LINE_WIRE_BUS_TOOL and
moves the static storage into class storage
2019-12-13 11:22:18 -08:00
Jeff Young
9d288968e7
Be more explicit about extent of schematic cleanups.
...
The new connectivity algorithm had a tendency to cleanup
globally, but that could insert undo records from other sheets
into the current screen's undo stack. Needless to say, this
was a recipie for segfaults.
Fixes: lp:1846247
* https://bugs.launchpad.net/kicad/+bug/1846247
2019-11-10 23:25:54 +00:00