Commit Graph

7113 Commits

Author SHA1 Message Date
Seth Hillbrand 0109641c2f gal: correct layer ordering
Net labels need to be rendered under the selected item.

Fixes: lp:1790016
* https://bugs.launchpad.net/kicad/+bug/1790016
2018-08-30 16:55:48 -07:00
Seth Hillbrand 83e6940592 pcbnew: Correcting commit f84bd0d83 for 5.0/release
Previous commit only functioned correctly in debug mode.  Also cleanup a
left-over debug printf() and revert a changed translated string.
2018-08-30 13:27:32 -07:00
Seth Hillbrand 34b920a74f pcbnew: Fix Eagle UTF8 import error
Implicit convertion from wxString to std::string will use narrow strings
and drop UTF-8.

Fixes: lp:1789311
* https://bugs.launchpad.net/kicad/+bug/1789311
2018-08-30 13:08:21 -07:00
Seth Hillbrand d45946396c pcbnew: Fix loop condition when unhighlighting modules
Text can be included in the same selection group as the parent module.
Thus if we clear the selection marker on a module's child elements we
also need to remove the element from the selection group.

Fixes: lp:1789418
* https://bugs.launchpad.net/kicad/+bug/1789418
2018-08-30 09:27:42 -07:00
jean-pierre charras 01acc0d9be Remove an unused variable that created a memory leak. 2018-08-30 10:04:04 +02:00
Jeff Young c90a3efea2 Change KIDIALOG hashing algorithm to __FILE__ + __LINE__.
Using Title + Message wasn't working for all the dialogs which
did substitutions in the message (which was a lot of them).

Fixes: lp:1789348
* https://bugs.launchpad.net/kicad/+bug/1789348
2018-08-29 23:38:23 +01:00
Jeff Young 9125d7fdb6 Fix typo. 2018-08-29 22:45:45 +01:00
Jeff Young b562ecc5b5 Check for net changing before confirming.
Fixes: lp:1789348
* https://bugs.launchpad.net/kicad/+bug/1789348
2018-08-29 22:43:05 +01:00
Jeff Young 658e387ad4 Slightly better swap layer column names.
Fixes: lp:1789390
* https://bugs.launchpad.net/kicad/+bug/1789390
2018-08-29 22:04:07 +01:00
Jeff Young 2e8f2d2850 Allow Export even when libId is empty.
For instance, after an import.

Fixes: lp:1785226
* https://bugs.launchpad.net/kicad/+bug/1785226
2018-08-29 20:08:01 +01:00
Jeff Young f1ef18edcb Fix assert where wxFormBuilder rows disagreed with controls. 2018-08-29 20:08:01 +01:00
Jeff Young 8fe5ff612d Print PCB objects before zones.
Fixes: lp:1785958
* https://bugs.launchpad.net/kicad/+bug/1785958
2018-08-29 20:08:01 +01:00
Jeff Young f611333ea1 Make fast grid switching hotkeys more visible.
Fixes: lp:1787066
* https://bugs.launchpad.net/kicad/+bug/1787066
2018-08-29 20:08:01 +01:00
Jeff Young f470132862 Fix fast grid switching for OSX and Footprint Editor.
Fixes: lp:1787066
* https://bugs.launchpad.net/kicad/+bug/1787066
2018-08-29 20:08:01 +01:00
Jeff Young a8bb5d7308 Improve labels.
First two radio buttons together read "Do not show On pads", which is
of course backwards for the second.
2018-08-29 20:08:01 +01:00
Jeff Young 424905fb61 Fix netclass popups in netclass membership grid. 2018-08-29 20:08:01 +01:00
Jeff Young e55547223e ModEdit Save should save back to board if that's where the FP came from.
Use Save As... if you want to put it in a library.

