Commit Graph

5015 Commits

Author SHA1 Message Date
Dick Hollenbeck 1edaa773d3 Fix minor SWIG issues due to git rebase issues. 2016-09-20 21:52:48 -04:00
Dick Hollenbeck 1718ac1083 More SWIG improvements.
SWIG support for BOARD_ITEM_CONTAINER.
Split board.i into smaller included *.i files.
Add depencies on these smaller *.i files to CMakeLists.txt
2016-09-20 21:48:44 -04:00
Chris Pavlina c57fd7ccbf Fix signed/unsigned comparison warning in PNS::LINE::ClipVertexRange 2016-09-20 14:26:16 -04:00
Dick Hollenbeck d957670034 Add more HANDLE_EXCEPTIONS(), board.i refactoring. 2016-09-20 12:00:17 -04:00
Dick Hollenbeck 7311f07eaf SWIG Improvements
*) Extend SWIG support deeper into the BOARD class.
*) Move swig *.i files into a directory identified for SWIG, in preparation
   for a parallel universe involving Phoenix's SIP.
*) Move swig files which will be common to both eeschema and pcbnew into
   common/swig.
*) Sketch out a "common" python module, and plan on dovetailing that into a
   libkicad_shared.{dll,so}
*) Add common/swig/ki_exceptions.i and define a macro HANDLE_EXCEPTIONS()
   which is to be applied to any function which needs C++ to python
   exception translation.
*) Move the test for SWIG tool into top level CMakeLists.txt file for use
   in all python modules beyond pcbnew, i.e. eeschema and common.
*) Add SWIG_MODULE_pcbnew_EXTRA_DEPS which generates a better Makefile, one
   which rebuilds the swig generated *.cxx file when one of its dependencies
   change.
*) Re-architect the board.i file so that it can be split into multiple *.i
   files easily.
*) Make some KIWAY from python progress, in preparation for Modular KiCad
   phase III.
