Commit Graph

6444 Commits

Author SHA1 Message Date
Jeff Young 8de0598789 Honor Fill_All_Zones()'s aVerbose parameter.
Fixes: lp:1740909
* https://bugs.launchpad.net/kicad/+bug/1740909
2018-01-04 11:40:40 -05:00
Jon Evans 2dec95b4e6 Add a first-run dialog to encourage user to switch to OpenGL 2018-01-04 10:14:40 -05:00
Jeff Young b1b3a89f72 Set document dirty flag for various dialogs.
Fixes the callers of the Design Settings and Zone Settings dialogs.

Fixes: lp:793420
* https://bugs.launchpad.net/kicad/+bug/793420
2018-01-02 13:34:08 -05:00
Jeff Young f76e7568bc Don't warp cursor if the disambiguation menu is cancelled.
Also fixes the empty-selection-context-menu coming up after
a cancelled disambiguation menu.

Fixes: lp:1738339
* https://bugs.launchpad.net/kicad/+bug/1738339
2018-01-02 13:01:55 -05:00
Tomasz Włostowski 44d4559f84 pcbnew: avoid segfault reported on certain OSX builds
Fixes: lp:1732274
* https://bugs.launchpad.net/kicad/+bug/1732274
2018-01-02 00:49:59 +01:00
jean-pierre charras 2fd7ab248e Fix compil warnings 2018-01-01 09:20:23 +01:00
jean-pierre charras 11d1188fdf MODULE::CoverageRatio(): replace wxRegion (not working for us on Windows) by polygons to calculate areas.
At least on Windows, using wxRegion generates crashes.

Fixes: lp:1740646
https://bugs.launchpad.net/kicad/+bug/1740646
2017-12-31 17:46:56 +01:00
Jeff Young fb597f4298 Enable tab navigation and shift-return-for-OK in multiline text controls for text objects.
Fixes: lp:1420916
* https://bugs.launchpad.net/kicad/+bug/1420916
2017-12-31 09:08:42 -05:00
Jeff Young 0f943f1e4b Disambiguation menu fix for footprints with a single pad.
Fix selection disambiguation to allow for selecting of footprints which are
mostly covered by their pads, text, etc.

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

Fixes: lp:1723469
* https://bugs.launchpad.net/kicad/+bug/1723469
2017-12-28 15:36:34 -05:00
Robbert Lagerweij bd7f5081d1 Pcbnew: make the line/arc drawing tool show segment length
This patch adds functionality to the Pcbnew draw tool to show the dx and
dy of the current segment being drawn if the relative origin (pressing
spacebar) is not already set (i.e. if those coordinates are ( 0, 0 ) ).
You can set the relative origin while using the draw tool by pressing
spacebar. The relative origin is reset on exit of the tool.

fixes: lp:1736133
* https://bugs.launchpad.net/kicad/+bug/1736133
2017-12-28 15:14:14 -05:00
Wayne Stambaugh fd72c91acd Pcbnew: fix design rule dialog sizing on high DPI displays.
Remove maximum dialog width setting to allow the dialog to resize
properly on high DPI displays.

Fixes lp:1740356

https://bugs.launchpad.net/kicad/+bug/1740356
2017-12-28 13:56:13 -05:00
Jeff Young 064f4c4ba7 Commit in-place edits before transfering data from window.
Fixes: lp:1592767
* https://bugs.launchpad.net/kicad/+bug/1592767
2017-12-27 16:12:41 -05:00
Jeff Young d3923de7b9 Don't dim markers when in high-contrast mode.
Fixes: lp:1706570
* https://bugs.launchpad.net/kicad/+bug/1706570
2017-12-27 21:55:28 +01:00
Simon Richter b4ad8ec560 Order source file names alphabetically 2017-12-27 14:01:05 -05:00
Wayne Stambaugh 4d64a2f53f Set reasonable 3D model select dialog default path.
Passing an empty path to the 3D model select dialog results in the file
select control displaying the root path which requires the user to drill
down to get to the 3D models.  Use the KISYS3DMOD path as the default
and fall back to the project path as required for the initial file
select control path.

Clean up some coding policy violations.

Fixes lp:1737094

https://bugs.launchpad.net/kicad/+bug/1737094
2017-12-27 12:43:26 -05:00
Wayne Stambaugh 5102c8ac1f Gerbview and Pcbnew dialog tweaks.
Improve dialog layout and fix UI policy issues with all of the dialog
boxes in the Gerbview and Pcbnew code paths.

Updated the use of component to footprint where appropriate.
2017-12-27 12:09:56 -05:00
jean-pierre charras 90818afedd Try to fix: pad editor: incorrect zoom scale of pad preview on some installs.
Fixes: lp:1670086
https://bugs.launchpad.net/kicad/+bug/1670086
2017-12-26 20:46:52 +01:00
Wayne Stambaugh f7ab50f791 UI string normalization.
Replace all instances of "component" and "part" with "symbol" when
referring to schematic and library symbols.

Replace all instances of "component" with "footprint" when referring to
board and library footprints.

Minor dialog layout fixes to some of the dialogs impacted by the UI
string changes.
2017-12-24 10:04:32 -05:00
jean-pierre charras b05a40e728 FOOTPRINT_WIZARD_FRAME: fis a serious issue when changing a parameter page when a parameter was currently edited
Also Fixes: lp:1739881
2017-12-23 18:34:57 +01:00
Miles McCoo 5cc1cda29f BuildConnectivity and re-DisplayBoard in python Refresh function
Refresh is used in the python domain to refresh the display with the current
design. If something has changed, board connectivity likely needs rebuilding.
If using GAL canvas, update its display db.
2017-12-22 08:59:19 -05:00
jean-pierre charras 7586afd530 graphic items properties dialog: fix incorrect handling of S_POLYGON DRAWSEGMENT items 2017-12-21 19:47:18 +01:00
Oliver Walters 900ddca0b4 Changed default text size to 50mils
- Text size is now always written to file
- Unspecified text sizes are read as 60mils

Fixes lp:1737878

https://bugs.launchpad.net/kicad/+bug/1737878
2017-12-21 12:16:57 -05:00
jean-pierre charras d9a2b5161c Fix issues due to internal code change in DRAWSEGMENT class, for S_POLYGON shape.
Remove also duplicate code in 3D viewer, for this DRAWSEGMENT shape.
2017-12-21 15:07:03 +01:00
Jeff Young dbf39e6333 A bit more commenting for the guessSelectionCandidates logic. 2017-12-21 13:15:23 +01:00
Maciej Suminski 158bc0619d Footprints with pads taking most of area are kept in the selection menu
Improved the selection heuristics to keep footprints in the
disambiguation menu when they contain pads with high pad-to-footprint
area ratio.
In other words: make it possible to select a footprint when
most of its area is taken by a pad. Previously pads were given the
priority, so it was very tricky to select the parent footprint.

Fixes: lp:1739425
* https://bugs.launchpad.net/kicad/+bug/1739425
2017-12-21 10:32:00 +01:00
jean-pierre charras 49cedf7950 Pad properties dialog: Disambiguate connection to zone options for custom shaped pads and predefined shaped pads 2017-12-21 10:23:37 +01:00
jean-pierre charras b93cc8423e qrcode_footprint_wizard.py fix (due to DRAWSEGMENT recent changes)
Fixes: lp:1739265
https://bugs.launchpad.net/kicad/+bug/1739265
2017-12-21 10:23:37 +01:00
jean-pierre charras 59c527c40c Excellon drill file generation: allows 4 digits in mantissa in Tool Information command when units are inches.
Fixes: lp:1738657
https://bugs.launchpad.net/kicad/+bug/1738657
2017-12-20 17:49:25 +01:00
Maciej Suminski 69ceae0ccf Selection tool: do not select relatively large modules
To avoid situations when a large footprint covering most of the board
area (e.g. shield connector) is always selected, even when user clicks
in a seemingly empty spot, a simple filter has been added. In case
the footprint area covers more than 90% of the view area, the large
footprint is not selected. This way large footprints do not disturb
editing when the zoom is high enough.

Fixes: lp:1636214
* https://bugs.launchpad.net/kicad/+bug/1636214
2017-12-20 17:32:00 +01:00
Bernhard Stegmaier 29e1d3d98a Fix Eagle plugin build errors on macOS
Fixes: lp:1738865
* https://bugs.launchpad.net/kicad/+bug/1738865
2017-12-19 13:38:28 +01:00
jean-pierre charras f85a886ae4 Bug fix: Custom shaped pads having a not convex shape not magnetic on PnS router. 2017-12-19 11:13:28 +01:00
jean-pierre charras 3183fcb4bc Fix minor compil warnings (some are for old compilers). 2017-12-18 19:52:44 +01:00
Tomasz Włostowski 3c6d17026e pcbnew: router now respects local pad clearances correctly
Fixes: lp:1558858
* https://bugs.launchpad.net/kicad/+bug/1558858
2017-12-18 18:51:47 +01:00
Tomasz Włostowski a4528988ca pcbnew: fix graphical polygon movement, rotation, flipping and edit points synchronization.
Fixes: lp:1738449
* https://bugs.launchpad.net/kicad/+bug/1738449

