Commit Graph

554 Commits

Author SHA1 Message Date
Tomasz Włostowski 667d32c4ab router: fixed snapping to end items 2017-08-17 22:54:55 +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
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 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 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
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
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
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 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 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 3b16d3cffe further DLIST/Iterators cleanup, some code formatting 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
jean-pierre charras 2c21c70f46 Fix a few doxygen warnings 2017-06-22 09:09: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 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
Jon Evans 3ec28e2acf Refactor layer enumerations to all live in the same place 2017-03-30 16:01:48 -04: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
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
Maciej Suminski fe4f02f5b9 Coverity fixes
CIDs:
- 153097
- 157120
- 157119
- 155148
- 155146
- 153103
- 153099
- 153095
- 153087
- 153086
2017-03-11 22:20:08 +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
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
Maciej Suminski 906ee77dbf Fixed VIEW_ITEM memory leaks 2017-03-02 23:57:13 +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
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
Jon Evans a52250a91e Change from EDA_COLOR_T to COLOR4D globally; arbitrary color support
eeschema now supports arbitrary colors for all object types, and
pcbnew does in GAL canvas.  When switching from GAL to legacy canvas,
pcbnew will convert colors to the nearest legacy color.
2017-02-22 17:35:00 +01:00
Jon Evans 4c83b0a94d Move TOOL_ACTIONs to their corresponding tools; create COMMON_TOOLS
Some grid/zoom tools are left in PCBNEW_CONTROL because they currently
depend on Pcbnew-specific class members.  Once refactoring is done to
make it possible to use all zoom and grid controls outside of pcbnew,
these last tools can be moved to common to match their ACTIONs.
2017-02-22 10:32:48 +01:00
Jon Evans 167f45ca2b Refactor COMMON_ACTIONS into a base and derived class
New virtual class ACTIONS is added as a member to EDA_DRAW_FRAME so
that the TOOL_DISPATCHER can have access to the appropriate derived
version of TranslateLegacyId()
2017-02-22 10:32:48 +01:00
John Beard a8eea6155a Move bitmaps.h out of base_struct.h
bitmaps.h was included in nearly every file in the project due to it
being included by base_struct.h

Only about 130 files actually use the XPM definitions defined there, and
many of those already included bitmaps.h themselves, or via
menu_helpers.h. However, touching bitmaps.h would result in over 400
rebuilt files for pcbnew alone.

This commit moves the bitmap-related types like BITMAT_DEF out to a new
header, which is still included by base_struct.h, which is less
avoidable for now, it's it's used in the interface.

The icon list is still in bitmaps.h. This has the side effect that's
it's now easier to automatically generate this file.

Many classes in pcbnew and eeschema needed some functions moved
to the implementaitons from the headers too.
2017-02-21 09:50:15 -05:00
Maciej Suminski 7806cb7bca Drag tracks/vias menu entry (GAL) 2017-02-09 12:03:28 +01:00
Maciej Suminski 77af6547c1 Coverity fixes (mostly initializing variables) 2017-02-01 17:31:55 +01:00
Maciej Suminski 39317eac83 Display clearance for routed tracks (GAL) 2017-01-27 19:11:12 +01:00
Maciej Suminski fc122834c2 Code formatting 2017-01-27 19:08:32 +01:00
Maciej Suminski 1102eb0d0d Store menu titles in CONTEXT_MENU
Previously a title had to be provided when a submenu was added,
but this led to storing the same title in many places.
2017-01-23 14:52:11 +01:00
Maciej Suminski 682da70a86 Fixed the issue of creating and event handling in context menus (GAL).
When creating a copy of CONTEXT_MENU, always a CONTEXT_MENU instance was
constructed, whereas an inherited type should be used. Solved with
CONTEXT_MENU::create() that has to be overridden in inheriting classes.

Event & update handlers are now virtual functions, instead of setting
the handlers with Set{Event,Update}Handler().
2017-01-23 11:40:59 +01:00
jean-pierre charras 2de913797a Fix a UI policy issue. Very minor cosmetic change: give same look to Zoom and Grid selection in 2 menus. 2017-01-20 11:35:24 +01:00
jean-pierre charras adb679dc46 ROUTER_TOOL_MENU: add zoom selection to this menu. 2017-01-20 08:51:12 +01:00
jean-pierre charras d51d53c6b9 CONTEXT_TRACK_WIDTH_MENU EventHandler: better filtering of received events ID.
This is mandatory because currently, on Windows, this handler is also called when clicking on an other menu with submenus like the grid menu.
2017-01-20 08:29:24 +01:00
Tomasz Włostowski ba9576b014 router: snap to clearance boundaries in Highlight Collisions mode
Fixes: lp:1655819
* https://bugs.launchpad.net/kicad/+bug/1655819
2017-01-19 17:47:15 +01:00
Tomasz Włostowski bb463ad434 pns: fix assertion fail when placing diff pairs 2017-01-18 15:55:46 +01:00
Maciej Suminski 75fb04d650 TOOL_ACTIONs are handled with transitions, no handlers needed in the event loops
There used to be a number of TOOL_ACTIONs that had entries both in
SetTransitions() and the event loop, which seemed redundant and
troublesome.
Now it is not necessary anymore, transitions setup is enough to execute
associated actions.
2017-01-18 14:20:39 +01:00
Maciej Suminski 3c61b16e7b Code formatting 2017-01-18 13:22:40 +01:00
Maciej Suminski ee862e1db4 Fixed a hidden overloaded virtual function warning in PNS 2017-01-18 13:22:18 +01:00
John Beard 3448698849 Add grid menu to routing context menu
This is a missing GAL feature (though grid cycling by hotkey was already
working fine).

