Seth Hillbrand
4a730e6c54
pcbnew: refactor connectivity locking
...
Locks protect the std::set in each item. Devolving the mutex to the
CN_ITEM allows multiple threads to make simultaneous connections to
different items where they do not conflict.
2018-10-12 17:07:31 -07:00
Seth Hillbrand
59adb109a6
Organizing connectivity
...
Moved large routines out of headers in into cpp. Moved trivial routines
into headers.
2018-10-12 16:31:09 -07:00
Seth Hillbrand
cfaf7c1f23
pcbnew: re-organizing connectivity
...
The connectivity files were unwieldy. This separates them logically
into data, algo and items where the items classes are those that hold,
surprise, surprise, the items, lists and clusters.
2018-10-12 16:31:09 -07:00
Seth Hillbrand
4460313104
pcbnew: Separating connectivity to subdir
2018-10-12 16:31:09 -07:00
Seth Hillbrand
9e4cad666e
pcbnew: Code Cleanup removing unused fns
...
IsDirty() is generic, so we keep the clearer m_items.isDirty() sub
function and clear out old defs.
2018-10-12 16:31:09 -07:00
Seth Hillbrand
cc776f71a9
pcbnew: Code cleanup
...
Moving functions to std:: algorithms where feasible to reduce the code
burden.
2018-10-12 16:31:09 -07:00
Jeff Young
6c34fdefd7
Better exception handling and context locking for GAL.
...
This prevents deadlocks when exceptions are thrown and the context
ends up not getting unlocked.
It also removes an earlier hack to try and minimize this which
didn't work anyway.
2018-10-12 23:44:49 +01:00
Tomasz Włostowski
a676034e36
OPENGL_GAL::DrawGrid(): flush drawing buffer after drawing small crosses grid so that it's correctly composited
...
Fixes: lp:1797642
* https://bugs.launchpad.net/kicad/+bug/1797642
2018-10-12 23:52:35 +02:00
Tomasz Włostowski
22300e4f02
Null pointer check in FOOTPRINT_LIST::GetInstance()
2018-10-12 23:51:31 +02:00
Tomasz Włostowski
e988cd9c25
Fixed crash in footprint chooser in eeschema triggering in standalone/no-pcbnew mode
...
Fixes: lp:1797644
* https://bugs.launchpad.net/kicad/+bug/1797644
2018-10-12 23:43:08 +02:00
Tomasz Włostowski
30f0e93dbb
Synchronize the GAL view after invoking 'autoplace fields' tool
...
Fixes: lp:1797268
* https://bugs.launchpad.net/kicad/+bug/1797268
2018-10-12 23:27:39 +02:00
Tomasz Włostowski
7f132ca261
EDA_DRAW_FRAME: avoid cursor flickering in GAL when changing cursor size
...
Fixes: lp:1797437
2018-10-12 23:20:28 +02:00
Tomasz Włostowski
711b278248
gal/opengl: handle single-pixel line width clamping in hardware (new shader). Correct grid rendering in GAL for pixel-sized lines
2018-10-12 19:13:54 +02:00
John Beard
b64c6dbf35
Use wxCHECKs to protect non-position TOOL_EVENTS
...
Getting the position of a non-position TOOL_EVENT will
now result in a wxCHECK, and a null-position (0,0) will
be returned. The new interface HasPosition() can be used
to determine if a call to a position function is safe to
make from the caller.
Fixes the underlying danger behind lp:1796045, which has
already been neutralised by a4966adb6
, which avoids calling
the Position() functions when the TOOL_EVENT is not known
to be a position.
Fixes: lp:1796045
* https://bugs.launchpad.net/kicad/+bug/1796045
2018-10-12 09:08:07 -07:00
jean-pierre charras
dbc9130da9
Fix: 3D footprint preview does not zoom using mouse wheel (Windows specific)
...
This was due to clicking on the preview canvas does dot give the focus to the canvas on Windows.
Now the focus is set when clicking on this canvas.
Fixes: lp:1794090
https://bugs.launchpad.net/kicad/+bug/1794090
2018-10-12 13:41:44 +02:00
Seth Hillbrand
915d2ed374
pcbnew: Zone tool follows active layer
...
Refactor the polygon event loop into its parent function to allow access
to the params structure. Active layer now updates the drawing layer for
add/cutout zones.
Fixes: lp:1797483
* https://bugs.launchpad.net/kicad/+bug/1797483
2018-10-11 21:16:05 -07:00
Seth Hillbrand
92758ea4ef
eeschema: Fix minor compile warning
2018-10-11 15:31:10 -07:00
Seth Hillbrand
4f672f0d39
Fixing a number of dynamic_casts
...
Dynamic casts should only be used when we explicitly check for the
resulting pointer to be NULL. Where we know the class is castable we
can use static_cast, save on overhead and ensure our resulting pointer
is non-null.
2018-10-11 15:24:12 -07:00
Seth Hillbrand
ddea4e11d1
3d-viewer: Fix intersection bug
...
Bounding box check always returned false, leading to incorrect BBox
checks when one bbox is interior to the other
2018-10-11 14:47:06 -07:00
Seth Hillbrand
dff92f915c
eeschema: Formatting grid table
...
Missing breaks could cause grid table to return odd text for bad values.
With the breaks, odd values are flagged for fixing
2018-10-11 14:45:23 -07:00
Seth Hillbrand
d03b08a03f
gerbview: Prevent NULL dereference
...
There was a possible NULL dereference when executing tool_up even
though we should never hit it, we protect against bad files.
Also converts a couple untranslated error strings.
2018-10-11 14:23:07 -07:00
Seth Hillbrand
a16e21665a
view_layers: Initialize variables
...
Fixes a couple spots where uninitialized variables cause unknown results.
2018-10-11 14:08:35 -07:00
Seth Hillbrand
bfa7f16b44
Wrap printfs in DBG defines
...
This places the remaining printf statements behind DBG() macros to
suppress their output on release builds. We should remove these prior
to 5.1
2018-10-11 13:32:20 -07:00
Jeff Young
a69635f539
Adjustment to net selector list sizing for GTK.
...
Thanks to John Beard.
2018-10-11 18:53:00 +01:00
Jeff Young
9f7bc6a9f9
A bit of a hack to keep OpenGL from puking.
2018-10-11 18:53:00 +01:00
Jeff Young
732e0b0bf8
Remove extra rebuild of toolbar.
...
It's called from CommmonSettingsChanged() anyway.
2018-10-11 18:53:00 +01:00
Jeff Young
d9bf1550e4
Improve slightly confusing error message.
2018-10-11 18:53:00 +01:00
jean-pierre charras
4904ece0b5
eeschema gal: keep grid visibility setting when switching between back-ends
2018-10-11 18:45:18 +02:00
Seth Hillbrand
4d8534a7a6
libedit: Prevent segfault when deleting part
...
emptyScreen() sets the current part to NULL. This gracefully handles
the case by allowing a cleared screen when no part is currently
selected.
2018-10-11 09:22:54 -07:00
jean-pierre charras
5c8c1cdb8f
Eeschema doesn't show highlight net until a screen redraw is made.
...
Fixes: lp:1796989
https://bugs.launchpad.net/kicad/+bug/1796989
2018-10-11 14:19:29 +02:00
Jeff Young
94cc1efbcc
Clear filter when poping up net selector.
...
Even when useful it's unexpected, and GTK has issues with focus
and selection inside the control, making it hard to clear.
2018-10-11 11:58:39 +01:00
Jeff Young
ff85798918
Increase list-item padding for GTK net selector.
2018-10-11 11:58:39 +01:00
jean-pierre charras
bea75753dd
Eeschema fix: highlight component from pcbnew doesn't switch sheets
...
Fixes: lp:1797249
https://bugs.launchpad.net/kicad/+bug/1797249
2018-10-11 11:28:07 +02:00
jean-pierre charras
0dfd0c5f52
Minot cosmetic enhancement
2018-10-11 11:26:59 +02:00
Ronnie Gaensli
ab1f016132
Fix assert freeze of eeschema when ToHSV, h is Nan
...
Fixes: lp:1797006
* https://bugs.launchpad.net/kicad/+bug/1797006
2018-10-10 21:22:26 +02:00
Jeff Young
a0b8755f47
Filter <space> out of net filter box.
2018-10-10 19:49:06 +01:00
Jeff Young
01843290fc
Exclude space from net filter.
2018-10-10 19:49:06 +01:00
Jeff Young
609d497870
Remember settings in Global Track & Via Properties dialog.
2018-10-10 19:49:06 +01:00
Tomasz Włostowski
0090bea24e
eeschema-gal: cache & update bboxes of EDA_ITEMS on each redraw
2018-10-10 17:27:21 +02:00
Tomasz Włostowski
576b918351
BOX2: added compare operators
2018-10-10 17:26:32 +02:00
jean-pierre charras
9b027628ef
Symbol editor: Fix usability issues of mirror and rotation commands
...
Fix also mirrorX and mirrorY command to have the same behavior as the schematic editor
Fixes: lp:1797090
https://bugs.launchpad.net/kicad/+bug/1797090
2018-10-10 16:42:58 +02:00
Jeff Young
06dccf715d
Code cleanup.
2018-10-10 14:28:03 +01:00
Jeff Young
14721829d7
Hook up keyboard events to parent combobox of net selector.
2018-10-10 14:02:25 +01:00
Jeff Young
a02e83ebdb
Remove deleted footprints from selection.
...
Fixes: lp:1797001
* https://bugs.launchpad.net/kicad/+bug/1797001
2018-10-10 10:59:50 +01:00
Jeff Young
ab67d2f81a
Another go at fixing units changes for rulers.
...
The previous fix only worked for hot-key changes. This should
include using the toolbar, menu, etc.
2018-10-10 10:59:50 +01:00
Jeff Young
e79e2f0175
Remove properties flag from via placer so single-click mode works.
...
Fixes: lp:1796769
* https://bugs.launchpad.net/kicad/+bug/1796769
2018-10-10 10:59:50 +01:00
Seth Hillbrand
abdb91203f
pcbnew: Position relative using pad
...
Positioning a pad relative to an item in the board edit should move the
footprint not the pad.
Fixes: lp:1796995
* https://bugs.launchpad.net/kicad/+bug/1796995
2018-10-09 22:05:41 -07:00
Seth Hillbrand
9a86b26b82
pcbnew: Distribute footprints not pads
...
When using the board edit, align tool automatically moved footprints
instead of pads but distribute tool did not. This standardizes the
behavior.
Fixes: lp:1796997
* https://bugs.launchpad.net/kicad/+bug/1796997
2018-10-09 22:01:23 -07:00
Seth Hillbrand
13997f0050
Revert "pcbnew: Adding copy constructors to PNS items"
...
This reverts commit 41e4bc4d9f
.
This commit requires additional testing before recommitting as it causes
issues with FindJoint().
2018-10-09 14:50:20 -07:00
Jeff Young
779ef044b7
Fix wxGrid column dragging bugs.
...
Close an open editor when dragging (as wxWidgets won't move it).
Make sure native column headers aren't in use where we need dragging:
their interaction with wxWidgets' dragging is buggy.
Fixes: lp:1796398
* https://bugs.launchpad.net/kicad/+bug/1796398
Fixes: lp:1796396
* https://bugs.launchpad.net/kicad/+bug/1796396
2018-10-09 21:33:43 +01:00