Fixes: lp:1738032
* https://bugs.launchpad.net/kicad/+bug/1738032
2017-12-18 18:25:45 +01:00
Maciej Suminski 4b62b3519c Update units in 'select track/via size' context menu
Fixes: lp:1485941
* https://bugs.launchpad.net/kicad/+bug/1485941
2017-12-18 17:03:07 +01:00
Tomasz Włostowski 9da1dc4c51 pcbnew: highlight net highlights ratnsest too
Fixes: lp:1738636
* https://bugs.launchpad.net/kicad/+bug/1738636
2017-12-18 15:30:35 +01:00
Maciej Suminski 378846c2e3 Eagle Schematics Importer: support for UTF-8
Fixes: lp:1736083
* https://bugs.launchpad.net/kicad/+bug/1736083
2017-12-17 19:54:21 +01:00
Maciej Suminski a13c89c83d Removed old debug output 2017-12-17 18:43:43 +01:00
Eldar Khayrullin 4cd3992b94 pcad2kicadpcb_plugin: import graphic polygons from modules
Fixes: lp:1725931
* https://bugs.launchpad.net/kicad/+bug/1725931
2017-12-17 10:58:29 +01:00
Eldar Khayrullin d62d3b8e21 pcad2kicadpcb_plugin: map layers Top/Bot Assy to F/B Fab 2017-12-17 10:58:29 +01:00
Eldar Khayrullin 87566eedc5 pcad2kicadpcb_plugin: fix size of text 2017-12-17 10:58:29 +01:00
Eldar Khayrullin 613272852d pcad2kicadpcb_plugin: fix import a flipped RefDes
Fixes: lp:1730172
* https://bugs.launchpad.net/kicad/+bug/1730172
2017-12-17 10:58:29 +01:00
Eldar Khayrullin 9620a43022 pcad2kicadpcb_plugin: correct text position with arbitrary angle 2017-12-17 10:58:29 +01:00
Eldar Khayrullin 6f0e0826fa pcad2kicadpcb_plugin: unlock orientation of footprint fields 2017-12-17 10:58:29 +01:00
Eldar Khayrullin c9852d7c81 pcad2kicadpcb_plugin: import circles 2017-12-17 10:58:29 +01:00
Eldar Khayrullin 08b71cd252 pcad2kicadpcb_plugin: use a valid font properties
Use current selected font (Stroke, TrueType) properties.
Import TrueType Font properties: bold, italic.
2017-12-17 10:58:29 +01:00
Eldar Khayrullin 897702b2dc pcad2kicadpcb_plugin: prepend numerical Ref with '.'
Kicad (EESchema) doesn't support only numerical references (like '1').
Prepend with '.' same references (convert reference '1' to '.1').
2017-12-17 10:58:29 +01:00
Eldar Khayrullin 21ddb2d989 pcad2kicadpcb_plugin: use default text parameters if not defined 2017-12-17 10:58:29 +01:00
jean-pierre charras 845ca5f641 very minor fixes in a few strings (replace ' by ", and module by footprint) 2017-12-16 20:46:55 +01:00
jean-pierre charras 766a9bec1e Allows negative solder-mask margin in dialog pad properties.
However, this is not allowed for custom shapes pads, because it can create very strange solder mask shapes.
2017-12-16 20:43:47 +01:00
jean-pierre charras 2398d5ef8b DIALOG_EDIT_COMPONENTS_LIBID: enhancement in orphan automatic remap:
add dialog to choose the right candidate when more than one is found
2017-12-16 14:50:37 +01:00
Jeff Young 27a55c5cd4 Commit in-place editing changes when dialog OK'ed.
Grid control in-place editing changes are not automatically
committed (at least on OSX).

Fixes: lp:1736836
* https://bugs.launchpad.net/kicad/+bug/1736836
2017-12-15 08:01:43 -05:00
Simon Richter a9ccf1161b Fix quotes in UI messages
This replaces all single and angle bracket quotes in UI messages with
double quotes, for consistency.

Sorry to all translators.
2017-12-15 07:33:07 -05:00
Tomasz Włostowski 75b21d010b pcbnew: more thread (and nested wx event loop) safety for the zone filling/connectivity algo 2017-12-14 23:49:46 +01:00
Eldar Khayrullin 185c77e2fd pcad2kicadpcb_plugin: fix compiling warning `override` 2017-12-14 18:52:11 +01:00
Maciej Suminski 9bb660a6bc Fix P-Cad importer plugin warnings
A few methods differed by the number or type of arguments in derived
classes. They were changed to match the base class method signature and
marked as 'override'.
2017-12-14 18:52:05 +01:00
Maciej Suminski 4671b9b34e Fixed module removal when rotating/flipping a placed module
Module placer did not mark the newly placed modules as selected,
but all edit functions (rotate/place/etc.) rely on getting a selected
item. When a rotation/flip command was issued, the newly placed module
was dropped and the one underneath the cursor has been rotated.

To fix this the newly placed modules are marked as selected.
It also simplifies the placer code a bit.

Fixes: lp:1738148
* https://bugs.launchpad.net/kicad/+bug/1738148
2017-12-14 17:13:42 +01:00
Maciej Suminski 9c2d1cf890 Fixed BOARD_COMMIT::Revert()
Revert() method was still not aware of CHT_DONE flag, therefore
the switch statement was always invalid. To fix it, the commit
type is split to type and flags as is done in Push() method.
2017-12-14 17:13:42 +01:00
Maciej Suminski d599a83c4b Removed unused variables in PCB_VIEW 2017-12-14 17:13:42 +01:00
jean-pierre charras a287748921 Cosmetic enhancement: Add icons to track length tuner menu. 2017-12-14 14:33:20 +01:00
Tomasz Włostowski eed924fe45 Fixed zone filling crash & thermal stubs inconsistency
Fixes: lp:1737557
* https://bugs.launchpad.net/kicad/+bug/1737557
Fixes: lp:1737542
* https://bugs.launchpad.net/kicad/+bug/1737542
Fixes: lp:1737541
* https://bugs.launchpad.net/kicad/+bug/1737541
2017-12-14 01:29:08 +01:00
Tomasz Włostowski 941ebe376c poly2tri: throw exceptions instead of crashing on non-supported polygons 2017-12-14 01:25:28 +01:00
jean-pierre charras c18b638c17 Cosmetic enhancement in GAL: disambiguationMenu: add icons in menuitems, like in Legacy mode. 2017-12-13 19:42:33 +01:00
Maciej Suminski 8ab8a11cf8 Faster zone and custom shape pad drawing, minor PCB_PAINTER refactor
Zones: it turned out that for every zone point, the set of hatch lines
has been drawn, resulting in numerous redundant lines. Now the set is
drawn only once per zone.

Custom shape pads: as GAL supports SHAPE_POLY_SETs, there is no need to
create a temporary vector to copy there a list of points to be drawn.
Changed the drawing calls to use SHAPE_POLY_SETs directly.

Thanks to Andreas Buhr patch, code for drawing filled polygons and their
outlines has been unified. Previously it was done by changing the
drawing method (GAL::DrawPolygon() vs GAL::DrawPolyline()), now it is
done by modifying attributes (stroke/fill).
2017-12-13 17:01:32 +01:00
Jeff Young df76380a2d Don't leave a hidden item behind.
If the object changes between a TA_CONTEXT_MENU_UPDATE
event and a TA_CONTEXT_MENU_CHOICE event (usually as
a result of a cancel), the old code would leave the
last item hidden.

Fixes: lp:1737562
* https://bugs.launchpad.net/kicad/+bug/1737562
2017-12-13 15:59:21 +01:00
jean-pierre charras b395b55a20 Fix a few (minor) issues in microwave tools. 2017-12-11 12:54:44 +01:00
Maciej Suminski f19aed9d5c Workaround for OSX freeze when filling zones in GAL
More details:
https://lists.launchpad.net/kicad-developers/msg32306.html
2017-12-11 10:39:58 +01:00
Jon Evans b6ac603f0a Fix AlignLeft / AlignRight when using Flip Board view
Fixes: lp:1734377
* https://bugs.launchpad.net/kicad/+bug/1734377
2017-12-11 09:40:08 +01:00
Jon Evans 6ee26fdd8c Remove LAYER_WORKSHEET from forced visibility since it now has a control
Fixes: lp:1737315
* https://bugs.launchpad.net/kicad/+bug/1737315
2017-12-10 17:41:00 -05:00
Maciej Suminski d205366da7 Add support for wchar_t to SWIG 2017-12-08 18:04:51 +01:00
Maciej Suminski f7072cc7c6 Moved DRC::doEdgeZoneDrc to drc_clearance_test_functions.cpp 2017-12-08 11:33:40 +01:00
Maciej Suminski 9b5dc5c215 GAL show markers for zone outlines gap test
Moved a DRC function (BOARD::Test_Drc_Areas_Outlines_To_Areas_Outlines)
from BOARD class to DRC (DRC::TestZoneToZoneOutline). Added BOARD_COMMITs
to handle marker visibility updates.

Fixes: lp:1619124
* https://bugs.launchpad.net/kicad/+bug/1619124
2017-12-08 11:33:32 +01:00
Seth Hillbrand 86b4a3c3e6 pcbnew: Correct spectra output default filename
Fixes: lp:1736724
* https://bugs.launchpad.net/kicad/+bug/1736724
2017-12-07 09:07:47 -05:00
Henner Zeller 3f57fa5d24 Change time_t in the functions that deal with timestamps to a new typedef timestamp_t (defined as a long).
that makes sure the c++ side and swigged Python side agree on the type, because time_t create problems in Python scripts.
2017-12-07 13:16:33 +01:00
Seth Hillbrand a63e9b863b pcbnew: Fix multiple delete bug
Delete events when using GAL are handled by only one tool handler
instead of ROUTER_TOOL and EDIT_TOOL both deleting items.

Fixes: lp:1715158
* https://bugs.launchpad.net/kicad/+bug/1715158
2017-12-07 09:31:20 +01:00
Maciej Suminski f44d4d01ea Fix segfault when removing the last corner of a cutout
Fixes: lp:1736147
* https://bugs.launchpad.net/kicad/+bug/1736147
2017-12-06 16:28:03 +01:00
jean-pierre charras cdad02336d fix minor compil warnings 2017-12-05 18:02:53 +01:00
Tomasz Włostowski 000f810161 pcbnew: fixed build error with python-enabled builds 2017-12-05 16:47:44 +01:00
Tomasz Włostowski 7ad436c7aa pcbnew: now PROGRESS_REPORTER should work in multi-threaded context under Windows... 2017-12-05 14:54:57 +01:00
Tomasz Włostowski f34b86d39e pcbnew: made zone filling algorithm thread-safe.
- moved zone filling algo outside ZONE_CONTAINER class
- const'ified methods that don't need to modify zone's properties
- cleanup: m_FillMode -> enum
2017-12-05 14:54:57 +01:00
Tomasz Włostowski 8df299a6bc pcbnew: Optimized zone filling algorithm: code cleanup 2017-12-05 14:54:57 +01:00
Tomasz Włostowski d1d9e57b86 pcbnew: removed unused files 2017-12-05 14:54:57 +01:00
Tomasz Włostowski fdd5023aee pcbnew: factored out ZONE_FILLER to a separate file 2017-12-05 14:54:57 +01:00
Tomasz Włostowski 56336fdafe POINT_EDITOR: migrate to ZONE_FILLER class 2017-12-05 14:54:57 +01:00
Tomasz Włostowski 83b020d4da PCB_TOOL: added convenience methods for accessing current SELECTION 2017-12-05 14:54:57 +01:00
Tomasz Włostowski 58ce865352 pcbnew: made TransformShapeWithClearanceToPolygon virtual 2017-12-05 14:54:57 +01:00
Tomasz Włostowski 316ddadec1 pcbnew: Optimized zone filling algorithm. 2017-12-05 14:54:57 +01:00
jean-pierre charras c0a539959e Fix a few Coverity warnings 2017-12-04 12:46:11 +01:00
Nick ?stergaard c74437a44e Remove unused custom cmake target
This target seems to only create empty makefiles, tested on linux. And I
can not find any references to it in any of the current CMakeLists. Lets
remove it.
2017-12-03 18:21:40 -05:00
Oliver b588c1902a Write "offset" only if non-zero
- Use "at" if all offset dimensions are zero
- Use "offset" otherwise
2017-12-01 16:21:50 +01:00
Oliver 76f5df8a43 Decode "offset" in STEP export tool
- Read "at" as inches
- Read "offset" as mm
2017-12-01 16:21:50 +01:00
Oliver cb97f68e35 CHANGE file format for 3D model offset
- Reverts behaviour of 3e71ed2421
- 3D model offset now explicitly written in mm, using "offset" tag
- Any read "at" tag is converted from inches to mm
- This will not break any 3D model offset when reading files
- It will however render files incompatible with old versions
2017-12-01 16:21:49 +01:00
Jon Evans 7860b0c4fe Restore "Flip Board" checkbox state when switching canvases
Fixes: lp:1733936
* https://bugs.launchpad.net/kicad/+bug/1733936
2017-11-30 08:44:53 +01:00
Jon Evans 8f79f0a66d Add DRC items when reloading board view (Fixes lp:1542420) 2017-11-29 11:40:02 +01:00
jean-pierre charras 68268973b7 To avoid mistakes between graphic layers for pads, holes and not plated holes, rename 3 GAL_LAYER_ID names:
LAYER_NON_PLATED to LAYER_NON_PLATEDHOLES
LAYER_PADS_HOLES to LAYER_PADS_PLATEDHOLES
LAYER_PADS to LAYER_PADS_TH
and add comments and fix a render issue in gal mode for non plated holes.
2017-11-29 09:48:41 +01:00
Maciej Suminski 769611b79e Do not ask for confirmation to open Properties dialog for a locked footprint
Opening Properties dialog normally does not ask the user to confirm the
action, even for locked items. The exception was a case when there was
nothing selected and Properties dialog was invoked via its hot key -
then SELECTION_TOOL::RequestSelection() tried to get the item under the
cursor, verifying the lock flag.

Fixes: lp:1734537
* https://bugs.launchpad.net/kicad/+bug/1734537
2017-11-28 17:35:46 +01:00
Maciej Suminski db3185723e Drop a locked item after a move operation with a single click
Locked items used to require two clicks to drop an item. This patch
enables dropping with a single click.

Fixes: lp:1716580
* https://bugs.launchpad.net/kicad/+bug/1716580
2017-11-28 15:09:18 +01:00
Maciej Suminski 6105b15b2e Renamed 'Display and Hide' menu to 'Display Options' 2017-11-28 14:46:37 +01:00
Jon Evans 84ab71f8ec Allow changing LAYER_PADS color and visibility (Fixes lp:1672646) 2017-11-28 11:02:39 +01:00
Jon Evans 0564d3456b Preserve color scheme when switching to legacy (Fixes lp:1670669)
Instead of modifying the colors when switching to legacy canvas,
they will now be preserved and only returned as the "legacy" colors.
2017-11-28 10:47:04 +01:00
Maciej Suminski f36350cb88 Do not relaunch the move tool when it is active
Fixes: lp:1678575
* https://bugs.launchpad.net/kicad/+bug/1678575
2017-11-28 10:46:53 +01:00
Jon Evans f107545a82 Show message panel info for highlighted net in GAL (Fixes lp:1518626) 2017-11-28 08:16:58 +01:00
Chris Pavlina f576596375 Add "unlock" property to footprint texts
This property decouples the text orientation from the board orientation,
removing the restriction that it face the bottom or right side of the
board.
2017-11-27 18:21:00 -07:00
Jon Evans e5847b7953 Gerbview: apply layer colors to GAL after sorting (Fixes lp:1720540) 2017-11-27 08:23:17 +01:00
jean-pierre charras 48a37c2998 Fix minor bug: pcbnew file save: dimensions timestamp updated on every save
Fixes: lp:1733872
https://bugs.launchpad.net/kicad/+bug/1733872
2017-11-26 14:31:15 +01:00
Maciej Suminski 78305c1de5 Converted most of pcbnew dialogs to use TEXT_CTRL_EVAL
This patch enables math expression evaluation for most of the text input
controls in pcbnew.

NEW: pcbnew text input controls are able to evaluate simple
mathematical expressions, including distance units (e.g. 5.0+(2*1.2mm)).
2017-11-24 21:16:05 +01:00
Maciej Suminski 579d3f478d Renamed WX_UNIT_BINDER to UNIT_BINDER and moved to common/widgets
WX_ prefix should reserved for classes provieded by wxWidgets.
2017-11-24 21:15:40 +01:00
Miles McCoo d16a5c1d6c Changes to python interface enabling net->pads access.
Added new file connectivity.i to expose CONNECTIVITY_DATA to
python. enables access to d_pads from nets.

Added typemap to board_connected_item.i. since board_connected_item
doesn't use virtual inheritance, when returning a std::list of these
items, the typemap populates the return list with the child
types. This enables python scripts to use the full interface of those
classes (pad, track, zone)

Added typeinfo.i to enable passing a list of KICAD_T values to methods
GetNetItems. This list acts as a query filter. typeinfo.i is included
from pcbnew.i right after kicad.i (instead of in board.i like the
others) typeinfo.h is already being included kicad.i so to ensure the
typemap(s) are properly applied I put them next to each other.

The two new files (typeinfo.i and connectivity.i) were added to
pcbnew's CMakeLists.txt as dependencies.
2017-11-23 17:35:39 +01:00
Jose I Romero 3d2b5e3922 Allow items to be moved from all anchor points
A change in commit 5731000135 caused kicad to stop allowing users
to move items like footprints, arcs and lines using anchors other
than the center point.

This was caused by the new code that stores reference points for
clipboard pasting, a call to updateModificationPoint() prevented
some old code paths from executing, which caused the selection to
snap into the cursor, always using the center anchor.

This fix moves the call within the if-cases that need it, and adds
a ClearReferencePoint call when the selection is "dropped" to allow
the user to grab the same selection again from a different anchor.

Fixes: lp:1722512
* https://bugs.launchpad.net/kicad/+bug/1722512
2017-11-23 09:35:39 +01:00
jean-pierre charras 59e5d3b762 pcbnew: plot dialog: Add advanced X2 features and Create job file options incorrectly saved in .kicad_pcb files (always saved ON)
Fixes: lp:1733876
https://bugs.launchpad.net/kicad/+bug/1733876
2017-11-22 20:27:33 +01:00
Maciej Suminski efaf429a71 class_zone.cpp: changed fabs() to std::abs()
Originally fabs() was invoked on an integer variable and compared with
an integer, so there is no reason to use the floating point variant.
2017-11-22 13:40:14 +01:00
Oliver f85ce87e44 Toggle LIB_TABLE_ROW enabled/disabled in grid editor
- Checkbox editor for enabled / disabled status
2017-11-21 08:18:17 -05:00
jean-pierre charras f17f604072 Add warning message in dialog_edit_components_libid 2017-11-21 13:09:13 +01:00
Oliver 3e71ed2421 Changed model offset in file to mm
- Written in mm
- Read as mm if newer than 20171114
- Read as inches if older than 20171114
- Added some documentation
2017-11-20 17:46:16 -05:00
Oliver b80449b069 Fixes for 3D model offset
- Display offset units in 3D preview window (inches or mm)
- Fix offset in 3D renderer
- Fix offset in Raytracing renderer
- Fix offset in STEP export
- Fix offset in VRML export
2017-11-20 17:46:03 -05:00
Henner Zeller ff5ee05def Fix Python scripting bug when saving board to file. 2017-11-18 11:00:24 -05:00
jean-pierre charras 00bb00016b Fix a forgotten change. 2017-11-16 16:22:12 +01:00
jean-pierre charras bdc6a5950b rename plot_common.h to class_plotter.h, a better name, consistent with other class definitions. 2017-11-16 15:53:30 +01:00
jean-pierre charras 2ec3a46984 Add support of DRAWSEGMENT S_POLYGON shape to plot functions.
Fixes: lp:1732570
https://bugs.launchpad.net/kicad/+bug/1732570
2017-11-16 12:09:24 +01:00
jean-pierre charras 25f9c6e4f9 Incorrect default value (not saved in file) of DRAWSEGMENT width, for the S_POLYGON shape.
The value of the width is now always saved to avoid this kind of issue.

Also Fixes: lp:173257
2017-11-16 09:38:26 +01:00
Tomasz Włostowski b76a6210c5 pcbnew: fixed stuck cursor when ForceCursorPosition() is active and cursor is moved by keyboard arrows
Fixes: lp:1729301
* https://bugs.launchpad.net/kicad/+bug/1729301
2017-11-16 00:43:23 +01:00
Tomasz Włostowski 00ad8f24a0 pcbnew: Minor changes in CONNECTIVITY_DATA interface:
- renamed connectivity.[h|cpp] to connectivity_data [.h|.cpp] so that the file name matches the main class name.
- GetNetItems() now returns a vector instead of a list
2017-11-15 18:34:08 +01:00
jean-pierre charras a8e98ade49 Fix a very minor coding style issue 2017-11-15 08:10:48 +01:00
Kevin Cozens d504a8bdd0 Fix for patches allowing value/reference text rotation in multiples of 90 deg.
The wrong version of the patches had been applied. This commit applies some
code changes that had gotten lost.

    See lp:613616 (https://bugs.launchpad.net/kicad/+bug/613616).
2017-11-14 08:44:26 -05:00
Maurice 5e5abc5241 Pcbnew: make placing a grid origin enable the save command.
Fixes lp:1730371

https://bugs.launchpad.net/kicad/+bug/1730371
2017-11-13 12:00:02 -05:00
Wayne Stambaugh f3908bd87c Revert premature commit of 17ab319b, "Fixes for 3D model offset".
This reverts commit 17ab319b99.
2017-11-11 20:04:46 -05:00
Wayne Stambaugh 652b969193 GTK+ file dialog wildcard improvements.
The GTK+ file dialog is case sensitive however it does support regular
expressions.  Most of the file dialog wildcards are lower case so only
files with the lower case extensions will show up in the file dialog.
This code adds a method to convert file extensions of any case to the
appropriate (sch -> [sS][cC][hH]) regular expression on GTK+ builds so
all file extension case combinations will show up in the file dialog.

A note to developers: make sure to add a file extension when setting
when setting the default file argument.  If you do don't set an
extension, the GTK+ file dialog will happily append the regular
expression as the file extension which is surely not what you want.

There are still a few known places (mostly gerbview) where there are
some complex wildcard code that has not been converted.

Fixes lp:1720542

https://bugs.launchpad.net/kicad/+bug/1720542
2017-11-11 19:32:26 -05:00
Oliver 154ed5db68 Change default 3D model repository
- New location is kicad-packages3d
2017-11-11 15:23:57 -05:00
Oliver 17ab319b99 Fixes for 3D model offset
- Display offset units in 3D preview window (inches or mm)
- Fix offset in 3D renderer
- Fix offset in Raytracing renderer
- Fix offset in STEP export
- Fix offset in VRML export
2017-11-11 15:08:08 -05:00
Kevin Cozens d0a860ed8f Don't change angle when editing footprint value or reference text
Added 180 degrees to list of selection angles and entry of angles
from -180 to 180 in Footprint Text Properties dialog.

Fixes lp:613616

https://bugs.launchpad.net/kicad/+bug/613616
2017-11-11 14:38:05 -05:00
Kevin Cozens f71d3fe7b6 Allow value and reference text to be rotated by 90, 180, and 270 degrees. 2017-11-11 14:13:46 -05:00
jean-pierre charras 661bab7220 Fix crash when appending a board in pcbnew.
Fixes: lp:1731539
https://bugs.launchpad.net/kicad/+bug/1731539
2017-11-11 09:09:24 +01:00
jean-pierre charras 9723b0d844 Fix a few minor coverity warnings (not initialized members) 2017-11-11 07:25:00 +01:00
Maciej Suminski c9b791ca2a GenCAD exporter: added origin settings
Added an option to the exporter dialog allowing the user to choose
either the absolute or the auxiliary origin. Also, the ORIGIN field in
the exported file can be set to contain the information about the origin
point or set to (0, 0) for compatibility with other CAD tools.
2017-11-10 15:18:59 +01:00
Marvin Schmidt 69974b73db Remove some extra semicolons 2017-11-09 19:52:18 +01:00
jean-pierre charras 87d06e5269 Very minor fixes in some sentences (remove trailing space and add missing period). 2017-11-09 14:34:16 +01:00
jean-pierre charras 7d24a576e4 Avoid drawing into a non valid gl context when closing the DIALOG_PAD_PROPERTIES dialog
Fixes: lp:1729843
https://bugs.launchpad.net/kicad/+bug/
2017-11-07 18:33:53 +01:00
jean-pierre charras aefa0bf3b4 Avoid 0 sized grid in dialog_pad_properties.cpp 2017-11-07 10:18:13 +01:00
Eldar Khayrullin 9df4ae65ea pcad2kicadpcb: import solder mask for Mounting Holes
Fixes: lp:1730173
* https://bugs.launchpad.net/kicad/+bug/1730173
2017-11-06 10:23:23 +01:00
jean-pierre charras 78fa31315c Better Dxf import dialog:
Better look.
Better management of user offset settings (used only in Legacy mode).
The default width of lines and circle can be set.
2017-11-05 15:20:34 +01:00
Maciej Suminski ecaf1789c7 Fix builds without Github plugin enabled 2017-11-05 00:13:24 +01:00
Tomasz Włostowski a67d24a34e revert link-time plugin registration causing plugins to be incorrectly enumerated 2017-11-04 21:00:42 +01:00
Tomasz Włostowski 9932ff32ae refactoring: wrapped boost::optional in OPT<> class for the purpose of easier transition to C++17 in the future 2017-11-03 23:59:02 +01:00
Tomasz Włostowski b945d2a708 cleanup: replace CLASS_MIRE with CLASS_PCB_TARGET for naming clarity 2017-11-03 20:02:06 +01:00
Tomasz Włostowski 3170eba801 refactoring: implemented SELECTION_TOOL's own GetCollectorsGuide() to avoid dependency on PCB_BASE_FRAME 2017-11-03 20:02:06 +01:00
Tomasz Włostowski c9817df9db refactoring: implemented BOARD-specific view Add()/Remove()/Update() methods in PCB_VIEW, moved to libpcbcommon 2017-11-03 20:02:06 +01:00
Tomasz Włostowski 0245912c34 refactoring: split BOARD_ITEM::SwapData to use polymorphic per-item methods 2017-11-03 20:02:06 +01:00
Tomasz Włostowski 26f862a9d0 refactoring: remove PNS router dependency on PCB_EDIT_FRAME 2017-11-03 20:02:06 +01:00
Tomasz Włostowski d0ef881a53 refactoring: make BOARD_COMMIT independent from pcbnew 2017-11-03 20:02:06 +01:00
Tomasz Włostowski ec61a00371 refactoring: remove link-time dependency between PCB_BASE_FRAME and EDA_3D_VIEWER 2017-11-03 20:02:06 +01:00
Tomasz Włostowski 781008bfa5 refactoring: allow to run TOOL_MANAGER and SELECTION_TOOL without a host wxFrame 2017-11-03 20:02:06 +01:00
Tomasz Włostowski 06f3b35255 refactoring: moved BOARD_COMMIT, PCB_GENERAL_SETTINGS and TransformShapeWithClearanceToPolygon() to libpcbcommon 2017-11-03 20:02:06 +01:00
Tomasz Włostowski 7a44ab914d refactoring: replaced manual plugin registration with link-time plugin binding 2017-11-03 20:02:06 +01:00
Tomasz Włostowski 8a09a1d329 refactoring: derive PCB-specific PCB_VIEW from VIEW with the intention of moving PCB_EDIT_FRAME entries used by the tools (e.g. GetActiveLayer) there 2017-11-03 20:02:06 +01:00
Tomasz Włostowski 81d1e17f02 refactoring: renamed pcbstruct.h to pcb_display_options.h, DISPLAY_OPTIONS->PCB_DISPLAY_OPTIONS 2017-11-03 20:02:06 +01:00
Tomasz Włostowski 90ab5860dc refactoring: removed dependency of libpcbcommon on 3d-viewer. 2017-11-03 20:01:42 +01:00
jean-pierre charras c536364f05 Fix a few coverity warnings. very minor other changes. 2017-11-02 18:18:57 +01:00
Maciej Suminski e5c4cfc3b0 Eagle board importer: enable rectangle on drawing layers
Now the graphical polygons in footprints are properly handled by the
footprint editor, so there is no reason not to import them.

Coverity CID: 168709
2017-11-01 10:41:57 +01:00
Maciej Suminski 5eb56dd8b0 Coverity fixes
CIDs:
102571
168696
168701
168704
168706
168708
168710
168713
168716
168717
2017-11-01 10:24:26 +01:00
jean-pierre charras bd73a39a4b DSN export: export keepout zone polygons on each layer they are living 2017-10-31 19:53:52 +01:00
Maciej Suminski 05ab44f463 Fixed a memleak when no undo entry is requested in BOARD_COMMIT 2017-10-31 09:14:03 +01:00
Maciej Suminski e8e10c9245 Fixed a memleak in PCB_EDIT_FRAME::LoadFootprints() 2017-10-30 14:19:42 +01:00
Maciej Suminski 3a8b4a2fb7 Fixed a memleak in GerbView
Changed m_painter PAINTER* to unique_ptr<PAINTER> to avoid confusion
regarding the objection destruction.
2017-10-30 09:36:34 +01:00
jean-pierre charras 3ed106fb70 Make a translation more easy
Better title in dialog netlist option (Unconnected Tracks ->Tracks Connecting 2 Nets)
The previous title (Unconnected Tracks) is incorrect.
2017-10-28 15:27:45 +02:00
Kristoffer Ödmark 65b615bc4b Removed extra space in header part, fixed coding style 2017-10-27 12:13:23 +02:00
Kristoffer Ödmark 2e4dbdaf4b Fixed nest level when saving to not get giant diffs with version control software such as git 2017-10-27 11:30:11 +02:00
jean-pierre charras 1929727966 rename dialog_dxf_import.fbp to dialog_dxf_import_base.fbp, like other .fpb files 2017-10-25 10:10:03 +02:00
jean-pierre charras 78ec983632 DRAWSEGMENT fix crash when trying to copy a empty polygon.
SHAPE_POLY_SET: fix crash in VertexCount when it is a empty poly set, or when params are incorrect.

minor other fixes:
warning in degug mode in dialog_dxf_import_base.cpp
pcb_painter.cpp: remove a useless debug line.
2017-10-25 09:39:26 +02:00
José Ignacio Romero 73c88bd0fe Add more layers in default layers selection plot parameter. 2017-10-25 08:07:42 +02:00
Maciej Suminski bbe947e0f8 GenCAD exporter: quote and escape strings 2017-10-24 23:10:40 +02:00
Maciej Suminski bb68dad77c GenCAD exporter: clear shape name maps when export is finished
Otherwise the maps could contain stale data leading to a crash
2017-10-24 23:10:40 +02:00
Maciej Suminski 125781c7e1 GenCAD exporter: two level map for shape names
Previously the component to shape map contained
a lot of duplicated strings. Now the map stores
the component shape hash used for getting the
name from another map.
2017-10-24 23:10:40 +02:00
Maciej Suminski 13fc4c3c99 GenCAD exporter: export options made static 2017-10-24 23:10:40 +02:00
Maciej Suminski b53b7e3bc4 GenCAD exporter: generate matching DEVICE names 2017-10-24 23:10:40 +02:00
Maciej Suminski 82759f9cd0 GenCAD exporter: simplify shape matching 2017-10-24 23:10:40 +02:00
Maciej Suminski 019dca38c4 GenCAD exporter: generate shapes per footprint and reuse them 2017-10-24 23:10:40 +02:00
Maciej Suminski 847bede635 GenCAD exporter: changed 'flip components' to 'flip pads'
Such option might be useful for older CAM350 versions, but it should be verified.
2017-10-24 23:10:40 +02:00
Maciej Suminski d5fa28efe4 GenCAD exporter: option to export bottom components using MIRRORX 2017-10-24 23:10:40 +02:00
Maciej Suminski 2fce0d1235 GenCAD exporter: custom shape pads 2017-10-24 23:10:40 +02:00
Maciej Suminski 9b5dd3e629 GenCAD exporter: support for trapezoidal pads 2017-10-24 23:10:40 +02:00
Maciej Suminski 6ba33c8489 GenCAD export: added a switch to generate unique pin names 2017-10-24 23:10:40 +02:00
Maciej Suminski c3c5205393 GenCAD exporter: settings dialog 2017-10-24 23:10:40 +02:00
Maciej Suminski a73fa0790c GenCAD exporter: emit bottom modules using 'MIRRORX' directive to flip 2017-10-24 23:07:12 +02:00
Maciej Suminski c5b2169104 GenCAD exporter: fixed arcs 2017-10-24 23:07:12 +02:00
Maciej Suminski a06aed5305 GenCAD exporter: support for rounded rectangular pads, fixed oval pads 2017-10-24 23:07:12 +02:00
Maciej Suminski 63ddb1dbbc GenCAD exporter: fixed pad stacks for vias 2017-10-24 23:07:12 +02:00
jean-pierre charras 2d6496c7f6 Replace UNIT by EAGLE_UNIT in Eagle plugin to avoid having a lot of useless hits when grep for "UNIT" 2017-10-23 15:37:24 +02:00
jean-pierre charras 7418deb454 Pcbnew: fix issues with 360 deg angle arcs.
Fixes: lp:1725943
https://bugs.launchpad.net/kicad/+bug/1725943
2017-10-23 15:35:03 +02:00
jean-pierre charras 9bd5522419 Add a gerber test file
remove a few minor coverity warnings
2017-10-23 09:20:10 +02:00
jean-pierre charras 0b1eb5695f Fix crash when converting selected EDGE_MODULE items to a custom pad. 2017-10-21 12:46:59 +02:00
jean-pierre charras 8ba11dbd68 Minor fixes and enhancements 2017-10-21 11:00:59 +02:00
Seth Hillbrand 93a0e9e3d2 pcbnew: suppress compile warning on boost::optional 2017-10-21 08:49:33 +02:00
jean-pierre charras 87821c1490 Explode pad to shapes command: Fix incorrect conversion of primitive to EDGE_MODULE (missing initialization) 2017-10-21 08:48:26 +02:00
jean-pierre charras 55bb35a582 Cosmetic enhancement: add icon to 2 context menus (explode pad to graphic shapes and create pad from graphic shapes) 2017-10-20 18:25:44 +02:00
jean-pierre charras 9b4eddb744 Update gerber job file to latest format 2017-10-20 13:55:42 +02:00
jean-pierre charras 772dc2f24a Fix compil warnings 2017-10-20 13:48:36 +02:00
Seth Hillbrand fdae9f0b75 pcbnew: Only remove one duplicate track -- not both
Fixes: lp:1724728
* https://bugs.launchpad.net/kicad/+bug/1724728
2017-10-20 10:25:18 +02:00
jean-pierre charras 107c895cfd Pad editor: add tests to avoid incorrect values:
clearance must be >= 0
solder mask clearance must be >= 0
solder paste clearance must be <= 0
2017-10-20 10:25:17 +02:00
Maciej Suminski 0f532c3e8d Eagle PCB import plugin: handle correctly non-consecutive layer numbers 2017-10-20 09:34:33 +02:00
Maciej Suminski 7d7303215b Eagle PCB import plugin: more descriptive warning messages 2017-10-20 09:34:33 +02:00
Maciej Suminski e466bf50ae Eagle PCB import plugin: fix dimensions import 2017-10-20 09:34:33 +02:00
Maciej Suminski ee8012a5cc Eagle import plugin: Code clean-up and formatting 2017-10-20 09:34:33 +02:00
Maciej Suminski 25b8111341 Modified Eagle import plugins to use nanometers as the internal unit 2017-10-20 09:34:33 +02:00
Russell Oliver b796b13a89 Eagle PCB import: Improve error messages for unsupported footprint elements. - Display lines and circles from copper layers on drawings layer - Generate error messages for rectangles and polygons. 2017-10-20 09:34:33 +02:00
Russell Oliver 2a0a999350 Eeschema Eagle Import: Code clean-up and formatting 2017-10-20 09:34:32 +02:00
Maciej Suminski 985aed36c7 Moved FMT_UI & FMT_ANGLE macros to a separate header 2017-10-20 09:34:32 +02:00
Russell Oliver 3b0855d204 Eagle Project Import: Code cleanup and documentation.
- Also makes the project and file import functions filetype dependent.
- The change from IO_MGR::KICAD to IO_MGR::KICAD_SEXP removes a conflict from a compile definition for KICAD when compiling kicad/import_project.cpp
2017-10-20 08:58:40 +02:00
Russell Oliver b9973a1c67 PcbNew Eagle Import: Archives footprints in pretty library automatically on eagle project import. 2017-10-20 08:58:40 +02:00
Russell Oliver 869743d573 Kicad Eagle Project Import Improvements. -- schematic and board files are both visible in file selection dialog. -- Allows for the selection of either the board or schematic file. -- silently fails on not detecting the corrosponding board or schematic file. -- all new kicad files are generated in new project directory -- Silently read netlist without generating annotation warnings which synchronises timestamps and paths based on given eagle references, otherwise renumbering schematic references will break links accross schematic and pcbnew. 2017-10-20 08:58:40 +02:00
Russell Oliver 3145829b77 Fix compiler redefined warnings for FMT_IU 2017-10-20 08:58:40 +02:00
Russell Oliver 433aa653fe Kicad: Add Project import function. -- add menu entry -- add ImportFile kiway function -- expose functions for creating/reading netlist -- add example eagle boad file as well 2017-10-20 08:38:42 +02:00
Maciej Suminski 2adc3d48b4 Eeschema Eagle Import: Assign timestamps for modules 2017-10-20 08:38:39 +02:00
Tomasz Włostowski 22063dc5a5 pcbnew: clear selection reference point when moving footprint by name
Fixes: lp:1722870
* https://bugs.launchpad.net/kicad/+bug/1722870
2017-10-19 23:57:42 +02:00
Tomasz Włostowski ac095b6724 pcbnew: tools for converting between custom-shaped pads and graphical shapes 2017-10-19 23:35:18 +02:00
Tomasz Włostowski bcde2a77e2 common/single_top: allow to launch footprint editor from the command line (--frame switch) 2017-10-19 23:15:48 +02:00
Tomasz Włostowski d9bfbb4fec pcbnew: added graphical polygon drawing & editing tools 2017-10-19 23:14:01 +02:00
Jean-Samuel Reynaud 46edf6519c Fix crash with clearance is "too" negative. Same bug as #1663173
Fixes: lp:1663173
* https://bugs.launchpad.net/kicad/+bug/1663173
2017-10-19 08:41:15 -04:00
jean-pierre charras 56d42c776a Replace assert() by wxASSERT to make debug more easy. 2017-10-19 09:49:09 +02:00
jean-pierre charras 72d4889a6d Remove duplicate code (pcbnew saves twice 'general' and 'layers' keys in 'kicad_pcb' file)
Fixes: lp:1724522
https://bugs.launchpad.net/kicad/+bug/1724522
2017-10-18 18:01:34 +02:00
jean-pierre charras 537804b5e8 Fix incorrect format on Windows 32 bits (in a message only in Debug) 2017-10-17 09:55:32 +02:00
jean-pierre charras 1e35d45948 Replace a assert by a wxASSERT to make debug more easy. 2017-10-16 20:26:37 +02:00
jean-pierre charras 1ec7fef4a2 fix a wxASSERT in dialog_keepout_area_properties.cpp 2017-10-16 13:58:36 +02:00
jean-pierre charras b5f23befeb Fix incorrect initialization of default colors for some items.
Fix incorrect detection of key handled in footprint_wizard_frame.cpp
2017-10-09 10:35:53 +02:00
jean-pierre charras cb3d28f11b define SetPadName() and GetPadName() (old name of D_PAD::SetName() and GetName()) for compatibility with existing python scripts 2017-10-09 09:58:15 +02:00
jean-pierre charras 246f8cae24 Fix missing initialization of colors settings of a board, when created by a python script.
A pointer was not initialized, therefore plots from a python script sometimes crash.

Fixes: lp:1721166
https://bugs.launchpad.net/kicad/+bug/1721166
2017-10-08 16:21:27 +02:00
Oliver d6c0d320db Consolidated line icon
- Line / polygon icon in pcbnew now matches that in modedit
2017-10-06 11:10:46 -04:00
jean-pierre charras 4905bbe500 hotkey management: enhancements in code to know if a hotkey was handled by an event or not.
No actual change in key management: in legacy it was partially existing, and not yet used in GAL mode.
2017-10-06 09:23:13 +02:00
jean-pierre charras 1164eaab72 Make the "No Net" mark color editable (mark for pads having no net name)
Note: this mark is currently drawn only in legacy canvas.
2017-10-05 20:11:55 +02:00
jean-pierre charras 3d15690817 remove a printf certainly used in debug tests during development. 2017-10-03 13:10:25 +02:00
jean-pierre charras 4a2647b771 very minor fixes in strings in dialog. 2017-10-02 15:40:36 +02:00
Maciej Suminski f3184ebadb Fixup for ed480bbb 2017-10-02 10:04:45 +02:00
jean-pierre charras 4b010ca129 Fix useless trailing and leading spaces in a few messages. Fix also capitalization in a few menus. 2017-10-02 09:25:48 +02:00
Cirilo Bernardo 949b4754e5 DXF: ensure "C" language environment. 2017-10-02 09:16:29 +02:00
Cirilo Bernardo a3dfd2c0dd DXF: fix import of Polyline with bulge 2017-10-02 09:16:29 +02:00
Maciej Suminski ed480bbbd4 Fixed a sizer assert in pad properties dialog 2017-10-02 09:03:26 +02:00
Baranovskiy Konstantin c34955aaed Pcbnew: small fix for pad properties dialog. 2017-10-02 08:56:55 +02:00
Maciej Suminski e2ba6da886 Fixed an empty msgid warning (gettext) 2017-10-02 08:49:33 +02:00
Kristoffer Ödmark 4a5d400ec2 pcbnew: copy/paste code cleanup & formatting 2017-09-30 14:28:54 +02:00
Tomasz Włostowski c6a0ad895b pcbnew: code formatting, removed previous module editor copy/paste functions 2017-09-30 14:28:54 +02:00
Tomasz Włostowski adcda4a3e8 pcbnew: prompt for reference point in the message panel, add cut/copy/paste entries in the Edit menu 2017-09-30 14:28:54 +02:00
Tomasz Włostowski 5731000135 pcbnew/copy&paste: multiple improvements:
- fixed netcode propagation bug
- factored out EDIT_TOOL::m_offset, now selection offset is stored in SELECTION class
- added VECTOR2I-based Move/Flip/Rotate methods in BOARD_ITEM
2017-09-30 14:28:54 +02:00
Tomasz Włostowski f573a2e685 wip 2017-09-30 14:28:54 +02:00
Tomasz Włostowski 3fb926a8f2 Fix snapping to anchors in PICKER_TOOL & highlighting of pasted items 2017-09-30 14:28:54 +02:00
Tomasz Włostowski 931a1ccaff Improved copy/paste functionality by Kristoffer:
- added selection of reference point
- added snapping when pasting
- some minor code refactoring
- disabled pasting between footprint and pcb editors due to model incompatibility
2017-09-30 14:28:54 +02:00
Kristoffer Ödmark 279ccd4fe2 Fix bug found by Tomasz, added constant modifier in loops where board items should not be modified 2017-09-30 14:28:54 +02:00
Kristoffer Ödmark 79d81ae9ff forward the event 2017-09-30 14:28:53 +02:00
Kristoffer Ödmark 4ce38abce2 renamed copypasta functions, fixed a paste_module error 2017-09-30 14:28:53 +02:00
Kristoffer Ödmark e19882577a fixed a comment, copies now retain their path if any 2017-09-30 14:28:53 +02:00
Kristoffer Ödmark b4879d061c Fixed menu items, moved the copy and cut to the EDIT_TOOL, Fixed rendering when copying a module 2017-09-30 14:28:53 +02:00
Kristoffer Ödmark 7ff096fbac updating patch to master 2017-09-30 14:28:53 +02:00
Kristoffer Ödmark bd8980596f Some code cleanup to follow kicad style better 2017-09-30 14:28:53 +02:00
Kristoffer Ödmark 6a02ee6c4b fixed crash on copying texte modules 2017-09-30 14:28:53 +02:00
Kristoffer Ödmark 84b803042c Improvements to copy-paste
-Can paste items from board to module-editor (only module parts)
-Can paste entire modules just as copy
-Can copy items inside module-editor

Known limitations:

-Will crash if trying to paste a module containing module_text inside
the module editor ( dont know why, problem existed before )
-If copying things with strange layer names, the layer names will be
changed.
2017-09-30 14:28:53 +02:00
Kristoffer Ödmark 05d8f1071e Made the formatHeader into multiple small functions 2017-09-30 14:28:53 +02:00
Kristoffer Ödmark c0981b8444 Added a new plugin that can save and load to clipboard, using ctrl+shift+c/v for copy pasting
Added the needed kicad_clipboard files and made copy pasted modules have no path
2017-09-30 14:28:53 +02:00
Seth Hillbrand 6573a43f3a pcbnew: multiple keepout zone bug fixes
- Fixes segfault in ZONE_CONTAINER::SetLayerSet
- Copies layerset when using assignment and new()
2017-09-30 13:56:25 +02:00
Simon Schubert b6d54acf3b Corrected the default net class assignment 2017-09-29 08:47:40 +02:00
Wayne Stambaugh ded4ad9b17 Pcbnew: delete objects from removed layers.
This fixes potential DRC false positive bugs that occur when inner layers
are removed from the board but the actual objects on contained on those
layers remain in the board.

Since Pcbnew does not handle odd number layers, this is not a perfect fix.
When the user chooses the front or back layer only options from the layer
setup dialog, objects on the copper layers will not be removed.  This will
not cause the false positive issue described above.

Get rid of dialog OK and cancel button event handlers and use the proper
TranferData(To/From)Window for handling control data.

Add PCB_LAYER_COLLECTOR for collecting board objects by layer.  Factor out
redundant [] operators into base PCB_COLLECTOR object.

Fixes lp:893950

https://bugs.launchpad.net/kicad/+bug/893950
2017-09-28 13:01:09 -04:00
jean-pierre charras 517921e2e1 update doc and remove a outdated file
Update or fix a few strings in menus and tool tips
2017-09-28 18:56:36 +02:00
Maciej Suminski 6006b54dd9 Fixed a crash when editing a pad of a bottom layer module
Fixes: lp:1720007
* https://bugs.launchpad.net/kicad/+bug/1720007
2017-09-28 09:58:34 +02:00
jean-pierre charras 54d34c341b Cleanup code 2017-09-28 08:38:36 +02:00
Maciej Suminski 068a29952c Changed AUI toolbars background from gradient to solid
Based on patches from Windsor Schmidt <windsor.schmidt@gmail.com>
2017-09-27 23:23:06 +02:00
jean-pierre charras df830dab4c Add comments and a comment asking to fix a call to a GUI inside a io plugin, that is not allowed 2017-09-27 18:59:17 +02:00
jean-pierre charras b4a59eb96d Fix minor issues in DIALOG_KEEPOUT_AREA_PROPERTIES.
Fix keepout zone creation in legacy canvas.
Add a comment in lset.cpp
2017-09-27 16:54:28 +02:00
Oliver Walters 42be6bb966 Improved keepout zone properties dialog
- Checkboxes next to layers
- OK button is disabled if no layers are selected
2017-09-27 10:35:00 +02:00
Oliver Walters c977c88a10 Zone keepout exclusion now works on multiple layers!
Bug fixes for keepout layers

- Changed LSET::size() -> LSET::count()
- Save/load functions no longer depend on zone being a keepout
2017-09-27 10:35:00 +02:00
Oliver Walters 7e0fa329d0 DRC checks for keepout zones work on all layers 2017-09-27 10:35:00 +02:00
Oliver Walters 2895030cfa Add multi-layer zone rendering for GAL
Enable multi-layer selection for keepout zones in GAL
2017-09-27 10:34:59 +02:00
Oliver Walters 0f6ec7632b Enable multi-layer for keepout zones
- Load / save from PCB file correctly
- Doesn't display properly yet
- Keepout only actually applies to one layer (for now)
2017-09-27 10:34:59 +02:00
Baranovskiy Konstantin 28997e7f37 Footprint viewer: fix zooming from toolbar or menu in GAL. 2017-09-26 16:24:54 +02:00
Wayne Stambaugh 9ca3f632a2 Pcbnew: fix update schematic from PCB file name bug.
Use ctor wxFileName( path, name, extension) to create full schematic file
name in update PCB from schematic code path.  This prevents file names with
dots '.' from being interpreted as the extension when using the wxFileName
assignment operator.
2017-09-26 10:13:21 -04:00
Jon Evans 256f52f27e Use VIEW_GROUP for candidate highlighting; enable in PcbNew also 2017-09-25 13:39:37 +02:00
Maciej Suminski 05a120f09f Unified {Load,Save]CanvasTypeSetting in EDA_DRAW_FRAME 2017-09-25 13:39:32 +02:00
Seppe Stas d7b143f6f0 Right click option to change layer and render color 2017-09-22 17:41:42 +02:00
Maciej Suminski df472e6426 Added mouse position refresh event WX_VIEW_CONTROLS::WarpCursor() 2017-09-22 11:13:45 +02:00
Michael Geselbracht da037027fb Do not warp viewport when dragging FPs
Fixes: lp:1714611
* https://bugs.launchpad.net/kicad/+bug/1714611
2017-09-22 11:13:40 +02:00
Wayne Stambaugh cb764d73c5 Minor trace logging improvements.
Make all trace environment variable strings upper case and prefix with
KICAD_TRACE_ for consistency.

Add Doxygen group for the trace environment variable strings.
2017-09-21 08:58:41 -04:00
Jon Evans 8722fd9c6c Set modified flag when changing layer visibility (lp:793420) 2017-09-21 11:09:08 +02:00
Wayne Stambaugh 90c3d41f67 Fix duplicate accelerator key in board editor view main menu.
Both "&Fit on Screen" and "&Flip Board View" in the "View" main menu were
mapped to the 'F' accelerator key.  Changed "Flip &Board View" to use the
'B' accelerator key.

Fixes lp:1717924

https://bugs.launchpad.net/kicad/+bug/1717924
2017-09-20 12:58:39 -04:00
jean-pierre charras 4e8ad8516a Update gerber job file format and job file extension.
Gerber job file extension is now .gbrjob, according to latest changes in Gerber job file spec.
2017-09-20 18:14:20 +02:00
jean-pierre charras 8d1d37beb0 Refinements in pad properties dialog 2017-09-20 16:14:23 +02:00
jean-pierre charras 7c1ac6fbcc Refinements in pad properties dialog 2017-09-20 15:37:37 +02:00
jean-pierre charras a43f3ab1fe replace "BasicShape" by "Primitive" in code, a better name 2017-09-20 12:51:10 +02:00
jean-pierre charras 4122aa1c01 Fix translation (I18n) problems 2017-09-20 09:32:37 +02:00
jean-pierre charras b00174c5a4 add comment 2017-09-19 19:00:22 +02:00
Maciej Suminski cca63801bf Renamed D_PAD::{Set,Get}PadName() to D_PAD::{Set,Get}Name() 2017-09-19 18:23:50 +02:00
Maciej Suminski d6f3961804 pcbnew & eeschema file format version bump 2017-09-19 18:22:56 +02:00
Maciej Suminski 85be485c34 Enable long names for pin numbers and pads
- pad names are stored as wxString instead of a char[4] & integer union
- removed pad name to string conversion functions
- fixed pad & pin properties dialog restrictions regarding the name
length
2017-09-19 18:19:49 +02:00
jean-pierre charras dddaa7e69c use custom pad shape in a microwave footprint 2017-09-19 15:51:47 +02:00
jean-pierre charras e504746fa3 Rename muonde.cpp to microwave.cpp 2017-09-19 15:51:45 +02:00
Fabrizio Tappero d2d665e540 library option reviewed and renamed, minor menu text changes 2017-09-19 08:11:24 -04:00
jean-pierre charras e2d3fcec02 Add support for custom pad shape. Full support in DRC and PnS.
add option to use shape or convex hull as clearance area in zones.
simplify code to handle clearance area
2017-09-19 09:02:53 +02:00
Maciej Suminski 25abe30c72 Code formatting 2017-09-18 11:25:32 +02:00
Kristoffer Ödmark aaa1e35b6a Heirarchical sheet selection includes more.
Now the heirarchical sheet selection feature includes tracks that belong
to a net spanning multiple sheets, but only by doing a logical connection
from the pads of the modules. This is to be able to select connections
between components on the same sheet. For example if the sheet contains a
star power connection or something similar, then most of the sheet local
connections will now also be included.
2017-09-18 11:16:13 +02:00
Mathias Grimmberger 2c23c4c3a9 Dropdown list in via properties dialog to select predefined via size 2017-09-18 10:28:08 +02:00
Jon Evans b6298a0a41 Don't force grid color to LAYER_GRID in EDA_DRAW_PANEL_GAL 2017-09-12 12:49:17 +02:00
jean-pierre charras e15acbb00d Fp editor and board editor have now a separate color setup.
fp viewer uses the default colors, because it has no color setup dialog.
class_colors_design_settings: remove not used members.
Fix issue in modedit: the color config was never read.
2017-09-11 18:51:48 +02:00
jean-pierre charras 19ad350c1c Fix a bug in DRAWSEGMENT::GetParentModule() that expected a non null parent to return a null parent! 2017-09-08 20:19:14 +02:00
Maciej Suminski 90668f9efb Do not destroy the footprint cache in EAGLE_PLUGIN init
EAGLE_PLUGIN::init() is called every time the footprints are enumerated,
so it is incorrect to destroy the cache there.
2017-09-07 13:01:14 +02:00
jean-pierre charras b0b3fde598 fix in Gerber job file creation. 2017-09-01 13:37:28 +02:00
jean-pierre charras b33b79d654 fix a minor compil warning 2017-09-01 13:36:55 +02:00
Maciej Suminski 450f006d7d Keep the default net class object per board, not static
Fixes: lp:1711491
* https://bugs.launchpad.net/kicad/+bug/1711491
2017-08-31 17:46:17 +02:00
Jon Evans eec1366ead Move ZOOM_TOOL to common; add RMB-drag to zoom out 2017-08-31 10:04:00 +02:00
jean-pierre charras 3ac87f6969 Fix an issue on MacOS. 2017-08-30 18:32:41 +02:00
jean-pierre charras 50164e9968 Add Gerber job file writer in Pcbnew, and a basic reader in Gerbview. Currently disabled
Fix also very minor issues in Gerbview
2017-08-30 11:04:33 +02:00
Tomasz Włostowski 2e4c22f718 router: fix corruption of board data when the inline drag is activated while the router tool is running
Fixes: lp:1712838
* https://bugs.launchpad.net/kicad/+bug/1712838
2017-08-30 01:16:06 +02:00
Tomasz Włostowski 20b9ed4897 router: fixed possible use-after-free condition during segment dragging
ratsnest: fixed occasionally disappearing airwires
2017-08-29 18:49:05 +02:00
Wayne Stambaugh 55ce984f05 Minor design rule editor dialog layout improvements.
Fix the alignment of the unit static text control for uVia diameter and
drill size to match the rest of the units static text controls on the
global design rules tab.
2017-08-29 11:15:16 -04:00
Bastian Neumann 9b900ea834 Micro via input fields are enabled when design is loaded
Loading a design with micro vias enabled did check the box for enabling
micro vias in pcbnew. The value input fields for diameter and drill
size were not enabled.

This patch moves the functionality into an new function and calls that
from the onclick event of the checkbox and the init function of the
dialog.
2017-08-29 09:28:25 -04:00
jean-pierre charras a557838c61 Fix incorrect refresh of User Interface after running an action plugin, and add comments 2017-08-27 08:13:35 +02:00
jean-pierre charras db3491f382 Ensure filled zones have the minimal clearance given by the netclasses, between 2 copper items.
It also fixes a corner case, when 2 zone with zone clearance = 0 are overlapping with different priorities
(previously, they were shortened)

Fixes: lp:1713028
https://bugs.launchpad.net/kicad/+bug/1713028
2017-08-26 08:55:32 +02:00
Maciej Suminski dd37d05958 Remove Dwgs_User from the always-on-top layer set
Fixes: lp:1713053
* https://bugs.launchpad.net/kicad/+bug/1713053
2017-08-25 17:25:40 +02:00
Mathias Grimmberger ffeba9de93 Change track width setting to dropbox 2017-08-25 16:46:49 +02:00
Maciej Suminski 7ce86e0da5 Fix crash when duplicating an item in FP editor
Fixes: lp:1712828
* https://bugs.launchpad.net/kicad/+bug/1712828
2017-08-24 16:31:31 +02:00
Tomasz Włostowski aeac415599 router: hopefully a proper fix for the dragging issue 2017-08-22 19:33:38 +02:00
Tomasz Włostowski 60fdc6229d router: fixed inline dragging & settings dialogs inconsistency 2017-08-22 16:44:58 +02:00
Maciej Suminski 31ef52a365 Fix fine-grid cursor movement using arrow keys
Fixes: lp:1497976
* https://bugs.launchpad.net/kicad/+bug/1497976
2017-08-22 15:14:33 +02:00
jean-pierre charras 93e8433412 Fix a incorrect initialization of a zone parameter (had no consequence with the current code) 2017-08-22 12:02:07 +02:00
jean-pierre charras 6be2f2934e Exchange footprint dialog uses now the reporter widget for a better report of actions and errors.
Fixes: lp:1711379
https://bugs.launchpad.net/kicad/+bug/1711379
2017-08-18 20:26:45 +02:00
Maciej Suminski 077fb3c294 Clearer message for exchange footprint failure 2017-08-18 09:08:07 +02:00
Chris Pavlina d25fdfdb89 Fix wx assertion for excess "|" in wildcard list 2017-08-17 22:48:05 -06:00
Tomasz Włostowski 667d32c4ab router: fixed snapping to end items 2017-08-17 22:54:55 +02:00
jean-pierre charras 4d0c1577d2 Fix Pcbnew Python: LoadBoard does not rebuild connectivity database, and later, SaveBoard does not save net class memberships
Fixes: lp:1711268
https://bugs.launchpad.net/kicad/+bug/1711268
2017-08-17 18:00:34 +02:00
Seth Hillbrand 90873a101b router: update status message on meander spacing/amplitude hotkeys
Fixes: lp:1710266
* https://bugs.launchpad.net/kicad/+bug/1710266
2017-08-16 14:16:20 +02:00
Tomasz Włostowski d5bdcd3032 router: fixed no-snapping issue 2017-08-16 14:11:07 +02:00
Fabrizio Tappero f12b19dd89 delete library upgrade icon and make two new icons for the archive footprint menu in pcbnew 2017-08-15 19:48:52 +02:00
Maciej Suminski 9447181a08 Handle block selection removal of libraries in FP_LIB_TABLE dialog 2017-08-15 11:56:05 +02:00
jean-pierre charras 356f607cd6 fix compil warnings and replace assert by wxASSERT in dialog_track_via_properties.cpp 2017-08-11 11:38:06 +02:00
jean-pierre charras 9485a4d381 Pcbnew, dialog export STEP: fox not working export in countries using the comma as floating point separator.
Add origin at board center and serious cleaning code.
2017-08-10 14:25:31 +02:00
jean-pierre charras 81a4182319 Fix a not easy to translate message 2017-08-10 09:48:17 +02:00
Wayne Stambaugh 15478bda41 Fix various STEP export dialog issues.
The file filter wild card was defined incorrectly causing the file picker
to not display *.stp and *.step file extensions.  Change the wildcard per
wxFileDialog documentation.

Prevent the file extension from being forced to .stp even when the user
defined a different extension in the file picker.

Override TransferDataFromWindow to test for file existence and warn user
only once if a file overwrite can occur.

Minor STEP export dialog string and layout improvements.

Make kicad2step honor user's file extension rather than always setting it
to .stp.

Fixes lp:1709636

https://bugs.launchpad.net/kicad/+bug/1709636
2017-08-09 13:41:07 -04:00
Maciej Suminski 6701095855 Fixed a method returning reference to a local variable 2017-08-09 14:03:27 +02:00
jean-pierre charras 9bb43a89ba Pcbnew: keep layer manager synchronized with board items visibility after switching to a new canvas. 2017-08-09 09:48:56 +02:00
jean-pierre charras 068f96f2ce Fix untranslatable empty string 2017-08-09 08:29:30 +02:00
Maciej Suminski 6d5282cd60 Removed unnecessary dots in pcbnew menu entries 2017-08-08 17:34:46 +02:00
Maciej Suminski 53204e097a Reenable pad enumeration by clicking
Fixes: lp:1708231
* https://bugs.launchpad.net/kicad/+bug/1708231
2017-08-08 16:47:07 +02:00
Tomasz Włostowski 2d9ab80b4e Few improvements to the GAL router:
- missing 'break track' functionality
- 'drag 45 degree' and 'drag free angle' context menu shorcuts, both in the router tool and in the default context menu
- bugfix: length tuner tool can now be used again

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

Fixes: lp:1708402
* https://bugs.launchpad.net/kicad/+bug/1708402
2017-08-07 14:28:46 +02:00
Maciej Suminski 9aaea050b9 Do not stop dragging after a rotation command
Fixes: lp:1708876
* https://bugs.launchpad.net/kicad/+bug/1708876
2017-08-07 10:02:10 +02:00
Maciej Suminski e8345dce51 Display GRID_HELPER auxiliary axes and snap points 2017-08-07 08:59:32 +02:00
jean-pierre charras b8c621a991 fix a few Coverity warnings. 2017-08-06 14:23:03 +02:00
jean-pierre charras 2e96a5bc9f Pcbnew: fix a crash when editing footprint properties and trying to open the footprint 3D properties.
This was due to a missing initialization of the dummy board color settings (used to draw the footprint in the 3D view).

Fixes: lp:1708712
https://bugs.launchpad.net/kicad/+bug/1708712
2017-08-05 16:37:51 +02:00
jean-pierre charras aa3a1267ea Fix compil warnings 2017-08-04 17:46:18 +02:00
Tomasz Włostowski 32185ddcd3 Multiple improvements concerning colors, configuration handling and legacy features in pcbnew:
- support for background color setting
    - removed several global config settings (such as g_Drc_On)
    - wrapped most of global config settings in PCB_GENERAL_SETTINGS class
    - reorganized PCB general options dialog to clearly mark which options concern only the legacy canvas
    - new GAL feature for legacy users: double-click (or E) to change track width available as an option.

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

Fixes: lp:1707145
* https://bugs.launchpad.net/kicad/+bug/1707145
2017-08-04 16:06:57 +02:00
jean-pierre charras 33e05ae557 Avoid to change the alpha channel color value initially set in GAL mode when modifying a color in legacy mode. 2017-08-04 09:48:08 +02:00
Maciej Suminski 3570154ef0 Fixes to speed select/deselect commit (161045f1)
Deselecting items require full refresh, as otherwise e.g.
umbilical lines for modules stays.
2017-08-03 16:14:46 +02:00
Maciej Suminski 71c33d3dcd Fixes for canceling selection after invoking menu on an unselected item (9cbcb322) 2017-08-03 14:28:07 +02:00
Maciej Suminski 3629fcbf4a Code formatting 2017-08-03 14:28:07 +02:00
Wayne Stambaugh 9760937494 Pcbnew: add missing file and directory overwrite prompts.
Fix the Specttra, VRML, and IDF export dialogs to prompt the user when they
are about to overwrite and existing file and/or folders.

Fixes lp:1706235

https://bugs.launchpad.net/kicad/+bug/1706235
2017-08-02 13:31:29 -04:00
Kristoffer Ödmark 42b70b86f2 added more layer selector features 2017-08-02 10:53:08 -04:00
Maciej Suminski 30ad7e4f99 Improved the algorithm for guessing the selection candidates
Now it filters out items that are bigger than the current viewport
2017-08-01 18:00:30 +02:00
Maciej Suminski efdf0c6b84 Parameter tuning for hiding dynamic ratsnest 2017-08-01 17:57:18 +02:00
Maciej Suminski 9cbcb3224c Cancel selection if an item has been selected by right click 2017-08-01 15:23:08 +02:00
Maciej Suminski f303bf2999 Hide temporarily ratsnest when it is too complex for real-time calculation 2017-08-01 15:22:24 +02:00
Maciej Suminski 1ac34b44bf Removed explicit calls to update ratsnest from EDIT_TOOL 2017-08-01 15:22:23 +02:00
jean-pierre charras 1f6854f2b8 Make internal errors messages not translatable 2017-08-01 13:12:59 +02:00
jean-pierre charras 816307e500 Pcbnew plot: fix a few minor issues:
- SVG export: fix color of PCB texts.
- Avoid marking board as modified after plotting layers, when options not saved in board are modified.
2017-07-31 20:05:32 +02:00
jean-pierre charras 557e69f72a Fix many minor issues in dialog plot and plot DXF options. 2017-07-31 20:05:32 +02:00
jean-pierre charras abe2a46ae7 Pcbnew: Fix plot PDF, broken by commit f3457794cf
Also disable option to use native font in PDF and PS plotter format, because this option has never worked.

Fixes: lp:1707412
https://bugs.launchpad.net/kicad/+bug/1707412
2017-07-31 20:05:30 +02:00
Maciej Suminski 67ae5935d6 Perform tool reset twice when reloading a board
The first one is to remove any references to the removed items, the
second one is to setup the new model.

Fixes: lp:1692257
* https://bugs.launchpad.net/kicad/+bug/1692257
2017-07-31 15:09:19 +02:00
Maciej Suminski 76bd05a69b Prevent creating too many transitions by TOOL_MANAGER
- added TOOL_INTERACTIVE::resetTransitions()
- made protected and moved TOOL_BASE::setTransitions() to TOOL_INTERACTIVE
- TOOL_MANAGER calls TOOL_INTERACTIVE::resetTransitions() instead of
setTransitions()
2017-07-31 15:09:19 +02:00
Maciej Suminski 9e385872a0 Remove an excessive VIEW::Update() call 2017-07-31 15:09:19 +02:00
Maciej Suminski 75cda5021d Assure that NETINFO_ITEMs have a NETCLASS object assigned
Fixes: lp:1705896
* https://bugs.launchpad.net/kicad/+bug/1705896
2017-07-28 16:03:53 +02:00
Simon Richter d41af7db7d Legacy handling for Via tool
This tool isn't available in the Legacy canvas, but we still need to handle
the selection event and show an appropriate error message if the tool is
used.
2017-07-28 11:31:28 +02:00
Maciej Suminski 7399759b3b Fixed polygon DRAWSEGMENT rendering in OpenGL GAL
Fixes: lp:1704542
* https://bugs.launchpad.net/kicad/+bug/1704542
2017-07-28 10:34:47 +02:00
Maciej Suminski acbfea48f2 Fixed a bug allowing to drag locked footprints without approval
Fixes: lp:1576655
* https://bugs.launchpad.net/kicad/+bug/1576655
2017-07-27 17:13:22 +02:00
Tomasz Włostowski 50bb9ce665 pcbnew: catch exceptions for missing modules during netlist update to avoid silent failure on first missing footprint 2017-07-27 16:21:54 +02:00
Tomasz Włostowski b682882807 pcbnew: add keyboard shortcuts [1..9] to the selection disambiguation menu 2017-07-27 16:21:54 +02:00
Tomasz Włostowski b964569db7 pcbnew: enable net selection combobox in Track/Via properties dialog 2017-07-27 16:21:54 +02:00
Maciej Suminski 7b88dac4b7 Consistent track removal for PNS and selection tool
Fixes: lp:1705676
* https://bugs.launchpad.net/kicad/+bug/1705676
2017-07-27 16:20:19 +02:00
Maciej Suminski 3ee2f80188 Drag footprints by pads only if one is under the cursor 2017-07-27 11:13:25 +02:00
Maciej Suminski 545a80839b Removed an excessive selection request from EDIT_TOOL 2017-07-27 10:56:26 +02:00
jean-pierre charras f9abb112af Fix possible crash after reading a netlist
Fixes: lp:1705912
https://bugs.launchpad.net/kicad/+bug/1705912
2017-07-26 18:06:03 +02:00
jean-pierre charras 9044b5eeac Pcbnew VRML export: typing in filename textbox steals focus, making filename change very hard.
Fixes: lp:1706228
https://bugs.launchpad.net/kicad/+bug/1706228
2017-07-26 18:06:01 +02:00
Dick Hollenbeck 19e6bde09a Rewrite class UTF8 to contain rather than extend std::string storage.
This forces the compiler class specific features rather than borrowing
from the base class's std::string.  In some cases prior to this,
wxString( std::string ) was being called rather than UTF8::operator
wxString() leading to garbled wxStrings.

Added function UTF8::wx_str() which is of great convenience also.

Implicit conversions still work as before, and hopefully more reliably.
2017-07-26 08:30:12 -04:00
Dick Hollenbeck 4e7de8a761 Reverse commit 4011ed4e31.
This commit was too broad and not cognizant of the purpose of the class
UTF8.

Add MAYBE_VERIFY_UTF8() macro, which can trap non-UTF8 encoded strings in
debug builds.

Use that macro conditionally in class UTF8 to trap non-UTF8 encoded strings
being put into UTF8 instances.
2017-07-26 08:26:56 -04:00
Oliver Walters 161045f17d Speed improvement for select / deselect in GAL
- No longer invalidates the item layers
- For multiple items, this results in a drastic speed improvement
2017-07-25 16:34:03 +02:00
Oliver Walters c27f5b725d Improved various error messages
- Moved developer "jargon" to details pane
- Changed error messages to "WHAT" rather than "WHY" or "WHERE"
2017-07-25 07:37:14 -04:00
jean-pierre charras 6d52987928 Gerber files creation: fix an incorrect structured comment ('*' was missing at the end of line) 2017-07-25 11:50:24 +02:00
jean-pierre charras 2d5607a11d Fix issues in plot functions, when used from python scripts. 2017-07-25 11:49:16 +02:00
Fabrizio Tappero f453cec938 Changed all Rotate 90 deg CW with Rotate Clockwise. Changed all Rotate 90 deg CCW with Rotate Counterclockwise 2017-07-21 10:28:44 -04:00
Fabrizio Tappero deeeed38a1 deleted several redundant icons in right-click menu. The objective is to get to a more uniforme right click menu look
Signed-off-by: Fabrizio Tappero <fabrizio.tappero@gmail.com>
2017-07-21 10:28:42 -04:00
Fabrizio Tappero cef616fcd8 fixed text titles that should have only the first word capitilized 2017-07-21 10:19:29 -04:00
Fabrizio Tappero 269238a7ee fixes label text, now only first word is capitilized 2017-07-21 10:19:29 -04:00
Fabrizio Tappero 7be14f774d fixed plot menu labels 2017-07-21 10:19:29 -04:00
Maciej Suminski 6f8f6f18f6 Additional checks for item validity in CONNECTIVITY
Fixes: lp:1705455
* https://bugs.launchpad.net/kicad/+bug/1705455
2017-07-21 11:40:37 +02:00
jean-pierre charras c290e8a33b disable zone dump (this dump is enabled only for zone fill debug) 2017-07-21 08:40:58 +02:00
Wayne Stambaugh be109575ce Pcbnew: minor menu string capitalization fix. 2017-07-19 12:33:48 -04:00
jean-pierre charras 242c47ffd4 Pcbnew: Fix incorrect initialization of a variable in MODULE_EDITOR_TOOLS::EnumeratePads().
This issue is due to an unexpected behavior of evt->IsClick( BUT_LEFT ) used in this method,
which detect a mouse release button and not a mouse click down.

Fixes: lp:1700197
https://bugs.launchpad.net/kicad/+bug/1700197
2017-07-19 16:00:25 +02:00
Maciej Suminski f942e3e31f Fixed a crash when items are unselected when dragging
Fixes: lp:1702355
* https://bugs.launchpad.net/kicad/+bug/1702355
2017-07-19 13:00:51 +02:00
Maciej Suminski 64f00f447f pcbnew - refactor move exactly tool (3/2)
* code formatting
* turned EDIT_TOOL::getAnchorPoint() to static getAnchorPoint()
* removed unnecessary include directives
2017-07-19 11:36:35 +02:00
Robbert Lagerweij b7f2525c5d pcbnew - refactor move exactly tool (2/2)
This patch does the following:
* extracts a method to determine the anchor point of the move
* improves the logic of the anchor point determination for selections of multiple objects which do not contain footprints
2017-07-19 11:36:35 +02:00
Robbert Lagerweij bf832dd941 pcbnew - refactor move exactly tool (1/2)
This patch does the following:
* move the determination of the origin coordinates to the dialog (reduces code duplication)
2017-07-19 11:36:35 +02:00
Oliver Walters 8debf32079 Added partial selection for VIA class 2017-07-19 11:04:32 +02:00
Maciej Suminski a8e63924de Fixed a memleak in BOARD_NETLIST_UPDATER 2017-07-19 10:55:57 +02:00
jean-pierre charras 5f4599fb56 Add a new color selector, to adjust color selection for GAL mode, with support of opacity (alpha channel)
Pcbnew: save opacity value in color config, and keep it when switching between legacy and gal mode.
2017-07-18 19:07:47 +02:00
Maciej Suminski 10c5297f2e Code clean-up and formatting 2017-07-17 10:21:39 +02:00
Maciej Suminski 8dd36b4d2b Added type filtering for CONNECTIVITY_DATA::GetNetItems() 2017-07-17 10:21:39 +02:00
Kristoffer Ödmark 4c94d02c42 Fixed sheet-selection code
Fixes: lp:1704644
* https://bugs.launchpad.net/kicad/+bug/1704644
2017-07-17 10:21:39 +02:00
jean-pierre charras e797af3315 fix compil warning 2017-07-16 20:01:35 +02:00
jean-pierre charras 22e95aab8b WIZARD_3DSHAPE_LIBS_DOWNLOADER: make it compatible with last url packages3D changes in kicad github repo 2017-07-14 13:34:42 +02:00
jean-pierre charras c93ab4d5da Fix possible crash and issues when a incorrect fp lib table is loaded:
correct lines are loaded, and pcbnew / eeschema is no more aborted.
Fixes: lp:1701627
https://bugs.launchpad.net/kicad/+bug/1701627
2017-07-12 20:24:35 +02:00
Maciej Suminski 08c4a0bc7b Fixed SELECTION_TOOL::selectCursor()
In the previous version the method did not work correctly
when an action was invoked from context menu. In such case,
the cursor position was obtained in the moment of selecting
the action, instead of using the right click location.
2017-07-12 09:34:20 +02:00
jean-pierre charras 2a301d5883 Fix bug: pcbnew: in Plot dialog, layer list gets duplicate after calling the drill dialog.
Fixes: lp:1703355
https://bugs.launchpad.net/kicad/+bug/1703355
2017-07-10 15:16:57 +02:00
Maciej Suminski a3fc0ef658 Fixed a memleak in Eagle board import plugin 2017-07-10 11:44:56 +02:00
jean-pierre charras f4ecc417ac Fix a few doxygen warnings 2017-07-08 21:13:32 +02:00
Jean-Samuel Reynaud 885a4c1bc5 Avoid an infinite loop in PNS
Fixes: lp:1702485
* https://bugs.launchpad.net/kicad/+bug/1702485
2017-07-06 16:44:33 +02:00
jean-pierre charras 1724f902a1 Fix incorrect use of iterators.
Iterators always create problems when using them on a list that is modified during iteration.
2017-07-04 12:47:13 +02:00
Maciej Suminski e18475f220 Renamed remaining constants to match the action (see ab44e7cc) 2017-07-04 10:08:33 +02:00
Tomasz Włostowski 2767096cb7 Refresh ratsnest after updating netlist
Fixes: lp:1702175
* https://bugs.launchpad.net/kicad/+bug/1702175
2017-07-04 07:01:16 +02:00
Fabrizio Tappero 50f6d28e25 Replaced a few icons with generic variants in eeschema 2017-07-03 17:13:13 +02:00
jean-pierre charras 65fea1b92b Fix crash: pcbnew segfault when show local ratsnest for module is ON if clicking on an empty area.
Fixes: lp:1702021
https://bugs.launchpad.net/kicad/+bug/1702021
2017-07-03 11:06:44 +02:00
Tomasz Włostowski c01c25b258 Improved ratsnest updates performance during routing 2017-07-02 23:05:23 +02:00
Tomasz Włostowski eea41dbc6f Fixed OSX build error 2017-07-02 22:13:53 +02:00
Tomasz Włostowski c229063d9e Fixed crash when redrawing ratsnest after swapping pad net assignments 2017-07-02 02:05:42 +02:00
Tomasz Włostowski 1936b45a0f Multiple connectivity algo crash fixes:
- ratsnest crash on single-pad nets
- connectivity crash on adding new net codes
2017-07-01 23:55:51 +02:00
jean-pierre charras 1c5ace4b7a Eagle plugin: avoid hanging if an unexpected keyword is found.
Fixes: lp:1701672
https://bugs.launchpad.net/kicad/+bug/1701672
2017-07-01 16:59:07 +02:00
jean-pierre charras c311e63f0d fix minor issues, and change ZONE_CONTAINER::GetDefaultHatchPitchMils() to ZONE_CONTAINER::GetDefaultHatchPitch()
as using mil in a value has no meaning now in pcbnew
2017-07-01 15:17:30 +02:00
jean-pierre charras 917bda1c64 fix minor compil warnings 2017-07-01 15:17:29 +02:00
jean-pierre charras 5d252639fa Refinement in Gerber drill file: add %TF.FilePolarity,Positive*% in header. 2017-06-30 18:36:26 +02:00
jean-pierre charras e3d69b619f Pcbnew: fix issue in dialog_fp_lib_table: when the only changes were the plugin name, changes were not taken in account.
Because the FP_LIB_TABLE::operator == was incorrect
2017-06-30 16:03:17 +02:00
Maciej Suminski 805bfb048b pcbnew: Configurable hotkeys for PNS
- routing options
- custom track/via size
- differential pair dimensions
- increase/decrease via size
2017-06-30 15:46:27 +02:00
hauptmech 4e908da057 pcbnew: Add hotkeys for Select Trivial Connection and Select Copper Connection 2017-06-30 14:30:10 +02:00
Maciej Suminski da051379de pcbnew: Fixed crash on updating net list
As CONNECTIVITY_DATA was not updated during the process,
it contained stale pointers leading to crash. Now the connectivity
is updated as the changes occur.

Another issue was the single pad net removal algorithm
relied on sorting pads by net name. The algorithm has been rewritten
to take advantage of the new algorithm.

Fixes: lp:1700269
* https://bugs.launchpad.net/kicad/+bug/1700269
2017-06-30 14:13:56 +02:00
Maciej Suminski adf4f83cb0 Code formatting and clean-up 2017-06-30 14:10:18 +02:00
hauptmech 20b4226a25 Router recognizes busses of differential pairs
Fixes: lp:1443330
* https://bugs.launchpad.net/kicad/+bug/1443330
2017-06-30 11:16:24 +02:00
Tomasz Włostowski d6820bc925 Fixed segfault in connectivity algo for boards with orphaned nets
Fixes: lp:1701347
* https://bugs.launchpad.net/kicad/+bug/1701347
2017-06-30 00:46:24 +02:00
jean-pierre charras bafb8c3688 Add old python method FootprintEnumerate which did not word after changes in C++ code 2017-06-29 20:43:39 +02:00
Seth Hillbrand 8201e2cbff Footprint editor crashes when deleting pads and undoing this command.
Fixes: lp:1701092
https://bugs.launchpad.net/kicad/+bug/1701092
2017-06-29 20:43:38 +02:00
Simon Kueppers d6aad9c6e7 Corrected Typo in documentation of GetClearance function 2017-06-27 16:50:47 -04:00
Maciej Suminski 37f8c83c5b Fix the BOARD & MODULE classes SWIG interface 2017-06-26 18:28:23 +02:00
jean-pierre charras 3c3ee9b8c3 Fix a few doxygen warnings 2017-06-26 18:12:57 +02:00
Maciej Suminski 5774fd284e pcbnew: Do not sove 'no_connects' and 'area' in .kicad_pcb
These data are redundant as they are calculated by pcbnew.
2017-06-26 08:59:20 +02:00
Maciej Suminski 544e944647 pcbnew: Do not save 'links' information
It is not parsed anyway and the new connectivity algorithm
does not calculate it.
2017-06-26 08:40:50 +02:00
jean-pierre charras 6a3c1720b2 Fix a few doxygen warnings 2017-06-25 11:26:04 +02:00
Maciej Suminski 72eff0941e Code formatting and warning fixes 2017-06-23 19:22:44 +02:00
Maciej Suminski 3aaf26da2e Fixes for pcbnew_scripting_helpers.cpp 2017-06-23 19:22:27 +02:00
Maciej Suminski f1d650d5be Use node & unconnected count from CONNECTIVITY object 2017-06-23 18:51:00 +02:00
Maciej Suminski 7b9330129c Update ratsnest lines on zone fill removal 2017-06-23 18:51:00 +02:00
Maciej Suminski 79b2d60666 Reenabled pad number increment on placement (module editor) 2017-06-23 18:51:00 +02:00
Maciej Suminski 7330a85554 Moved INTRUSIVE_LIST to a separate header 2017-06-23 18:51:00 +02:00
Maciej Suminski 450ad5eab9 CONNECTIVITY_DATA::GetNodeCount() implementation 2017-06-23 18:51:00 +02:00
Maciej Suminski 74ef3ecb1d Moved one-liners to header files 2017-06-23 18:51:00 +02:00
Maciej Suminski 3dd4429ef6 Dead code removal 2017-06-23 18:50:31 +02:00
Maciej Suminski f3fbce9560 Code formatting and clean-up 2017-06-23 15:43:13 +02:00
Tomasz Włostowski 113163257d Fixed compilation warnings 2017-06-23 11:36:05 +02:00
Tomasz Włostowski 5c0edbabab Fixes for the connectivity & board cleanup algorithms 2017-06-23 11:12:38 +02:00
Simon Richter f324c7b16d Switch another loop to D_PAD iterator 2017-06-23 11:12:38 +02:00
Tomasz Włostowski a7759efc59 Multiple fixes:
- ratsnest is updated now when undoing in legacy view
- select whole net regression
- local ratsnest in the GAL regression
- pick correct zone net for stitching vias
- mark nets as dirty on net propagation to force ratsnest update

Todo:
- cleanup board algorithm is still broken
2017-06-23 11:12:37 +02:00
Tomasz Włostowski 81dbd930ae Display zone filling progress window in GAL 2017-06-23 11:12:37 +02:00
Tomasz Włostowski 586710c6f5 eagle_plugin: correct via size import 2017-06-23 11:12:37 +02:00
Tomasz Włostowski 655d851d48 Fixed point-in-polygon test bugs. Connectivity now correctly recognizes zone outlines that have non-zero width 2017-06-23 11:12:37 +02:00
Tomasz Włostowski d8018ded0b fix build with Python 2017-06-23 11:12:37 +02:00
Tomasz Włostowski de7f4d7aa4 fixed unresolved symbols while running cvpcb 2017-06-23 11:12:37 +02:00
Tomasz Włostowski 56928647ef fixed performance regression in DRC clearance test 2017-06-23 11:12:37 +02:00
Maciej Suminski 2c68786fa8 Display via net labels on top 2017-06-23 11:12:37 +02:00
Tomasz Włostowski 3b16d3cffe further DLIST/Iterators cleanup, some code formatting 2017-06-23 11:12:37 +02:00
Tomasz Włostowski 63f4ab697b post-rebase fixes 2017-06-23 11:12:37 +02:00
Tomasz Włostowski 3b7b0603b6 pcbnew: via placement tool, initial version 2017-06-23 11:12:37 +02:00
Tomasz Włostowski bd960f0e5c pcbnew/dialogs: more options in track/via properties window 2017-06-23 11:12:37 +02:00
Tomasz Włostowski 706db2a486 pcbnew: draw net labels on vias [wip] 2017-06-23 11:12:37 +02:00
Tomasz Włostowski bfdd1191ab pcbnew: rename PLACEMENT_TOOL to ALIGN_DISTRIBUTE_TOOL, some fixes in the connectivity algo 2017-06-23 11:12:37 +02:00
Tomasz Włostowski c4c329e393 Connectivity: local ratsnest for both legacy & GAL. Further removal of legacy code 2017-06-23 11:12:37 +02:00
Tomasz Włostowski 07b7600ae5 TRACKS_CLEANER: fixes after changing the connectivity algorithm 2017-06-23 11:12:37 +02:00
Tomasz Włostowski 6008abaad9 DRC connectivity check 2017-06-23 11:12:37 +02:00
Tomasz Włostowski edf1aac357 Fixed some compilation warnings. Missing features so far: single-module ratsnest & DRC unconnected report 2017-06-23 11:12:37 +02:00
Tomasz Włostowski 3cba1007eb Removed legacy connectivity/ratsnest algorithm, replaced with the new one. No legacy autorouting for the moment 2017-06-23 11:12:37 +02:00
Tomasz Włostowski 9ad886344b New connectivity algorithm. 2017-06-23 11:12:36 +02:00
Tomasz Włostowski 94a80acb36 DLIST_ITERATOR improvements 2017-06-23 11:12:36 +02:00
Tomasz Włostowski 08314082db Hide DLISTs behind iterators, first step towards refactoring the storage model 2017-06-23 11:12:36 +02:00
jean-pierre charras 4bdac4de70 Create zones not working in legacy mode, bug created when fixing an other bug in commit 6a63d4
Fixes: lp:1699704
https://bugs.launchpad.net/kicad/+bug/1699704
2017-06-22 12:10:48 +02:00
jean-pierre charras 2c21c70f46 Fix a few doxygen warnings 2017-06-22 09:09:52 +02:00
jean-pierre charras 54670d6785 Pcbnew: minor fixes in DIALOG_GLOBAL_MODULES_FIELDS_EDITION.
Better code: use TransferDataFromWindow and remove wxID_OK and wxID_CANCEL custom called events.
2017-06-21 13:13:09 +02:00
jean-pierre charras 70226ecdeb Fix a few doxygen warnings 2017-06-20 10:47:30 +02:00
jean-pierre charras 6a63d4fbff pcbnew crash while opening old .brd file
Fixes: lp:1698697
https://bugs.launchpad.net/kicad/+bug/1698697

The incorrect method ZONE_CONTAINER::AppendCorner() is also fixed:
It was expecting the corner must be added to the main outline, but this is a false expectation:
it can be added to a hole inside the zone outline.
2017-06-19 13:29:57 +02:00
jean-pierre charras d6a56e5d3d fix a compil issue in a auto-generated file. 2017-06-18 22:31:26 +02:00
jean-pierre charras 8305aec8a7 Remove useless leading or trailing spaces is some translatable strings.
rename dialog_move_exact.fpb to dialog_move_exact_base.fpb (to be consistent with other .fpb file names)
2017-06-18 22:26:29 +02:00
jean-pierre charras fa66a5a8f3 Pcbnew: make hotkeys { and } used to control the layer transparency (alpha channel) in GAL visible (and editable) in hotkey list. 2017-06-17 18:11:40 +02:00
jean-pierre charras cf5bae7fbf Fix a few doxygen warnings 2017-06-17 10:40:38 +02:00
jean-pierre charras 36e59065ff Minor fix: replace assert by wxASSERT in dialog (better to keep trace of an assert inside a wx application) 2017-06-15 13:13:25 +02:00
jean-pierre charras cf083a20c4 Fix typo 2017-06-14 08:15:28 +02:00
Wayne Stambaugh 66e97fa905 Doxygen comment improvements.
Fix lots of Doxygen warnings.

Fix Doxygen comment for IO_MGR::FootprintEnumerate() which was recently
changed.
2017-06-13 19:47:46 -04:00
jean-pierre charras e97f49e009 Gerber X2 format: add the new TF.SameCoordinates attribute to Gerber files 2017-06-13 11:31:14 +02:00
jean-pierre charras 1fab667cf7 2 Minor fixes in GAL mode: when switching from legacy to gal, use now the latest display options.
Use hotkey defined by user to reset local coordinates in GAL (instead of the hard coded space key)
2017-06-13 11:25:05 +02:00
jean-pierre charras 1ada4863fc Pcbnew: fix incorrect UI behavior of "Zoom to selection" tool in GAL canvas. 2017-06-13 09:24:21 +02:00
jean-pierre charras a1a9440091 Pcbnew fix incorrect UI behavior of Zoom to selection in legacy canvas. UI behavior in GAL canvas is still incorrect. 2017-06-13 09:24:21 +02:00
Kristoffer Ödmark 19d5cc7548 Removed all exception specifiers since deprecated.
Exception specifiers are deprecated in cpp11, so went through them all
and removed them from the code.
2017-06-12 13:54:55 -04:00
Maciej Suminski b304dafc5b Fixed headers in Position Relative tool 2017-06-12 16:58:47 +02:00
Maciej Suminski fc58bd3848 Position Relative Move tool fixes
- corrected copyright headers
- code formatting
- made dialog pointer private, added UpdateAnchor() and modified click
handler routine accordingly
- renamed .fbp file to match other dialogs pattern
2017-06-12 16:24:52 +02:00
Russell Oliver aeb23188f1 Add Position Relative tool 2017-06-12 16:24:52 +02:00
Maciej Suminski f0c8391a46 Use mouse (rather than cursor) position when selecting an item. 2017-06-12 16:24:52 +02:00
Maciej Suminski dcc803ecb1 VIEW_CONTROLS::GetMousePosition() returns the mouse position in world coordinates. 2017-06-12 16:24:52 +02:00
jean-pierre charras ad48cd435d Replace SetToolID( ID_NO_TOOL_SELECTED, ...) by SetNoToolSelected() in code 2017-06-12 16:17:48 +02:00
jean-pierre charras 6ed4f9b208 Make EDA_DRAW_FRAME::SetToolID and mouse cursor shape setting working in GAL canvases, and uses same mouse cursor shapes in legacy and gal canvases.
Starting fixing incorrect UI behavior of Zoom to selection in Pcbnew.
2017-06-12 15:16:09 +02:00
Oliver Walters 18488342a5 Improved speed of Duplicate action
- Removed repetitive tool calls
2017-06-12 11:16:30 +02:00
Simon Richter a9ca1e9930 Remove unreferenced local variables 2017-06-11 17:52:49 -04:00
Wayne Stambaugh 3cec63e9b9 Pcbnew: plugin improvements.
Allow partial library reads in libraries that support footprint per file.
This includes the KiCad and GEDA footprint libraries.

Allow for partially cached libraries rather than ignoring all valid files
when an error occurs.
2017-06-11 16:21:19 -04:00
Wayne Stambaugh d37a33723a Pcbnew: GEDA plugin fixes and improvements.
Fix a bug in library cache modification check.  The Pcbnew footprint
file extension (.kicad_mod) was used instead of the GEDA footprint file
extension (.fp) which always caused the cache to reload on every library
call.

Allow for partially cached libraries rather.

Remove #ifdefed out exception throw in FootprintEnumerate().  Exceptions
should not be disabled in plugins.
2017-06-09 09:03:27 -04:00
jean-pierre charras 9d524fe2e3 Remove incorrect leading spaces in some strings. 2017-06-07 18:43:53 +02:00
jean-pierre charras 32abc273d0 3D shapes downloader: add .step and .stp files to the list of files to download 2017-06-07 11:17:27 +02:00
Bernhard Stegmaier 0e71686bfd Reunion of zoom toolbar buttons.
The zoom window toolbar button is on the right toolbar separated from the
other zoom buttons on the top toolbar.  Move the zoom window button to the
top toolbar beside the other zoom buttons.
2017-06-06 09:35:20 -04:00
jean-pierre charras 79823d573a fix incorrect comment 2017-06-05 18:16:08 +02:00
Fabrizio Tappero ac9a64a173 general UI fix. Fixed a lot of icons and a lot of menu.
Also a few no longer used .cpp icon files are removed.
2017-06-02 11:51:11 +02:00
jean-pierre charras b8183a1aa5 Fix Coverity warnings 2017-05-30 09:07:18 +02:00
Cirilo Bernardo 453e220fd8 Fix default line widths for non-mm units in DXF import 2017-05-29 09:48:22 +02:00
jean-pierre charras 1951ee924c Very minor change in some sources: replace in comments CHANGE_LOG.TXT AUTHORS.txt 2017-05-25 09:05:35 +02:00
jean-pierre charras 38c8470cdc add comments in pcbnew_scripting_helpers.h 2017-05-24 21:34:56 +02:00
jean-pierre charras 9c7b0c2ee5 Fix a compil issue created by may commit 413a3d828a
.
2017-05-24 21:14:24 +02:00
jean-pierre charras 413a3d828a remove dead code in swig 2017-05-24 18:08:15 +02:00
jean-pierre charras 1a33efa133 Fix an issue when reading a gpcb footprint library when a .fp file has a problem.
Now the full library loading is not aborted (and the other libraries in list are also loaded).
Only the bad .fp file(s) is not loaded.
Mainly, a .fp file load error does not throw a library load error, and this is a temporary fix.
But throwing a library error when a .fp file cannot be loaded is worst (you even cannot import a good .fp file).
2017-05-24 14:38:08 +02:00
Maciej Suminski e79f97860c Bezier2Poly refactor
Before the refactor library browser display Bezier curves correctly only
once, at other times they were just straight lines or crashed the
application.
2017-05-16 17:58:09 +02:00
jean-pierre charras f77db7b4b9 Fixes: lp:1690840 (Pcbnew crashes when creating a drill file)
https://bugs.launchpad.net/kicad/+bug/1690840
2017-05-16 13:00:54 +02:00
Maciej Suminski 499eabceb4 More data validity checks in POINT_EDITOR
Fixes: lp:1690658
* https://bugs.launchpad.net/kicad/+bug/1690658
2017-05-16 11:47:00 +02:00
Maciej Suminski 4336db3a7c Clear selection before 'Global Deletion' action
Fixes: lp:1690783
* https://bugs.launchpad.net/kicad/+bug/1690783
2017-05-16 09:16:12 +02:00
Eldar Khayrullin 14bb238b30 Fix typo (NTPH instead of NPTH) in DIALOG_GENDRILL_BASE. 2017-05-14 19:32:03 +02:00
jean-pierre charras 305a166e95 Pcbnew: update immediately the 3D viewer opened from the footprint editor/viewer/wizard after a change. 2017-05-13 08:17:06 +02:00
Maciej Suminski b823d0b784 Use separate GAL_DISPLAY_OPTIONS instance in pad properties dialog
DIALOG_PAD_PROPERTIES disables the axis display which propagates
back to the parent frame when they share the same GAL_DISPLAY_OPTIONS
instance.

Fixes: lp:1687014
* https://bugs.launchpad.net/kicad/+bug/1687014
2017-05-12 01:01:38 +02:00
Maciej Suminski b71fc5564a Code formatting fixes 2017-05-10 11:40:49 +02:00
Oliver Walters cd738297b0 SELECTION_AREA color now indicates selection mode
BLUE = Normal
GREEN = Addition
RED = Subtraction

Line color indicates "window" or "crossing" selection mode
2017-05-10 10:57:29 +02:00
Oliver Walters 2ae47d31cc Fix for Arc HitTest
compureArcBBox does not account for line width
2017-05-10 10:57:29 +02:00
Oliver Walters a2fda9bd39 Fixed selection filtering
- Fixed "double selection" of pads and pad parents in PCBNEW
- Disabled selection of entire module in MODEDIT
2017-05-10 10:57:29 +02:00
Oliver Walters b53ba56ac2 Use CTRL modifier to deselect items 2017-05-10 10:57:29 +02:00
Oliver Walters c8fe9ffa79 Adjusted selection for ZONE 2017-05-10 10:57:28 +02:00
Oliver Walters 9c80d63b5c Fixed HitTest for text and modules 2017-05-10 10:57:28 +02:00
Oliver Walters d9308fcab1 Fixed HitTest for ZONE_CONTAINER 2017-05-10 10:57:28 +02:00
Oliver Walters 6aadc703f0 Updated HitTest for PCB_TEXT and TEXT_MOD 2017-05-10 10:57:28 +02:00
Oliver Walters e29abd6204 HitTest for trapezoid pad 2017-05-10 10:57:28 +02:00
Oliver Walters 7cfc882448 HitTest for RoundRect pad 2017-05-10 10:57:28 +02:00
Oliver Walters 8caef05ad6 HitTest for Oval pads
HitTest for Oval pads

Required fix for GetBoundingBox method for Oval Pad shape
2017-05-10 10:57:28 +02:00
Oliver Walters f338d46476 HitTest for Rectangular pads
HitTest for Rectangular pads

- Works at any rotation, even with Shape Offset
- Fixed bugs in D_PAD BoundingBox calculation
2017-05-10 10:57:28 +02:00
Oliver Walters a0afcd5a62 HitTest for pads
- Circular pads
2017-05-10 10:57:28 +02:00
Oliver Walters 2b4c2efc85 Fixed HitTest for Arc segment 2017-05-10 10:57:28 +02:00
Oliver Walters f8734bd057 Fixed ::HitTest for Circle shape
- Testing against rectangle intersection now works correctly
- Previously tested against BoundingBox() not circle outline
2017-05-10 10:57:28 +02:00
Oliver Walters ef25ffbab7 Alter selection mode based on drag direction
LEFT > RIGHT = Enclosed selection
RIGHT > LEFT = Touching selection
2017-05-10 10:57:28 +02:00
Maciej Suminski 6cefb68c7d Fixed a crash on Eagle PCB import with dimensions on unsupported layers 2017-05-08 11:04:10 +02:00
Maciej Suminski 2ac8ab2a8f Eagle layers as enums 2017-05-08 10:26:48 +02:00
Maciej Suminski 99f65f4dbf Added const T& to Eagle PCB import plugin methods 2017-05-04 15:44:14 +02:00
Alejandro García Montoro 9cf934ef17 Moves Eagle XML parser to common, replacing boost with wx.
All E'STRUCTS' are moved to common except for ERULES (which is
specific to pcbnew and needs its internal units), still in
pcbnew/eagle_plugin.{h,cpp}

In order to get rid of another boost dependency, this also changes
the parsing of the XML from Boost.PropertyTree to wxXml.

To replace boost::optional, an OPTIONAL_XML_ATTRIBUTE class has
been implemented. This could be replaced with std::optional when
C++17 is ready.
2017-05-04 15:29:45 +02:00
jean-pierre charras 4f2ed1b05f Plot gerber: fix a minor issue: an aperture attribute was incorrectly set on non copper layers when drawing some pads. 2017-05-04 08:55:17 +02:00
jean-pierre charras d1dfa5aba3 Code cleaning: add comments, better names for a function, simplify code. No actual code change. 2017-05-04 08:54:30 +02:00
Wayne Stambaugh 096d9fbbf9 Pcbnew: continue loading footprints after first failure.
The footprint library cache handler would throw an exception on the
first error it encountered preventing all subsequent footprint files
from being parsed even if there was nothing wrong with them.  This
commit queues errors until all of the footprint files in the folder
have been parsed.

Fixes lp:1416736

https://bugs.launchpad.net/kicad/+bug/1416736
2017-05-03 15:27:07 -04:00
Marco Ciampa b50d3966b5 Pcbnew: make ruler tool warning translatable. 2017-05-02 16:30:24 -04:00
Eldar Khayrullin f3457794cf Pcbnew: add option to plot DXF editable text
Add option to plot DXF oneline ASCII text as editable text (in non-outline mode)

Fixes: lp:1423515
* https://bugs.launchpad.net/kicad/+bug/1423515
2017-05-02 15:07:19 -04:00
jean-pierre charras 000ee22e39 Drill dialog: creates the directory, when the path entered in dialog does not exist. 2017-05-01 20:42:18 +02:00
jean-pierre charras c8706e9c15 Fix compil issue in Python support. 2017-05-01 14:19:38 +02:00
jean-pierre charras afe92c7bfc Pcbnew: Add creation of Drill Files in Gerber X2 format.
Gerbview: add support of drill files in Gerber format.
Fix also an issue in drill dialog: Axis choice is now common to plot a drill files.
2017-05-01 12:43:40 +02:00
jean-pierre charras a92ea8c75b Fixes: lp:1687014 Footpring editor disappearing axes crosshair
https://bugs.launchpad.net/kicad/+bug/1687014
2017-04-29 11:43:02 +02:00
Robbert Lagerweij e57c962336 Pcbnew: add option to select origin & anchor in move exactly tool
This patch adds a radiobox to allow the user to select a reference point for
the move. The additional options are: User Origin (set with <space>),
Grid Origin and Sheet Origin (effectively making it an absolute coordinate).

A checkbox is added (where it makes sense) to allow overriding which point
within the component is put on top of the designated coordinate.

Fixes: lp:1460460
* https://bugs.launchpad.net/kicad/+bug/1460460
2017-04-25 11:32:49 -04:00
Eldar Khayrullin 0af5695e51 Pcbnew: add option to plot DXF lines in outline mode.
Add option to plot dialog to plot DXF layers *.Cu, *.Adhes, *.Paste, and
*.Mask in outline mode or line mode.

Fixes lp:1643330

https://bugs.launchpad.net/kicad/+bug/1643330
2017-04-25 08:24:55 -04:00
Maciej Suminski 6507dbf3ad Fixed code formatting & comments typos 2017-04-24 00:02:07 +02:00
jean-pierre charras b385413458 Fix tooltip errors 2017-04-22 10:26:22 +02:00
jean-pierre charras 9e321a4722 Pcbnew: Apply a fix made in stable branch, in AppendBoard, to avoid potential crash. 2017-04-22 09:23:02 +02:00
Maciej Suminski e53c3afc29 Fixed a bug with invisible vias
If there was a board with no copper layers checked as visible, the
initial GAL cache contained an empty entry for them. In such case,
toggling layers visibility have not changed anything.

The visibility condition check has been moved to ViewGetLOD() method
which serves better the purpose of dynamic visibility checks.

Fixes: lp:1639974
* https://bugs.launchpad.net/kicad/+bug/1639974
2017-04-20 18:22:27 +02:00
Maciej Suminski 217593f6bc Fixed selected items drift on rotation/flip 2017-04-20 16:38:19 +02:00
Maciej Suminski 0e14cdf6da Code formatting 2017-04-20 16:37:36 +02:00
Maciej Suminski d452a5a30c Moved ratsnest update from EDIT_TOOL to PCB_EDITOR_CONTROL 2017-04-20 14:43:42 +02:00
Maciej Suminski bc8668b039 Renamed PCB_ACTIONS::editModifiedSelection to selectionModified 2017-04-20 14:11:59 +02:00
Maciej Suminski bb999f1bbf Fixed items disappearing after a rotation/flip
Fixes: lp:1683831
* https://bugs.launchpad.net/kicad/+bug/1683831
2017-04-20 14:11:59 +02:00
Maciej Suminski e2b95cf97a Removed a redundant update/refresh calls
BOARD_COMMIT handles all necessary updates
2017-04-20 14:11:35 +02:00
Maciej Suminski 74847bf8ff Code formatting and clean-up 2017-04-20 14:01:38 +02:00
jean-pierre charras a35a46804e Pcbnew fix: "create array" extremely slow in GAL mode, due to a useless call of a time consuming method for each new item created. 2017-04-19 14:15:11 +02:00
jean-pierre charras 01f5a129a3 Fixes: lp:1683147 (Board append command *extremely* slow)
https://bugs.launchpad.net/kicad/+bug/1683147
2017-04-18 20:10:34 +02:00
jean-pierre charras cf87536322 Fix a focus issue in dialog_edit_module_for_BoardEditor.cpp (Linux only) when creating the dialog.
It prevents ESC or ENTER keys to dismiss the dialog, until the focus is set by clicking on a widgets in the dialog.
2017-04-16 21:48:22 +02:00
jean-pierre charras 4b916b42ed dialog_edit_module_for_BoardEditor.*: fix questionable code. 2017-04-16 20:52:41 +02:00
jean-pierre charras 88105f891f Fixes Pcbnew bug: Drag Zone Outlines no longer working in legacy view 2017-04-16 18:32:47 +02:00
jean-pierre charras 50fd7a27cf Fix a few coding issues in dialog_edit_module_for_Modedit.
(Mainly, remove OnOkClick and OnCancelClick to use default handlers, and use TransferDataFromWindow to update fields)
Fix also a minor issue in lib_id
2017-04-16 15:09:05 +02:00
Miles McCoo 11c42cdff7 Minor Pcbnew Python scripting improvement.
Added NETCLASSPTR constructor to swig interface. This enables scripts to
generate new net classes.
2017-04-14 08:49:51 -04:00
jean-pierre charras 74cd53fb31 finishing work started in commit ba37d6fca35b67fc04a21aa111aba97c80c3a1b0:
Command add corner to zone in GAL mode: fix corner cases (existing when a zone has holes).
(Well, "corner case" is the right word: I can't resist)
2017-04-14 14:39:45 +02:00
jean-pierre charras 83169af988 Code refinement for commit 80371134d7 2017-04-14 14:39:44 +02:00
Lachlan Audas a208ba6566 Fix Eagle plugin board free text rotation import bug.
When using angle's other than 90, 180, and 270, the Eagle plugin did not
correctly set the text angle.
2017-04-14 08:30:57 -04:00
jean-pierre charras b347443b95 Make Help sub-menus working in footprint viewer 2017-04-13 18:36:07 +02:00
jean-pierre charras 80371134d7 better fix than commit 6c083ebf4c, because the issue was existing in other dialogs
Fix incorrect frame deletion, only noticeable when eeschema is run in stand alone mode.
After selecting a footprint using the footprint viewer, the application cannot be closed.
Reason:
the footprint viewer ctor creates an instance (not shown) of a FRAME_PCB.
Unfortunately, this pcb frame was not deleted by Eeschema, in stand alone mode,
preventing the application to be closed because a frame was still active after closing the schematic editor frame.
Now the footprint viewer ctor delete this instance after use, if it was not previously existing.
2017-04-13 18:28:16 +02:00
jean-pierre charras 675eb37163 Fix a typo in a tool tip 2017-04-08 08:21:35 +02:00
jean-pierre charras 9a7abd5914 Pcbnew: fix some issues in GAL when adding holes in zones. 2017-04-07 11:57:02 +02:00
jean-pierre charras 70c961fe6a Pcbnew: fix serious issues (broken files) when saving and loading .kicad_pcb files when zones have holes in outlines. 2017-04-07 08:02:26 +02:00
jean-pierre charras ba37d6fca3 Temporary fix of broken command add corner to zone in GAL mode.
Fixes: lp:1680339
https://bugs.launchpad.net/kicad/+bug/1680339
2017-04-06 19:04:47 +02:00
jean-pierre charras bf21640ae5 Fix a few issues when changing a color in render, in GAL mode.
Now colors of ratsnest, vias, not plated holes and anchors can be set.
However not plated holes still have a color issue.
2017-04-05 16:31:29 +02:00
jean-pierre charras 23a8741b5e Pcbnew: fix a crash when changing a color in render, in legacy mode, if the GAL mode was previously used. 2017-04-05 16:31:29 +02:00
Wayne Stambaugh 5dbfc02334 Board editor footprint properties dialog 3D model viewer fix.
Move the dialog layout refresh from the ctor to TransferDataToWindow which
is called by event after the dialog object is constructed.  This was causing
the 3D view panel to be drawn incorrectly on windows builds.

Remove unnecessary wxT() macros.

Fixes lp:1665888

https://bugs.launchpad.net/kicad/+bug/1665888
2017-04-04 10:05:01 -04:00
Maciej Suminski 2c33fad45f Fixed pad net names display (GAL)
Fixes: lp:1678272
* https://bugs.launchpad.net/kicad/+bug/1678272
2017-04-02 00:56:21 +02:00
Chris Pavlina af88781262 Rewrite pcbnew preferences tooltips for consistency, fix a couple typos
Fixes: lp:1591428
* https://bugs.launchpad.net/kicad/+bug/1591428
2017-03-31 19:40:43 -04:00
Maciej Suminski 0b57907a68 Fix crash on toggling 'Render' tab items visibility
Fixes: lp:1678169
* https://bugs.launchpad.net/kicad/+bug/1678169
2017-03-31 17:50:59 +02:00
Collin Anderson 9b876d9d98 Fix build of Python plugin for macOS 2017-03-31 08:49:48 -04:00
Wayne Stambaugh b4e2757119 Make FP_TBL_MODEL reusable.
Factor out the FP_LIB_TABLE specific content from FP_TBL_MODEL into a new
LIB_TABLE_GRID class that can be used for any library table grid mix in.

Create new FP_LIB_TABLE_GRID object for the footprint library edit dialog.

Add method GetEnvVariables() to return any environment variables found in
a LIB_TABLE object.
2017-03-30 18:36:37 -04:00
Jon Evans 3ec28e2acf Refactor layer enumerations to all live in the same place 2017-03-30 16:01:48 -04:00
John Beard c94269e173 Pcbnew GAL: Switch CW/CCW hotkeys to match legacy mode 2017-03-30 16:05:56 +02:00
John Beard 0b593faa93 Pcbnew: correct CW/CCW rotation.
These were backwards since internal angles are CCW due to the inverted Y
axis.

The hotkeys have NOT changed. This means 'R' is now clockwise and
'Shift+R' is anti-clockwise. This is the same as EEschema, but not the
same as Legacy mode.
2017-03-30 16:05:56 +02:00
John Beard 8f3423b803 Add Select Layer And Add Via actions to GAL router tool
On these actions, invoke the layer select dialog and set the via layer
pairs accordingly.

Fixes: lp:1672820
* https://bugs.launchpad.net/kicad/+bug/1672820
2017-03-28 15:13:27 +02:00
John Beard 69115e4b9d Signal via actions with flags, not event equality checking
This allows actions to encode both via type and other behaviours
intrisically witohut having to individually test for each action.
2017-03-28 15:13:24 +02:00
Chris Pavlina c7c172d368 Fix FP_LOADER_THREAD resource leak
The mechanism of thread termination was changed in 61c2beea and not done
correctly - the thread was not notified that it should terminate.
2017-03-27 14:23:03 -04:00
Chris Pavlina 61c2beea22 Fix FP_LOADER_THREAD access to destroyed dialog
Fixes: lp:1672733
* https://bugs.launchpad.net/kicad/+bug/1672733
2017-03-26 19:44:18 -04:00
jean-pierre charras 0f0cb64a63 Minor fix in DRC test courtyards. 2017-03-26 08:13:23 +02:00
Chris Pavlina 4011ed4e31 Convert UTF8 to/from wxString correctly around LIB_ID
Fixes: lp:1675942
* https://bugs.launchpad.net/kicad/+bug/1675942
2017-03-24 21:38:00 -04:00
Chris Pavlina 68853c988e Fix SYNC_QUEUE build issue on Boost < 1.56
Prior to Boost 1.56, boost::optional had no move constructor, preventing
use of std::unique_ptr inside it
2017-03-24 10:09:08 -04:00
Chris Pavlina 849b3c2a4b Add footprint select dropdown to component chooser, serious refactoring
- DIALOG_CHOOSE_COMPONENT has footprint select widget
- FOOTPRINT_SELECT_WIDGET
- FOOTPRINT_CHOICE widget (customized wxComboCtrl)
- FOOTPRINT_FILTER class
- FOOTPRINT_INFO rework:
    - FOOTPRINT_ASYNC_LOADER to load without freezing UI
    - Rewrite loader threads as queue-driven thread pool
    - Make FOOTPRINT_INFO available via kiway
- FP_LIB_TABLE::PrefetchLib
- Access to global fp-lib-table via kiway
- SYNC_QUEUE threadsafe queue template
- Remove KICAD_FOOTPRINT_SELECTOR build option
2017-03-24 09:20:27 -04:00
Alejandro García Montoro f68ce306bd CPolyLine -> SHAPE_POLY_SET refactor.
Removes the need of using the legacy code in polygon/PolyLine.{h,cpp},
refactoring all CPolyLine instances with SHAPE_POLY_SET instances.

The remaining legacy methods have been ported to SHAPE_POLY_SET;
mainly: Chamfer, Fillet, {,Un}Hatch.

The iteration over the polygon vertices have been simplified using the
family of ITERATOR classes.
2017-03-24 10:43:47 +01:00
Maciej Suminski f2763e90ea Disable autopanning & cursor capture when drawing is finished 2017-03-23 14:15:34 +01:00
jean-pierre charras 68b141dcb8 Make polygon built by BOARD::GetBoardPolygonOutlines strictly simple.
It fixes issues in 3d viewer (crashes and incorrect 3D board outline in some cases)

Fixes: lp:167484
https://bugs.launchpad.net/kicad/+bug/1674844
2017-03-23 08:56:52 +01:00
John Beard 9fe780f1b3 Rework zone creation in GAL
The zone creation in DRAWING_TOOL was a complex event loop whici
simultaneously managed the event handling, construction of the preview
polygon and the creation and commiting of the zone, all in the same
scope. This has been broken into several pieces:

* POLYGON_ITEM preview item, used to preview the polygon in progress
* POLYGON_GEOM_MANAGER is a class that collects points from user input
  and used them to describe a polygon's geometry, including calculation
  of 45-degree constrained leader lines
* ZONE_CREATE_HELPER is a class which deals with creating zones based on
  geometry from a geometry manager and parameters from the DRAWING_TOOL
* The (much simpler) event loop in DRAWING_TOOL drives the
  POLYGON_GEOM_MANAGER. With a minor refactor, this loop can be reused
  in future for other polygonal tools if wanted.

The polygon preview now has a translucent fill which makes it easier to
visualise the zone.

This also adds the Close Zone Outline and Delete Last Corner actions as
part of the new event loop.

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

Fixes: lp:1667885
* https://bugs.launchpad.net/kicad/+bug/1667885
2017-03-22 17:18:12 +01:00
John Beard 1fd503bf58 Move DIRECTION45 to common/geometry
This class is useful for generic geometric layout of 45-deg constrained
line chains, not only in the PNS router.
2017-03-22 15:23:09 +01:00
John Beard ea10a67d14 Refill zones after editing properties
After editing properties (in Legacy or GAL) using the dialog, zones are
not refilled.

Fixes: lp:1674595
* https://bugs.launchpad.net/kicad/+bug/1674595
2017-03-22 13:31:52 +01:00
jean-pierre charras 0f7e898caa Allow selection of number of segments to approximate a circle in convert_drawsegment_list_to_polygon. 2017-03-22 11:47:03 +01:00
jean-pierre charras 05220a86f1 BOARD::GetBoardPolygonOutlines(): do not generate a separate SHAPE_POLY_SET for holes.
They are already managed by SHAPE_POLY_SET board outline.
2017-03-22 11:47:03 +01:00
John Beard d99fbddc22 Enable angle snap for pcbnew GAL ruler tool
This uses the two-point geometry manager to split the logic of the ruler
geometry and the preview item display. This allows the ruler to use that
manager's angle snap feature.
2017-03-22 10:59:47 +01:00
John Beard b8edecc10f Move cursor shape flag into GAL settings
The motivation here is to concentrate display options in the GAL display
settings, ready for removal of legacy canvases. Instead of having the
property as a member of the DRAW_FRAME, with the GAL canvas retreiving
it from there, it is now in the GAL_DISPLAY_OPTIONS struct, and both GAL
and legacy get it from there.

The options for setting cursor shape are then moved out of the general
options dialog, and into the GAL display options widget, where they can
be used in all GAL-aware programs.

GAL cursor shape works on GAL, but not legacy, so the option is now
available on OSX (but only affects GAL, and is labelled as such).
2017-03-22 10:24:48 +01:00
John Beard b4a4748672 Move sketch mode area in pcbnew display options
This gives a bit more space to the GAL options in the left panel

Also tidy up some code style and unnecessary default arguments in the
GAL display planel widget.
2017-03-22 10:24:48 +01:00
jean-pierre charras 45b10f0f09 Pcbnew: fix a Regression in fallback to bounding box for board render in 3d-viewer
Fixes: lp: 1674844
https://bugs.launchpad.net/kicad/+bug/1674844
2017-03-22 08:40:48 +01:00
jean-pierre charras 12b65cf56b Fix typo 2017-03-21 16:45:35 +01:00
jean-pierre charras 5bd61d7eb6 Pcbnew fix: checking properties on error marker crashed pcbnew
Fixes: lp:1674671
https://bugs.launchpad.net/kicad/+bug/1674671
2017-03-21 16:44:56 +01:00
jean-pierre charras 48f19c031a Fix a few issues when importing a .ses specctra session file.
(potential crash due to missing update of ratsnet data, add missing traces in GAL mode)
2017-03-21 11:22:03 +01:00
jean-pierre charras 806e71b17e update 2017-03-20 20:33:19 +01:00
jean-pierre charras c2227abb36 Specctra import: accept layer names like numbers (i.e. +12). 2017-03-20 19:50:07 +01:00
jean-pierre charras 230980fc9d Compile specctra file with pcbnew files, not with pcbcommon files (they are now used only by pcbnew) 2017-03-20 19:49:10 +01:00
John Beard ce731f8b62 Add GAL microwave tools
This adds the microwave tools to GAL in Pcbnew as a new tool:
MICROWAVE_TOOL.

Some new preview items are introduced to support this:

* TWO_POINT_GEOM_MANAGER for managing construction of two-point
  geometries, such as that used to construct the inductor.
* CENTRELINE_RECT_ITEM a preview item to draw ractangle with a given
  aspect ratio along a line (specified using a TWO_POINT_GEOM_MANAGER)

PCB_TOOL gets a generic event loops which should be useful for more
than just microwave tools:

* doInteractiveItemPlacement() - handles event loops that wait for a
  click, create an item on click and then allow moving it
  around/flipping, etc.

Fixes: lp:1531323
* https://bugs.launchpad.net/kicad/+bug/1531323
2017-03-20 16:10:51 +01:00
John Beard 3994e9a268 Allow calling of MW inductor function externally
This makes it possible to access the creation functions
for the microwave inductor externally, so that it can be
used from GAL.

Unlike the Gap/Stub tools, the inductor tool is more interactive, and
doesn't just return a MODULE*.

Introduces a new directory in pcbnew called 'microwave' to better
isolate generic (i.e. canvas-agnostic) functions, and a namespace MWAVE
to avoid polluting the global namespace.
2017-03-20 16:10:51 +01:00
jean-pierre charras 796e5fdc45 Fix an issue with pads not on copper layers (only on tech layers) when exporting .dsn file.
The pad is invalid in .dsn file and crashes Freeroute.
2017-03-20 15:19:20 +01:00
jean-pierre charras e4b39cfb09 remove duplicate code 2017-03-20 15:19:19 +01:00
jean-pierre charras ecdfa404cb More work courtyard overlap detection: better code. 2017-03-20 13:06:00 +01:00
Tomasz Włostowski 77c1b1b4ea Refresh vias geometry when switching via display mode
Fixes: lp:1674096
* https://bugs.launchpad.net/kicad/+bug/1674096
2017-03-20 12:06:56 +01:00
jean-pierre charras 2637835a1e First version of courtyard overlap detection 2017-03-19 20:27:45 +01:00
jean-pierre charras b365f17e9f First draft of courtyard overlap detection. 2017-03-19 20:27:44 +01:00
jean-pierre charras 98e3bfb95a rebuild dialog_edit_module_for_Modedit.cpp with a more recent wxFormbuilder version to avoid deprecated compil warnings 2017-03-18 10:37:19 +01:00
Chris Pavlina c9936e2a47 Fix warning about shadowing std::ignore 2017-03-17 22:16:32 -04:00
John Beard 5f303f7b25 Enhance Pcbnew arc construction
This adds a richer overlay to the arc-by-three-points tool in Pcbnew,
including more guide-lines and a live display of radius and angle.

Also included is ability to go back to the previous step (if setting end
angle, you can go back to setting start point, etc) using Backspace, and
Ctrl snaps the start/end angles to 45 degree multiples.

This adds new classes

* MULTISTEP_GEOM_MANAGER: represents a generic "geometry manager" that
  builds up some geometrical construction based on a sequence of points.
  Used by:
* ARC_GEOM_MANAGER: handles the logical flow of constructing an
  arc by centre-point, set radius, set angle. This moves the logic out
  of the Pcbnew DRAWING_TOOL event loop in drawArc().
* ARC_ASSISTANT: graphical overlay to communicate current arc shape to
  the user during the drawing process
2017-03-17 20:56:54 +01:00
Miles McCoo db174862c8 Minor Pcbnew Python scripting improvements.
Add typedef for wxCoord to wx.i to enable usage of methods like
EDA_RECT.Inflate.

Added id.h to pcbnew.i to expose window toolbar identifier names.

Added Refresh() and WindowZoom() to pcbnew_scripting_helper.
2017-03-17 10:41:00 -04:00
John Beard 7e1eea4122 Use abbreviated unit (not symbol) in design rule dialog
Fixes: lp:1667644
* https://bugs.launchpad.net/kicad/+bug/1667644
2017-03-16 08:30:00 -04:00
John Beard ef3553c086 Use TransferData* methods for DIALOG_DISPLAY_OPTIONS
Replaces the existing manual evdent handling, in line with UI
Guidelines.

Also remove the wxStaticLine, which is not a standard dialog element.
2017-03-16 08:01:42 -04:00
John Beard bdc9ae75f5 Add a display settings dialog to Modedit
For a start, this contains the GAL display settings (AA settings and
grid styling).

In future, other modedit-specific settings could go here too.

Fixes: lp:1672150
* https://bugs.launchpad.net/kicad/+bug/1672150
2017-03-16 08:01:33 -04:00
John Beard f2aa4d2911 Make GAL options panel a reusable panel
The primary motivation here is to allow other GAL canvas users (eg
Modedit, and soon Gerbview) to be able to easily modify GAL canvas
options.

For now, this doesn't change the display properties dialog in
appearance, but if more GAL options are added, it might need a bit of
tweak and maybe tabs or similar, like Eeschema preferences.
2017-03-16 08:01:26 -04:00
jean-pierre charras 69b350c9b0 Fix can't always group delete in fp-lib-table dialog
Fixes: lp:1672760
https://bugs.launchpad.net/kicad/+bug/1672760
2017-03-14 20:31:44 +01:00
Tomasz Włostowski 2f730cad81 EDIT_TOOL: restore cursor position on exit
Fixes: lp:1671564
* https://bugs.launchpad.net/kicad/+bug/1671564
2017-03-14 10:54:58 +01:00
Julius Schmidt 5b3f6d850d Fix format string assertion in select net dialog. 2017-03-13 16:45:41 -04:00
Maciej Suminski fe4f02f5b9 Coverity fixes
CIDs:
- 153097
- 157120
- 157119
- 155148
- 155146
- 153103
- 153099
- 153095
- 153087
- 153086
2017-03-11 22:20:08 +01:00
Jon Evans 082b8dd2a9 Refactor BRIGHT_BOX to common so it can be used by other programs 2017-03-11 21:38:01 +01:00
Tomasz Włostowski 0a55d8e053 Fixed differential pair gap clearance error when gap equaled minimum clearance.
Fixes: lp:1533551
* https://bugs.launchpad.net/kicad/+bug/1533551
2017-03-11 20:57:59 +01:00
Maciej Suminski 3fafd48764 Fix drawing circles in GAL
Fixes: lp:1672039
* https://bugs.launchpad.net/kicad/+bug/1672039
2017-03-11 20:30:24 +01:00
jean-pierre charras 2c56085f41 Drc calculations fix a minor issue that detected a bad clearance when distance between a circle and a segment was the clearance value.
Also, give a margin of 1 nanometer during DRC calculations to avoid false error DRC detection due to rounding issues.
2017-03-11 18:09:18 +01:00
Chris Pavlina 5af825e21c Use ki_mutex.h in FOOTPRINT_PREVIEW_PANEL 2017-03-11 08:22:08 -05:00
Chris Pavlina 23a23d3c63 Fix typo in fp-lib-table help text
Fixes: lp:1671910
* https://bugs.launchpad.net/kicad/+bug/1671910
2017-03-10 23:44:12 -05:00
Chris Pavlina bbaa29fbc4 Refactor FOOTPRINT_PREVIEW_PANEL
- Pull out compound widget bits into FOOTPRINT_PREVIEW_WIDGET
- Move all pcbnew-specific bits *inside* pcbnew; implementation should
  be private for users
- Make a few class members and inner types private
2017-03-10 23:26:45 -05:00
John Beard 8c3b8ee693 Add a ruler tool to pcbnew GAL
This allows to measure between features on a PCB. It uses a preview
EDA_ITEM in common, but due to the use of the IDs, it's currently
Pcbnew/Modedit only.

This also adds several "utils" for graphical functons useful when
drawing preview items on GAL canvases.

Fixes: lp:1467313
* https://bugs.launchpad.net/kicad/+bug/1467313
2017-03-10 16:21:44 +01:00
John Beard 9c08873210 Make SELECTION_AREA a generic overlay item
This simplifies the (already simple) SELECTION_AREA class. It is also
moved into KIGFX::PREVIEW and put in the common library, where it can be
reused by other GAL-aware tools (not just in Pcbnew) in future.
2017-03-10 16:21:44 +01:00
Maciej Suminski d337d08060 Sketch graphics mode for GAL 2017-03-10 14:08:59 +01:00
Maciej Suminski f21cfa167f Use DECIDEG2RAD function in PCB_PAINTER 2017-03-10 14:08:59 +01:00
Maciej Suminski 737dc20409 Make OpenGL GAL great again
Reenabled VIEW_ITEMs cache. Previously, the first init was called with
GAL_TYPE_NONE, causing all layers to be set to non-cached. During the
proper init, the layers were already set to non-cached and were not
changed.
2017-03-10 14:08:59 +01:00
John Beard c523ba45e1 Fix shadowed variable in python_scripting.cpp 2017-03-10 09:08:45 +01:00
jean-pierre charras a592832886 fix I18n issue (empty string) 2017-03-09 11:47:40 +01:00
Chris Pavlina a73abbfc31 Fix possible threadsafety issue in FOOTPRINT_PREVIEW_PANEL 2017-03-08 17:02:10 -05:00
Maciej Suminski 62235348d1 Use GAL axes instead of a ORIGIN_VIEWITEM in module editor 2017-03-08 10:35:51 +01:00
Chris Pavlina 3854637ec5 Footprint preview: do not Freeze/Thaw
This causes issues under Ubuntu Unity (possibly due to calling Show()
while frozen).

Fixes: lp:1670705
* https://bugs.launchpad.net/kicad/+bug/1670705
2017-03-07 14:32:02 -05:00
Julius Schmidt 29eb696ef7 Fix crash when switching from dragging to routine (PNS router)
The attached patch fixes a bug where triggering InlineDrag while routing
is in progress will crash pcbnew.  The problem is that the InlineDrag
event does not terminate performRouting.  Once InlineDrag is finished
it will call StopRouting which deletes the m_placer.  The Wait() in
performRouting will then return and it will crash as soon as it tries
to access the m_placer.
2017-03-07 13:56:44 +01:00
José Ignacio Romero 45d1082517 Make all layers slightly semitransparent as before 2017-03-07 11:57:52 +01:00
Simon Richter 12c1339296 Remove false "override" comments. 2017-03-06 16:34:56 -05:00
Maciej Suminski 3174573361 Removed code resetting VIEW_CONTROLS settings
As the VIEW_CONTROLS settings are managed for each tool,
there is no need to restore the settings to initial state
when a tool is finished.
2017-03-06 15:04:27 +01:00
Chris Pavlina 541b91fd15 Fix FOOTPRINT_PREVIEW_PANEL loader thread synchronization 2017-03-05 22:22:25 -05:00
jean-pierre charras 7a120ad698 selection_tool.* add comments and use better names for 2 similar methods. 2017-03-04 17:35:34 +01:00
jean-pierre charras 5b3d7962bb Fix questionable code and memory leak. 2017-03-04 17:35:34 +01:00
jean-pierre charras 101a600be6 Fix coding style issue and a minor other issue. 2017-03-04 17:35:34 +01:00
jean-pierre charras af161771b8 Fix compil issue on Windows 2017-03-04 17:35:33 +01:00
Chris Pavlina 4618e6c7f8 Component chooser: event and focus cleanup 2017-03-04 11:14:04 -05:00
Cirilo Bernardo 68bcdec87e Workaround for non-ASCII filenames in Windows 2017-03-03 14:30:47 -05:00
Tomasz Włostowski 966052272f Coding style fixes 2017-03-03 20:27:05 +01:00
Tomasz Włostowski 18a9f037d2 DRC markers can now be selected and deleted in GAL like other items.
Fixes: lp:1621190
* https://bugs.launchpad.net/kicad/+bug/1621190
2017-03-03 20:26:34 +01:00
Tomasz Włostowski cc3d79f932 Reworked selection passing mechanism in SELECTION_TOOL.
- The tools can now specify if the items in the selection must be editable/
deletable. This is groundwork to be able to select/delete DRC markers, which can't
otherwise be edited.
- Fixed disappearing of selected objects
2017-03-03 20:26:34 +01:00
Tomasz Włostowski 9e73c3117e Added possibility to disable undo entries creation in COMMIT/BOARD_COMMIT 2017-03-03 20:26:34 +01:00
Simon Richter 1502e27695 Remove debug code matching on specific component names 2017-03-03 08:30:48 -05:00
jean-pierre charras 4eeed8d04f Icons options menu: code rework 2017-03-03 14:18:25 +01:00
Maciej Suminski 389c7b2bbc Added AUTOROUTER_CONTEXT to keep objects used by autorouter
The main reason is to keep cached board bounding box and limit repeating
parameters in functions used by the autorouter.
2017-03-03 13:28:19 +01:00
Maciej Suminski 2483dab72f Do not cache board bounding box 2017-03-03 13:28:19 +01:00
Maciej Suminski a073a90c45 Remove BOARD::SetBoundingBox()
Bounding box should be computed basing on the items belonging to the
board.
2017-03-03 13:28:19 +01:00
Jon Evans 88f7c55d95 Move ZoomFitScreen and ZoomPreset from PCBNEW_CONTROL to COMMON_TOOLS
BOARD::GetBoundingBox() now directly calls BOARD::ComputeBoundingBox()
and there is a new method BOARD::GetBoardEdgesBoundingBox() used for
call sites that needed to use ComputeBoundingBox( true ) in the past.

This allows COMMON_TOOLS to implement ZoomFitScreen without knowledge
of the BOARD class.
2017-03-03 13:28:19 +01:00
Kristoffer Ödmark dda51ab550 CrossProbes Schematics from eeschema to pcbnew
Adds a similar crossprobe as modules has in pcbnew. When clicking a
sheet in eeschema, the items that are exclusive in that scheet will be
selected in pcbnew if using the GAL canvas.
2017-03-03 07:25:32 -05:00
Kristoffer Ödmark 69a649c093 Refactored out the function that selects items based on the sheetname 2017-03-03 07:21:41 -05:00
Maciej Suminski 906ee77dbf Fixed VIEW_ITEM memory leaks 2017-03-02 23:57:13 +01:00
Chris Pavlina 586c8f0feb Fix signed/unsigned compare warning 2017-03-02 14:46:19 -05:00
jean-pierre charras e7e972804a Make show/hide icons in menus a run time option, instead of compil option. 2017-03-02 15:45:54 +01:00
Maciej Suminski 35c7974a96 Enable grid snapping when dragging items (GAL)
Fixes: lp:1668077
* https://bugs.launchpad.net/kicad/+bug/1668077
2017-03-02 15:21:49 +01:00
Tomasz Włostowski 4a911e0790 Highlight net tool in GAL now cross-probes to EEschema if clicked on a pad
Fixes: lp:1663767
* https://bugs.launchpad.net/kicad/+bug/1663767
2017-03-02 14:43:37 +01:00
Maciej Suminski 275ba503d1 Fix drawing arcs on Edge.Cuts layer
Fixes: lp:1666822
* https://bugs.launchpad.net/kicad/+bug/1666822
2017-03-02 13:52:36 +01:00
Maciej Suminski a5ac165c4b Make 'Enumerate Pad' tool more user friendly
Effects of enumeration are shown instantly, instead of after accepting
the changes.
2017-03-02 12:34:19 +01:00
jean-pierre charras 1cffcafe2d GAL mode: Add small cross option to grid style (now: options are Dots, Grid, Small cross) 2017-03-01 10:29:19 +01:00
Maciej Suminski f4be80a3af Code formatting 2017-03-01 09:50:36 +01:00
John Beard 1d039cb4c1 Break row indicators out to own class
The introduces INDICATOR_ICON, which is a very simple class holding a
bitmap that can toggle on or off.

The ICON_PROVIDER class then provides icons to INDICATOR_ICONS, which
means the class can be used for more than just row indicators.

A default row icon provider is also provided for use in the standard row
selector.
2017-03-01 09:44:41 +01:00
John Beard 72354c5a81 Use Bind rather than Connect in LAYER_WIDGET
Bind is safer than Connect. Bind is more flexible and has a more concise
signature.
2017-03-01 09:44:41 +01:00
John Beard b8d0b0d7be Move layer/render swatches to own class
This introduces COLOR_SWATCH, which is a reusable
widget that shows a color swatch and can invoke the colour picker
when duble/middle clicked.

It uses it's own wxCommandEvent to signal the change.

This makes the layer widget simpler internally, and also allows other
code to show identical swatches if needed.
2017-03-01 09:44:41 +01:00
John Beard e609bc3f0d Use wxStaticBitmaps for layer/render swatches
On Linux with recent GTK+ toolkits, these swatches had very wide
borders, resulting in colour swatches of only a few pixels. On OSX, all
borders were disabled, leaving only the swatch.

This commit changes the wxBitmapButton to wxStaticBitmap, which fixes
the issue on Linux GTK+ and also removes the platform-specific element,
as it will now be the same on all systems.

These widgets aren't used as buttons anyway, a single click is handled
across the whole row, not just the swatch. So using a button was not the
most intuitive affordance.

Fixes: lp:1605411
* https://bugs.launchpad.net/kicad/+bug/1605411
2017-03-01 09:44:41 +01:00
Jon Evans a4fdbe6f2c Register common tools in footprint viewer to fix zoom controls 2017-03-01 08:56:26 +01:00
Jon Evans fd4e2b042c Refactor SELECTION, SELECTION_CONDITIONS, and context menus to common
SELECTION now holds EDA_ITEMs not BOARD_ITEMs so various places had to
change to casting the selected items to BOARD_ITEMs.

Fixed compilation warnings on clang (Tom)
2017-02-28 14:47:20 +01:00
Jon Evans 0afb249447 Add drawing priority support to VIEW
Call UseDrawPriority( true ) after creating GAL to enable.

VIEW::Add() gets a new optional argument to specify the draw order
when adding an item.  If the new argument is left default, the draw
order will increment with each call of VIEW::Add().

Fix std::bind calls after change to VIEW::Add
2017-02-28 14:47:20 +01:00
John Beard a0df0f7f06 When filling/unfilling zones, create undo points in GAL
This is a feature which is apparently not available in legacy, but the
undo points created in GAL do work in legacy mode.
2017-02-27 18:00:51 +01:00
John Beard 796f3219d0 Draw zone hatching in GAL
This just uses the same hatch lines that are built into the zone as
legacy.

They are always drawn, even when there is a fill, as if the fill
doesn't reach the corners, the hatches can be seen.

Fixes: lp:1487043
* https://bugs.launchpad.net/kicad/+bug/1487043
2017-02-27 18:00:46 +01:00
Oliver d6097cf1aa Better footprint association and filtering:
1. If a footprint filter contains a : (colon) character, then the filter is matched against the pattern <LibName>:<FootprintName>
2. If there is *no* : (colon) character present, then it is matched against <FootprintName>
3. The same behaviour applies for the manual filter string in CvPCB
2017-02-26 18:15:23 +01:00
jean-pierre charras 6b431b4791 Fix transaltion issue.
Rebuild dialog_display_options_base with a recent wxFormbuilder version.
2017-02-26 13:03:38 +01:00
jean-pierre charras 1001442a48 Pcbnew: Fix an assert in debug mode, and fix a minor issue in menubar 2017-02-26 11:47:15 +01:00
jean-pierre charras 94bef6abd2 Pcbnew: files written when layers have numeric name (like +24)cannot be read
Fixes: lp:1667867
https://bugs.launchpad.net/kicad/+bug/1667867
2017-02-25 10:10:43 +01:00
jean-pierre charras 6ae7c15d89 Rework on pcbnew menubar: make code more easy to read and modify. 2017-02-24 20:51:49 +01:00
Maciej Suminski d3edc4f843 Disable router menu when the tool is stopped 2017-02-24 13:32:47 +01:00
John Beard c001c6114f Add cancel interactive tool action to GAL
This is used to provide menu entries that allows cancellation of
interactive drawing and routing tools without needing the keyboard.

It is provided in the drawing tools and the router tool.

The cancel event doesn't have any new functionality (e.g. track rip-up
for the PNS router - lp:1448460), this just adds it to the menu, where
it behaves the same as an Escape keypress.
2017-02-24 10:37:07 +01:00
Simon Richter 3bf0b9534c Fix incorrect parameter if the compiler doesn't support -Wshadow option 2017-02-23 17:55:55 +01:00
John Beard 88fb7483eb Register COMMON_TOOLS in modedit
Without this, no actions from that tool will work, which includes things
like settings the grid size.

Fixes: lp:1667264
* https://bugs.launchpad.net/kicad/+bug/1667264
2017-02-23 15:20:22 +01:00
jean-pierre charras 11dcb76fc9 Add -Wshadow compil option, if exists to warn about shadowed variables.
Swig auto generated .cxx file has a lot of shadowed variables, so this option cannot be used to compil all files.
2017-02-23 13:17:23 +01:00