2016-09-20 11:59:43 -04:00
Dick Hollenbeck 9ad49dc2d1 Split IO_ERROR out of richio.* and store Problem() and Where() separately 2016-09-20 11:56:18 -04:00
Maciej Suminski 4bb16afc9e Fixed text placement tool in FP editor
Fixes: lp:1625304
* https://bugs.launchpad.net/kicad/+bug/1625304
2016-09-20 10:19:33 +02:00
Maciej Suminski 61e415bdb9 Deboostified ratsnest model in GAL 2016-09-19 17:25:31 +02:00
jean-pierre charras 6edee2ae1d Prepare Plot Gerber file to include advanced aperture and net attributes.
This option is not yet activated because the net attributes are not yet fully fixed by Ucamco, in Gerber file format specifications.
(To activate it, see dialog_plot.cpp, line 43)
2016-09-19 13:01:36 +02:00
Maciej Suminski 7f9380af26 Update the status panel after every commit. 2016-09-19 12:08:29 +02:00
Maciej Suminski 4ffd3c8511 Fix ratsnest after running DRC
Fixes: lp:1624000
* https://bugs.launchpad.net/kicad/+bug/1624000
2016-09-19 12:08:29 +02:00
Simon Richter 6689c7e75e Include header instead of full source 2016-09-16 09:29:44 +02:00
Maciej Suminski 48c3f577a9 Do not include ratsnest_viewitem.cpp in two CMakeLists. 2016-09-15 22:04:07 +02:00
Maciej Suminski 5e9b2247eb Fixed SWIG interface
Now Add()/Remove() methods are provided via BOARD_ITEM_CONTAINER
interface.
2016-09-15 16:14:38 +02:00
Maciej Suminski 8590809c7a Selection tool fix to enable selecting overlapping items
Fixes: lp:1499022
* https://bugs.launchpad.net/kicad/+bug/1499022
2016-09-15 13:25:08 +02:00
Tomasz Wlostowski 104a066268 Faster layer visibility switching in GAL
Fixes: lp:1623055
* https://bugs.launchpad.net/kicad/+bug/1623055
2016-09-14 11:58:10 +02:00
Maciej Suminski 516510774c Fixed ratsnest for nodes surrounded with zones 2016-09-13 17:13:42 +02:00
Maciej Suminski b00ca19f41 Deboostified ratsnest algorithm. 2016-09-13 14:58:33 +02:00
Maciej Suminski 17806b58f6 Fixed unused variable warnings 2016-09-13 10:06:49 +02:00
Maciej Suminski 03f4a89521 More descriptive method names for RN_NODE 2016-09-13 10:06:25 +02:00
Maciej Suminski 02cfab4266 Display a message when a locked component is not removed 2016-09-12 13:45:57 +02:00
Maciej Suminski c52a9d850b Converted netlist updater to use BOARD_COMMIT
Fixes: lp:1579910
* https://bugs.launchpad.net/kicad/+bug/1579910
2016-09-12 13:45:57 +02:00
Maciej Suminski 3425624510 Compile_Ratsnest() refreshes track labels 2016-09-12 13:45:57 +02:00
Maciej Suminski 3bcbe0dfbd GAL ratsnest code cleanup 2016-09-12 13:45:57 +02:00
Maciej Suminski 0cc2c87ef8 Removed BOARD::AppendNet()
It is handled by BOARD::Add() now.
2016-09-12 13:45:57 +02:00
Maciej Suminski 77f74646af Auto update ratsnest data on net change 2016-09-12 13:45:57 +02:00
Maciej Suminski d33672cce7 Added missing break 2016-09-12 13:45:57 +02:00
Maciej Suminski 828f28ecca Ratsnest Add()/Remove()/Update() return true on success 2016-09-12 13:45:57 +02:00
Maciej Suminski 790b6eaeb9 Fixed ratsnest updates on undo/redo 2016-09-12 13:45:57 +02:00
Maciej Suminski 694aa7ff5b Handle pad autonumbering when the number set is empty. 2016-09-12 13:45:57 +02:00
Maciej Suminski 267f01fa69 Code formatting (BOARD_NETLIST_UPDATER) 2016-09-12 13:45:57 +02:00
Maciej Suminski 029e275aa0 Unselect modified component before replacing by the FP editor. 2016-09-12 13:45:57 +02:00
Maciej Suminski b0b64ac964 Fixed freeze after updating a footprint using the FP editor. 2016-09-12 13:45:57 +02:00
Maciej Suminski edf64afa3e Fixed freezes after appending a board. 2016-09-12 13:45:57 +02:00
Maciej Suminski 65b1225231 Added CHT_DONE flag to COMMIT::Stage to skip add/remove step 2016-09-12 13:45:57 +02:00
Maciej Suminski 6701b80f77 Converted global deletion, global text size setting & module exchange to BOARD_COMMIT. 2016-09-12 13:45:57 +02:00
Maciej Suminski 91ea4242ca Fixed freeze after adding a module 2016-09-12 13:45:57 +02:00
Maciej Suminski 303a6928ab Changed pointEditorUpdate to editModifiedSelection. 2016-09-12 13:45:57 +02:00
Maciej Suminski ad1111748e Removed 'undo inhibit' in EDIT_TOOL 2016-09-12 13:45:57 +02:00
Maciej Suminski 86895822b7 BOARD_COMMIT retracts changes in reversed order 2016-09-12 13:45:57 +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
Maciej Suminski 32c4bec31c Implemented BOARD_COMMIT::Revert() 2016-09-12 11:50:06 +02:00
Maciej Suminski 39d5cd2aca Unified BOARD::Duplicate() 2016-09-12 11:50:06 +02:00
Maciej Suminski 86b906463f Fixed an assert in 'Create array' dialog 2016-09-12 11:50:06 +02:00
Maciej Suminski c4be379b31 Modified properties dialog to take advantage of BOARD_COMMIT class. 2016-09-12 11:50:06 +02:00
Maciej Suminski 08d15a9961 BOARD_COMMIT::Revert() marked as not tested 2016-09-12 11:50:06 +02:00
Maciej Suminski f1b37109e3 BOARD_COMMIT code cleaning
Moved a few conditionals to scopes where they can be executed.
Simpler way to create ITEM_PICKERs.
2016-09-12 11:50:06 +02:00
Maciej Suminski c7ce82a4bf BOARD_COMMIT creates only one copy of a modified module 2016-09-12 11:50:06 +02:00
Maciej Suminski 992ca6e7c7 Fixed removal function in BOARD_COMMIT. 2016-09-12 11:50:06 +02:00
Maciej Suminski 2ab7196035 Reenabled and corrected BOARD_COMMIT::Revert(). 2016-09-12 11:50:06 +02:00
Maciej Suminski 497fb31ae0 BOARD_COMMIT can be constructed using a PCB_BASE_FRAME*. 2016-09-12 11:50:06 +02:00
Maciej Suminski b25c407576 Rebuild the old ratsnest model only if GAL is inactive. 2016-09-12 11:50:06 +02:00
Maciej Suminski b815ea7865 Removed remaining m_editModules flags. 2016-09-12 11:50:06 +02:00
Maciej Suminski 9861b35707 EDIT_TOOL::hoverSelection() works with current selection. 2016-09-12 11:50:06 +02:00
Maciej Suminski b661993427 Removed SELECTION_TOOL::EditModules()
as there is already PCB_TOOL::SetEditModules() and
SELECTION_TOOL::m_editModules shadows PCB_TOOL::m_editModules.
2016-09-12 11:50:06 +02:00
Tomasz Wlostowski a5b7a7ca0a Changed DuplicateAndAddItem() to parametrized Duplicate(). 2016-09-12 11:50:06 +02:00
Tomasz Wlostowski 1924507001 Added a PCB_TOOL subclass. 2016-09-12 11:50:06 +02:00
Tomasz Wlostowski 9588a7974c Added classes COMMIT & BOARD_COMMIT. 2016-09-12 11:50:06 +02:00
Maciej Suminski ff6bdeee4b Removed a number 'if(m_editModules)' sections from pcbnew tools. 2016-09-12 11:50:06 +02:00
Maciej Suminski c78faec247 SetLastEditTime() upon creating UR_CHANGED entry in undo buffer. 2016-09-12 11:50:06 +02:00
Maciej Suminski 0bf553b06c Recompute local coordinates when an object is added to MODULE. 2016-09-12 11:50:06 +02:00
Maciej Suminski a5d32bbd63 Moved method descriptions from .cpp to .h. 2016-09-12 11:50:06 +02:00
Maciej Suminski 1dd43d1d98 Unified undo buffer handling code for PCB & module editor.
Replaced UR_MODEDIT with UR_CHANGED.
2016-09-12 11:50:06 +02:00
Maciej Suminski b0a191ce3d Refactored TestForExistingItem() 2016-09-12 11:50:06 +02:00
Maciej Suminski b897c5f290 BOARD_ITEM_CONTAINER class. 2016-09-12 11:50:06 +02:00
Maciej Suminski 09e0311d4e Replaced Copy() method with operator=. Removed Copy() where default copy ctor was enough. 2016-09-12 11:50:06 +02:00
Maciej Suminski 2c08ff1d59 Switched to default copy ctor and/or operator= for BOARD, BOARD_CONNECTED_ITEM, DRAWSEGMENT & EDGE_MODULE. 2016-09-12 11:50:06 +02:00
Maciej Suminski ec4531948f Move all SetParent() calls to a single location in BOARD::Add(). 2016-09-12 11:50:06 +02:00
Ian Roth 7ad2f37391 Add %L formatter to worksheets to print layer name. 2016-09-10 14:23:59 -04:00
Dick Hollenbeck 2adfb09d0e Pcbnew: display unconnected net count in DRC dialog. 2016-09-08 14:17:37 -04: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
Wayne Stambaugh cbcb3b896b Fix incorrect string translation macros.
* Replace _T() with _() for translatable strings.

