Jeff Young
d513640572
Behave (or assert) when source or target are null or dirty.
...
(cherry picked from commit 7f8e397dfb
)
2023-11-06 17:00:37 +00:00
Jeff Young
8c695e5044
Clean up references in RN_NETs when garbage collecting CN_ITEMs.
...
(cherry picked from commit fb59f83683
)
2023-11-06 17:00:37 +00:00
Jeff Young
2f8e846b9e
Adjust colours in appropriate direction depending on background.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15841
(cherry picked from commit 3f0067cbaa
)
2023-10-14 15:33:00 +01:00
Jeff Young
4ad6244d8d
Don't blindly cast to PCBNEW_SETTING: we may be in CVPCB....
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15153
(cherry picked from commit 5bf257cdf6
)
2023-07-16 19:45:13 +01:00
Jeff Young
97ffb60f23
Don't consider shorted items when opitmizing ratsnest.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14715
(cherry picked from commit 80aef37cc4
)
(cherry picked from commit dc50b7b065
)
2023-05-28 19:38:27 +02:00
Seth Hillbrand
ee19354484
Revert "Don't consider shorted items when opitmizing ratsnest."
...
This reverts commit dc50b7b065
.
2023-05-24 08:54:16 -07:00
Jeff Young
dc50b7b065
Don't consider shorted items when opitmizing ratsnest.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14715
(cherry picked from commit 80aef37cc4
)
2023-05-23 09:40:32 +01:00
Jeff Young
1d37d3fdf7
Performance.
...
(cherry picked from commit 2793bb1d68
)
2023-04-16 15:38:32 +01:00
Jeff Young
f3db64af05
Multi-threading safety.
...
(Possible fix for KICAD-74.)
(cherry picked from commit b76ef8c7e2
)
2023-04-16 15:38:22 +01:00
Jeff Young
10a27156c2
Defenses in depth for ratsnest drawing.
...
(cherry picked from commit e60837ec95
)
2023-03-14 12:00:03 +00:00
Alex
e03a91c9c7
Reduce static ratsnest opacity when moving items; tweak colors.
2022-12-07 21:01:56 +03:00
Jeff Young
19eab62516
More safety around ratsnest state.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/13011
2022-11-30 13:00:21 +00:00
Jeff Young
e62463b52b
Don't store optimized anchors in CN_ITEMs.
...
It appears that multiple RN_NETs can refer to the same CN_ITEMs meaning
that we run into threading problems if we modify the CN_ITEM.
Fixes https://gitlab.com/kicad/code/kicad/issues/12968
2022-11-23 00:46:06 +00:00
Jeff Young
50089ce558
Fix errors in handling of std::shared_ptrs.
...
We can't reset to a pointer owned by another std::shared_ptr.
2022-11-22 13:14:00 +00:00
Jeff Young
226529235c
Mostly const safety, but also performance opt. by avoiding shared_ptr overhead.
2022-11-22 12:21:30 +00:00
Jeff Young
11130bfd88
Backing out earlier fix in favour of fixing std::shared_ptr usage.
...
Assigning to a reference to a std::shared_ptr does not update the
reference to a different std::shared_ptr; it changes what the
std::shared_ptr points to.
Fixes https://gitlab.com/kicad/code/kicad/issues/12968
2022-11-21 21:56:17 +00:00
Jeff Young
106508f266
Split ratsnest optimization into separate parallel threads.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/12968
2022-11-21 18:50:44 +00:00
Alex
2577ebb94d
Increase dynamic ratsnest opacity for better visibility.
2022-10-07 21:50:12 +00:00
Seth Hillbrand
87171f53c7
Speedup dynamic ratsnest
...
Removes some unneeded calculations and threads the remaining.
Threading was previously removed to avoid overhead issues with small
boards. This is no longer needed with the thread pool implementation
Fixes https://gitlab.com/kicad/code/kicad/issues/12131
2022-10-04 17:06:45 -07:00
Jeff Young
f095453d3e
Optimize ratsnest line endings for zones.
2022-09-30 19:04:54 +00:00
Jeff Young
d67437a2aa
Move ratsnest exclusion processing to a post-pass.
...
Also fixes a few cases where we were unnecessarily rebuilding
connectivity more than once for an operation.
2022-09-29 17:08:49 +01:00
Alex
dc07ab9df1
Replace PROF_COUNTER with PROF_TIMER in some conditional places.
2022-09-27 14:07:47 +00:00
Jeff Young
c30a557810
ADDED netclass assignment from PCB canvas.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5975
2022-09-03 19:29:59 +01:00
Tomasz Wlostowski
b6fc96c1d5
pcbnew: check for null SETTINGS in RATSNEST_VIEW_ITEM (prevents crash in the P&S debug tool)
2022-03-03 01:02:00 +01:00
Jeff Young
c4e133fdf7
Auto reduction and std::shared_ptr cover types reduction.
...
And a performance optimization or two resulting from above. (Using
const& intead of copying std::shared_ptrs.)
2022-02-13 12:04:03 +00:00
Marek Roszko
c4c56de708
Neurotically update position wxPoint usages
2022-01-01 11:55:51 -05:00
Jeff Young
5e4a704155
Remove some more duplicated preferences.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/10112
2021-12-26 13:37:28 +00:00
Jeff Young
b4c5e64db2
Exclusions for Unconnected Items; Markers & exclusions for Parity checks
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5589
Fixes https://gitlab.com/kicad/code/kicad/issues/5504
2021-12-24 21:10:28 +00:00
Jeff Young
9ee28ea8f5
Flatten out some more preferences.
2021-12-24 15:43:20 +00:00
Seth Hillbrand
fbdb2bd91f
Fix broken refactor from 0e65fe5
...
'auto' here was utilizing a copy constructor to avoid assigning a new
value to the underlying shared pointer
2021-12-07 12:38:05 -08:00
Jeff Young
0e65fe5d8d
Coding standards and commenting.
2021-12-01 23:15:37 +00:00
Jeff Young
f221220fe2
Rename layer ids file.
...
It hasn't had anything to do with colors or visibility for some time
now.
2021-07-29 16:03:25 +01:00
Jeff Young
096e342386
Prefix TRACK, ARC and VIA.
2021-06-11 22:07:02 +01:00
Jon Evans
d087ede21d
Don't show ratsnest on layers hidden by contrast mode
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7667
2021-02-23 20:07:46 -05:00
Jeff Young
a3b9e8ddb4
Round 2 of Worksheet -> Drawing Sheet.
2021-02-23 11:57:44 +00:00
Wayne Stambaugh
6a39b81647
Fix the last of broken Doxygen comment specifiers.
2021-01-27 17:39:44 -05:00
Jon Evans
1e33928b96
Fix issues with zone filling connectivity locking
...
Two issues found with the locking system used to prevent access to
stale connectivity data during the zone fill process:
1) a std::mutex has undefined behavior if you try to use it to guard
against access from the same thread. Because of the use of wx event
loops (and coroutines) it is entirely possible, and in some situations
inevitable, that the same thread will try to redraw the ratsnest in the
middle of zone refilling.
2) The mutex was only guarding the ZONE_FILLER::Fill method, but the callers
of that method also do connectivity updates as part of the COMMIT::Push.
Redrawing the ratsnest after the Fill but before the Push will result in
stale connectivity pointers to zone filled areas.
Fixed (1) by switching to a trivial spinlock implementation. Spinlocks would
generally not be desirable if the contention for the connectivity data crossed
thread boundaries, but at the moment I believe it's guaranteed that the reads
and writes to connectivity that are guarded by this lock happen from the main
UI thread. The writes are also quite rare compared to reads, and reads are
generally fast, so I'm not really worried about the UI thread spinning for any
real amount of time.
Fixed (2) by moving the locking location up to the call sites of
ZONE_FILLER::Fill.
This issue was quite difficult to reproduce, but I found a fairly reliable way:
It only happens (for me) on Windows, MSYS2 build, with wxWidgets 3.0
It also only happens if I restrict PcbNew to use 2 CPU cores.
With those conditions, I can reproduce the issue described in #6471 by
repeatedly editing a zone properties and changing its net. The crash is
especially easy to trigger if you press some keys (such as 'e' for edit)
while the progress dialog is displayed. It's easiest to do this in a debug
build as the slower KiCad is running, the bigger the window is to trigger this
bug.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6471
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7048
2021-01-18 13:22:12 -05:00
Jeff Young
3fd128a75b
Performance enhancements.
2021-01-08 00:46:55 +00:00
Marek Roszko
97b5cff5fe
Remove redundant message panel SetMsgPanel
...
SetMsgPanel( m_pcb ) proceeded to erase and recreate the msg panel anyway...
2020-12-08 00:35:37 -05:00
Marek Roszko
b45eb56ddf
Cleanup some msg panel usage using the no longer support colors
...
The color was being passed to the aPadding param now.....
2020-12-08 00:34:36 -05:00
Jeff Young
84dd5108ba
Remove some "class_" prefixes from files.
2020-11-13 15:16:23 +00:00
Marek Roszko
b2e9f6987d
Split base_struct into eda_item and eda_rect
2020-10-13 21:24:50 -04:00
jean-pierre charras
0b23cb7dbb
more cleanup about removing useless include
2020-10-03 15:26:03 +02:00
Jeff Young
6abe68fff0
Cleanup. No changes to execution.
2020-09-30 23:07:12 +01:00
Jeff Young
4a0d469cec
Back out zone layer misunderstanding and make types clearer.
2020-09-23 20:02:21 +01:00
Jon Evans
147540b3bb
ADDED: Control to only show ratsnest for visible layers
2020-09-07 16:43:43 -04:00
Seth Hillbrand
4e08ec79dc
pcbnew: Don't skip adjacent points
...
std::make_reverse_iterator already accounts for the difference in
directional representation
Fixes https://gitlab.com/kicad/code/kicad/issues/5392
2020-08-28 11:53:54 -07:00
Jon Evans
bd14f8a82a
ADDED: New appearance control widget for PcbNew
...
Featuring:
- Layer view presets
- Per-type opacity for tracks, vias, pads, zones
- Net and netclass color and visibility controls
CHANGED: Simplified object visibilty controls
Fixes https://gitlab.com/kicad/code/kicad/-/issues/1951
Fixes https://gitlab.com/kicad/code/kicad/-/issues/1981
Fixes https://gitlab.com/kicad/code/kicad/-/issues/2003
Fixes https://gitlab.com/kicad/code/kicad/-/issues/2173
Fixes https://gitlab.com/kicad/code/kicad/-/issues/2254
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4325
2020-08-15 15:24:28 -04:00
Seth Hillbrand
4aef369ca2
Remove accidentally committed test file
2020-07-18 13:03:22 -07:00
Jon Evans
d248736f08
Draw ratsnest with colors if color data is available
2020-07-10 21:37:53 -04:00