Fixes: lp:1519973
* https://bugs.launchpad.net/kicad/+bug/1519973
2017-01-10 11:18:25 +01:00
jean-pierre charras b8b08dafd6 Code cleaning: remove pcbcommon.* which contains nothing really useful. The very few lines of code are moved to a better place. 2016-12-31 12:56:21 +01:00
Tomasz Wlostowski c45cc1de68 Fixes: lp:1653146 (Assertion failed when trying to delete track with router tool active, in debug mode)
https://bugs.launchpad.net/kicad/+bug/1653146
2016-12-30 20:14:44 +01:00
jean-pierre charras dec2d6e8cc Fix a few Coverity warnings. A bit of clean code in export_vrml.cpp. 2016-12-30 12:40:05 +01:00
Maciej Suminski 89055c4425 Code formatting 2016-12-12 16:45:52 +01:00
Tomasz Włostowski 1c1f4e9a50 Refactoring of VIEW/VIEW_ITEM classes:
- Remove dependency of EDA_ITEM on VIEW
- VIEW_ITEM is now a pure virtual interface
2016-12-12 16:45:52 +01:00
Maciej Suminski 524dddaf70 Sync the PNS model when its changed 2016-11-28 15:51:18 +01:00
jean-pierre charras bcfc1e7a3f fix shadowed local variables 2016-11-25 16:00:42 +01:00
jean-pierre charras 7051b6d21f Fixes: lp:1635723 (pcbnew: allows sometimes to draw tracks in non copper layers in Gal Mode)
https://bugs.launchpad.net/kicad/+bug/1635723
2016-11-13 19:02:44 +01:00
Tomasz Włostowski 4d180efa5f router: correct handling of per-pad/per-module clearance 2016-10-19 17:54:00 +02:00
Maciej Suminski abbd47e2f2 Remove an unused variable and a debug printf 2016-09-30 09:31:40 +02:00
Tomasz Włostowski 3257f1a863 pns: fixed inline drag grid snapping & undo-related assertion failure
Fixes: lp:1628697
* https://bugs.launchpad.net/kicad/+bug/1628697
2016-09-30 09:29:49 +02:00
Tomasz Włostowski 4bc4dc80b6 pns: unique_ptr for BOARD_COMMIT member 2016-09-30 09:05:58 +02:00
Simon Richter ad088db6d2 Add more "override" markers. 2016-09-25 13:59:41 -04:00
Simon Richter 59c81976dc Explicitly mark overriding functions. 2016-09-24 14:53:15 -04:00
Maciej Suminski 3623421912 Fixed a PNS crash after undoing the last operation while routing 2016-09-23 13:58:33 +02:00
decimad 6a9c1cb6a1 Split the undo/redo event into the two stages "pre" and "post" for convenient synchronization of dependent state. 2016-09-23 13:29:25 +02:00
Maciej Suminski 65821328d2 Fix a crash when dragging a via attached to a locked track (PNS)
Fixes: lp:1625835
* https://bugs.launchpad.net/kicad/+bug/1625835
2016-09-21 14:47:14 +02:00
Chris Pavlina c57fd7ccbf Fix signed/unsigned comparison warning in PNS::LINE::ClipVertexRange 2016-09-20 14:26:16 -04:00
Maciej Suminski 17806b58f6 Fixed unused variable warnings 2016-09-13 10:06:49 +02:00
Maciej Suminski 5a1f52bf30 Modified tools to use BOARD_COMMIT. 2016-09-12 13:45:57 +02:00
Maciej Suminski 5c0605f6dc Mute a few warnings 2016-09-12 11:50:06 +02:00
Tomasz Włostowski 0b8ab2f73d router: fixed incorrect clearance computation in highlight collisions mode.
Fixes: lp:1621186

