Commit Graph

8182 Commits

Author SHA1 Message Date
Ian McInerney 58d4a8bb4a pcbnew: Don't reinitialize the router tool in an action
Calling Init() in an action routine will reset the router
settings to the state they were in when first starting pcbnew.
The Init() function is automatically called when the tool is created.

Fixes: lp:1843810
* https://bugs.launchpad.net/kicad/+bug/1843810
2019-10-07 16:07:05 -04:00
Jeff Young 890e1c9ea0 Be more careful about EOF processing when reading netlist.
Fixes: lp:1845848
* https://bugs.launchpad.net/kicad/+bug/1845848
2019-10-07 12:53:32 +01:00
jean-pierre charras 0a829c328e Python scripting: fix a crash with some pythons scripts calling BOARD::ComputeBoundingBox()
This function calls Pgm(), but when running from a script (not from kicad) Pgm() uses a nullptr reference.
The nullptr reference is now tested in ComputeBoundingBox()
2019-10-05 10:39:33 +02:00
Ian McInerney b33c3a5ad8 pcbnew: Clean up extension handling in graphics plugins
* Fix wildcard display in the file selector dialog (on GTK
  it would show the regex to the user)
* Move the file extension comparison into a common function
2019-10-04 15:43:29 -04:00
Jeff Young 429c7055e9 Some performance enhancements contributed by Oleg Endo.
Fixes: lp:1846438
* https://bugs.launchpad.net/kicad/+bug/1846438
2019-10-04 19:41:40 +01:00
Jeff Young 0ad9ddb3a6 Use cached bounding boxes for performance.
Fixes: lp:1846438
* https://bugs.launchpad.net/kicad/+bug/1846438
2019-10-04 11:45:08 +01:00
Ian McInerney 0aa5424511 pcbnew: Switch over some drawing tools to use PrimeTool
Before, if the tools were activated from the context menu,
they would start drawing where the menu item was selected
instead of where the menu was opened.
2019-10-03 19:04:36 +01:00
Ian McInerney 5862b1559f Cleanup position handling for TOOL_EVENTs
* Make the events generated by the selection of context menu items
  have the position where the menu was opened
* Ensure that TC_COMMAND type events have their position set to
  be the cursor position where the event originated
2019-10-03 19:04:33 +01:00
jean-pierre charras 9d617502d5 Gerbview: fix missing grid initialization at starting. 2019-10-03 18:33:16 +02:00
Jeff Young 6179dfde37 Default keep upright to false in design settings.
The board file only writes out a token if it's true, so the value
must default to false.

Fixes: lp:1845883
* https://bugs.launchpad.net/kicad/+bug/1845883
2019-10-02 10:56:13 +01:00
Jeff Young 2679e80469 Fix bug saving last netlist filepath.
Fixes: lp:1845883
* https://bugs.launchpad.net/kicad/+bug/1845883
2019-10-01 17:43:26 +01:00
Jeff Young 9a349065db Better error messages for router. 2019-10-01 15:02:41 +01:00
Jeff Young b58df5e777 Flip Start0 etc. when in ModEdit.
ModEdit and PCBNew use Start0/End0/etc. differently so care must
be taken when flipping.

Fixes: lp:1845402
* https://bugs.launchpad.net/kicad/+bug/1845402
2019-10-01 11:02:52 +01:00
jean-pierre charras 31e38f2fd4 Fix an issue in DIALOG_NETLIST: if the netlist does not exist, one cannot always modify the entered name.
Fix also a wxWidgets alert
2019-09-30 19:41:19 +02:00
Jeff Young 4bf2b6a9f7 Performance enhancements for cross-probing.
While found when profiling cross-probing, many of these will also
improve other things.
2019-09-27 19:58:16 +01:00
jean-pierre charras d3982d0cb2 board stackup manager: a few enhancements in code and make some strings translatable 2019-09-27 17:12:24 +02:00
jean-pierre charras 2e3d781bf2 layer stack manager: fix a crash due to a recent change in code. 2019-09-26 20:48:28 +02:00
jean-pierre charras 3cd12088a3 PANEL_SETUP_BOARD_STACKUP: minor cosmetic enhancement. 2019-09-25 09:27:36 +02:00
Seth Hillbrand 7f54617dab pcbnew: Clear view prior to terminating
On complex boards, the view holds a very large vector of all objects.
The dtor will remove each one, searching for the pointer before
removing.  When removing all items, this process is not needed, so we
clear the view when exiting.  This also prevents lock-up when closing
the full application as KiCad waits for the dtor to finish
(non-interactively).  This will cause Windows to crash and Linux to
offer an option for terminating the non-responsive application.