* Don't translate debug messages.

* Don't translate copyright symbol.
2016-09-03 12:10:49 -04:00
Wayne Stambaugh 9287b42648 Revert commit 67230ac8e7. 2016-08-30 09:04:25 -04:00
jp-charras 69e4231303 Sch editor and Simulator: close the simulator frame when the schematic editor is closed, to avoid crash, due to the fact the simulator can try to access to a no more existing frame.. 2016-08-29 19:47:08 +02:00
jp-charras 440f8c8b69 Fix an issue in DRC min via drill value, created in git commit 3a92db4312 2016-08-28 21:26:51 +02:00
Niki Guldbrand 67230ac8e7 Keep Source tree clean
* Move all generated files to the build tree during build so the source
  tree is kept clean.

Signed-off-by: Niki Guldbrand <niki.guldbrand@gmail.com>
2016-08-26 17:25:12 -04:00
jp-charras 36ff4b5e93 Merge branch 'master' of git+ssh://git.launchpad.net/kicad 2016-08-25 09:37:20 +02:00
jp-charras 9d5300b284 Fix: Pcbnew net class editor is chopping off net class names
Fixes: lp:1616599
* https://bugs.launchpad.net/kicad/+bug/1616599
2016-08-25 09:35:35 +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
Simon Richter 91e953868a DRC: Test all segments
The DRC also runs per-segment tests, not just segment-segment, so the last
segment needs to be tested as well, with an empty list of segments to test
against.
2016-08-24 22:17:39 -04:00
Simon Richter 3a92db4312 DRC: Add test for via drill size
This test is only run when the via size itself is acceptable, to avoid
bigger changes to the codebase.
2016-08-24 22:17:21 -04:00
Simon Richter 260b0f6b5f Via properties: apply microvia settings to microvias 2016-08-24 22:16:21 -04:00
Jon Neal 532a5fb827 Small grammar fix 2016-08-24 16:18:04 -04:00
jp-charras fdd434244c dialog footprint properties: better tool-tips 2016-08-24 18:20:20 +02:00
jp-charras d0fbd32bee dialog edit footprint properties: Generate an error message if a parameter is incorrect.
(previously when happens, no message but the dialog cannot be closed)
2016-08-24 17:18:51 +02:00
jean-pierre charras 9f46d83175 Gerbview: locate item now does not take in account not visible layers. Remove an unused file
3d viewer: Remove a few ToUTF8() bad  usage (replaced by GetData() )
2016-08-19 09:45:59 +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
Chris Pavlina 910cafe72e FUTURE_FORMAT_ERROR: don't nest errors unnecessarily 2016-08-16 22:02:05 -04:00
Simon Richter bfb6e0bbb2 Convert remaining occurences of stri[n]cmp to str[n]casecmp.
This also reverses the substitution logic if strcasecmp is missing (config.h.cmake)
2016-08-16 10:27:09 +02:00
jean-pierre charras 01d3c72dda Cosmetic enhancement: add a dismiss icon to clarification menu "title" (the "title" is also the close menu command) 2016-08-15 20:22:54 +02:00
Maciej Suminski 293849256e Corrected the kicad_pcb file format revision to the new standard 2016-08-15 17:55:36 +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 2f3950e991 added missing boost headers 2016-08-15 17:16:50 +02:00
Tomasz Wlostowski e5524832a9 pcbnew: added diff pair gap & width to Design Rules dialog & PCB file format. 2016-08-15 17:16:49 +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
Tomasz Wlostowski df50a10510 VIEW: replace boost with std 2016-08-15 17:16:45 +02:00
Maciej Suminski 02c404ab10 Removed unnecessary *.orig files for dialogs 2016-08-12 15:58:36 +02:00
Wayne Stambaugh a4570f74bb Pcbnew: fix several auto save file issues.
* When Pcbnew is launched in the stand alone mode with no board file command
  line option, the project path is set to the current working directory.  The
  user may not have write access to the current working directory which would
  cause the auto save to generate an error.  If the user does not have write
  access to the current working directory, set the path to a platform specific
  temporary path that the user has write permission.