https://bugs.launchpad.net/kicad/+bug/1621186
2016-09-08 10:30:02 -04:00
Tomasz Wlostowski 03d372a0ec Fixed an assertion triggered upon line simplification (PNS). 2016-09-06 16:40:40 +02:00
Maciej Suminski f1e2a2c4c1 Corrected debug information display call. Removed an unused variable. 2016-09-06 16:27:35 +02:00
decimad 94aaa47583 Add Remove overloads for specific item types, split removal into index-handling and lifetime-handling (not 100% correct yet, since the index is defactor lifetime-owner, it will be later.) 2016-09-06 16:06:06 +02:00
decimad 94fae5d6a1 fix eager dynamic allocation in PNS::NODE::addLine
move implementation into PNS::NODE::Add since lines will never be part of the index itself
2016-09-06 16:06:06 +02:00
decimad 96a3145543 use unique_ptr at client <-> pns-router border, to document the pns router is taking ownership
add overloads for NODE::Add( ... ) taking pointers to specific item types (retain old private add-Functions, they will come in handy later)
LINE overloads now take by reference, to document their special treatment.
updated code throughout affected by these changes
2016-09-06 16:06:06 +02:00
decimad 2aef1a4568 use unique_ptr to document ownership (PNS::LINE_PLACER) 2016-09-06 16:06:06 +02:00
decimad 4770be0920 Make the segment-ref container a true member of PNS::LINE
improve const correctness
return segment container by ref
change client code accordingly
2016-09-06 16:06:06 +02:00
decimad 2faca77adf use unique_ptr to document ownership (PNS::ROUTER) 2016-09-06 16:06:06 +02:00
decimad 6c749e0ba8 Remove PNS_ prefix from most types inside namespace PNS 2016-09-06 16:06:06 +02:00
decimad 4cf44d9725 Rename pns item kind constants in preparation for renaming pns classes 2016-09-06 16:06:06 +02:00
decimad de6281e977 Move PNS router code into namespace PNS
update copyright messages
2016-09-06 16:06:06 +02:00
Maciej Suminski ca499b80e1 Fixed wxLogTrace() calls in PNS
Fixes: lp:1616702
* https://bugs.launchpad.net/kicad/+bug/1616702
2016-08-25 09:24:55 +02:00
Maciej Suminski 78050c05e2 Changed PNS logging routine to wxLogTrace 2016-08-17 16:00:21 +02:00
Maciej Suminski 9f0b42cb35 pns: fixed a few memleaks & conditional jumps depending on uninitalized variables 2016-08-17 15:09:48 +02:00
Maciej Suminski 7e94e5282a Changed PNS debug output to use wxLogTrace 2016-08-15 17:16:54 +02:00
Maciej Suminski 0ef866ee74 Code formatting 2016-08-15 17:16:53 +02:00
Tomasz Wlostowski f0adbd757c router: added missing files 2016-08-15 17:16:51 +02:00
Tomasz Wlostowski a53ea81794 P&S: factor out Kicad-dependend PNS_ROUTER::SnapToItem() to the PNS_TOOL_BASE class 2016-08-15 17:16:51 +02:00
Tomasz Wlostowski 4d134e5522 fix direction-depending DP tuning glitch 2016-08-15 17:16:51 +02:00
Tomasz Wlostowski b52eb441a1 router: fix compilation warnings 2016-08-15 17:16:50 +02:00
Tomasz Wlostowski 456c02c800 router: multiple fixes - fixed crash when trying to drag a locked via - prompt when the user attempts to drag a locked via/segment - removed remains of PICKED_ITEMS_LIST from the PNS_ROUTER class 2016-08-15 17:16:50 +02:00
Tomasz Wlostowski bcf7990bf9 P&S: support for 45-degree style length tuning meanders 2016-08-15 17:16:49 +02:00
Tomasz Wlostowski a2ac1cd087 P&S: cleaner placement of DP segments/vias. Speed improvements too. 2016-08-15 17:16:49 +02:00
Tomasz Wlostowski 4cbb0aebfd P&S: support for custom visitor objects in PNS_NODE::QueryColliding() 2016-08-15 17:16:49 +02:00
Tomasz Wlostowski 2b32b6f72e P&S: support for trace & via locking 2016-08-15 17:16:48 +02:00
Christian Gagneraud 7e0caf7abe [pns] Make the placer algo draw debugging stuff by relying on a new PNS_DEBUG_DECORATOR, this removes a reversed dependency b/w PNS_ROUTER and PNS_ALGO Tom: some rework of the patch 2016-08-15 17:16:48 +02:00
Christian Gagneraud e9a2cb0642 [pns] Remove unnecessary includes of KiCad colors.h 2016-08-15 17:16:48 +02:00
Tomasz Wlostowski 0700178d07 P&S: enable delete & backspace shortcuts while router is active 2016-08-15 17:16:47 +02:00
Tomasz Wlostowski 9c8bdcc894 P&S refactor: removed most of Kicad-dependent code from PNS internal classes 2016-08-15 17:16:47 +02:00
Mrio Luzeiro d8eab321f7 3D Viewer: complete refactor of the 3D viewer.
* Split and rewrite the preview window and canvas.
* Create a new class for handling the board information.
* Adds new render targets: openGL, legacy, and ray tracing.
* Render targets take full advantage of the new 3D plugins system and 3D cache
  for a fast 3D model loading.