Fixes: lp:1843092
* https://bugs.launchpad.net/kicad/+bug/1843092
2019-09-24 11:44:33 -07:00
jean-pierre charras cd6c1c48a4 Board stackup manager: add material selector to solder mask and silkscreen layers. 2019-09-24 16:30:25 +02:00
jean-pierre charras 840c77fa9c pcbnew/swig/pcbnew_action_plugins.cpp: fix crash due to broken detection of deleted items after running a script.
the old way was not compatible with the current management if board item lists.
The crash was probably due to double deletions.
Note also the management of undo command in pcbnew_action_plugins needs serious optimization.

Fixes: lp:1844880
https://bugs.launchpad.net/kicad/+bug/1844880
2019-09-23 14:07:45 +02:00
Seth Hillbrand bba949c04d pcbnew: properly close tags when handling bad poly
The parenthesis depth is 2 when the polygon isn't closed.  This
shouldn't happen but we have the fall-through to handle odd cases

Fixes: lp:1844872
* https://bugs.launchpad.net/kicad/+bug/1844872

(cherry picked from commit d862cdaa72)
2019-09-21 09:27:01 -07:00
jean-pierre charras 8be9aeac9f Fix typo 2019-09-21 09:50:01 +02:00
jean-pierre charras 7355ed3bda Fix Typo 2019-09-20 13:15:06 +02:00
jean-pierre charras badd0bfa54 Minot fixes in GERBER_JOBFILE_WRITER, due to recent changes in .gbrjob file format. 2019-09-20 13:13:19 +02:00
Seth Hillbrand 4d8949371f conn: Connect pads to anchor points not geo center
Pads may include offsets that allow the user to shift the connection
point of the pad.  This is captured by the pad m_Pos but not by
ShapePos().  When testing connectivity, we need to get the offset
position.
2019-09-19 13:49:12 -07:00
Seth Hillbrand b7128639f8 connectivity: Check all anchors for connection
With pads, we should check available anchor points for each connection,
increasing probability of finding connection to match fill algorithm

Fixes: lp:1844661
* https://bugs.launchpad.net/kicad/+bug/1844661
2019-09-19 12:44:40 -07:00
jean-pierre charras fc6dc81878 Pcbnew, gerber job file: add "name" field in stackup section 2019-09-19 20:29:39 +02:00
jean-pierre charras 115e1e33da dialog edit footprint: display fp orientation between -180 and + 180 instead of 0 ... 360 deg.
Previously, the wxTextCtrl was using 0 ... 360 but the predefined values are -90 to 180 deg.
2019-09-19 20:29:39 +02:00
jean-pierre charras 16f4958430 Pcbnew: avoid crash when closing pcbnew if the DRC dialog is open.
Cvpcb: change from commit 9ceca583:
the root class close event that save settings is now seeing the close event.
2019-09-19 09:16:12 +02:00
jean-pierre charras a1fe8cfa5a Minor changes: cleanup code and prepare code to add more attributes to Object Attributes (.TO) 2019-09-18 11:48:49 +02:00
jean-pierre charras a52dc57887 Pcbnew: Fix incorrect footprint angle rotation after flipping around Y axis (left to right)
The angle rotation was always negated. But this is incorrect:
The angle rotation must be negated when flipping around X axis
The angle rotation must be 180 - initial rotation when flipping around Y axis

