Commit Graph

6778 Commits

Author SHA1 Message Date
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