jean-pierre charras
eabae68ab8
PANEL_SETUP_LAYERS_BASE: cosmetic enhancements.
2018-10-29 15:21:03 +01:00
Seth Hillbrand
ed1c8eee9e
async: Ensure threads are started async
...
It is possible for an async thread to simply be deferred if not
specifically set to async. In which case, until the return value is
requested, the loop may simply wait.
2018-10-26 22:30:06 -07:00
Seth Hillbrand
59fb6d8851
Threading: Moving connectivity search to std::async
...
By decoupling from std::thread, we can avoid the wait/sleep cycle in
checking the std::atomic completion variable. The std::future variables
are immediately returning without the additional atomic check cycle.
2018-10-26 18:00:43 -07:00
Thomas Pointhuber
0e0b4d52a2
Add initial support for Phoenix (new wxPython binding)
...
Based on the work of @mmccoo:
https://kicad.mmccoo.com/2017/11/23/learnings-from-moving-kicad-to-wxpython-4-0/
and this additional patchset to remove wxpy_api.h dependency:
http://mmccoo.com/random/0001-Remove-dependence-on-pywx_api.h.patch
Please note CreatePythonShellWindow changed quite a lot. Throughful testing
should be made for the old as well as new wxPython version on all platforms
2018-10-26 13:21:11 +02:00
jean-pierre charras
633bc7f2d5
Pcbnew, DIALOG_TEXT_PROPERTIES_BASE: fix many minor wxASSERTs
2018-10-26 13:09:05 +02:00
Seth Hillbrand
a3bbd32953
Fix minor compile warnings
2018-10-25 17:14:04 -07:00
Seth Hillbrand
2d8f1df293
Threading: Minimize thread usage
...
This minimizes the thread usage, particularly during online actions such
as moving items and routing.
UpdateRatsnest: Minimized the number of atomics by utilizing future
promise. Avoided updating node-less nets. Node-less nets are common in
the dynamic ratsnest because the net vector is created from the board
nets by value but only populated with a subset. So the dynamic ratsnest
calculation always saw every net as dirty and spun up extra threads.
searchConnections: ParallelThreadCount is no longer lower bounded.
Small item counts are handled inline rather than with a separate thread.
2018-10-25 14:19:43 -07:00
Seth Hillbrand
90233e5ec6
SELECTION: Prevent double select/deselect.
...
When processing the selection filter, items were deselected before being
reselected after passing through the filter. This adjusts the logic to
only deselect those items that are filtered out.
2018-10-24 17:17:45 -07:00
Jeff Young
9624ef4f2e
Don't blindly overwrite footprints when doing a Save As.
2018-10-24 22:00:50 +01:00
Jeff Young
244497f514
A board FP is no longer a board FP after a Save As.
2018-10-24 22:00:50 +01:00
Seth Hillbrand
a0e4e23c14
Ratsnest: Keep connectivity data local
...
The dynamic ratsnest did not need to have a smart pointer to the
temporary connectivity data.
2018-10-24 13:43:09 -07:00
Seth Hillbrand
ec38a5cd10
Threading: Replacing sleep with yield for active wait
...
Some windows machines seem prone to sleeping for excessive times. When
called in the main thread, this may prevent the system from responding
to Windows 'Are you alive?' calls.
2018-10-24 10:37:25 -07:00
Jeff Young
a96dbde738
Allow net-ties within footprints.
...
Fixes: lp:1799318
* https://bugs.launchpad.net/kicad/+bug/1799318
2018-10-23 20:54:42 +01:00
Jeff Young
adfe2fc267
Make sure user isn't surprised by Match All setting.
...
If they selected the dialog with a footprint selected, they're
probably not expecting Match All.
2018-10-23 20:54:42 +01:00
Wayne Stambaugh
e43e3a93c0
Revert "cmake: avoid declaring a redundant concurrent _pcbnew.so target"
...
This reverts commit 2e047b45b4
.
2018-10-22 19:12:17 -04:00
Wayne Stambaugh
c99874ca2f
Revert "cmake: rearranged code in the KICAD_SCRIPTING_MODULES section in order to clarify the intent"
...
This reverts commit 71f17a698b
.
2018-10-22 19:11:11 -04:00
Roman Beranek
71f17a698b
cmake: rearranged code in the KICAD_SCRIPTING_MODULES section in order to clarify the intent
2018-10-22 13:59:08 -04:00
Roman Beranek
2e047b45b4
cmake: avoid declaring a redundant concurrent _pcbnew.so target
...
The "renamed _pcbnew.kiface" target should only be declared for MINGW
because for Linux it would have been already declared at line 802.
2018-10-22 13:59:08 -04:00
Seth Hillbrand
3cc87b4597
PNS: Ensure we don't miss items
...
Higher candidate levels could override better matches if the layers did
not overlap.
2018-10-21 14:28:33 -07:00
jean-pierre charras
0f247264f8
Pcbnew: DRC ignores first net of list of nets to test.
...
Fixes: lp:1798985
https://bugs.launchpad.net/kicad/+bug/1798985
2018-10-21 17:01:58 +02:00
Jeff Young
f17c18bcce
Remove AdvanceDepth() hacks in favour of proper layers.
...
Also removes the bounding-box cache since the last big merge
should have sorted out the Update(GEOMETRY) calls.
Fixes: lp:1797271
* https://bugs.launchpad.net/kicad/+bug/1797271
Fixes: lp:1797268
* https://bugs.launchpad.net/kicad/+bug/1797268
Fixes: lp:1797075
* https://bugs.launchpad.net/kicad/+bug/1797075
2018-10-21 15:55:56 +01:00
jean-pierre charras
064b8a8d60
Gerber file generation: remove a optional info in .FileFunction: the layer type.
...
TF.FileFunction,Copper,L1,Top,Signal is now TF.FileFunction,Copper,L1,Top
This param is not useful, and probably never correctly set by users, because is is not used by Pcbnew.
(It is used only for dsn export)
2018-10-19 15:48:18 +02:00
Thomas Pointhuber
e39eeb2f92
Remove debug printf and fix indentation inside of block
2018-10-19 09:59:06 +02:00
Thomas Pointhuber
95e55eb17a
Fix coding style issue (space after if)
2018-10-19 09:59:06 +02:00
Thomas Pointhuber
e09785db1d
Introduce PyStringToWx helper to remove code duplication
2018-10-19 09:59:06 +02:00
Thomas Pointhuber
ce471ec898
Fix braces
2018-10-19 09:59:06 +02:00
Thomas Pointhuber
6ac444f587
Fix style issue
2018-10-19 09:59:06 +02:00
Thomas Pointhuber
9eff4e999f
Quick fix to avoid nameclash with local qrcode python package
2018-10-19 09:59:06 +02:00
Thomas Pointhuber
8bf1954625
NoneType was incorrectly passed to PyString_AsString
...
The implementation relied on the fact that PyString_AsString is returning NULL
for invalid inputs (and causing an error condition), which is then fixed by the
call to FROM_UTF8. Now, we will simply return an empty string if Py_None is
returned by a python fuction, which resemebles the old behaviour of those methods
2018-10-19 09:59:06 +02:00
Thomas Pointhuber
a27e547290
Fix uss39_barcode.py to work with Python3 as well
2018-10-19 09:59:06 +02:00
Thomas Pointhuber
0812f71bd3
Fix builtins import in Python3
2018-10-19 09:59:06 +02:00
Thomas Pointhuber
22e5e52598
Fix warning: 'HAVE_CLOCK_GETTIME' macro redefined
2018-10-19 09:59:06 +02:00
Thomas Pointhuber
7365cb8e52
Get Exception handling working with Python 3
...
The old way to get the full stacktrace was incorrect, and does not work
with Python 3:
https://stackoverflow.com/questions/3702675/how-to-print-the-full-traceback-without-halting-the-program#comment84297600_33723119
2018-10-19 09:59:06 +02:00
Thomas Pointhuber
88d04f3bcb
Get Action Plugins working with Python 3, fix some unicode string errors
2018-10-19 09:59:06 +02:00
Thomas Pointhuber
8805706ccb
Fix incompatibilites between Python 2 and Python 3
2018-10-19 09:59:05 +02:00
Thomas Pointhuber
e9da6811a6
Fix initialisation of the pcbnew python module
2018-10-19 09:59:05 +02:00
Thomas Pointhuber
284904b72c
Rewrite C extensions to also support Python 3
2018-10-19 09:59:05 +02:00
Seth Hillbrand
e1f30a3b38
pcbnew: Fix single-net connectivity
...
Ensure that changes affecting fewer than 4 nets still get updates in the
ratsnest.
2018-10-18 17:11:58 -07:00
Jeff Young
a5c892d9cd
Update line width each time a new object is drawn.
...
Fixes: lp:1797481
* https://bugs.launchpad.net/kicad/+bug/1797481
2018-10-18 15:25:56 +01:00
Tomasz Włostowski
bdc64ff0b3
router: DP_GATEWAYS::FilterByOrientation() should have exactly opposite filtering condition!
...
Fixes: lp:1797914
* https://bugs.launchpad.net/kicad/+bug/1797914
2018-10-18 14:29:19 +02:00
Tomasz Włostowski
eea949ce0a
router: don't cross DP lines when length tuning, fix swap pair polarity bug
...
Fixes: lp:1798500
* https://bugs.launchpad.net/kicad/+bug/1798500
Fixes: lp:1798221
* https://bugs.launchpad.net/kicad/+bug/1798221
2018-10-18 13:48:43 +02:00
Jeff Young
ff992f4a64
Keep track of which nets are currently in use.
...
Fixes: lp:1798006
* https://bugs.launchpad.net/kicad/+bug/1798006
2018-10-18 12:14:23 +01:00
Seth Hillbrand
38c5b025c8
Ratsnest: iterate only over dirty nets
...
Rather than forcing each thread to iterate over the full nets list to
find the dirty items, we collect the dirty items first before asking the
threads to address them. This prevents thread spinning. We also
amortize the cost of calculating on an 8-net per thread basis rather
than 2.
2018-10-17 17:07:29 -07:00
Jeff Young
e9a80a5d7f
Some minor dialog layout fixups.
2018-10-17 11:23:02 +01:00
jean-pierre charras
9795a3572d
dialog_pns_length_tuning_settings: fix incorrect dialog size.
...
This was due to the fact sizers recalculate the sizes before initialization of a bitmap.
2018-10-17 11:48:15 +02:00
Jeff Young
6e3f226e45
Update texts with %V and %R when values or references is chosen.
...
(This in addition to updating them when other fields is chosen.)
2018-10-16 17:46:01 +01:00
Jeff Young
51deb9d562
Fix issue with updating Footprint graphic items.
...
dyn_cast doesn't handle inheritance.
2018-10-16 17:07:59 +01:00
Jeff Young
ecd893c4b1
Refresh screen after filling zones.
...
Previous code didn't refresh until you moved the mouse.
2018-10-16 17:07:59 +01:00
Jeff Young
d62145fba9
Fix compile error when not on OSX.
2018-10-15 20:54:29 +01:00
jean-pierre charras
aabff98fb6
Try to fix the Jenkins link error
2018-10-15 21:43:50 +02:00
Jeff Young
59b7762981
Back out workaround f1e2f142a6
.
...
A proper fix is in bf164f7c4b
.
2018-10-15 20:33:43 +01:00
Jeff Young
3dcd52021a
Simplify exchange footprints dialog and support wildcards.
2018-10-15 19:59:47 +01:00
Jeff Young
0585382986
Allow editing of library footprint from board reference.
2018-10-15 19:59:47 +01:00
jean-pierre charras
9c398dbf90
Pcbnew, CMakeLists.txt: remove duplicate lines.
...
For some reason, a few files were included 3 times in the same dependency. One time is enough.
2018-10-15 20:14:27 +02:00
Seth Hillbrand
a7672716f8
Revert "pcbnew: Fix memory leak in Eagle importer"
...
This reverts commit 45d438cd13
.
2018-10-15 08:26:04 -07:00
Jeff Young
0bd0558833
Auto-select reference numbers in PcbNew like we do in Eeschema.
2018-10-14 00:06:41 +01:00
Jeff Young
f1e2f142a6
Work-around for preference crash with multiple GAL docs open.
2018-10-13 19:41:45 +01:00
Jeff Young
3158273c1a
Revert window-locking change which didn't fix preferences crash.
2018-10-13 15:53:54 +01:00
Jeff Young
6a5744adb1
Show compile errors and go back to GLSL V120.
2018-10-13 12:39:53 +01:00
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
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
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
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
Jeff Young
609d497870
Remember settings in Global Track & Via Properties dialog.
2018-10-10 19:49:06 +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
c5499a6b19
Use ChangeValue() so design rules popup doesn't get cleared.
...
Fixes: lp:1796780
* https://bugs.launchpad.net/kicad/+bug/1796780
2018-10-09 21:33:43 +01:00
Seth Hillbrand
808a7d9483
pcbnew: Fix crash when GAL fallback fails in some cases
2018-10-09 09:05:14 -07:00
Seth Hillbrand
246f49b8cb
pcbnew: Fix Footprint selection to only footprint area
...
Fixes: lp:1796866
* https://bugs.launchpad.net/kicad/+bug/1796866
2018-10-09 05:53:31 -07:00
Seth Hillbrand
4e06494105
pcbnew: Fix minor bug in tracks cleaner
...
Allow rebuild of track connection info when modified is true.
2018-10-09 05:43:26 -07:00
Seth Hillbrand
1a6f039bb5
pcbnew: Fix minor miscalculation in dp length
...
The commonParallellProjection had an odd ordering of parameters that was
not followed by callers. This corrects the ordering to standard for
each.
2018-10-09 05:37:48 -07:00
Seth Hillbrand
41e4bc4d9f
pcbnew: Adding copy constructors to PNS items
...
Adding safe copy constructors to PNS items including assignment check
and copy operations
2018-10-09 05:37:48 -07:00
Seth Hillbrand
e1fe3c7ed4
GRID_HELPER: Remove double-check condition
...
We only need to check nearest once.
2018-10-09 05:37:48 -07:00
Seth Hillbrand
8189fbe85c
pcbnew: Fix issue suppressing Creation Date
...
Typo in file could lead to creation date being suppressed if timezone
could not be determined.
Also fixed a few wide chars in comments
2018-10-09 05:37:48 -07:00
Seth Hillbrand
10d348999e
pcbnew: Fix minor counting issue
...
The evaluation of count_if resulted in a 0 or 1, leading to segment zone
fills always running on single processor and the progress bar showing
incorrect status. Likely infrequently hit as only affected segment
fills.
2018-10-09 05:37:48 -07:00
Jeff Young
9dfcc839a4
Fix color issues with cursor and sheet pins.
2018-10-09 11:08:56 +01:00
jean-pierre charras
f283667fb0
add option to switch between opengl and cairo in eeschema (step 1)
2018-10-09 11:08:56 +01:00
Jeff Young
42ee4f79e4
Fix assert in Graphic Item Properties.
...
Fixes: lp:1792201
* https://bugs.launchpad.net/kicad/+bug/1792201
2018-10-09 11:08:56 +01:00
Jeff Young
46426f1196
Fix segfault when routing.
...
Fixes: lp:1792037
* https://bugs.launchpad.net/kicad/+bug/1792037
2018-10-09 11:08:56 +01:00
jean-pierre charras
906c52deff
minor compil warnings and drawings fix
2018-10-09 11:08:55 +01:00
Jeff Young
3c82ad3220
Finish up the block rotate/mirror fixes.
...
Block rotate and mirror now work like they do in Pcbnew (that is
they're treated as part of the block move/duplicate/whatever
rather than finishing it).
Fixes: lp:1780794
* https://bugs.launchpad.net/kicad/+bug/1780794
2018-10-09 11:08:55 +01:00
Tomasz Wlostowski
e439b17fa1
eeschema-gal: make sure all other Kicad apps compile after eeschema gal hacks
2018-10-09 11:08:52 +01:00
Maciej Suminski
d599a02a90
Fix unused variable warnings
2018-10-09 09:14:51 +02:00
Seth Hillbrand
f11cb736e5
pcbnew: Zone selection heuristic continuity for edge
...
If the user is carefully selecting the zone edge, we do not filter the
zone preemptively from our disambiguation list in the same manner as we
do for selecting on zone copper.
Fixes: lp:1796719
* https://bugs.launchpad.net/kicad/+bug/1796719
2018-10-08 11:31:52 -07:00
Seth Hillbrand
3ee72031a4
pcbnew: Follow cursor when editing polygon
...
Fixes: lp:1796721
* https://bugs.launchpad.net/kicad/+bug/1796721
2018-10-08 10:32:30 -07:00
Seth Hillbrand
77eeda4191
pcbnew: fix pad distance calc in gateways
...
The pad distance was fixed to 0, making the gateway priority set
artificially to 1
2018-10-08 09:53:47 -07:00
Seth Hillbrand
1828e8cb0f
pcbnew: Use Default width define instead of nums
...
The board design settings file keeps our default values for various
thicknesses. We use this to replace a number of magic numbers with the
defined value to help self-document the code.
2018-10-08 09:17:40 -07:00
Seth Hillbrand
ecc80c00a5
pcbnew: Initialize DRAWSEGMENT to default width
...
The check against S_POLYGON was always false because we set the default
type to S_SEGMENT. This unifies the magic numbers to the board design
settings file
2018-10-08 09:07:24 -07:00
Seth Hillbrand
45d438cd13
pcbnew: Fix memory leak in Eagle importer
...
unqiue_ptr release creates a memory leak unless the returned pointer is
freed.
2018-10-08 08:47:58 -07:00
Seth Hillbrand
af8715da80
pcbnew: Fix missing board settings class
...
Fixes: lp:1796541
* https://bugs.launchpad.net/kicad/+bug/1796541
2018-10-07 08:31:49 -07:00