* Faster board loading.
* New OpenGL render is faster than the old one.
* New ray tracing render target with a post processing shader.
* Use of new 3D plugins (WRL, X3D, STEP and IGES) and 3D model caching.
* Preview of 3D model while browsing the file name.
* 3D preview of the footprint while adding / align 3D shapes.
* Render of 3D models according to attributes: Normal, Normal+Insert, Virtual.
* Pivot rotation centered in one point over the PCB board.
* Shortcuts keys improved for XYZ orientation..
* Animated camera.
2016-07-19 13:35:25 -04:00
Simon Richter 1b2fd6a382 Replace BOOST_FOREACH with C++11 range based for. 2016-06-29 16:07:55 -04:00
Simon Richter da5699de0a Replace boost::shared_ptr with std::shared_ptr. 2016-06-29 11:09:55 -04:00
Michael Steinberg fde12ebd25 Replace boost::function and boost::bind with their std:: counterparts 2016-06-29 12:23:11 +02:00
jean-pierre charras 7abf006c80 Very minor fix: fix shadowed local vars. 2016-06-15 10:27:24 +02:00
jean-pierre charras 11c369ee1b Fix minor compil warnings (deprecated warnings and shadowed local vars warnings) 2016-06-07 17:33:12 +02:00
Maciej Suminski 553899b79b PNS: Do not create an undo buffer entry when there is nothing to save. 2016-06-07 14:42:42 +02:00
Simon Richter 96ec9db5d6 Add missing C++ stdlib headers
The GCC standard library headers often include other headers, which makes
some code compile that forgets to include several headers.
2016-05-28 12:46:29 -04:00
Maciej Suminski a30c8d7848 Coverity fixes. 2016-05-11 11:18:27 +02:00
Matthew Petroff db54f3e7a7 Correct multiple UI spelling errors 2016-05-02 10:01:43 -04:00
jean-pierre charras 4a838fb8c3 Pcbnew: Add rounded rect pad shape. 2016-04-06 20:15:49 +02:00
Rohan Agrawal 8d659b3e02 removed unnessacary curly braces 2016-02-11 19:26:03 -08:00
Rohan Agrawal 31a6a4adf0 Run fix_route until routing ended in EndTrack
Should fix Bug 1424003, by making making sure the routing is completed when endtrack is triggered.
2016-02-11 18:26:40 -08:00
Tomasz Wlostowski 95252267ec Router: check layers of all traversed joints in FindLinesBetweenJoints(). (fixes lp:1531762) 2016-01-11 13:37:00 -05:00
Cirilo Bernardo 2128594a85 Coding policy fixes: remove trailing white space. 2015-12-14 16:20:54 -05:00
Maciej Suminski d373915340 Fixed crash when context menu is invoked during track dragging (GAL). 2015-12-03 14:26:12 +01:00
Tomasz Wlostowski 72b0593fdb Pcbnew: push and shove router fixes.
* Fix segfault caused by invalidation of the end item by
  PNS_LINE_PLACER::UpdateSizes().
* GAL zone drawing tool updates the ratsnest after zone drawing is complete.
* Fixed performance issue in zones processing using strict simplification
  only for the final filled area.
2015-11-18 09:35:17 -05:00
jean-pierre charras 34f1c0ea2d Fix a few Coverity warnings. 2015-11-11 19:47:51 +01:00
unknown d830b24c56 Fix memory leak in meander placer. 2015-11-09 13:11:27 +01:00
Tomasz Wlostowski 08178104bb router: take track width changes into account when calculating trace length for tuning 2015-11-05 19:20:08 +10:00
Thomasz Wlostowski 6e470ece1d Pcbnew: fix push and shove router segfault bug. 2015-11-03 11:19:42 -05:00
jean-pierre charras 9aba2f2683 Add tool tips in pns settings dialogs. Use default events handlers in cancel and ok buttons and close window.
Fia an incorrect sentence in general board editor options dialog.
2015-10-16 17:56:50 +02:00
Tomasz Wlostowski 0725575830 router: fixed disappearing segments when dragging corners/vias 2015-10-12 14:08:27 +02:00
Tomasz Wlostowski cd0031be47 router: fix segfault when placing a via with failed shove of head trace 2015-10-12 10:02:03 +02:00
Tomasz Wlostowski 3596ef2d4c router: fixed loop removal regression in shove mode 2015-10-09 14:31:06 +02:00
Tomasz Wlostowski b4fd9f3ed5 router: pick similar starting shapes for the diff pairs, not the very nearest one 2015-10-07 19:26:33 +02:00
Maciej Suminski a3786fd6d8 router; Changed 'custom track via/size' hotkey to Q (to avoid conflict with cycling through defined track widths). 2015-10-07 11:10:34 +02:00
Maciej Suminski 2607497b37 Code formatting. 2015-10-05 18:28:41 +02:00
Maciej Suminski 480cf85102 router: Layer switching uses the layer pair settings when placing a through-hole via. 2015-10-05 13:28:32 +02:00
Maciej Suminski f13208dc04 router: Display an error message when trying to place diff pair tracks that violate design rules. 2015-09-30 13:37:19 +02:00
Maciej Suminski f752f7875e Code formatting. 2015-09-30 11:18:19 +02:00
Maciej Suminski f2807035df router: Improved via placement code. - Blind/buried vias going through all layers are converted to TH vias. - If current layer is not set in the pair, router switches to the top layer instead of keep using the same layer. - Microvias switch between one of the outer layers and the adjacent one. 2015-09-24 18:34:22 +02:00
Maciej Suminski 504cf55642 Minor code formatting corrections. 2015-09-24 18:34:22 +02:00
Maciej Suminski 41e96e03d6 router: Added messages explaining why a blind/buried/microvia cannot be placed. 2015-09-24 11:04:42 +02:00
Tomasz Wlostowski 5bbf980ec7 router: fixes for disappearing segments after shoving & assertion in PNS_NODE destructor 2015-09-14 18:40:29 +02:00
Maciej Suminski 5659e3f8dc Adjusted ROUTER_PREVIEW_ITEM depth values. 2015-09-09 11:56:16 +02:00
Maciej Suminski 4636d8d615 PNS router changes layer on 'Place Via' hot key while it is not laying out a track. 2015-09-03 18:25:48 +02:00
jean-pierre charras 156d5f50d6 fix unwanted foreground frame change on Windows when creating BOM and netlists from scripts.
Very minor coverity warning fixes.
2015-08-28 16:15:45 +02:00
Michael Beardsworth 2e4136720d Removed set-but-unused failingDirCheck variable 2015-08-26 17:52:56 +02:00
jean-pierre charras 4fc230b773 Rework on Enum PAD_SHAPE_T, PAD_DRILL_SHAPE_T and PAD_ATTR_T (see rev 6008) : the new and better names are now used in Kicad code and existing python scripts.
PAD_SHAPE_T  and PAD_ATTR_T still have a double definition (new names and old names) to be sure python scripts are nor broken by the change.
 PAD_DRILL_SHAPE_T does not  have a double definition, because it is unlikely oblong holes are used in python scripts.