Fixes: lp:1788924
* https://bugs.launchpad.net/kicad/+bug/1788924
2018-08-29 20:08:01 +01:00
Jeff Young 21eea1f567 Remove HasFocus() checks (which don't work on all platforms) in favour of row highlighting which is visible without focus.
Fixes: lp:1788873
* https://bugs.launchpad.net/kicad/+bug/1788873
2018-08-29 20:08:01 +01:00
Jeff Young 75a4928134 Split edge.cuts and courtyard layer defaults.
Fixes: lp:1788876
* https://bugs.launchpad.net/kicad/+bug/1788876
2018-08-29 20:08:01 +01:00
Jeff Young 030663d847 Tighten up the margin to the right of the layers widget.
Fixes: lp:1788462
* https://bugs.launchpad.net/kicad/+bug/1788462
2018-08-29 20:08:01 +01:00
Jeff Young f9412f0fd4 Implement double-click for other filetypes in project tree.
Fixes: lp:1787207
* https://bugs.launchpad.net/kicad/+bug/1787207
2018-08-29 19:59:02 +01:00
Jeff Young 45bc1b1aff Add single-click editing to grid cells. (Experimental.) 2018-08-29 19:59:02 +01:00
Jeff Young b90a261d5c More safety fixes for uncommitted grid changes. 2018-08-29 19:59:01 +01:00
Seth Hillbrand 2398edda38 pcbnew: Only dp clearance matrix when routing dp
Fixes: lp:1787766
* https://bugs.launchpad.net/kicad/+bug/1787766
2018-08-29 10:26:39 -07:00
jean-pierre charras 020d837de6 Dialog pad properties: fix not working orientation choice in countries using comma as floating point separator.
The values in choice are 0.0 90.0 not compatible with floating point notation (0,0 90,0)
and always detected as bad values (unless you have loaded a up to date dictionary, which is not necessary the case)

good values are in any case 0 90 180 and -90
2018-08-29 17:27:50 +02:00
Seth Hillbrand dc4125206b GAL: Add a selected item layer
The selected items should be displayed above the rest of the items but
below informational overlays.

Fixes: lp:1789505
* https://bugs.launchpad.net/kicad/+bug/1789505
2018-08-28 15:00:05 -07:00
Seth Hillbrand f4eaf55497 pcbnew: keep selected zone highlighted when moding
When adding a cutout to a zone, it helps to have the zone highlighted so
that you can see when zone you are operating on.
2018-08-28 14:59:54 -07:00
Seth Hillbrand e160eb0677 pcbnew: Adding some missing TypeOf() functions
Missing types were handled by the superclass (in the case of zones)
PCB_CONNECTED_ITEM, which incorrectly returned "true" when testing lines
against zones.

Fixes: lp:1789195
* https://bugs.launchpad.net/kicad/+bug/1789195
2018-08-28 13:19:29 -07:00
Seth Hillbrand c6d1433523 modedit: clear the pcb when closing the window
Before closing the window in the footprint editor, we clear the existing
pcb, undo/redo stack and associated memory to prevent callbacks
double-freeing on destruction.

Fixes: lp:1784504
* https://bugs.launchpad.net/kicad/+bug/1784504
2018-08-28 12:36:06 -07:00
Seth Hillbrand 0ac96d177c pcbnew: set default soldermask clearance for footprint viewer
The default board soldermask clearance should not be used in the
footprint viewer.  Setting the board's solder mask margin to 0 will
leave the footprint displayed with only the soldermask defined by
the pads or the footprint.

Thanks to Fabian Inostroza for pointing out the missing line.

Fixes: lp:1779979
* https://bugs.launchpad.net/kicad/+bug/1779979
2018-08-28 10:04:04 -07:00
jean-pierre charras fb3859642f Pcbnew, Plot: fix incorrect plot of custom shapes, when the shape has holes (missing holes).
Fixes: lp:1789404
https://bugs.launchpad.net/kicad/+bug/1789404
2018-08-28 17:50:49 +02:00
jean-pierre charras d9d005190a Zone filler: fix a recent bug that forgot items on edge_cut when filling a copper zone.
Fixes: lp:1789067
https://bugs.launchpad.net/kicad/+bug/
2018-08-28 09:49:11 +02:00
Wayne Stambaugh 089f27f485 Remove more dialog control borders. 2018-08-27 15:11:27 -04:00
Jeff Young 56de78c130 Remove layer limitations and warnigns now that DRC handles them. 2018-08-27 18:38:56 +01:00
Jeff Young a860a8db54 Enable user layers in footprint editor.
Fixes: lp:1746279
* https://bugs.launchpad.net/kicad/+bug/1746279
2018-08-27 18:38:56 +01:00
Jeff Young c88b43e356 Don't double-report segments that are too close. 2018-08-27 18:38:56 +01:00
Jeff Young b842e4556d Don't double-check all zones.
a:b is enough; we don't have to also check b:a.
2018-08-27 18:38:56 +01:00
Jeff Young 6bb75b071a Implement DRC for PCB & module copper items in PNS router.
Fixes: lp:1788699
* https://bugs.launchpad.net/kicad/+bug/1788699
2018-08-27 18:38:56 +01:00
Jeff Young 7b4f9cef50 Implement DRC checks for copper graphic items.
Also greatly improves the location of many DRC markers.

Fixes: lp:1619133
* https://bugs.launchpad.net/kicad/+bug/1619133
2018-08-27 18:38:56 +01:00
Wayne Stambaugh 35a31a9787 Fix grid border on board setup net class panel.
Fixes lp: 1789190

https://bugs.launchpad.net/kicad/+bug/1789190
2018-08-27 12:33:50 -04:00
Thomas Pointhuber a2bc4260ef Modify style of the action plugin panel to follow common style
and fix of an assert:
* m_grid->DeleteRows does not like to get a numRows of zero
2018-08-27 08:26:31 -07:00
jean-pierre charras 7c11d0371b Minor wording fix in a menuitem 2018-08-27 09:19:48 +02:00
Thomas Pointhuber 92cd82be03 Do not show footprint wizard menu when scripting is disabled 2018-08-27 09:19:48 +02:00
qu1ck 72f87861bb pcbnew: Add toolbar buttons for action plugins
Allows optional toolbar buttons for action plugins.
2018-08-26 19:39:27 -07:00
Tomasz Wlostowski 5f8eac8c6e CONNECTIVITY_DATA: fix SWIG build error 2018-08-24 14:42:49 +02:00
Tomasz Wlostowski 61fb3f6d0f pcbnew: bring back the autoplacer tool to GAL 2018-08-24 14:42:49 +02:00
Tomasz Wlostowski 33946ea92f pcbnew: renaming of autorouter/autoplacer files 2018-08-24 14:42:49 +02:00
Jeff Young 020c7b5cb8 Fix non-OSX compile issue (includes). 2018-08-24 12:07:05 +01:00
Jeff Young d10bfb13d6 Re-enable text layers now that DRC & zone fills are fixed.
Fixes: lp:1788268
* https://bugs.launchpad.net/kicad/+bug/1788268
2018-08-24 10:56:13 +01:00
Jeff Young 0e3919e7aa Fix DRC & zone filling for copper text in footprints.
Also improves handling of copper edges in footprints and of text
and track locations in DRC markers.

Also adds DRC for tracks & zones.

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

Fixes: lp:1788268
* https://bugs.launchpad.net/kicad/+bug/1788268
2018-08-24 10:56:13 +01:00
Jeff Young 8aa0886ce7 Improve labels & layout of Track & Via Properties dialog. 2018-08-24 10:56:13 +01:00
Jeff Young ec9d38e21f Add filter to net selector widget.
Also fixes a bug where nets wouldn't get changed because the
pads weren't changed and so the pad nets would propagate and
wipe out the changed nets on the tracks.

Also includes warning dialogs that pad nets will be changed if the
track nets are.

Fixes: lp:1779854
* https://bugs.launchpad.net/kicad/+bug/1779854
2018-08-24 10:56:13 +01:00
Seth Hillbrand 51473d9a30 pcbnew: Update tooltip in DRC window to reflect actions
Previous tooltips were outdated.  Current action is to center with
single-click, hightlight with right-click and close window with
double-click.

Fixes: lp:1788635
* https://bugs.launchpad.net/kicad/+bug/1788635
2018-08-23 08:24:52 -07:00
Jeff Young da172a1089 Fix layout issue with too-short textctrl.
Fixes: lp:1788506
* https://bugs.launchpad.net/kicad/+bug/1788506
2018-08-23 00:58:05 +01:00
Jeff Young 30bb911154 Bring PICKER_TOOL in line with other tools.
Use standard Magnetize() to handle grid and magnetic pads.

Use the standard menu from PCB_TOOL.  Delegating the menu to
the SELECTION_TOOL just caused grief.

Also brings clients (such as Position Relative To) into line,
and implements better Cancel behaviour.

Also improves visibility of modal status messages:
- moves Select Anchor message from status bar to popup
- moves Select Reference message from dialog to popup

Fixes: lp:1786727
* https://bugs.launchpad.net/kicad/+bug/1786727
2018-08-23 00:58:01 +01:00
Jeff Young c91e51f688 Don't inadventently clear selection reference point.
New algorithm more targetted and just clears the items.  This
also obviates the need for the aQuietMode flags.

Only fixes one part of the bug, but the "fixes" line is the
easiest way to get a link in the bug to the commit.

Fixes: lp:1786727
* https://bugs.launchpad.net/kicad/+bug/1786727
2018-08-22 15:11:58 +01:00
Andrew Zonenberg 60a55d75fa Split prohibited text layers for footprints and the rest of the PCB
Fixes: lp:1788268
* https://bugs.launchpad.net/kicad/+bug/1788268
2018-08-21 16:34:53 -07:00
Jeff Young d8782b7515 Improve Update PCB from Schematic.
Shorten and improve informational content of messages, errors and
warnings.

Remove redundant info messages when they shadow an action, warning
or error message.

Improve title of "Update Footprints" to make it clear that it's
recreating footprints which have different assignments rather than
updating footprints from the library.

Don't perform the dryRun twice.

Don't use the old netlist method of loading footprints.  We get
better error reporting if we do it ourselves.

Be more careful checking the last pad when checking for single-pad
nets.  If the last pad has no net then pad != previouspad at the
end of the loop.

Fixes: lp:1787255
* https://bugs.launchpad.net/kicad/+bug/1787255
2018-08-21 19:46:29 +01:00
Jeff Young c851d6d64b Fix some more MSW spacing issues. 2018-08-21 10:34:41 +01:00
Jeff Young 779398891d Follow HIG guidelines for destructive button separation. 2018-08-21 10:34:41 +01:00
Jeff Young 65f62f93ef Fix MSW spacing issues. 2018-08-21 10:34:41 +01:00
Jeff Young afacb6e7cb Improve safety around un-committed grid changes. 2018-08-21 10:34:41 +01:00
Jeff Young 86a801aabc Allow updating of file history size on the fly.
Also updates the file menu IDs so that we can actually handle
more than 9 items in the file history.

Also adds configurable file history length to the other gerber
files (zip, drill and job).

Fixes: lp:1745729
* https://bugs.launchpad.net/kicad/+bug/1745729
2018-08-21 10:34:41 +01:00
Seth Hillbrand 5bd959d92c Eagle: Fix NULL-dereference on malformed Eagle files
Eagle files that are edited may be missing required data.  While we do
not need to handle these files, we do need to prevent segfaults in KiCad
when reading them.
2018-08-19 19:48:10 -07:00
Jeff Young bd543f12b5 Bring track design rule widths in line with via design rule sizes. 2018-08-19 16:15:14 +01:00
Jeff Young b4bb36f017 Define minHeight so 3D model grid doesn't grow to include all rows.
Fixes: lp:1787269
* https://bugs.launchpad.net/kicad/+bug/1787269
2018-08-19 16:10:41 +01:00
Jeff Young 4364384f06 Simplify list of nets dialog. 2018-08-19 16:10:41 +01:00
Jeff Young 672d5ec1aa Make orientation popups match combobox values. 2018-08-19 16:10:41 +01:00
Jeff Young bbb76a0de0 Initialize filters with current values.
Fixes: lp:1787403
* https://bugs.launchpad.net/kicad/+bug/1787403
2018-08-19 16:10:41 +01:00
Jeff Young bb5e6bbd79 Include default netclass in Global Edit Track & Via Properties.
Fixes: lp:1787403
* https://bugs.launchpad.net/kicad/+bug/1787403
2018-08-19 16:10:41 +01:00
Ronnie Gaensli 46fddab126 pcbnew: fix pan while moving mouse after cancelling selection box
Fixes: lp:1776648
* https://bugs.launchpad.net/kicad/+bug/1776648
2018-08-17 13:39:36 +02:00
jean-pierre charras 0c4828df12 footprint_wizard_frame: try to fix a crash that happens sometimes when modifying a parameter.
(not noticed on Windows, happens sometimes on Linux. so this commit is just a trial to fix the crash)
2018-08-15 15:55:32 +02:00
jean-pierre charras 8fd686e8f4 Eeschema: Fix 2 minor compil warnings. Pcbnew, very minor fix: avoid using fixed scaling factor in code. Use internal units conversion instead. 2018-08-15 13:39:25 +02:00
Jeff Young 3c455949fc Revert some dialog changes that lost button sizes.
These are required on MSW.  Also back-dates the .fbp file to work
on Mac wxFormBuilder.
2018-08-14 13:54:04 +01:00
jean-pierre charras f0b8b2136a Pcbnew: Change a duplicate hot key. 2018-08-13 09:28:48 +02:00
jean-pierre charras 595666d46e Add support of GAL in FOOTPRINT_WIZARD_FRAME.
Some refinements are needed (for instance the context menu shows the filter
command if something is selected, that is useless in the footprint wizard.
2018-08-12 17:48:21 +02:00
Jeff Young 4b1a31ffad Regularize save-changes dialogs. 2018-08-12 00:02:37 +01:00
Jeff Young acec00f80a Fix bug displaying canvasses when starting in Legacy mode. 2018-08-11 23:43:19 +01:00
Jeff Young 4c08a71df5 Warn before replacing edited footprint in footprint editor.
Fixes: lp:1786570
* https://bugs.launchpad.net/kicad/+bug/1786570
2018-08-11 20:37:30 +01:00
Jeff Young d81faa72c9 Overhaul border drawing in all the Kicad frames.
Primary change is to replace most control/window borders with
AUI pane borders.  We implement our own AUI border drawing
routine which avoids the ugly one-pixel white frames around
dark canvasses.

Also increases the signal-to-noise ratio of all the pane
creation code in the various frames.
2018-08-11 17:25:38 +01:00
Jeff Young 43e99e6df0 Inflate footprint bounding box to include texts.
This makes zoom automatique work much better in the footprint
editor, and should improve other things which probably assumed
the bounding box included everything (such as refresh code).

Callers which still want just the module outline should call
GetFootprintRect() instead of GetBoundingBox().
2018-08-11 17:14:27 +01:00
jean-pierre charras 009044bd6b FOOTPRINT_EDIT_FRAME: fix incorrect layer manager initialization depending on canvas type.
Especially, the color selector is not the same when selecting GAL or Legacy canvas.
Due to this incorrect init, the color selector type was incorrect.
2018-08-11 13:16:41 +02:00
jean-pierre charras bd46f720a1 Fix a few AUI issues. 2018-08-11 11:26:47 +02:00
Seth Hillbrand 42c5017db7 PCBNEW: Re-add missing SWIG zone filler
Zone filler was factored out into a separate header.  To allow python
access to zone filling, we need to include the revised signatures.
2018-08-08 12:25:58 -07:00
jean-pierre charras 15e0771ea8 Add GAL support to Cvpcb display footprints frame. 2018-08-08 16:33:29 +02:00
Jeff Young a9fa66bb41 Don't broadcast events when running client selection filters.
Some other tools (in this case the POINT_EDITOR) aren't good
citizens and activate themselves when receiving selection
changes.

Fixes: lp:1785781
* https://bugs.launchpad.net/kicad/+bug/1785781
2018-08-08 01:44:56 +01:00
Jeff Young 9b44100e04 GetFullPath() includes filename; we just want GetPath()
Fixes: lp:1785891
* https://bugs.launchpad.net/kicad/+bug/1785891
2018-08-07 22:04:09 +01:00
Jeff Young 84504599ce Don't check for visibles in the Footprint Editor.
Everything is drawn anyway, and we crash if the viewPrivData
hasn't been allocated yet.

Fixes: lp:1785716
* https://bugs.launchpad.net/kicad/+bug/1785716
2018-08-07 18:39:20 +01:00
John Beard a1e0735853 Add hotkey (Insert) for zone create corner
Adds a hotkey to the TOOL_ACTION, and also checks for
action validity prior to running the actions (previously
implicitly gated by  the enablement of the menu item).
2018-08-07 09:19:18 -07:00
Jeff Young d788c9d479 Move library table dialogs from PLAYER to KIFACE interface.
Spooling up a full PLAYER in the background takes too long.

This also fixes bugs around how the tables are saved, although
that was just missing code rather than anything architectural.

Fixes: lp:1785436
* https://bugs.launchpad.net/kicad/+bug/1785436
2018-08-06 21:31:53 +01:00
Jeff Young be1d6113d6 More performance enhancements.
Be more intelligent about sorting lib tree items.  (Footprint
entries, for instance, come out of an already-sorted list.)

Don't recreate menus twice when laoding Footprint Editor.

More pervasive use of WX_FILENAME to avoid expensive calls to
wxFileName::SplitPath() and string concatenation.

For POSIX kernels do all the work on the file-system side so we
don't have to keep converting back and forth between encodings.
2018-08-06 13:49:27 +01:00
Jeff Young 0fbe702043 Layout adjustments to Choose Symbol and Choose Footprint. 2018-08-06 13:48:17 +01:00
Jeff Young d52429fc3c Read footprint info cache when fpinfo requested via kiway. 2018-08-06 13:48:17 +01:00
Jeff Young 97c4d42ebf Improve Read Netlist tooltip for footprint assignment.
Fixes: lp:1785200
* https://bugs.launchpad.net/kicad/+bug/1785200
2018-08-06 13:48:17 +01:00
Ronnie Gaensli 3ca84dca71 Cancel Add dimension leaves auto panning on
Fixes: lp:178551
* https://bugs.launchpad.net/kicad/+bug/178551
2018-08-06 11:24:23 +02:00
jean-pierre charras c32fcd1403 Fix commit f3f814e622 that breaks the compilation on Windows.
Fiw also a minor compil warning
2018-08-04 17:18:15 +02:00
Jeff Young fd3e57d67f Layout adjustments and language-change-updating for modview. 2018-08-04 12:59:04 +01:00
Jeff Young 9aaa235b7b Use binary search on Footprint Info list.
While it only improves footprint loading on the standard library
by about 6%, it will keep larger libraries from getting catastrophic.
2018-08-04 10:29:17 +01:00
Jeff Young 33fc74a04d Performance enhancements for Footprint Editor construction. 2018-08-04 10:29:17 +01:00
Jeff Young 92b3aca0ef Fix crash when trying to view invalid footprint link.
Fixes: lp:1785218
* https://bugs.launchpad.net/kicad/+bug/1785218
2018-08-04 10:29:17 +01:00
Jeff Young 1b71c723bc Fix pad properties Y dimension enabling.
Fixes: lp:1785241
* https://bugs.launchpad.net/kicad/+bug/1785241
2018-08-04 10:29:17 +01:00
Jeff Young f3f814e622 Performance enhancements for footprint info list.
Cache the footprint info on disk (in the project).
Move timestamp-generation (and checking) to the filesystem so the
above will be bullet-proof.
Rewrite some wxWidgets classes for performance (see common.h).
2018-08-04 10:29:17 +01:00
Wayne Stambaugh 8e7d6063fd Minor dialog and frame window improvements.
Drop all uses of wxRAISED_BORDER and wxSUNKEN_BORDER from dialogs and
panels used in main frame windows.

Drop use of wxSP_3DSASH options on all wxSplitterWindow definitions.

Minor dialog alignment and spacing fixes.
2018-08-02 13:00:41 -04:00
jean-pierre charras ce3760438c Fix a few wxWidgets minor asserts. Fix also a missing bitmap button initialization.
Fixes: lp:1783703
https://bugs.launchpad.net/kicad/+bug/1783703
2018-08-02 13:22:11 +02:00
Jeff Young d8d4f75fa1 Fix button order and genralize Exit dialog so it can be shared more.
This also fixes a bunch of bugs where an error during save would
still close the window (rather than cancelling the close action).

Fixes: lp:1785034
* https://bugs.launchpad.net/kicad/+bug/1785034
2018-08-02 11:01:03 +01:00
Jeff Young c655bffac1 Improve context menu consistency.
Also fixes some interactivity issues in the microwave tools around
single-click tools that have initial properties dialogs.  Those
need to act kind of like a hybrid between single-click and two-click
tools.

Fixes: lp:1751381
* https://bugs.launchpad.net/kicad/+bug/1751381
2018-08-02 11:01:03 +01:00
Jeff Young d6c6322f95 Leave measurement visible until another is started. 2018-08-02 11:01:03 +01:00
Seth Hillbrand 3a09358264 modedit: Store single copy of the footprint in undo
When changing elements in the module editor, each element shares the
same parent.  Undo commits store a copy of the parent as it existed
before the change.  For footprints with many elements, this creates
large, slow undo commits as a copy of the full footprint is stored for
each element being edited.

This keeps a single copy of the footprint in the undo stack per edit.

Fixes: lp:1780526
* https://bugs.launchpad.net/kicad/+bug/1780526
2018-08-01 11:06:23 -07:00
jean-pierre charras 3d28d0274b put a demo file to the right place 2018-08-01 16:44:18 +02:00
jean-pierre charras b47ffd7054 Update python scripts examples according to recent changes in pcbnew code.
Add a new example to plot files
2018-08-01 16:32:37 +02:00
jean-pierre charras fc6547f5c0 Make gerber job file writer accessible by Python scripts 2018-08-01 16:32:37 +02:00
Jeff Young 6dbfa793e8 Fix GTK compile errors and remove dead code.
Fixes: lp:1783993
* https://bugs.launchpad.net/kicad/+bug/1783993
2018-08-01 12:23:16 +01:00
Jeff Young 9322139baa Touch up Footprint Viewer for new Lib Tree. 2018-08-01 11:47:48 +01:00
Jeff Young 9175a48c90 Enable Distribute H/V on pads.
Fixes: lp:1782988
* https://bugs.launchpad.net/kicad/+bug/1782988
2018-08-01 09:35:46 +01:00
Jeff Young f8a5e2c1c8 Performance enhancements in fp loading, string cmp, etc.
Knocks about 1/3 off the first footprint load, and more than 1/2
off subsequent loads.
2018-08-01 09:35:46 +01:00
Jeff Young 0a35c5c97e Convert Footprint Editor to component tree.
Fixes: lp:1784178
* https://bugs.launchpad.net/kicad/+bug/1784178

Fixes: lp:1780363
* https://bugs.launchpad.net/kicad/+bug/1780363
2018-08-01 09:35:46 +01:00
Jeff Young b400565880 Convert Place Footprint to component tree. 2018-08-01 09:35:45 +01:00
Seth Hillbrand 13b96799ea pcbnew: remove duplicate rebuild in GAL
When running GAL, the connectivity is built when the board loads, so the
extra call to rebuild connectivity is not needed.
2018-07-31 15:13:12 -07:00
Seth Hillbrand 284c39acac pcbnew: Unify connected lists between items/zones
Keep the zoneitems in the same list as the rest of the items.
2018-07-31 15:12:08 -07:00
Seth Hillbrand f87cb64d65 pcbnew: Ensure connectivity layers are respected
This prevents non-copper layers from being included in the connectivity
search.  It also limits the layer search in the connectivity RTree to
just the copper layer range.
2018-07-31 15:11:19 -07:00
Seth Hillbrand 589e5b9ad7 Remove connectivity debug statements 2018-07-31 14:26:57 -07:00
Seth Hillbrand dc1736eb87 pcbnew: Split Layers in connectivity
Splits the connectivity search RTree by layers to avoid large penalty on
zone searches.
2018-07-31 14:26:57 -07:00
Tomasz Wlostowski 099fcf1247 ZONE_CREATE_HELPER: fix zone cutout creation in zones with holes, reinit selection with the resulting zone
Fixes: lp:1784268
* https://bugs.launchpad.net/kicad/+bug/1784268
2018-07-31 22:34:56 +02:00
jean-pierre charras 1dbaef303e Fix FootprintWizardBase.py according to recent changes in lib_id.h 2018-07-31 18:46:25 +02:00
jean-pierre charras 5a2e171f9e fix a few wxWidgets asserts. 2018-07-31 13:16:58 +02:00
jean-pierre charras 619e13dc2d Fix D_PAD::BuildPadShapePolygon() incorrect calculation for custom pad shapes.
Fixes: lp:1784340
https://bugs.launchpad.net/kicad/+bug/1784340
2018-07-30 16:56:59 +02:00
Tomasz Wlostowski 516cf47946 OPENGL_GAL: optimized JP's bitmap drawing function to use textures 2018-07-30 00:13:37 +02:00
jean-pierre charras 882565f2e1 Fix a few wxWidgets minor asserts 2018-07-29 10:39:05 +02:00
jean-pierre charras d73db8c73a Make a few strings not internationalized, because they must not be translated (html format strings) 2018-07-28 12:47:23 +02:00
Jeff Young 3c2c5c38ad Make icon buttons slightly wider for MSW.
Fixes: lp:1783703
* https://bugs.launchpad.net/kicad/+bug/1783703
2018-07-27 14:58:19 +01:00
Jeff Young 4dfae16c1b Consolidate to single menu actions for save, revert, etc.
There's no point in having both Save Symbol and Save Library when
only one can be selected at a time.

Also cleans up a bunch of extraneous icons, and fixes a few
copy/paste errors in menus and toolbars.
2018-07-27 14:58:19 +01:00
Jeff Young 95d3336f63 We need the other end of the stick when not yet routing.
Fixes: lp:1781424
* https://bugs.launchpad.net/kicad/+bug/1781424
2018-07-27 14:58:19 +01:00
jean-pierre charras b70dd1ecc4 Fix compil warnings 2018-07-27 11:18:24 +02:00
Jeff Young 0cca1c6721 Remove active library concept from footprint editor.
Also bring the menu system and toolbar in line with Pcbnew,
eeschema, and the symbol library editor, which includes moving
to a standard Save As paradigm for renaming/moving items.

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

Fixes: lp:1778202
* https://bugs.launchpad.net/kicad/+bug/1778202
2018-07-26 21:34:25 +01:00
Jeff Young cb61525394 Handle separate parsing rules for ID_SCH and ID_PCB.
This removes the existing constructors so that all parsing must
be explicit and callers are made aware that they need to think
about illegal characters, malformed ids, etc.

Fixes: lp:1783474
* https://bugs.launchpad.net/kicad/+bug/1783474
2018-07-26 15:43:53 +01:00
John Beard 9ec6efbf13 Add icon for update PCB from Schematic
This previously used the "import board file" icon, which is a bit
confusing, as the action is not importing into a PCB.
2018-07-26 15:43:53 +01:00
John Beard 1e11df650c Typos and inconsistencies in FP and Pad dialogs
* A few typos like stray new lines
* Per cent -> percent
* Consistent use of full stops
* Consistent use of commas after "If 0"

Fixes: lp:1783446
https://bugs.launchpad.net/kicad/+bug/1783446
2018-07-26 16:40:08 +02:00
Tomasz Wlostowski 07d56a2e32 BOARD::PadDelete() should update connectivity
Fixes: lp:1783528
* https://bugs.launchpad.net/kicad/+bug/1783528
2018-07-26 16:21:02 +02:00
Maciej Suminski 630631b41b Code formatting 2018-07-26 16:04:31 +02:00
Tomasz Wlostowski a9af4d0141 ZONE_CREATE_HELPER: fixed crash when adding a cutout to a zone
Fixes: lp:1783541
* https://bugs.launchpad.net/kicad/+bug/1783541
2018-07-26 15:30:21 +02:00
Maciej Suminski dbf4bcdbb7 Converted PNS Length Tuning dialog to use TransferData{From,To}Window()
Fixes: lp:1783694
* https://bugs.launchpad.net/kicad/+bug/1783694
2018-07-26 10:08:44 +02:00
jean-pierre charras f13a546c9b Fix a few wxWidgets asserts or alerts. 2018-07-25 20:26:55 +02:00
Jeff Young 822ebf6955 Move symbol management to a standard Save As... model.
Also brings horizontal toolbar in line with Pcbnew and Eeschema.
And updates the EDA_LIST_DIALOG to current practices.

This finishes the removal of the active library concept from the
Symbol Editor (started with the new component tree in 5.0).

Fixes: lp:1740717
* https://bugs.launchpad.net/kicad/+bug/1740717
2018-07-25 14:41:20 +01:00
Jeff Young e55bb9e748 Increment references when creating an array.
While it's not always correct, not doing so is pretty much always
incorrect.

Fixes: lp:1625964
* https://bugs.launchpad.net/kicad/+bug/1625964
2018-07-25 14:41:20 +01:00
John Beard 6df2d69b6e Add global zone fill/unfill to Edit menu
This means if you don't know the hotkey, the tool action can be
reached without having to activate the zone tool.

Fixes: lp:1783250
https://bugs.launchpad.net/kicad/+bug/1783250
2018-07-25 09:04:51 +02:00
Jeff Young 994a9c5ff8 Only show all layers when the stackup changes.
Fixes: lp:1783231
* https://bugs.launchpad.net/kicad/+bug/1783231
2018-07-24 18:43:44 +01:00
John Beard 7acc0b89f9 Pcbnew: fix 45-degree snapping of ruler and dimension tools
This introduces a new util function in geometry_utils which snaps a vector
to axes or 45 degree lines. This can be used whenever you want to
snap a vector to these angles, but still want it to stay on a grid.

This snapping is used for the dimension tool and the ruler tool.

This is substantially simpler for two-point tools that the method
used by the line tool, which uses DIRECTION_45.

Fixes: lp:1780826
https://bugs.launchpad.net/kicad/+bug/1780826
2018-07-24 15:01:02 +01:00
John Beard 9d15e58462 Pcbnew: add new icon for board setup
Previously, the generic "options" gear was used, which was
confusing.

This commit add a new icon, options_board, specifically for
board-wide options.
2018-07-24 14:58:19 +01:00
Jeff Young 2d4ba56ac0 Promote aperture pads to first-class citizens.
Well, almost anyway.  We can't use a pad attribute for them as
that would change the file format.  So they're currently
defined as a CONN pad with no copper layers.

However, when figuring out of existing pads should be *treated*
as aperture pads, we just check for no copper layers.

Fixes: lp:1781760
* https://bugs.launchpad.net/kicad/+bug/1781760
2018-07-24 14:57:45 +01:00
Jeff Young 4618c64213 Don't number aperture pads.
Fixes: lp:1781760
* https://bugs.launchpad.net/kicad/+bug/1781760
2018-07-24 10:39:30 +01:00
Jeff Young f79ca271e3 Replace missing #ifndef's.
We only process symlinks on POSIX kernels (Linux and OSX).

Fixes: lp:1548798
* https://bugs.launchpad.net/kicad/+bug/1548798
2018-07-24 09:05:39 +01:00
jean-pierre charras 1510c2c56f Fix incorrect arc calculation when building the board outline (internal holes only)
Fixes: lp:1783181
https://bugs.launchpad.net/kicad/+bug/1783181
2018-07-24 09:17:20 +02:00
Jeff Young bc47f085df Support symlinks for .pretty and .lib files.
Fixes: lp:1548798
* https://bugs.launchpad.net/kicad/+bug/1548798
2018-07-23 23:50:13 +01:00
Jeff Young 4d3aeb3339 Make sure cur_lib_table is initialized.
The panel doesn't get Show() events so do it in the constructor.
2018-07-23 23:50:13 +01:00
jean-pierre charras a27ba65ed2 DXF import: verify the layer used to import the DXF drawings is valid (correctly selected). 2018-07-23 13:58:13 +02:00
Jeff Young afd80c3cdb Fix botched attempt to have ruler adjust to unit changes.
Also fixes the context menu so there's a specific one for the
measurement tool, allowing zooming for instance without cancelling
the tool.
2018-07-23 12:37:01 +01:00
Jeff Young 16b5f40817 Remove assert and update ruler units on the fly.
Fixes: lp:1781595
* https://bugs.launchpad.net/kicad/+bug/1781595
2018-07-23 02:02:02 +01:00
Jeff Young 185b524a62 Support both add-empty and add-browse for 3D models.
Also fixes a bug where the selected row and the grid cursor get
separated after a delete.

Fixes: lp:1782747
* https://bugs.launchpad.net/kicad/+bug/1782747
2018-07-23 01:09:47 +01:00
Jeff Young 56ff3b3c95 Fix CLion's placement of #includes. 2018-07-22 23:33:36 +01:00
Jeff Young d804427c83 Add Open-Schematic tool to PcbNew.
Fixes: lp:1780610
* https://bugs.launchpad.net/kicad/+bug/1780610
2018-07-22 22:36:24 +01:00
Jeff Young 0c042aff7b Use mils for track widths when inches is selected. 2018-07-22 22:36:24 +01:00
jean-pierre charras db712ea643 Footprint editor: display a warning when trying to created a custom pad shape with a Bezier curve.
Currently, Bezier curve (S_CURVE shape) is not supported in a custom pad shape.
2018-07-22 18:39:48 +02:00
jean-pierre charras 4cac974420 Add Bezier curve (S_CURVE shape) support in DIALOG_GRAPHIC_ITEM_PROPERTIES.
Fix some issues related to S_CURVE shape support.
2018-07-22 18:39:48 +02:00
jean-pierre charras 3c6e8c4a40 More support of DRW_SEGMENT Bezier curve (support in 3D viewer, and PnS router). 2018-07-22 18:39:48 +02:00
jean-pierre charras 7291059489 replace lib_dxf by dxflib from qcad in dxf2idf code 2018-07-22 18:39:47 +02:00
jean-pierre charras 72d1597201 DXF import: add import of DXF splines that are converted to Bezier curves.
Fix also a lot of bugs related to Bezier curves (S_CURVE shape in DRAW_SEGMENT class) in Pcbnew code.
Add missing code to handle these Bezier curves
2018-07-22 18:39:47 +02:00
jean-pierre charras 5ee1caf0b9 dialog DIALOG_NONCOPPER_ZONES_PROPERTIES: resize widgets when resizing the dialog frame. 2018-07-22 18:37:28 +02:00
Maciej Suminski 45c1742a3f pcbnew: Disabled UI update for pcbnew console menu item
UI update event handler updates toolbar button state for the scripting
console, but for the associated menu item it displays an assert saying that
the menu item that cannot be checked. To avoid that, the UI update event
handler returns early if event does not come from the toolbar.
2018-07-22 16:09:46 +02:00
Jeff Young 65f4743a44 Sort pads by netlist before running single-pad-net tests.
Fixes: lp:1782660
* https://bugs.launchpad.net/kicad/+bug/1782660
2018-07-22 16:21:51 +01:00
jean-pierre charras 8026d2aa41 Fix incorrect behavior of the wxChoice used in dialog zone properties.
For some reason the wxChoice did not close after a selection (at least on Windows).
Perhaps due to some window ID collision.
2018-07-22 15:47:45 +02:00
Jeff Young d32fb68fa9 Remove debugging and add grouping box for Nets & Net Filters.
Fixes: lp:1782766
* https://bugs.launchpad.net/kicad/+bug/1782766

(cherry picked from commit a75f376)
2018-07-22 11:19:21 +01:00
Jeff Young 7cce283fea Fix diff pair custom values.
Fixes: lp:1782971
* https://bugs.launchpad.net/kicad/+bug/1782971

(cherry picked from commit 53f35a3)
2018-07-22 11:19:17 +01:00
Jeff Young 7dfc4e30e4 Add some debugging statements to find out what's up with GTK. 2018-07-21 23:17:46 +01:00
Jeff Young 833e0b3c0f One more attempt to get the layers list width right on GTK.
Fixes: lp:1782766
* https://bugs.launchpad.net/kicad/+bug/1782766
2018-07-21 14:44:01 +01:00
Jeff Young 86d98ee7fd Check via X and Y for indeterminate value before setting.
Fixes: lp:1782889
* https://bugs.launchpad.net/kicad/+bug/1782889
2018-07-21 14:05:03 +01:00
Jeff Young 5c646119a7 Allow user-specification of dimension units.
Also fixes a units bug when round-tripping a dimension through
the file format.

Fixes: lp:1782797
* https://bugs.launchpad.net/kicad/+bug/1782797
2018-07-21 13:50:21 +01:00
Jeff Young 2c833f2c91 Fix layout issues in Copper Zones dialog.
(The list width issue probably also affects other zone dialogs.)

Fixes: lp:1782766
* https://bugs.launchpad.net/kicad/+bug/1782766
2018-07-20 22:21:51 +01:00
Jeff Young ea3ef1eb87 Don't lose model filepath when writing spin boxes back.
Also renames a bunch of stuff to be clearer.

Fixes: lp:1782753
* https://bugs.launchpad.net/kicad/+bug/1782753
2018-07-20 21:59:12 +01:00
Jeff Young 87f72c3d97 Initialize layer comboboxes before trying to set them.
Fixes: lp:1782794
* https://bugs.launchpad.net/kicad/+bug/1782794
2018-07-20 20:29:15 +01:00
Jeff Young c1df78d531 Finish project frame library table editing.
Fixes: lp:1782761
* https://bugs.launchpad.net/kicad/+bug/1782761
2018-07-20 18:48:06 +01:00
Jeff Young bd90341e91 Add Footprint & Datasheet buttons to Edit Symbol dialog. 2018-07-20 18:48:06 +01:00
Maciej Suminski fecadeca23 Initialize variables in DIALOG_TEXT_PROPERTIES
Fixes: lp:1782547
* https://bugs.launchpad.net/kicad/+bug/1782547
2018-07-20 10:33:44 +02:00
Jeff Young 3c1dc9e5c6 Must also set local coords when moving footprint texts.
Fixes: lp:1782542
* https://bugs.launchpad.net/kicad/+bug/1782542
2018-07-19 23:26:24 +01:00
Jeff Young e02fe83a71 Some minor cleanup. 2018-07-19 21:46:41 +01:00
Jeff Young ba0c823673 Fix flicking issues on non-double-buffered platforms. 2018-07-19 21:46:41 +01:00
Jeff Young eaf5b913b6 Add Manage Symbol and Footprint Library tables to project frame.
Fixes: lp:1780604
* https://bugs.launchpad.net/kicad/+bug/1780604
2018-07-19 21:46:41 +01:00
Jeff Young 5621f4221a A few more spacing & font-size updates for Windows. 2018-07-19 21:46:41 +01:00
Maciej Suminski 887ee46935 Fixed a crash in DIALOG_COPPER_ZONE
wxDataViewCtrl used an incorrect column type, which made wxWidgets try
to extract wxDataViewIcon from an integer variable.

Fixes: lp:1782449
* https://bugs.launchpad.net/kicad/+bug/1782449
2018-07-19 11:11:13 +02:00
Jeff Young 829ba27206 Another round of dialog spacing/font adjustments for Windows. 2018-07-18 17:59:05 +01:00
Jeff Young 93c173fcdd Add board setup and update PCB from schematic to toolbar.
Also reorders toolbar to more closely align with menus (and
eeschema).
2018-07-18 00:01:35 +01:00
Jeff Young 879ffa4d1c Adjust dialog spacing for Windows. 2018-07-17 22:18:27 +01:00
jean-pierre charras c585964da9 fix coding style issues. 2018-07-17 19:55:33 +02:00
Jeff Young e6b55c9ae5 New net membership controls for more efficient operation.
(cherry picked from commit f7c5a54)
2018-07-17 15:14:28 +01:00
Jeff Young 977f27f3c4 Adjust spacing on preference panels.
Giving them the correct parent changed the spacing.

(cherry picked from commit 7f602f3)

(cherry picked from commit 718db46)
2018-07-17 15:14:25 +01:00
Jeff Young abae094955 Remove unused variables.
(cherry picked from commit 4fc5281)

(cherry picked from commit b151c8d)
2018-07-17 15:14:22 +01:00
Jeff Young 909f850d16 Give panels the correct parent (the treebook, not the dialog).
(cherry picked from commit 7338533)

(cherry picked from commit 3ce75be)
2018-07-17 15:14:19 +01:00
Jeff Young 99db5cb543 Allow for reduced nagging with wider use of KIDIALOG.
(cherry picked from commit c2dd5df)
2018-07-17 15:13:53 +01:00
Jeff Young a52605957e Reduce verbosity in netlist updating messages.
Fixes: lp:1615755
* https://bugs.launchpad.net/kicad/+bug/1615755

(cherry picked from commit 798efbd)
2018-07-17 15:13:51 +01:00
Jeff Young a4c5e2c82f Fix focus issues with dialog previews.
Use SetStealsFocus() to fix the Pad Properties dialog, and remove
mouse-enter-kill-focus to fix 3D preview in Footprint Properties
dialog.

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

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

(cherry picked from commit e0c1fc9)
2018-07-17 15:13:47 +01:00
Jeff Young deed1d67b3 Make SMD terminology consistent.
Fixes: lp:1656688
* https://bugs.launchpad.net/kicad/+bug/1656688

(cherry picked from commit 2946163)
2018-07-17 15:13:45 +01:00
Jeff Young 45e6dfc7af Simplify copy/paste of pad settings.
Fixes: lp:1743141
* https://bugs.launchpad.net/kicad/+bug/1743141

(cherry picked from commit 13ece03)
2018-07-17 15:13:39 +01:00
Jeff Young d016238c82 Rewrite Move And Swap Layers dialog.
Fixes: lp:1670422
* https://bugs.launchpad.net/kicad/+bug/1670422

(cherry picked from commit 356a767)
2018-07-17 15:13:35 +01:00
Jeff Young df863e44e2 Wire m_showPageLimits control up to GAL canvas.
Fixes: lp:1499285
* https://bugs.launchpad.net/kicad/+bug/1499285

(cherry picked from commit 4cb7442)
2018-07-17 15:13:29 +01:00
Jeff Young fb21069c5a Refresh layer selection dialogs.
Use platform-native widgets to show selection and draw layer
colours over the PCB background colour.

(cherry picked from commit 4f95f7f)
2018-07-17 15:13:24 +01:00
Jeff Young da69a7cd9c Enable position-relative tool in footprint editor.
Fixes: lp:1778624
* https://bugs.launchpad.net/kicad/+bug/1778624

(cherry picked from commit 3ee9703)
2018-07-17 15:12:43 +01:00
Jeff Young 49ea6e1670 Fix occurrences of "edition" which should be "editing"
Fixes: lp:1778168
* https://bugs.launchpad.net/kicad/+bug/1778168

(cherry picked from commit bcb1220)
2018-07-17 15:12:39 +01:00
Jeff Young d5e88f574f Clean up units infrastructure after g_UserUnit removal.
Fixes: lp:1538239
* https://bugs.launchpad.net/kicad/+bug/1538239

(cherry picked from commit 96d7178)
2018-07-17 15:12:36 +01:00
Jeff Young aab97c8385 Consolidate design rules UI.
Implement new Board Setup paged dialog which includes:
  Layers Setup
  Design Rules
  Solder Mask & Paste
  Text & Drawings

Moves line width and text properties to a layer-class-based
system.  Renames unlocked to upright (which also reverses the
logic).

New Edit Text and Graphic Properties dialog which replaces
Edit Footprint Text and adds layer-class-based editing and the
italic, upright and visibility properties.

Adds Import Settings functionality which allows settings to
be imported from another project at page granularity.

Also UNIT_BINDERizes the dialog and adds editing of pcb text.

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

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

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

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

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

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

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

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

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

(cherry picked from commit 3944a5e)
2018-07-17 15:12:34 +01:00
Jeff Young 5f3ee1e7ce More g_UserUnit erradication.
(cherry picked from commit 3f08780)
2018-07-17 15:12:31 +01:00
Jeff Young 0358aee89e UNIT_BINDERize print and plot dialogs.
Fixes: lp:1778560
* https://bugs.launchpad.net/kicad/+bug/1778560

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

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

(cherry picked from commit 9df9743)
2018-07-17 15:12:29 +01:00
Jeff Young ff34c7a948 Eradicate g_userUnit from router.
(cherry picked from commit 5e90e6b)
2018-07-17 15:12:26 +01:00
Jeff Young ae2cb331b1 Merge PCBnew text edit dialogs.
(cherry picked from commit 63b7738)
2018-07-17 15:12:24 +01:00
Jeff Young 40c1c8285d Combine PCBnew and ModEdit Graphic Item Properties dialogs.
Also UNIT_BINDERizes the result.

(cherry picked from commit edd3b25)
2018-07-17 15:12:21 +01:00
Jeff Young ef3e045a9b Eradicate g_UserUnit from ERC/DRC.
(cherry picked from commit 98b8cd4)
2018-07-17 15:12:16 +01:00
Jeff Young 2ff414adb4 Simplify Move Exactly and Postion Relative dialogs.
Also removes g_UserUnit references.

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

(cherry picked from commit 1639636)
2018-07-17 15:12:11 +01:00
Jeff Young 5ce0f8ba54 Kill off a few more g_UserUnit references.
(cherry picked from commit 452b1a7)
2018-07-17 15:12:07 +01:00
Jeff Young cae249bbb8 UNIT_BINDERize and simplify Layers Setup dialog.
The colours don't add much in the way of comprehension and they
do add visual complexity.  Same for the labels at the top of
the layers list box.

Also improved the grouping to make the presets aciton more clear.

(cherry picked from commit 1a03e13)
2018-07-17 15:12:02 +01:00
Jeff Young 3e062867de Move all the grid workarounds into our own WX_GRID class.
(cherry picked from commit 08b4463)
2018-07-17 15:11:38 +01:00
Jeff Young 92dcf43ae8 UNIT_BINDERize zone dialogs.
Also includes a bunch of changes to simplifiy the terminology
and unify the copper, non-copper and keepout versions.

Also removes some legacy features:
Removes contol for fill method.  If the fill method is currently
segments the dialog will ask if you want to convert to polygons
on OK.
Removes control of boundary resolution.  We've done this with trig
since 5.0.

(cherry picked from commit 487aaeb)
2018-07-17 15:11:32 +01:00
Jeff Young 7841f8a466 Unified preferences dialog framework.
(cherry picked from commit 8ee3e77)
2018-07-17 15:11:17 +01:00
Jeff Young 2283bcda4c Add text item property options when updating footprints.
Fixes: lp:1753286
* https://bugs.launchpad.net/kicad/+bug/1753286

(cherry picked from commit b94dd87)
2018-07-17 15:11:14 +01:00
Jeff Young bbc25cd694 Add hole-to-hole clearance testing to DRC.
Also move courtyard testing flags to BoardSettings API.  Both are
still stored in the config until we decide where they go in order
to prevent prematurely disturbing the board file format.

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

(cherry picked from commit 5399f60)
2018-07-17 15:11:11 +01:00
Jeff Young eacaa39aa2 Remove global units usage from GetSelectionText...
... and GetMsgPanelInfo.

Step 4 in the g_UserUnit eradication effort.

Also removes a couple of conversion routines that were close
enough to extinction.

(cherry picked from commit c75da51)
2018-07-17 15:11:09 +01:00
Jeff Young 1569842927 Pad properties usability enhancements.
Also includes conversion to UNIT_BINDER for pad properties and
pad primitives properties dialogs.

(cherry picked from commit 4a051da)
2018-07-17 15:11:06 +01:00
Jeff Young 0010ad37d1 In-place editing for footprint TEXTE_MODULEs.
Fixes: lp:1102168
* https://bugs.launchpad.net/kicad/+bug/1102168

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

(cherry picked from commit 83781ab)
2018-07-17 15:11:04 +01:00
Jeff Young 8f0aa68ab8 Fold 3D Search Paths dialog into Configure Paths.
Use in-place editing for both.

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

(cherry picked from commit 33622cd)
2018-07-17 15:11:01 +01:00
Jeff Young 124c6d9857 Add in-place editing and validation to Design Rules.
Includes UNIT_BINDER transition and some general layout cleanup.

(cherry picked from commit 282119e)
2018-07-17 15:10:55 +01:00
Jeff Young 05ef6f05d1 Move SanitizePads to CLIENT_SELECTION_FILTER architecture.
This not only reduces the number of different mechanisms, but
will also reduce (yet again) the number of Clarify Selection
pop-ups (because the CLIENT_SELECTION_FILTER runs before the
pop-up, while SanitizePads ran after it).

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

(cherry picked from commit e50a993)
2018-07-17 15:10:18 +01:00
Jeff Young f7861c90ec Use more self-documenting names for conversion routines.
In particular, make sure no one thinks the low-precision ones are
OK for dialogs and/or files.

(cherry picked from commit bc1fcfa)
2018-07-17 15:10:13 +01:00
Jeff Young 7be85deb32 GRID_TRICKS improvements.
Allow copy of a single cell demarcated by the grid cursor.

Paste of lib_table s-expressions should always start at 0,0.

Let caller or specialized sub-class do auto-sizing; don’t
do it from within the base GRID_TRICKS.

Don’t start GRID_TRICKS menu IDs at -1; wxWidgets doesn’t
like it when you get to 0.

Add column visibility menu.

(cherry picked from commit e5071ed)
2018-07-17 15:10:03 +01:00
Jeff Young f0f9e4a1cb Kicad-ize the numeric evaluator.
Naming conventions, code formatting, and wxStrings.

(cherry picked from commit 4a0d7a8)
2018-07-17 15:10:01 +01:00
Jeff Young 0f78f97232 Get rid of 5.0 dialog focus hacks.
It's time to fix the focus issues.  This adds a new SetInitialFocus()
routine to DIALOG_SHIM which will need to be called from a lot of
dialogs.

(cherry picked from commit 6d9647a)
2018-07-17 15:09:58 +01:00
Jeff Young a39fb03822 Remove some references to g_UserUnit
(cherry picked from commit 614d832)
2018-07-17 15:09:56 +01:00
Jeff Young 74acb76e7f Switch UNIT_BINDER and DIALOG_SHIM to local units.
The general idea is to support user-units inheritance.  The
UNIT_BINDER allows wrapped controls to inherit units from their
parent dialog, while KEYWAY_HOLDER and DIALOG_SHIM allow child
KEYWAY_HOLDERs or DIALOG_SHIMs to inherit units from their
parent.

The GetUserUnits() method signature has to move to KEYWAY_HOLDER
rather than KEYWAY_PLAYER (where it makes more sense) as it’s the
only common ancestor of KEYWAY_PLAYER and DIALOG_SHIM.

As long as we'll be using the UNIT_BINDER more widely, it also
makes sense to move evaluation and validation into it.

This commit also provides eeschema’s DIALOG_LABEL_EDITOR and
pcbnew’s DIALOG_TRACK_VIA_PROPERTIES and DIALOG_SET_GRID as
models of how to use the new user-units inheritance, eval, and
validation.

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

(cherry picked from commit c8bc53e)
2018-07-17 15:09:53 +01:00
Jeff Young 4f8c546140 Implement user units uniformly in EDA_DRAW_FRAME
Step 1 of the g_UserUnit global eradication.  This commit includes
basic hookup of hotkeys, units tool-buttons and grid dialogs.

(cherry picked from commit e0500ab)
2018-07-17 15:09:51 +01:00
Jeff Young b99ea159c8 Rationalize select menu texts.
Be consistent with order, formatting, etc.
Remove debug stuff such as zone timestamp and net code.
Clean up misleading pad messages.

(cherry picked from commit 2132109)
2018-07-17 15:09:48 +01:00
Jeff Young a1ef5401f4 More platform-standard presentation of DRC dialog.
Also makes better use of space to significantly increase number
of markers shown.

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

(cherry picked from commit a1d8097)
2018-07-17 15:09:46 +01:00
Jeff Young 6ad37972c0 Don't center objects behind the DRC dialog.
(cherry picked from commit d5bb39f)
2018-07-17 15:09:43 +01:00
Jeff Young 3e190cee4b Implement selection brightening for DRC.
The old item pointers (which aren't safe to keep around) were
removed in favour of opaque references (void*) which are then
compared against existing items when needed.

Also improves brightening by brightening the whole footprint
(ie: its pads, drawings, reference and value) rather than just
its target cross.

(cherry picked from commit 30e90b0)
2018-07-17 15:09:40 +01:00
Jeff Young e9d877914d Dialog consistency and beautification.
Small icons for dialog browse, refresh, and row operations.
Icons in B&W so they don't over-emphasize with respect to other
controls in the dialog.

Layout cleanup for consistency.  Removal of the blank space to
left of the fields list in the Global Fields Editor, and addition
of column-sizing-to-list-width.

More even spacing for buttons in html report panel.

Honor platform conventions for action button order and layout.

Move netlist importer to update-pcb-from-schematic algorithm
(display messages and then update instead of "dry run" checkbox)

(cherry picked from commit b21e19d)
2018-07-17 15:09:01 +01:00
Wayne Stambaugh eaf938c7e9 Pcbnew: fix missing undo when deleting footprint text object.
Fixes lp:1781224

https://bugs.launchpad.net/kicad/+bug/1781224
2018-07-12 09:36:13 -04:00
Carsten Schoenert 3e22e5ccd3 fix misspelled 'an other' -> 'another' 2018-07-11 10:35:35 -04:00
Carsten Schoenert 9f7109826d fix misspelled 'allows to' -> 'allows one to'
Fixup small grammar issues around used 'allows to ...' almost in
code comments.
2018-07-11 10:35:03 -04:00
Maciej Suminski 0013e0cad1 DRC: test for items located on disabled layers
Fixes: lp:1779281
* https://bugs.launchpad.net/kicad/+bug/1779281
2018-07-10 18:24:15 +02:00
Baranovskiy Konstantin 5e1605af19 Values of argc and argv transfers to python environment. 2018-07-08 08:10:44 +02:00
Seth Hillbrand 101b68b610 pcbnew: Keep dp placer on initial layer
Changing the layer after starting the differential pair placer should
not change the inital track layer.

Fixes: lp:1779800
* https://bugs.launchpad.net/kicad/+bug/1779800
2018-07-03 08:23:16 -07:00
Seth Hillbrand b3db6572e8 pcbnew: diff pair filter bugfix
Added required action on the std::remove_if construct to erase elements
matching the filter
2018-06-29 13:05:44 -07:00
Maciej Suminski a14b552d89 Eagle PCB import: handle DRC rules where min value > max value
Fixes: lp:1779126
* https://bugs.launchpad.net/kicad/+bug/1779126
2018-06-29 19:53:20 +02:00
Maciej Suminski b43b78bdd2 pcbnew: Prevent double items recaching on start
Thanks to Seth Hillbrand for pointing out the issue.

Fixes: lp:1779002
* https://bugs.launchpad.net/kicad/+bug/1779002
2018-06-29 08:51:46 +02:00
Seth Hillbrand 33075e55a4 pcbnew: Draw the clearance outline first
In Cairo, we don't have z-ordering implemented, so we need to draw the
clearance outline first otherwise it will draw a large, grey overlay
that hides the actual track while routing.

Fixes: lp:1779228
* https://bugs.launchpad.net/kicad/+bug/1779228
2018-06-28 20:28:12 -07:00
Seth Hillbrand ce379f56af pcbnew: Remove extraneous OpenMP shared decl 2018-06-28 12:22:41 -07:00
Seth Hillbrand b0b5d91390 pcbnew: fix OpenMP synch issue
Fixes: lp:1778454
* https://bugs.launchpad.net/kicad/+bug/1778454
2018-06-28 09:28:52 -07:00
Seth Hillbrand 0748c118dd pcbnew: Synchronize zone removal
After refilling zones, we need to unconditionally remove the filled
polys from the map because their fills map have changed.  Left-over
filled polygons will not map to current polygons, creating "ghost"
islands in the connectivity.  Removing these can overflow the polygon
count.

Fixes: lp:1778454
* https://bugs.launchpad.net/kicad/+bug/1778454
2018-06-28 08:12:55 -07:00
Jeff Young 246a9286a9 Fix dialogs with wxID_CANCEL as the window ID.
Fixes: lp:1778990
* https://bugs.launchpad.net/kicad/+bug/1778990

Fixes: lp:1778991
* https://bugs.launchpad.net/kicad/+bug/1778991
2018-06-28 08:38:12 -06:00
Wayne Stambaugh 7eea8f808d Minor Pcbnew dialog fixes.
Fix get footprint by name dialog button sizer padding.

Fix export gencad dialog file name, options, and button sizer padding.
2018-06-27 14:28:18 -04:00
Maciej Suminski 80fa480388 Disable the DRC dialog while the checks are running
Closing the DRC dialog while zones are refilled leads to a crash.
Disabling the dialog prevents the crash.
2018-06-27 19:05:06 +02:00
Tomasz Wlostowski 01c2d93a81 pcbnew: don't rebuild dynamic ratsnest when moving items without a net (e.g. board outlines)
Fixes: lp:1778321
* https://bugs.launchpad.net/kicad/+bug/1778321
2018-06-25 16:30:16 +02:00
John Beard 847f4f50b1 Pcbnew python plugins: fix some pad arrays
Fixes some pad array init functions that were not calling the
class hierarchy's init functions correctly.
2018-06-25 09:34:32 -04:00
John Beard 930f3dd74f Documentation: add logo to Doxygen pages
This adds a small KiCad logo in the top left of the Doxygen pages.

54px used as 55px is maximum recommended height for Doxygen logos.

For the main docs and the dev docs, this is easily done in the Doxyfile,
for the Python docs, as that is run from the binary dir, the source dir
is passed as an Environment variable.
2018-06-25 08:23:17 -04:00
Maciej Suminski 1751e4631c Code formatting 2018-06-23 01:59:49 +02:00
Seth Hillbrand dd436b658a pcbnew: Thread safety for connections
Moving the mutex to the class from a local variable protects the
connectivity list against corruption from multiple threads computing the
ratsnest.
2018-06-21 09:34:56 -07:00
Seth Hillbrand e2122db587 pcbnew: Clear unused code 2018-06-21 09:20:48 -07:00
Seth Hillbrand cf04d341ec pcbnew: standardize itemlist/zonelist connectivity
The itemlist and zonelist in connectivity can both contain many items,
so both use the same OpenMP routine.  However, we can only clear the
dirty flag when we conduct a full search, including zones.  Otherwise we
missing connections to zones when propogating changed items that are
then marked as not dirty.

Fixes: lp:1777993
* https://bugs.launchpad.net/kicad/+bug/1777993
2018-06-21 09:19:26 -07:00
jean-pierre charras f634b75652 Pcbnew, plot parameters: fix an issue for the "outputdirectory" parameter.
When the outputdirectory string was similar to a number, the .kicad_pcb file was no longer loadable.

Fixes: lp:1777957
https://bugs.launchpad.net/kicad/+bug/1777957
2018-06-21 12:33:51 +02:00
Wayne Stambaugh 8394e2b71e Fix broken LIB_ID library nickname illegal character tests.
During the symbol library table implementation, the legal character
tests for the footprint library table were changed and the forward
slash '/' character became illegal.  This change broke editing some
users footprint library tables that already had '/' in library table
nicknames.  This change split the library nickname and library item
name illegal character tests.
2018-06-20 14:36:40 -04:00
Wayne Stambaugh 77217b2089 Fix resizing issues of global track and via properties dialog. 2018-06-20 11:39:11 -04:00
Seth Hillbrand 147c1e6088 pcbnew: Allow clearing local ratsnest
The local ratsnest needs to be able to hide as well as show visibility.
Clicking a module will toggle the visibility while clicking off all
modules clears the local ratsnest display.

Fixes: lp:1531332
* https://bugs.launchpad.net/kicad/+bug/1531332
2018-06-19 15:12:20 -07:00
Seth Hillbrand 6990824597 pcbnew: Hide routing options that are not available
Options that do not have code implementing them are now hidden from the
user so that they are not searching for ways to enable the greyed out
options.  Similarly, when selecting a routing option that disables
free-mode, we show the effect of disabling the mode in the dialog.
2018-06-19 11:11:18 -07:00
Tomasz Wlostowski f6f726acab router: allow placing tracks/diff pairs without continuing routing by Shift+L-Click
Fixes: lp:1777688
* https://bugs.launchpad.net/kicad/+bug/1777688
2018-06-19 19:30:03 +02:00
Seth Hillbrand 462549fc84 modedit: Add hotkey to switch arc posture
Allows switching arc clockwise/counterclockwise orientation while
drawing in module editor.

Fixes: lp:1777524
* https://bugs.launchpad.net/kicad/+bug/1777524
2018-06-19 09:42:04 -07:00
Maciej Suminski 81a5c0e3bf GAL: Show ratsnest lines when dragging
GAL is strict regarding which layers are rendered, therefore to show
ratsnest lines when an item is dragged - the ratsnest layer must be kept
enabled. Ratsnest line visibility is enabled per item and this is the
way to show/hide the lines.

Fixes: lp:1666473
* https://bugs.launchpad.net/kicad/+bug/1666473
2018-06-19 11:29:36 +02:00
Maciej Suminski f0b3cf8077 STEP export: Stricter contiguity check
Stricter contiguity check points the user to gaps in the outline.

Fixes: lp:1774351
* https://bugs.launchpad.net/kicad/+bug/1774351
2018-06-19 10:36:21 +02:00
Seth Hillbrand 44c1f5785b pcbnew: Set dp clearance based on netclass
Minimum differential pair clearance should be limited to the netclass
differential pair spacing.  This also cleans up some unused code that
was left over from previous work on differential pair clearances.

Fixes: lp:1673632
* https://bugs.launchpad.net/kicad/+bug/1673632
2018-06-18 14:23:25 -07:00
Jeff Young feebb3a36c Don't double-move module text when parent is also selected.
Fixes: lp:1776871
* https://bugs.launchpad.net/kicad/+bug/1776871
2018-06-18 22:03:39 +01:00
Wayne Stambaugh 11c248a463 Fix a typo made in commit 52734058. 2018-06-18 14:57:01 -04:00
Wayne Stambaugh 52734058a7 Remove string translation wrappers used in commit 94891b75.
Translating internal file name and path strings will almost certainly
result in a bug on MacOS.
2018-06-18 12:14:48 -04:00
Adam Wolf 94891b75f9 Handle STEP export properly on MacOS when launched from standalone pcbnew. 2018-06-17 13:09:33 -04:00
Andrzej Wolski a99eeb44d3 Do not allow setting zero Y size for oval holes 2018-06-17 16:30:14 +02:00
Andrzej Wolski 834d9335dd Do not plot zero width oval holes in Gerber X2 drill files
In case there are zero width oval holes on the PCB,
it is safer to not plot them at all, rather than plotting
with width arbitrarily increased to 10 mils.
This also makes Gerber outputs consistent with Excellon outputs.
2018-06-17 16:26:23 +02:00
Seth Hillbrand 4959f91dac pcbnew: Ensure Connectivity RTree gets updated
When removing items, we perform a two-pass removal, checking first
for the cached rectangle collision.  Then, if we do not find the item
being removed, we perform a second, more expensive pass over the full
tree.  This second pass is required as we cannot be certain that an
item's bbox has not been modified between insertion and deletion.  In
which case, keeping stale pointers in the tree will lead to segfaults.

Fixes: lp:1777246
* https://bugs.launchpad.net/kicad/+bug/1777246
2018-06-16 21:45:55 -07:00
Maciej Suminski 7b7355772e Do not display Interactive Routing Settings dialog twice
The dialog was displayed due to a global TOOL_ACTION and a hotkey
assigned to a top menubar entry. Removing the hotkey from the menubar entry
is not ideal, but less irritating than a dialog showing up twice.
2018-06-15 17:32:00 +02:00
Maciej Suminski 583a9c08c0 Remove duplicated PNS TOOL_ACTIONs to display routing settings 2018-06-15 17:12:15 +02:00
Maciej Suminski 94b6f848bb pcbnew_control.cpp: change C-style asserts to wxCHECK/wxFAIL 2018-06-15 17:11:32 +02:00
Maciej Suminski eb97634bdf Enable 'Delete Item' toolbar icon in the Footprint Editor when the tool is active 2018-06-15 17:10:12 +02:00
Maciej Suminski 7d66dc0cc3 Fixed an assert on pasting items in the Footprint Library Editor
The assert in the title line verifies that an item does not belong to
any DLIST when it is being added to one. Items in clipboard are already
owned by DLISTs, therefore they need to be removed from the original
DLISTs before being added to new ones.
2018-06-15 14:35:55 +02:00
Andrzej Wolski 316ff2898d Fix footprint selection
Commit 72b49acc changed behavior of MODULE::ViewBBox(),
which now includes text fields area. This caused problems
with selecting footprints with relatively large text fields.
This patch fixes this problem by using MODULE::GetBoundingBox instead.

Fixes: lp:1776942
* https://bugs.launchpad.net/kicad/+bug/1776942
2018-06-14 19:32:09 -07:00
Wayne Stambaugh b82bf7c449 Fix minor layout issue in keepout area properties dialog. 2018-06-14 11:12:34 -04:00
Jeff Young b37969f584 Reset tools before switching footprints.
Fixes: lp:1776777
* https://bugs.launchpad.net/kicad/+bug/1776777
2018-06-14 09:55:29 +01:00
Seth Hillbrand 11ab8f6dc1 pcbnew: Fix a couple of duplicate hotkeys 2018-06-13 22:53:06 -07:00
Seth Hillbrand 4dd2de9057 pcbnew: Prevent mouse capture after actions
After an action is completed that required the screen to pan when the
cursor reaches the edge of the screen, we should release the cursor to
allow the user to move their mouse without panning.

Fixes: lp:1763860
* https://bugs.launchpad.net/kicad/+bug/1763860
2018-06-13 14:05:32 -07:00
John Beard 34c6393b71 Pcbnew Python docs: remove obsolete Doxygen parameters
These two parameters were unused and were producing warings:

* XML_SCHEMA
* XML_DTD
2018-06-13 11:12:24 -04:00
John Beard 41d6fc648d Pcbnew Python: use python super for inherited classes 2018-06-13 11:12:15 -04:00
John Beard 1f04b5fc7d Pcbnew Python: Add PadArray module documentation 2018-06-13 11:12:08 -04:00
John Beard 468d26d9d1 Pcbnew Python: Add plugin documentation
This adds the Python plugin helper classes to the generated
documentation.
2018-06-13 11:12:02 -04:00
John Beard 939450856a Pcbnew FP wizard: add rounded and chamfered box aids
These functions are fairly common drawing operations that otherwise
require fairly complex calculations, which would be better not to
have to repeat.
2018-06-13 11:11:55 -04:00
John Beard 5001b056ac Pcbnew FP wizard: add docstring for parameters
Adds more verbose and complete explanations of the
FootprintWizardBase and FootprintWizardDrawingAids functions.
2018-06-13 11:11:49 -04:00
John Beard 137799165d Pcbnew FP wizard: minor style fixes
This contains only a few minor style fixes according to PEP8
for FootprintWizardBase.py, and some spelling fixes
2018-06-13 11:11:42 -04:00
jean-pierre charras 9302bbce59 Pcbnew: fix a duplicate hotkey (E for edit properties) 2018-06-13 09:46:22 +02:00
Seth Hillbrand bc7bd107d9 Fix a number of untranslated strings. 2018-06-12 17:05:25 -07:00
Seth Hillbrand fb1aa56b77 modedit: Don't activate measure tool without a footprint
There's no risk in measuring an empty footprint but there's no benefit
either.  This matches the measure tool to the other, deactivated
footprint tools.
2018-06-12 16:48:59 -07:00
Seth Hillbrand 04706d9d02 pcbnew: Add placement hotkeys
Assigns configurable hotkeys to the placement commands.

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

Fixes: lp:1167895
* https://bugs.launchpad.net/kicad/+bug/1167895
2018-06-12 16:08:06 -07:00
Seth Hillbrand 47106b6861 pcbnew: Adding meander hotkeys to assignment
Allows increase/decrease spacing/amplitude hotkeys to be
assigned/changed.

Fixes: lp:94fb13aec
* https://bugs.launchpad.net/kicad/+bug/94fb13aec
2018-06-12 16:08:01 -07:00
Seth Hillbrand aae30cc7c1 pcbnew: Hotkey minor fixes
- Ordering of Hotkey list by function
- Use Hotkey assignment instead of hard-coded hotkey for length tuning
- Adjust default Length Tuning settings hotkey to CTRL-L so that we
don't overlap with "Lock" (overlaps are not editable)
2018-06-12 14:22:46 -07:00
Seth Hillbrand 70506cc31d pcbnew: Standardize HK display in Routing
Routing menu should display assigned hotkeys for all items, not just
route track.
2018-06-12 14:22:32 -07:00
jean-pierre charras cee313da8c Pcbnew: legacy canvas: make trace len display working while creating the trace.
Previously, the full trace length was always displayed as 0 during track creation in the info canvas.
2018-06-12 18:21:46 +02:00
Maciej Suminski 72b49acccf Commit supplementing 9605dd8e
Once SELECTION_TOOL has been changed to use EDA_ITEM::GetBoundingBox(),
selection area had to cover the footprint and its ref/value texts,
even hidden ones. To fix this, ref/val strings are taken into account
only in the ViewBBox().
2018-06-12 17:40:56 +02:00
Wayne Stambaugh ade3c2b129 Minor Python scripting documentation fixes.
Change the Doxyfile project name from KiCAD to KiCad.  It doesn't look
very good when we don't get the project name capitalization correct.

Clean up trailing whitespace in some of the helper scripts and Doxyfile.
2018-06-12 10:24:59 -04:00
Jeff Young 660aed71b4 Make sure initially loaded footprint is rendered.
Also sets the initial footprint to the current footprint when
doing a Choose Footprint from the Eeschema Edit Property
dialog.

Fixes: lp:1776126
* https://bugs.launchpad.net/kicad/+bug/1776126
2018-06-12 13:41:53 +01:00
John Beard 16411c8c1e Fix -Wparentheses in track_cleaner.cpp
Changes "wxBusyCursor( dummy );" to just "wxBusyCursor dummy;"

Fixes warning: ../pcbnew/tracks_cleaner.cpp:155:17:
warning: unnecessary parentheses in declaration of ‘dummy’ [-Wparentheses]
     wxBusyCursor( dummy )
2018-06-12 14:23:59 +02:00
Maciej Suminski 9605dd8e1d Fix selection clearance for via and tracks
- fixed via bounding box calculation in TRACK::GetBoundingBox()
- moved clearance to TRACK::ViewBBox()
- modified the Selection Tool to use EDA_ITEM::GetBoundingBox() rather
than VIEW_ITEM::ViewBBox() to determine selection

Fixes: lp:1776314
* https://bugs.launchpad.net/kicad/+bug/1776314
2018-06-12 10:59:30 +02:00
jean-pierre charras 5d276a43f6 PCB_EDIT_FRAME::EraseRedundantTrack() Fix incorrect detection of the new trace boundaries in a specific case.
It happens if the first segment of the new trace is inside a pad: the other segments are not found.
And the erased trace is not the right trace.

However this fix is more a workaround than a fix: currently the detection of the trace boundaries (BOARD::MarkTrace())
does not work very well for segments inside a pad.

Fixes: lp:1776121
https://bugs.launchpad.net/kicad/+bug/1776121
2018-06-12 10:05:12 +02:00
Seth Hillbrand 61c3bc4af4 pcbnew: Don't stage undo commits on new items
New items just being placed on the board are still temporary.  Although
we can modify their orientations/positions, we can't stage these changes
for undo/redo without corrupting the undo stack.

Fixes: lp:1776312
* https://bugs.launchpad.net/kicad/+bug/1776312
2018-06-11 16:43:30 -07:00
John Beard 896ad3774d "Select Connection" menus enablement
Previously, the "Select Connection" sub-items were greyed out when the
selection contained both tracks and vias. This meant that you couldn't
access "Select Copper Connection" when the selection contained both
tracks and vias (though the keyboard shortcuts did work).

Change to use SELECTION_CONDITIONS::OnlyTypes( GENERAL_COLLECTOR::Tracks
) to allow any combination of track elements to be selected.

Fixes: lp:1772249
* https://bugs.launchpad.net/kicad/+bug/1772249
2018-06-11 10:58:26 -07:00
John Beard 0555bbc656 Pass PCB display settings to PNS router tool
This allows the tool to set display options like the clearance.

Fixes: lp:1766836
* https://bugs.launchpad.net/kicad/+bug/1766836
2018-06-11 10:48:05 -07:00
Jeff Young 8a2639325d Update footprint value when doing a Save As to library.
Fixes: lp:1570120
* https://bugs.launchpad.net/kicad/+bug/1570120
2018-06-11 14:43:32 +01:00
Jeff Young de7791cc8b Add context menu to footprint viewer for zoom & grid.
Fixes: lp:1776126
* https://bugs.launchpad.net/kicad/+bug/1776126
2018-06-11 11:37:48 +01:00
Jeff Young 5098c5796a Prevent another case of "fall behind" dialogs. 2018-06-09 00:51:39 +01:00
Seth Hillbrand c5c52c3dfd pcbnew Check for valid nodes before drawing ratsnest
We can invalidate a node by rotating.  Make sure that our endpoints for
the ratsnest are valid before attempting to draw.

Fixes: lp:1775727
* https://bugs.launchpad.net/kicad/+bug/1775727
2018-06-08 16:34:37 -07:00
Seth Hillbrand 68f6e3ad44 pcbnew: Differential pairs obey netclass settings
PNS routing options allow trace width to be chosen by the assigned
netclass.  This extends that to differential pair width/gap settings as
well.

Fixes: lp:1672126
* https://bugs.launchpad.net/kicad/+bug/1672126
2018-06-07 08:58:12 -07:00
jean-pierre charras 6d77e594b5 Python binding: fix pcbnew.Refresh() to make a better re-initialization.
Minor fixes in comments.

Fixes: lp:1775003
https://bugs.launchpad.net/kicad/+bug/1775003
2018-06-07 10:04:29 +02:00
Seth Hillbrand a5b92a1fe4 Constrain dimension tool while creating
The dimension tool is optionally constrained (MD_CTRL) while editing the
dimension.  This ensures same behavior for the creation step.
2018-06-06 17:04:28 -07:00
Seth Hillbrand 40d2535625 Recalculate ratsnest when moving footprint in legacy
Legacy shows the local ratsnest when moving a footprint.  Therefore we
need to recalculate it when the move ends.

Fixes: lp:1775473
* https://bugs.launchpad.net/kicad/+bug/1775473
2018-06-06 15:40:58 -07:00
Seth Hillbrand abd8927d71 Dimension Edit window passes default action
Processing enter from within the dimension editor window is only set to
the default action for top-level items.  Within the sizer, enter is
handled by the first registered button (Cancel) unless explicitly set.

Fixes: lp:1774035
* https://bugs.launchpad.net/kicad/+bug/1774035
2018-06-06 12:31:48 -07:00
Jeff Young 9552e02727 Handle description when reading netlist. 2018-06-06 01:59:56 +01:00
Jeff Young 271826f8f3 Fix crash when deleting from library with nothing selected.
Fixes: lp:1775289
* https://bugs.launchpad.net/kicad/+bug/1775289
2018-06-06 00:01:47 +01:00
Seth Hillbrand 9e4511eb11 Update netclasses when loading footprint
When clearing the pcb in footprint editor, we need to transfer the
netclass settings to ensure we have the correct defaults for the new
footprint.

Fixes: lp:1751583
* https://bugs.launchpad.net/kicad/+bug/1751583
2018-06-05 12:44:43 -07:00
jean-pierre charras 9354372a0c Fix bug: Pcbnew crash on invoking footprint browser when already open (happens only in some distros)
Fixes: lp:1775178
https://bugs.launchpad.net/kicad/+bug/1775178
2018-06-05 20:05:56 +02:00
Seth Hillbrand ee34aab07a Async hardening
There are three related changes here to harden our handling of threads
in the footprint async loader.

1) Footprint async loader explicitly aborts any remaining loader threads
on exit.

2) We protect the thread join by a mutex

3) We do not pause during no-wait routines
2018-06-04 15:08:40 -07:00
Seth Hillbrand 39ac5e0af8 Pcbnew: List nets fix calculation speed
Similar to 6e5726613, we need to find net node count quickly without
iterating over all items in the board.
2018-06-04 11:08:54 -07:00
Seth Hillbrand 5dbfa6a9c1 Correct node/pad count in pcbnew
Pads count all pads/pins on the board including unconnected and NPTH.
Nodes count only the pads that can connect to a net and are therefore
routable.  These were being calculated as the same number (displayed in
the info bar at the bottom of the screen)
2018-06-04 10:26:40 -07:00
Seth Hillbrand 63a952d239 Adjust connectivity to use RTree
Connectivity searches were slow for large, complex boards.  This was
partly due to the need to search all lists for possible connections
between anchors.