* When Pcbnew is launched in the stand alone mode with no board file command
  line option, the default BOARD object has no file name.  Set the file name
  to "noname.kicad_pcb" to fix incorrect auto save file name and set the path
  to the user's platform specific document folder.

* Delete orphaned auto save files when closing without saving due to broken
  auto save file generation logic which prepended the file name with "$" rather
  than "_autosave-".

* Fixes: lp:1596382
2016-08-11 15:13:47 -04:00
Maciej Suminski 0aad86435f Adjust iterator after erasing an element 2016-08-10 12:17:56 +02:00
jean-pierre charras 7bc8cb56e0 Fix bug: Impossible to rescale 3D models 2016-08-05 21:30:23 +02:00
Michael Steinberg 86496d3141 Pcbnew: fix dangling board reference crash in GAL. (fixes lp:1584489) 2016-08-05 13:45:14 -04:00
Cirilo Bernardo 8fdd6b1627 Fix 3D model file name parsing bug. (fixes lp:1609122) 2016-08-03 13:39:39 -04:00
decimad 8dcf040a4e Fix segfault on BOARDs without tracks 2016-08-03 10:20:52 +02:00
Thomas Pointhuber e6129ca684 remove F.SilkS from default Through-hole and NPTH pads 2016-08-01 18:52:54 -04:00
jean-pierre charras 84cfef1de9 Minor change for drill files names: when separate PTH and NPTH drill files are generated, PTH drill file has its name finishing by "-PTH" (similar to the NPTH drill file name) 2016-08-01 16:29:15 +02:00
jean-pierre charras e15ad9350f Fix issue from rev 6994 "Run DRC" from plot dialog crashes on Linux. 2016-07-28 14:07:35 +02:00
jean-pierre charras 62bf20271b Pcbnew, dialog plot: add a button (Run DRC) to run the DRC from the plot dialog. 2016-07-27 14:53:45 +02:00
jean-pierre charras 03e5208c5b Fix: footprint libraries wizard fails with personal GitHub accounts (now uses https://api.github.com/users/xxx instead of https://api.github.com/orgs/xxx to retrieve the list of .pretty footprint libraries) 2016-07-20 10:24:24 +02:00
Dick Hollenbeck 7434e68876 Pcbnew: improved track scripting support. 2016-07-19 16:34:09 -04:00
jean-pierre charras e10242a0a9 Minor changes in dialogs: use wxWidgets default event handlers for wxID_CANCEL and wxID_OK buttons 2016-07-19 19:44:28 +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
jean-pierre charras fd42d76e2f refinements in dialogs and OSX Cancel button fix. Dialog_pad_properties, pad viewer in GAL mode: better size of the drawing area. The scrollbars are now usable. 2016-07-19 11:16:16 +02:00
Dick Hollenbeck e24990146d Pcbnew: major swig fix.
* Switched hashtables.h over to std::undordered_map from boost version.

* Added new macros DECL_VEC_FOR_SWIG() and DECL_MAP_FOR_SWIG() in macros.h.
  These along with future DECL_HASH_FOR_SWIG() unify the declaration to swig
  and C++ so that the resultant type name is common in both languages, and
  the types AGREE.

* Fixed swigging of NETINFO_ITEM and NETINFO_LIST via magic.

* Newly exposed (python wrapped) are: D_PADS, TRACKS (was TRACK_PTRS),
  NETNAME_MAP, NETCODE_MAP, wxString (without constructor purposely, read
  comment in wx.i), MARKERS, ZONE_CONTAINERS, NETCLASSPTR, KICAD_T types.

* std::vector<SOMETHING*> tends to end up named SOMETHINGS in C++ and python.
  Having the name consistent between like types is helpful, and between
  languages.  std::map<> ends up as SOMETHING_MAP.

* NETINFO_LIST::m_netNames and NETINFO_LIST::m_netCodes are now std::map
  instead of hashtables, because swig does not yet support std::unordered_map.

* You can now get to any netclass or net info.   NETNAMES_MAP and NETCODES_MAP
  are traversable basically the same as a python dictionary using a python
  string (not wsString) as the key!  The wxString typemap converts python
  string to wxString before the lookup happens.  Iteration also works.
2016-07-18 13:23:09 -04:00
jean-pierre charras 01100a57e5 refinements in dialogs and OSX Cancel button fix 2016-07-18 18:28:02 +02:00
jean-pierre charras defac5272b refinemenst in dialogs and OSX Cancel button fix 2016-07-18 17:54:41 +02:00
jean-pierre charras f83a76a970 Eeschema: dialogs: incorrect sizes fixes and osx copy text fix 2016-07-18 09:04:13 +02:00
jean-pierre charras d84f793fea more about dlg sizes and osx fixes 2016-07-15 12:05:13 +02:00
jean-pierre charras ee40137de7 more about dlg size fixes and osx fixes 2016-07-14 19:30:25 +02:00
jean-pierre charras 98bc4d3ba1 Fix dialog size issues (some widgets have a incorrect size when initialized inside a TransferToWindow() method because the SetSizeHints() method was called before the init) and fix OS X copy/close bug in a few dialogs. 2016-07-14 16:25:35 +02:00
jean-pierre charras 1d1453edbe zone_filling_algorithm.cpp: fix missing closing parenthesis. Remove useless compare function. 2016-07-14 10:22:23 +02:00
jean-pierre charras b7955001c1 zone_filling_algorithm.cpp: a small code cleanup, fix incorrect return type in a few methods, and add better comments. 2016-07-14 09:27:32 +02:00
Dick Hollenbeck c2b8a4ee43 Move from class INSPECTOR as the EDA_ITEM::Visit() callback interface to a std::function
callback.  This improves conciseness and encourages use of Visit() due to the lower cost
of entry in C++.
2016-07-12 15:05:54 -04:00
jean-pierre charras 34469c1d9c Pcbnew, legacy mode: used spread_footprints to place new footprints after reading a netlist, like in GAL mode.
However they are put inside the "best" area, and not put inside a moving block, like in GAL, due to limitations of legacy mode.
2016-07-11 09:48:51 +02:00
Jon Neal 1293d04a7a Fix a bunch of misspellings of length. 2016-07-10 23:09:18 -04:00
Wayne Stambaugh 4ed346ea64 Eeschema: initial schematic I/O plugin.
* Factor out PROPERTIES object from the PCB plugin code and move it into
  common so it can be used by both the Pcbnew and Eeschema plugins.

* Add schematic I/O plugin manager for loading and saving schematic and
  component library files.

* Add initial attempt at a parser for current schematic file format.  This
  parser will be infinitely more strict than the current parser which is very
  forgiving in what it parses.

* Make minor changes to the base bitmap class to support the new parser.

* Add find root sheet support to sheet object to allow fetching the root
  sheet from any sheet in the stack.
2016-07-06 05:22:56 -04:00
jean-pierre charras 05f849a746 Pcbnew: fix potential issue (crash) when loading board files with a missing net section (like created by Gerbview) due to an initialization made to late. 2016-07-05 17:01:41 +02:00
jean-pierre charras e7bbe27e36 Fix double call of TransfertDataToWindows in 4 dialogs (fix a bug I created in rev 6962). Make change working on KDE. 2016-07-04 18:22:18 +02:00
jean-pierre charras e6e77de4fa Fix double call of TransfertDataToWindows in 4 dialogs. make change working on KDE. 2016-07-04 17:47:48 +02:00
jean-pierre charras ed7c57f19f Fix double call of TransfertDataToWindows in dialog_print_for_modedit.cpp 2016-07-04 17:19:59 +02:00
jean-pierre charras 474e0936cb Fix double call of TransfertDataToWindows in 3 dialogs. 2016-07-04 17:17:09 +02:00
jean-pierre charras 4a20f376a3 Move call of SetSizeHints in a few dialogs form the dlg ctor to a wxInitDialogEvent event, because some widgets sizes are not fully initialized before this event is fired.
It is especially true in some Window Managers like KDE, but can be true in any WM, when initializations are made by TransferDataToWindow() method, called by the default wxInitDialogEvent handler.
2016-07-02 18:32:03 +02:00
jean-pierre charras 1ab1dca46c Try to fix initial widgets size calculations on KDE, when using notebooks in dialogs 2016-07-02 16:13:10 +02:00
jean-pierre charras 1fbb84fd98 Move call of SetSizeHints in dialogs in a wxInitDialogEvent event, because some widgets sizes are not fully initialized before this event.
It is especially true in some Window Managers like KDE, but can be true in any WM, when initializations are mage by TransferDataToWindow() method.
2016-07-02 14:44:36 +02:00
jean-pierre charras 0eea3cffcf DIALOG_SHIM: add void FinishDialogSettings() method which calls the usual methods at end of a dialog, to ensure proper size and position, the first time the dialog is called.
Fix an incorrect size of dialog_pcb_text_properties (due to the fact the dialog was not really initialized when its min size was calculated)
2016-07-02 11:35:52 +02: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
Dick Hollenbeck 5fa8aa3660 Increase cache validity period in nginx.conf
This revised nginx.conf holds the cache for one week, truly.  For some reason there are
two tuning knobs required to make one adjustment (cache duration).  Without this fix the
cache was only held for 10 minutes.  The most important change is the "inactive=1w" which
as I implied, is the *second* reference to one week.  Sorry for this oversight.

Nginx can be run on something as simple as a raspberry PI.  I run it on a network file
server attached to my desktop via copper ethernet.  By caching the footprint libraries
from github, I can load all github libraries in about 2.5 seconds, making github the
fastest plugin of any kind.
2016-06-29 12:25:28 +02: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 83504c2b29 Pcbnew: Rework on print dialogs. 2016-06-19 20:29:13 +02:00
jean-pierre charras 68f0503586 Fix Pcbnew bug: print dialog: layers not listed in dialog (Linux specific) 2016-06-18 17:47:05 +02:00
jean-pierre charras 0862ac28d0 Dialog DRC: fix a minor bug created in rev 6936: the report file was always created, regardless the option selected in the check box.
Enhancement: the browse file dialog nows open the project folder by default.
2016-06-17 08:24:54 +02:00
jean-pierre charras 3f2b15711c Fix bug: DRC report to File crashes Pcbnew, if the file cannot be created (for instance if the CWD is not writable, or if the path does not exist)
Fix also an other issue: if the file path is not entered, the file is now created in the current project directory.
2016-06-15 19:00:30 +02:00
jean-pierre charras 7abf006c80 Very minor fix: fix shadowed local vars. 2016-06-15 10:27:24 +02:00
Maciej Suminski 7ff3dd0807 Make sure GL canvas is visible upon destruction in Module properties dialogs. 2016-06-14 12:08:35 +02:00
jean-pierre charras 688fb5caaa Minor enhancements in dlg_3d_pathconfig (better look, but not perfect). Also fix an issue: the minimal dialog size was not always calculated. 2016-06-13 12:41:27 +02:00
Chris Pavlina 5285962775 Remove option to not show footprint ratsnest when moving
This option only exists in legacy, with no real plan to port it to GAL. Nobody
seems to use this; there isn't really much of a point to it. Bye!
2016-06-11 22:34:07 -04:00
Chris Pavlina 81144c2476 Move hotkey list from Preferences menu to Help menu 2016-06-11 21:22:13 -04:00
Chris Pavlina 9eef653625 Remove legacy option to zoom to selection on middle mouse button
This feature was not reliably available: neither pl_editor nor GAL supported
it. It has been replaced over the past few commits with a new zoom-to-selection
tool available in all applications and modes.
2016-06-11 19:37:43 -04:00
Wayne Stambaugh 588d4c33a0 Set minumum SWIG version to 3.0 for C++11 support. 2016-06-10 14:08:35 -04:00
Cirilo Bernardo e0a7f0041a Better 3D filename resolution 2016-06-09 07:48:49 +02:00
Chris Pavlina 8c01318141 Add zoom-to-selection tool 2016-06-08 07:19:53 -04:00
jean-pierre charras 37deba60c3 Fix shadowed vars (in microstrip.cpp) and deprecated compil warnings. 2016-06-08 09:28:19 +02:00
Simon Richter 080d7f1024 Add missing dependency github_plugin -> pcbcommon. 2016-06-07 21:38:58 -04: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 cef45c0297 Hide all related layers when footprint rendering is disabled. 2016-06-07 15:07:47 +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
Maciej Suminski 71aade6b51 Fixed a few warnings (mostly gcc6 -Wmisleading-indent). 2016-06-07 14:42:42 +02:00
jean-pierre charras f4525875f1 Pcbnew: fix bug : footprint editor: shape offset was ignored when placing new pads. Was also ignored in global pad change in fp editor and board editor. 2016-06-07 10:02:19 +02:00
Chris Pavlina d682e4d7fa Change default via dimensions to 0.8/0.4 2016-06-06 20:23:58 -04:00
jean-pierre charras f311230874 Gerbview: when running gerbview from a command line, if a filename is given, and if it is a .drl file, it is loaded as drill file (instead of a gerber file, which generate an error message).
Code refactor: remove useless class members,  and move read gerber file and read excellon file from gerbview frame to the corresponding classes
2016-06-05 14:26:39 +02:00
jean-pierre charras 6d1e904334 Code cleanup: Remove outdated decimils to/from iu defines and conversion functions (decimils are no more in use since a long time).
Remove convert_from_iu.h file, only used for one define, and containing brokenand duplicate defines. Only convert_to_biu.h is now used.
2016-06-05 13:49:25 +02:00
Maciej Suminski 01f32dd52c GL_CONTEXT_MANAGER class to avoid unexpected GL context switches. 2016-06-03 15:46:12 +02:00
jean-pierre charras 185dc2bbdf fix an incorrect filename (incorrect case) which created compil issue on Linux. 2016-06-03 08:49:55 +02:00
jean-pierre charras 93e61e7a2e Minors fixes: dialog_print_using_printer.cpp: fix a Coverity warning and very minor coding style issue. xsl scripts: add bom2grouped_csv.xsl (from a contributor) and fix minor issues. 2016-06-03 08:32:24 +02:00
jean-pierre charras dc4882c4bd Pcbnew: Fix incorrect order of linked files, which can create issues (not defined symbols) at link stage. 2016-06-01 18:40:18 +02:00
jean-pierre charras a4658ab6be Fix a few compil warnings (not used vars, shadowed local vars) 2016-06-01 14:22:05 +02:00
jean-pierre charras 96e55de90d Code cleanup: remove dead code (some removed methods were broken), and update or add comments. 2016-06-01 11:31:40 +02:00
jean-pierre charras e2cc78b2b5 Code cleanup: remove dead code (some removed methods were broken), and update or add comments. 2016-06-01 11:28:07 +02:00
Simon Wells 4b5a4c0d36 Display correct page count in print dialog 2016-05-30 11:44:49 -04:00
Simon Wells 457b021101 Fix bug: printed duplicate pages when Single Page selected
https://bugs.launchpad.net/kicad/+bug/1523065
2016-05-30 11:25:40 -04:00
jean-pierre charras 1ae9175671 A few minor fixes for compil warnings (shadowed variables and deprecated auto_ptr) 2016-05-29 17:02:34 +02:00
jean-pierre charras ca0113ab65 Fix my previous commit: I committed the wrong file 2016-05-28 21:51:35 +02:00
Simon Richter 5b3d1d72e8 Open namespace around definitions
While defining functions in another namespace is technically allowed as
long as the definition can be matched to a declaration, this can lead to
ambiguous resolutions, such as here (GAL vs KIGFX).
2016-05-28 12:57:19 -04: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
jean-pierre charras e795dafc4b Fix non optimal position of net name and pad name for pads with shape offset: the texts are now (like in legacy canvas) centered to the pad shape, not the pad position. 2016-05-28 12:53:29 +02:00
jean-pierre charras dbb78db7ef Gerbview: Shows now in the Layer manager the filename of gerber or drill files loaded.
A fex minor compil warnng fixes
2016-05-23 17:47:16 +02:00
Maciej Suminski a30c8d7848 Coverity fixes. 2016-05-11 11:18:27 +02:00
jean-pierre charras bbe42d0f47 Fix very minor issues: compil warnings (mainly deprecated and shadowed vars warnings). 2016-05-22 19:39:20 +02:00
Alexander Lunev 42c47c7970 pcad2kicadpcb: fixed an issue with an uppercase fileUnits parameter. 2016-05-22 11:01:19 +02:00
jean-pierre charras e2d4118470 Eechema, Component editor: Fix a bug in Pin properties dialog: a parameter used to draw the pin in preview canvas was incorrect, due to code change in draw pin. 2016-05-19 18:38:36 +02:00
Chris Pavlina 0f407a756c Pull existing settings into Doxygen module 2016-05-12 15:45:47 -04:00
Chris Pavlina 84d3fbfd68 Remove MaxUndoItems, make devel option DevelMaxUndoItems
Begin documenting configuration keys in Doxygen
2016-05-12 12:51:32 -04:00
Chris Pavlina e782e463f4 Remove redundant NULL check
Coverity CID: 134088
2016-05-11 23:28:03 -04:00
jean-pierre charras 0bd287b6d9 Pcbnew: Fix a very minor bug ( The "Move exactly..." sometimes truncates the saved parameter floating point values during a session) 2016-05-11 12:16:07 +02:00
jean-pierre charras e978a17ccd Fix minor bug in Modedit: Adding a new rounded rect pad to a footprint doesn't clone rectangle rounding 2016-05-11 10:54:44 +02:00
jean-pierre charras 6a7544a2ca Fix a few deprecated compil warnings in dialogs generated by wxformbuilder 2016-05-11 10:51:07 +02:00
Chris Pavlina 540275fe44 OS X: Disable full-screen cursor
This feature cannot work reliably for reasons explained in lp:1463505. Remove
the option on OS X builds and force cursor to the small one.

https://bugs.launchpad.net/kicad/+bug/1463505

> Bernhard Stegmaier (stegmaier) wrote on 2016-01-14:
>
> As far as I see from the code this is no bug but done on intention.
>
> The reason probably is that on OSX in the legacy canvas you don't have the
> XOR-drawing as on other platforms. To the best of my knowledge, this would
> mean that on every mouse move you would have to repaint the whole window just
> to get rid of the "old" cross.
>
> So, I would say this is a clear "won't fix".
> We could think of just removing/disabling the button in the legacy canvas.
2016-05-10 23:33:24 -04:00
Chris Pavlina 7b5ab741bb Fix null dereference for certain bad PCB files
Coverity: CID 147344 Unchecked dynamic_cast

If a file that parses validly in Parse() but does not return a BOARD is loaded,
no exception will be thrown but the dynamic_cast will return NULL. This NULL
is tested by wxASSERT(), which does not actually halt anything (especially in
release builds), and then we proceed to board->SetFileName().

This can be demonstrated quickly by renaming a .kicad_mod to .kicad_pcb and
trying to load it. pcbnew will crash.
2016-05-10 22:36:39 -04:00
Chris Pavlina 445db7da58 Fix uninitialized fields
Coverity: CIDs 102698, 147347, 147349, 147350
2016-05-10 22:36:23 -04:00
Chris Pavlina 5044fc5799 Fix build error on some platforms from r6788
r6788 = git f9386fc
2016-05-10 18:57:10 -04:00
Chris Pavlina ba17a54c08 Remove "Dump zone geometry to files when filling"
The code to perform the dump has not been removed, but the GUI option and
global flag (ugh) have been.
2016-05-10 17:37:51 -04:00
Chris Pavlina e9a9a269b4 pcbnew legacy: remove option to hide via drill
Via drills are now shown in all cases, matching GAL behavior, and the option no
longer exists in the preferences dialog.
2016-05-10 16:47:37 -04:00
Chris Pavlina f9386fcbc0 Add support for PCB and footprint format versioning
Currently, kicad_pcb files have a (version ...) tag, but it is ignored. This
commit does the following:

1. Parse the version. If it's later than the last supported version, present an
alternative error message suggesting an upgrade if the file does not load
correctly. The version will be interpreted as an integer YYYYMMDD to suggest
a KiCad release date.

2. Accept a (version ...) tag also in kicad_mod files, but do not write them
yet. If no version tag is present in these files, assume the version to be that
of the current format version at the time of this commit.

This is meant to be merged to the 4.x stable series, and preps for KiCad 5
which will start emitting version tags also in footprints - users with what
will then be 'old stable' will not get a parse error when we introduce this for
footprints, and we can safely increment the format version later.
2016-05-10 15:07:35 -04:00
Maciej Suminski 35fe82739b Commented out 'override' keyword due to problems with older swig versions (see bug lp:1579042). 2016-05-10 14:35:36 +02:00
jean-pierre charras bfeb61abef Fix a few shadowed local variables and deprecated warnings in dialogs (using a very recent wxformbuilder version). 2016-05-10 08:56:03 +02:00
Maciej Suminski d9f4877c94 Fixed a crash when starting pcbnew with OpenGL GAL. 2016-05-09 17:23:01 +02:00
Maciej Suminski ad66af66af Highlight an item when context menu is displayed (GAL). 2016-05-09 10:41:11 +02:00
Maciej Suminski ce8f400645 Added menu for locking tracks & vias (GAL). 2016-05-09 10:29:06 +02:00
Maciej Suminski dd10c577ec Added SELECTION_CONDITIONS::OnlyTypes() variant that takes KICAD_T[]4 2016-05-04 18:35:20 +02:00
Maciej Suminski dfa963f31a Mark locked tracks with 'L' letter in status field. 2016-05-04 16:35:12 +02:00
jean-pierre charras 63decd70e6 Minor fixes: Fix a few shadowed local variables, and deprecated warnings is a few dialogs generated by wxFormbuilder (using a very recent wxFormbuilder version, after apr 25, 2016) 2016-05-06 17:15:30 +02:00
Maciej Suminski 06637a17d6 Added 'Reset Grid Origin' hot key (GAL). 2016-05-04 14:59:14 +02:00
Maciej Suminski b735f57fa4 Refresh pads after enumeration in Footprint Editor. 2016-05-04 14:06:10 +02:00
Maciej Suminski f502c4cc77 Fixed stroke text initialization in PCB_PAINTER. 2016-05-04 12:18:25 +02:00
Maciej Suminski a62d2b5412 Bigger net labels (GAL). 2016-05-03 15:15:08 +02:00
Maciej Suminski 25fa2bbbbd Fixed net names drawing in Cairo. 2016-05-03 14:40:47 +02:00
Maciej Suminski 2f874097ae Fixed a crash in pcbnew (GAL). 2016-05-02 16:15:26 +02:00
Maciej Suminski ed0b95d710 Added an option change grid style. Refactored DIALOG_SET_GRID. GAL can draw grid using lines or dots now. DIALOG_SET_GRID was refactored to use Transfer{From,To}Window() methods. 2016-05-02 16:15:24 +02:00
Maciej Suminski bacb2dd52a Adjusted required level of details for track labels to show. 2016-05-02 16:08:51 +02:00
Maciej Suminski fa6360a2ba Another way to select between dark/light netname labels. 2016-05-02 16:08:50 +02:00
Maciej Suminski bda3011519 Initial support for bitmap fonts (OpenGL GAL). 2016-05-02 16:04:45 +02:00
Maciej Suminski 795fd28742 Set Stroke/Fill settings for stroke font in its Draw() function. 2016-05-02 15:56:17 +02:00
Maciej Suminski b143ce6b0f Moved text settings from STROKE_FONT to GAL. 2016-05-02 15:56:12 +02:00
Matthew Petroff db54f3e7a7 Correct multiple UI spelling errors 2016-05-02 10:01:43 -04:00
jean-pierre charras e46f706d4b Add Set/GetOrientationDegrees and GetOrientationRadians for texts, pads and footprints to avoid internal units to usual angle units conversion in code (and avoid mistakes).
It should help if (or when) the internal angle unit used in kicad will be changed from 0.1 degree (a relic of code written for PCs without fpu) to degree ( a more natural unit).
2016-05-02 12:49:14 +02:00
jean-pierre charras 8c76b92fa9 Fix a few shadowed local vars which make the code not so easy to analyze. 2016-04-29 13:10:31 +02:00
jean-pierre charras b92ad6f5a8 Add CSV file format in pcbnew position files (and cleanup code) 2016-04-26 14:16:16 +02:00
jean-pierre charras c1f0ab91a2 Code cleaning and coding style fix. 2016-04-23 17:44:17 +02:00
jean-pierre charras 53c031257d Fix a few shadowed local vars, and coding style issues. 2016-04-22 12:44:08 +02:00
unknown baa5f0ddfb Fix typos in dialogs. 2016-04-21 09:32:29 +02:00
jean-pierre charras d7f1400e44 Make strings only used in debug mode not translatable. 2016-04-21 09:19:08 +02:00
Wayne Stambaugh 2b6889bc7a Pcbnew: footprint text layer visibility improvements. (fixes lp:1527994)
* Always hide footprint text when the layer that the text resides is disabled
  in the layer manager.  There is no longer a difference between the value and
  reference text compared to other field text.
* The usual smattering of coding policy fixes and general code cleaning.
2016-04-20 11:28:44 -04:00
jean-pierre charras 67982a4851 stroke font: fine adjust of text horizontal position. edat_text: fix an issue in SetOrientation: the rotation angle is now constrained between -360 and +360 degrees.
It was previously not the case, and rotated texts outside this interval created issues in dialog_pcb_text_properties which have now validators.
2016-04-19 20:35:47 +02:00
jean-pierre charras fde2cfee27 Minor changes: remove a few local shadowed local variables detected using " -Wshadow" gcc compil option ( No bug, just a better code readability ) and fix minor coding style issues. 2016-04-18 20:15:44 +02:00