This bug can break position files and footprint updates,
especially when mixing flipping around Y axis and flipping around X axis.
2019-09-17 18:51:27 +02:00
jean-pierre charras 072ea9a33e Pcbnew: flip command: when flipping only one item, flip it around its anchor instead of its bounding box.
This is the behavior of previous 5.1 version.
Using the bounding box has advantages, but unfortunately in many cases the footprint position is moved.
If a lot of flip commands are made on the same footprint, it is moved far from its initial position.
2019-09-17 10:06:39 +02:00
jean-pierre charras 64b5e8bee2 Minor fix and enhancement code. 2019-09-15 11:10:53 +02:00
jean-pierre charras 91c66a05ae DIALOG_DIELECTRIC_MATERIAL_BASE: Minor fix 2019-09-13 11:35:27 +02:00
jean-pierre charras c10d30c1c8 PANEL_SETUP_NETCLASSES: fix not working (immediately closed) wxChoice widgets to select a filter
This happens with wxWidgets 3.0.4 on Windows and is a side effect of a call to Layout().
The fix just calls Layout() only when needed.

Fixes: lp:1843594
https://bugs.launchpad.net/kicad/+bug/1843594
2019-09-13 11:29:51 +02:00
Jeff Young f1790c24e5 Fix issue with Arc pad primitive dialog having center and start swapped.
Fixes: lp:1842199
* https://bugs.launchpad.net/kicad/+bug/1842199
2019-09-12 21:22:47 +01:00
Jeff Young aeedbf87dd Tighten up the Pad Properties dialog a bit.
Fixes: lp:1843580
* https://bugs.launchpad.net/kicad/+bug/1843580
2019-09-12 14:45:01 +01:00
Wayne Stambaugh 4bfb8ef457 Pcbnew: fix Eagle footprint library polygon pad sizes.
Eagle includes the width of the polygon line when generating polygon pad
sizes where KiCad does not.  This simple fix inflates polygon pads half
of the Eagle polygon line width.

Fixes lp:1833687

https://bugs.launchpad.net/kicad/+bug/1833687
2019-09-12 07:35:48 -04:00
jean-pierre charras f5692584f2 cleanup 2019-09-12 13:25:15 +02:00
jean-pierre charras 271465a644 Stackup manager: Add a dielectric manager to handle more easily user defined dielectric substrates
panel_board_stackup.cpp: material selection:
 replace wxChoice by a better widget (wxTextCtrl+wxButton) to call the dielectric manager dialog
Move dielectric material class to a specific file
2019-09-12 10:37:05 +02:00
Jeff Young 95ec2fba02 Fix tabbing in Text Properties dialog. 2019-09-10 12:40:28 +01:00
jean-pierre charras 2a9157ca99 Pcbnew, multiline graphic text dialog: strip extra \r in EOL (\n is enough) on Windows.
Fixes: lp:1843279
https://bugs.launchpad.net/kicad/+bug/1843279
2019-09-10 10:57:04 +02:00
jean-pierre charras c3bd9b7b8f Stackup manager: better code. 2019-09-09 17:22:17 +02:00
Jeff Young 8dd8740fa3 Performance enhancement for pad drawing.
Fixes: lp:1843065
* https://bugs.launchpad.net/kicad/+bug/1843065
2019-09-09 13:45:06 +01:00
Jeff Young 7dc9beaf11 Add type filter to push pad properties.
Fixes: lp:1827820
* https://bugs.launchpad.net/kicad/+bug/1827820
2019-09-08 23:50:36 +01:00
Jeff Young b4a3f4bb41 Sync GAL grid with layer visibility on doc-open.
Fixes: lp:1843169
* https://bugs.launchpad.net/kicad/+bug/1843169
2019-09-08 23:08:46 +01:00
Jeff Young 44a1cf9f1b Implement quiet-mode for selection clearing.
Also adds comments for exising quiet-mode calls.

Fixes: lp:1843177
* https://bugs.launchpad.net/kicad/+bug/1843177
2019-09-08 19:45:35 +01:00
jean-pierre charras 37fac7a8f2 Stackup editor: fix crash when trying to calculate dielectric layer thickness if all dielectric layers are locked.
Add also more tests to validate values.

Fixes: lp:1843131
https://bugs.launchpad.net/kicad/+bug/1843131
2019-09-08 11:49:04 +02:00
Jeff Young f491b7fff7 Check for dup layer names in the GUI, not in the internals.
Doing so in the internals keeps users from being able to swap layer
names as the dialog does each layer name change individually.

Fixes: lp:1842665
* https://bugs.launchpad.net/kicad/+bug/1842665
2019-09-07 23:54:43 +01:00