We remove this requirement by creating an RTree based on items' bounding
boxes similar to the PNS router.  Then we get both the colliding items
and search forward/backward to see if there are connections between the
anchors and the other item.

Because we use RTree, we no longer need the maintenance overhead of multiple
item lists and an anchor list in the connectivity class.

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

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

Fixes: lp:1761989
* https://bugs.launchpad.net/kicad/+bug/1761989
2018-06-04 08:30:07 -07:00
Maciej Suminski e4a6f2e523 Switch canvas to Cairo if OpenGL is not supported on the first run 2018-06-04 12:17:58 +02:00
jean-pierre charras 0b8cf93888 Pcbnew, On line DRC in legacy canvas: Fix broken Drc test during track and zone creation or edition.
It was broken by commit c78171d01f.
During creation, the Drc must only display a error message, and do not create markers.
Markers are created only during a full board DRC test.
commit c78171d01f replaced this behavior by a incorrect one (create markers and do not show error messages)
2018-06-04 11:20:11 +02:00
Maciej Suminski 8910894fab Enable the accelerated canvas on the first pcbnew run if requested
Fixes: lp:1769143
* https://bugs.launchpad.net/kicad/+bug/1769143
2018-06-04 10:41:34 +02:00
jean-pierre charras d3c41dd247 Remove dead code. 2018-06-03 19:55:03 +02:00
Seth Hillbrand 0a91f0bc9c Add 45º constraints to lines when moving with CTRL
Fixes: lp:1774750
* https://bugs.launchpad.net/kicad/+bug/1774750
2018-06-02 15:52:18 -07:00
Seth Hillbrand 975e777149 Fix threaded race condition in footprints
The progress reporter should not be cleared in the footprint
implementation to prevent dereferencing a NULL.