Double definitions will be removed in the (next) future.
2015-08-23 21:40:33 +02:00
Tomasz Wlostowski a33fc223ae router: take net clearance when deskewing diff pairs.
Apply correction on DP corner radius to avoid DRC issues.
2015-08-21 16:37:44 +02:00
Tomasz Wlostowski b4135e0a33 router: fixed snapping to target while placing diff pair 2015-08-21 16:35:34 +02:00
Tomasz Wlostowski 2b70aeafba fix rare segfault when head line had unsimplified segments 2015-08-20 15:11:16 +02:00
Tomasz Wlostowski 9da18f6db6 router: fix ortho snap mode for diff pairs 2015-08-20 09:46:19 +02:00
Tomasz Wlostowski a96299d456 router: improvements to shove algorithm 2015-08-19 18:07:16 +02:00
Tomasz Wlostowski 95c59c8060 router: multiple fixes:
- PNS_ITEMSET now keeps ownership info (does not rely on PNS_ITEM::Owner(), avoiding the risk of dangling pointers)
- fixed vias losing connected traces when dragging in mark obstacles mode
- fixed rare segfault when board item returned null netclass
2015-08-19 17:27:23 +02:00
Tomasz Wlostowski f6689f75a8 router: fixed loop removal issue 2015-08-18 11:38:17 +02:00
Tomasz Wlostowski e342744a32 router: Do not use reference to a temporary object. Prevent double freeing (m_joints). Draw tuned track always on top. 2015-08-12 21:12:13 +02:00
Maciej Suminski 6989af7904 Minor fixes (PNS). 2015-08-12 21:12:13 +02:00
Maciej Suminski 127fcfa7c9 Code formatting. 2015-08-12 21:12:12 +02:00
Maciej Suminski 65ebfe12c1 Fixed oval pads highlighting in mark collisions mode (PNS). 2015-08-10 17:50:10 +02:00
Maciej Suminski 5caa1523bd Handling Coverity reports. 2015-08-07 17:07:06 +02:00
Maciej Suminski d624115f35 Fixed failing undo while routing. 2015-08-04 23:08:13 +02:00
Tomasz Wlostowski b6f61ff676 PNS: correctly snap to offset pads 2015-08-04 12:15:47 +02:00
Tomasz Wlostowski 86b07d89a7 PNS: fixed crash on via dragging 2015-08-04 11:37:16 +02:00
Maciej Suminski 0fbf31ef38 P&S: memory mgr & disappearing trace fixes. Still a bit buggy, though... 2015-08-03 21:11:51 +02:00
Bernhard Stegmaier 5f4423f7af Changed abs() to std::abs() in pns_topology.cpp. 2015-08-03 10:50:05 +02:00
Maciej Suminski d010703eaf Fixed cursor freeze in pcbnew (GAL). 2015-07-24 10:58:47 +02:00
Maciej Suminski 7650b0e8ad Minor code cleaning (PNS). 2015-07-24 09:42:46 +02:00
Maciej Suminski d6bc33bd42 Removed a few more memory leaks and fixed crash on exit. 2015-07-24 09:42:46 +02:00
Tomasz Wlostowski afb6571249 PNS_NODE: fix segfault when dragging a track/corner of a track forming a ring 2015-07-22 13:51:12 +02:00
Tomasz Wlostowski 8752f46f07 PNS_ROUTER: correctly handle NPTH pad layer sets. 2015-07-22 13:49:53 +02:00
Maciej Suminski 6cb57f100a Fixed a memleak (PNS). 2015-07-22 10:46:56 +02:00
Maciej Suminski b16ade0805 PNS code formatting. 2015-07-22 10:46:56 +02:00
Jan Dubiec 7f1f436a4e Proper OPT_OBSTACLE casting. 2015-07-22 10:46:45 +02:00
Maciej Suminski fbdaf9bbdc Removed unnecessary header file. 2015-07-16 11:06:17 +02:00
Maciej Suminski c9370ae5e6 Fixed a PNS assert. 2015-07-10 23:42:13 +02:00
Maciej Suminski a530ffad50 Code formatting. 2015-07-10 23:42:05 +02:00
Tomasz Wlostowski a7613b6d6a Fixed cancelling inline track dragging. 2015-07-10 12:14:27 +02:00
Maciej Suminski ca27eeb5c7 Fixed "select copper connection". 2015-07-09 20:04:54 +02:00
Maciej Suminski 4fffd147f2 Fix one warning. 2015-07-07 18:38:49 +02:00
Maciej Suminski f2785d35bf Muting Coverity report. 2015-07-07 18:37:03 +02:00
Maciej Suminski df15be4f01 CONTEXT_TRACK_VIA_SIZE_MENU: generic context menu that displays track/via sizes. 2015-07-07 18:36:56 +02:00
Maciej Suminski 3a908b8b8a PNS: fix hotkey conflict (Diff Pair Dimensions vs Drag). 2015-07-07 18:36:54 +02:00
Maciej Suminski 2dc9d2ae66 PNS: hide cursor after inline dragging. 2015-07-07 18:36:47 +02:00
Maciej Suminski 5b7d08f2fd PNS: initalize starting point. 2015-07-07 18:36:45 +02:00
Maciej Suminski 8e98008f67 PNS: prevent placing multiple vias in the same spot. 2015-07-07 18:36:43 +02:00
Maciej Suminski e7626a8592 PNS: hide preview via when disabled. 2015-07-07 18:36:41 +02:00
Maciej Suminski 66778e1b00 PNS code formatting. 2015-07-07 18:36:38 +02:00
jean-pierre charras 351914da9d Fix minor and very minor compil and Cppcheck warnings. 2015-07-06 19:56:05 +02:00
Maciej Suminski 766da1e494 Code formatting. 2015-07-02 16:11:15 +02:00
Tomasz Wlostowski a180f70086 router: compute (and display) DP gap dynamically when tuning length 2015-07-02 16:10:49 +02:00
Tomasz Wlostowski 0ade919a98 router: fix shortcut crash & inline dragging for inline dragging P&S 2015-07-02 16:10:07 +02:00
Jonathan Jara-Almonte 2fd493255d router: compute diff pair gap on the fly when tuning the length 2015-07-02 16:10:02 +02:00
Tomasz Wlostowski 171d39c8d0 router: invoke interactive drag when dragging traces/vias in edit tool (disabled by default) 2015-07-02 16:09:56 +02:00
Tomasz Wlostowski a86fda1d37 tools: added TOOL_SETTINGS class for storing persistent tool settings in config file (just a wrapper for wxConfigBase) router: free angle mode (mark obstacles only) & persistent settings 2015-07-02 16:09:51 +02:00
Mathias Grimmberger 7724c581fd router: support for non-90 degree pad orientations 2015-07-02 16:09:43 +02:00
Tomasz Wlostowski 4abcc159d2 router: don't run optimizer if head line == NULL or on shove failure 2015-07-02 16:09:38 +02:00
Tomasz Wlostowski 52e193eded router: fixing assert 2015-07-02 16:09:32 +02:00
Tomasz Wlostowski e6dd016cb2 router: improve rounding error handling in hull calculation 2015-07-02 16:09:29 +02:00
Tomasz Wlostowski f96c65254c router: allow for insertion of a via without leading trace (e.g. in the middle of already existing trace) 2015-07-02 16:09:24 +02:00
Tomasz Wlostowski a3edd9706f router: more robust nearest obstacle clipping 2015-07-02 16:09:16 +02:00
Chris Pavlina 5a4e528d6a Correct PNS boundaries for offset pads. 2015-06-23 11:41:53 +02:00
jean-pierre charras 355bd47e16 Edit microvia: fix incorrect drill size (Bug #1466653)
Fix a few coverity minor warnings.
2015-06-19 10:55:37 +02:00
jean-pierre charras 4f71260319 Fix micro via size incorrect when adding it in pns router 2015-06-18 20:22:23 +02:00
Maciej Suminski d433a06d11 Fixed initialization for custom track/via size values (PNS). More meaningful error messages. 2015-06-15 17:54:58 +02:00
jean-pierre charras 49fac351ab Fix a few coverity warnings. 2015-06-15 16:01:43 +02:00
Tomasz wlostowski eba3a55bb2 pcbnew: new zone filling algorithm using ClipperLib. Possibility to fall back to the old one 2015-06-12 17:13:18 +02:00
Maciej Suminski 26ee2092af PNS router uses the legacy canvas hot key bindings. 2015-05-18 13:48:11 +02:00
Maciej Suminski 15cefcda9f Code formatting. 2015-05-18 13:48:11 +02:00
jean-pierre charras 77249d9b2d Minor fixes: remove a few useless includes and move a few others to the right file. Remove a few coverity warnings about not initialized members.
Minor bug fix: Zone duplicate zone in legacy mode: duplicate a zone to the same layer (and therefore  the same location) is no more allowed.
2015-05-15 14:49:11 +02:00
jean-pierre charras e2c7e6bf02 onrightclick.cpp: remove useless wxClientDC, which was used only the hide/show (to the same location) the on-grid cursor during the creation of the popup menu (perhaps a trace of legacy code).
Minor changes in pcb_calculator GUI messages to make easier translation of these messages.
Cosmetic enhancements for 2 icons
2015-05-09 10:37:50 +02:00
Maciej Suminski 99e5228948 Moved the list of TOOL_ACTIONs to ACTION_MANAGER. 2015-05-05 20:39:41 +02:00
jean-pierre charras 425ddb92a7 Cosmetic enhancements in dialogs and menus 2015-05-03 20:43:07 +02:00
Maciej Suminski 06b978b829 Refactored CONTEXT_MENU, added handler for updating. 2015-04-30 10:46:05 +02:00
Maciej Suminski 4be876a13a Expandable CONTEXT_MENUs (GAL). Minor CONTEXT_MENU 2015-04-30 10:46:04 +02:00
jean-pierre charras 569c2be354 Minor fixes: dialog rescue: make strings translatable. Remove a few coverity warnings (not initialized members). Very minor other changes. 2015-04-28 17:07:36 +02:00
jean-pierre charras 20dfe9ca29 Minor fixes: dialog_create_array.* files: clean code ( remove useless declarations and functions ).
fix a few coverity warnings about not initialized members in ctors.
2015-04-22 18:39:49 +02:00
jean-pierre charras 4e210a2d05 ModEdit: fix a refresh issue after deleting a pad (depending on the position of the pad, the pad was sometimes not immediately undrawn).
Fix a few coverity wanings (not initialized members in ctors)
2015-04-20 16:59:25 +02:00
jean-pierre charras c519eea12b 3D viewer: fix (the fix is not perfect) a minor issue in zone rendering: copper thickness was not good when the option 'Show Holes in Zones" was OFF, and "Show Copper Thickness" ON.
Fix a few coverity minor warnings.
2015-04-12 19:44:46 +02:00
Eldar Khayrullin 7d5ad2785a Make translatable 'Routing Options...' entry 2015-04-05 18:01:50 +02:00
Maciej Suminski b1cd83c197 Icons in GAL context menus. 2015-04-02 16:09:48 +02:00
Maciej Suminski 6083f3b011 Internationalization of GAL dialogs & menus. 2015-04-02 16:09:26 +02:00
Maciej Suminski 589dd442f5 Clippy returns home. 2015-04-02 09:18:45 +02:00
Maciej Suminski 8be73ad05a KiCad assistant. 2015-03-31 23:45:02 +02:00
Maciej Suminski 09f2af3c42 Fixed invisible tracks in PNS. 2015-03-30 21:49:30 +02:00
Tomasz Wlostowski aeddbb51ff router: respect NPTH holes too 2015-03-11 23:48:53 +01:00
Maciej Suminski 721949b50e Fix memory leak in pns_node and pns_line_placer. Fix coverity uninitialized warnings. 2015-03-10 15:38:27 +01:00
Maciej Suminski e6a10faab7 FIxed a few clang warnings. 2015-03-09 11:06:54 +01:00
unknown c3e3ff3682 Minot fixes: Minor coding style issues fix (tab -> spaces). Add missing GetClass to all classes derived from EDA_ITEM. Make debug method Show() only compiled in debug mode. 2015-03-06 09:58:32 +01:00
Tomasz Wlostowski 435ca8a7dd router: fix tuning status popup & incorrect length display 2015-03-05 10:02:29 +01:00
Tomasz Wlostowski 504c8bf286 router: fix segfault on misnamed DP complementary net 2015-03-05 10:01:54 +01:00
Maciej Suminski 8cc70d4468 Refinement to the previous commit. 2015-03-04 20:22:33 +01:00
Maciej Suminski 63ae839489 Fix for uninitialized length tuning status popup. 2015-03-04 20:08:30 +01:00
Tomasz Wlostowski 5f1c9060ac P&S router: fix unguarded boost optional derefernce. (fixes lp:1427880) 2015-03-03 20:16:14 -05:00
Tom Wlostowski b580ef70c5 Fix segfault in P&S router. 2015-03-03 15:58:36 -05:00
Tom Wlostowski 7977ac5421 Fix double free in P&S router causing KiCad to segfault. (fixes lp:1427803) 2015-03-03 15:07:56 -05:00
Maciej Suminski a6bd3314e4 Fixed warnings. 2015-03-03 12:59:26 +01:00
Maciej Suminski 0dd9efd9db Merged the differential pair router & length tuning tool. 2015-03-03 11:50:50 +01:00
Tomasz Włostowski 385d3648d6 router: removed some printfs() 2015-03-03 10:36:44 +01:00
Tomasz Włostowski fe40567426 router: shove now respects diff pair gap 2015-03-02 17:21:04 +01:00
Tomasz Włostowski bf3128c683 router: fix syntax error in PNS_LOGGER output files 2015-03-02 17:20:48 +01:00
Tomasz Włostowski 3f015705ac working on shove fix for DPs 2015-02-26 16:34:10 +01:00
Wayne Stambaugh d1d1e2b58a Lots of Coverity scan error fixes. 2015-02-20 19:41:10 -05:00
Maciej Suminski 4fb9bce354 Code formatting. 2015-02-18 17:53:46 +01:00
Tomasz Włostowski 112adccbcb router: differential pairs & length tuning support 2015-02-18 01:29:54 +01:00
Maciej Suminski 902d0e3f1f Tools are processing const TOOL_EVENT& (Tool Framework). 2015-02-14 21:28:47 +01:00
Maciej Suminski 2647fdfd89 Fixed context submenus event handlers (GAL/Windows). 2015-01-25 19:11:02 +01:00
jean-pierre charras 9cfb97d8b4 Add hight contrast option in Modedit. In hight contrast mode, solder masks and solder paste are shown.
this option was possible only by modifying the way display options are managed.
before these changes, display options were a global DISPLAY_OPTIONS class instance.
Now each EDA_DRAW_FRAME(and derivated classes)  includes its own DISPLAY_OPTIONS class instance.
As a consequence, some duplicate display option variables in these classes have been removed, because there were just duplicate variables of the  DISPLAY_OPTIONS class instance.
2015-01-10 11:27:49 +01:00
jean-pierre charras bc230f7650 Code cleaning: move class PAGE_INFO from common.h to class_page_info.h;
Fix issue when using a page layout file in project folder: eeschema and Pcbnew did not use it, unless using an absolute path.
Now, if the file path is nor absolute, it is seen as relative to the project (which is the expected behavior)
fp lib wizard: when pcbnew id compiled with USE_GITHUB_PLUGIN=OFF, the github plugin option is no more accessible (and the web viewer no more used).
2014-12-23 14:01:59 +01:00
Maciej Suminski e6ff6af7b3 Fixed typo. 2014-11-27 11:51:16 +01:00
Maciej Suminski 0daa1fa67e Missing fixes for the revision 5301. 2014-11-27 11:47:17 +01:00
Angus Gratton 6c4808bd49 pns: Non-copper pads are not treated as obstacles. 2014-11-26 15:46:47 +01:00
Camille 5729ee7ea5 Compile warning fixes and minor code policy fixes. 2014-11-15 08:43:23 -05:00
Maciej Suminski 9245b90392 Code formatting. 2014-11-14 20:19:00 +01:00
Tomasz Wlostowski 4e280f065f P&S router: fixed shove force propagation incorrect issues causing improper via dragging. 2014-11-14 19:17:52 +01:00
Tomasz Wlostowski 4e67de5c15 P&S router bugfixes
- fixed walkaround bug causing unwanted overlap/clearance violation when the first segment of trace being laid intersects the obstacle's hull at the same point twice (ie. goes in, turns around and goes out).
- fixed placer bug not splitting the start segment after toggling via placement or changing trace width
2014-11-14 19:17:01 +01:00
Tomasz Wlostowski 80adf9d85b router: multiple changes
- re-worked PNS_LINE_PLACER and PNS_ROUTER classes a bit, removing duplicate class members
- cleaned up Andrew's blind/buried via fixes
- fixed 'custom via width' dialog bug updating the width even when closed/cancelled
- fixed incorrect radius of drawn microvias
2014-11-14 19:15:58 +01:00
jean-pierre charras 24f516f6ae Fix many doxygen warnings (due to missing info, old comments, typo ...) when building the doxygen doc. 2014-11-02 17:25:04 +01:00
Andrew Zonenberg 45a8e4da74 pns_router: Support for blind/buried vias. 2014-09-30 16:46:19 +02:00
jean-pierre charras 24ed7f50f5 Pcbnew: fix Bug #1370321 (Change Segment function applies last netclass used).
Also update main toolbar track width and via size info in pns router mode, when starting a track, and other very minor update issue.
2014-09-28 16:44:47 +02:00