When cancelling the load, we should only allow setting of cancellation
to true to prevent a condition where the progress reporter resets
the cancellation.

Fixes: lp:1774777
* https://bugs.launchpad.net/kicad/+bug/1774777
2018-06-02 15:05:36 -07:00
jean-pierre charras 6e57266136 Pcbnew: optimize BOARD::SortedNetnamesList() for a must faster calculation time.
It is mainly used in copper zones dialog editor,
and previously created a noticeable delay to show this dialog with large boards (more than 900 nets)
2018-06-02 18:14:34 +02:00
Seth Hillbrand 3cf9009f73 Delete GL context in GL destructor not program
Also lock the DeleteAll call with mutext to protect threaded access.

The OpenGL contexts are removed when OPENGL_GAL class is destroyed.
Explicitly deleting all contexts prior to destroying the OPENGL_GAL
class causes an assert when the destructor tries to lock its context
prior to cleaning up OpenGL memory.  In most cases, an unhandled assert
in a destructor-called function will simply exit the destructor.

Python thread cleanup will also attempt to close the context.  This can
cause a race condition with multiple threads accessing/deleting the
canvas.

Fixes: lp:1774096
* https://bugs.launchpad.net/kicad/+bug/1774096
2018-06-01 09:14:36 -07:00
jean-pierre charras 9a228d8ec9 Gerbview: GAL mode: shows the page worksheet, similar to legacy mode. 2018-06-01 09:11:43 +02:00
Maciej Suminski 7c49bcd3a6 Clear selection before deleting DRC markers
Pcbnew crashes when a selected DRC marker is deleted. This a possible
fix to lp:#1773863.
2018-05-31 09:32:43 +02:00
Seth Hillbrand 3ce8a4856a Remove ToLayer_ID calls from color checks
Colors are assigned to virtual layers while the ToLayer_ID returns a
physical layer enum.  The GetLayerColor/SetLayerColor take LAYER_NUM
(int) values that can be larger than the physical layer count.
2018-05-30 13:51:20 -07:00
Jeff Young d90d4ff682 Fix bugs in Export to SVG.
We were trying to handle aOnlyOneFile at two different levels
which was preventing the Silk layer from going through the
right routine (and preventing board outlines from getting
drawn if selected).

We were also overwriting the references color local variable
before using it, meaning the reference was always rendered in
the value's color.

Fixes: lp:1774171
* https://bugs.launchpad.net/kicad/+bug/1774171
2018-05-30 20:49:05 +01:00
jean-pierre charras ce9cc4ea38 plot board: fix a stupid bug created by commit dfa91752 2018-05-29 19:51:50 +02:00
Maciej Suminski c5f56ef573 Eagle PCB import: made warning strings translatable 2018-05-29 15:02:26 +02:00
Maciej Suminski d2436e7478 Corrected "Add footprint library" dialog file filters
Fixes: lp:1773969
* https://bugs.launchpad.net/kicad/+bug/1773969
2018-05-29 15:02:26 +02:00
jean-pierre charras dfa9175209 Fix incorrect mask size for rectangular and trapezoid pads.
Fixes: lp:1773926
https://bugs.launchpad.net/kicad/+bug/1773926

Fixes: lp:1773961
https://bugs.launchpad.net/kicad/+bug/1773961
2018-05-29 13:45:45 +02:00
Jeff Young a12b9db584 Map Eagle values to fab layers.
Fixes: lp:1773256
* https://bugs.launchpad.net/kicad/+bug/1773256
2018-05-28 20:37:52 +01:00
jean-pierre charras da66005254 Pcbnew, plot dialog: avoid slightly change in hpgl pen diameter (due to inch/mm conversion error) when the hpgl format is not selected 2018-05-26 17:36:07 +02:00
jean-pierre charras 7db88126c5 hpgl plot parameters: use double instead of int to store the pen diameter to avoid truncation.
This parameter, always in mm in a hpgl file, is for historical reasons stored in mils,
and using a int to store it created annoying rounding errors.
2018-05-26 09:37:42 +02:00