Commit Graph

5023 Commits

Author SHA1 Message Date
Maciej Suminski ee2b1ac321 Shortened code using VIEW & PAINTER classes in MODULE_TOOLS methods 2017-01-18 13:22:18 +01:00
jean-pierre charras f079b7f98b gendrill_Excellon_writer.*: make 3 helper methods private. Coding style fixes. 2017-01-17 20:37:14 +01:00
Wayne Stambaugh 56fbfeeb4a Do not use default board solder mask clearance in footprint editor.
The footprint editor was displaying the default solder mask clearance
defined by the temporary BOARD object created a start up.  Change the
temporary BOARD default solder mask to 0 so the pad or footprint solder
mask clearance setting is displayed when editing the footprint.

fixes lp:1653980

https://bugs.launchpad.net/kicad/+bug/1653980
2017-01-17 09:05:57 -05:00
jean-pierre charras fef40c96e2 Workaround for this issue: Pcbnew crashes on exit in OpenGL display mode when a footprint on the board was edited in the fp editor
Fixes: lp:1655858
https://bugs.launchpad.net/kicad/+bug/1655858
2017-01-17 13:17:14 +01:00
Maciej Suminski 004ca3c6f9 Fixed a memory leak in VIEW_ITEM (proper way of doing 9bc2bb2)
The problem with simple deleting VIEW_ITEM_DATA upon VIEW_ITEM removal was
caused by the default copy constructors that copied pointers.
Once a copy of an item was destroyed, the VIEW_ITEM_DATA has been
destroyed, effectively invalidating m_viewPrivData for the other item.
2017-01-16 14:57:50 +01:00
Chris Pavlina 8ac4790370 Remove icons from canvas selection menu in modedit
No OS renders the combination of icon AND radio button properly.
2017-01-15 07:12:02 -05:00
Chris Pavlina d442009e84 Use radio buttons in canvas selection menu items 2017-01-15 07:05:24 -05:00
jean-pierre charras d0db2de015 Cosmetic enhancement in pcbnew menubar: use specific icon in menuitems to switch canvases, and add a marker to the mode currently in use 2017-01-14 14:43:45 +01:00
John Beard c50d28d94d Access tools' TOOL_MENUs rather than CONDITIONAL_MENUs
This means that non-top-level tools, for example EDIT_TOOL and
PCB_EDITOR_CONTROL can submit their own menus to the top-level tool's
TOOL_MENU, which will then retain a reference to it and make it
available for the CONTEXT_MENU that is shown.
2017-01-12 14:34:03 +01:00
John Beard d7db84e282 Break out tools' common menu functions and ownership
Add a class TOOL_MENU, which provides a management class for a
CONDITIONAL_MENU and a set of CONTEXT_MENUs. The aim of this is to
provide a central place where all TOOL_INTERACTIVEs can get a "basic"
context menu that either they or other tools can register new items and
sub-menus against.

This means that "top-level" tools no longer need to manage the lifetimes
of any CONTEXT_MENUs that they add, and can also delegate simple menu
display functions.
2017-01-12 14:33:57 +01:00
Maciej Suminski da00d64877 OpenGL antialising code clean up & formatting 2017-01-11 16:20:37 +01:00
decimad 5a4e247564 EDA_DRAW_PANEL_GAL now takes the gal display options per dependency injection
Add a hack so that the pad properties base dialog constructor can pass in the dependency. Since the derived dialog's constructor takes the parent by this exact type, the static cast is safe.
2017-01-11 16:20:37 +01:00
decimad 77138e3702 Add UI control to set up gal opengl antialiasing and load/store the settings 2017-01-11 16:20:37 +01:00
decimad d04b3bdc27 Add Antialiasing option to dialog_display_options (Thank you Simon Richter) 2017-01-11 16:20:37 +01:00
John Beard 378f5cce33 Don't show separator in Select tool if not needed
If the SELECTION_TOOL's Select... menu is not shown, the separator under
it should also not be shown, so use the same SELECTION_CONDITIONS to
enforce this.
2017-01-11 11:15:25 +01:00
John Beard f1c5b9a9ae Add context menu to GAL DRAWING_TOOL, including the zone menu
Includes a tiny class for scoped set-reset of a variable, which is used
here to store the current drawing mode.

Fixes: lp:1218629
 * https://bugs.launchpad.net/kicad/+bug/1518629
2017-01-11 10:41:08 +01:00
John Beard 6baf0edc08 Line segments obey 45 degree preference in GAL
The GAL line segment tool now listens to the global line segment 45
degree locking preference, with Ctrl used to invert the behaviour. The
behaviour therefore follows the setting normally, and the user can
override when needed with Ctrl.

Fixes: lp:1635718
* https://bugs.launchpad.net/kicad/+bug/1635718
2017-01-11 09:57:55 +01:00
jean-pierre charras 853310da6e Remove duplicate definition of LAYER_PAIR, defined both in gendrill_Excellon_writer.h and specctra.h
Now, in gendrill_Excellon_writer.h it is DRILL_LAYER_PAIR, and in specctra.h it is SPECCTRA_ LAYER_PAIR
2017-01-10 20:12:50 +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 4f46f79cf0 dialog_footprint_wizard_list.cpp: allows updating (on request) python modules from this dialog.
This option reloads modules which are more recent than already loaded modules, and load new modules.
2017-01-09 14:44:24 +01:00
jean-pierre charras 9684031bc8 Fix I18n issue in dialog_design_rules.cpp 2017-01-09 14:19:02 +01:00
jean-pierre charras 1039b6dda7 Make dialog_footprint_wizard_list.cpp compilable when scripting is not enabled. 2017-01-08 08:25:04 +01:00
jean-pierre charras e72a3b99ee dialog_footprint_wizard_list: cosmetic enhancements. 2017-01-07 21:10:38 +01:00
jean-pierre charras e6a8294c56 dialog_footprint_wizard_list: add button to show the trace of errors when python scripts wizards failed to load. 2017-01-07 20:43:39 +01:00
jean-pierre charras 44cc728b25 enforce a control to avoid crash if pcbnew.py is an incorrect version (bad install). 2017-01-07 16:25:11 +01:00
jean-pierre charras 76a82dcd3b Dialog footprint wizard selector: better dialog (displays the wizard search path list) and allows double click to select a wizard 2017-01-07 13:39:47 +01:00
jean-pierre charras 56f8e10eb4 Footprint wizards management: Now display the list of not loadable footprint wizards in footprint wizard dialog.
Not loadable wizards are Python scripts having a syntax error or are not compatible scripts due to changes in API.
2017-01-06 20:15:23 +01:00
Chris Pavlina f407450732 Remove code referring to deleted variable 2017-01-05 20:11:37 -05:00
Diego Herranz 50cdd5cdf1 Pcbnew, plot dialog: grey out advanced net attributes if Gerber X2 is unchecked.
m_useGerberNetAttributes is useless if m_useGerberX2Attributes is not checked.
So disabled (greyed out) when Gerber X2 gets unchecked to make it clear to
the user.
2017-01-04 17:13:26 -05:00
Wayne Stambaugh 50a388fe56 Page setting menu entry consistency fixes.
Move the page setting menu entry from the edit menu to the file menu in
Eeschema so it is consistent with Pcbnew.

Change the page setting menu entry tooltip in Pcbnew so it is the same as
Eeschema.
2017-01-04 15:24:45 -05:00
jean-pierre charras 24192ff3d6 Add Micromatch connectors footprint wizard. Unfortunately, I don't remember the initial author of this script. 2017-01-04 20:01:15 +01:00
jean-pierre charras 995940e992 refinement 2017-01-04 16:17:40 +01:00
jean-pierre charras 02fa9639cd DIALOG_FOOTPRINT_WIZARD_LIST: minor enhancement. qrcode_footprint_wizard.py: use filled polygons instead of square pads on silkscren layer. 2017-01-04 15:03:43 +01:00
jean-pierre charras 1a464ab8c8 Coding style fixes 2017-01-03 18:04:35 +01:00
Oliver Walters 66ee44cb1f Footprint Wizards Update 2017-01-03 16:01:47 +01:00
Oliver d1278a48b6 UI Improvements for PCB Design Rules Dialog
* Added floating point validators for wxTextCtrl items relating to via and track sizes
* Prevent entering negative values
* Changed via option wxRadioButton pairs to wxCheckBox
* Toggling the OptAllowMicroVias checkbox toggles the enabled status of the microvia settings controls
* Cleanup of error message(s)
2017-01-02 12:50:13 -05:00
jean-pierre charras fff449ecf0 Performance counter rework: Add comments, fix coding style issues. 2016-12-31 13:00:24 +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 a9fbedfb12 More Coverity warnings fixes. 2016-12-30 14:36:23 +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
Chris Pavlina 6078ca85e5 Improve broken edge outline error message 2016-12-29 12:31:12 -05:00
jean-pierre charras a76f40be3b Pcbnew: fix compil issue when Python scripting isn't enabled. 2016-12-29 08:17:33 +01:00
Oliver 636e060c99 A few enhancements from a larger patch, not yet committed, for footprint wizards 2016-12-28 10:26:01 +01:00
jean-pierre charras 352f1a025c Better compatibility with previous Pcbnew versions: save diff pair prms only when values are not set to default values 2016-12-28 10:00:39 +01:00
jean-pierre charras 2972f6fbc7 Fix shadowed local variable 2016-12-20 17:51:55 +01:00
jean-pierre charras 9be5398cd2 Add bitmaps to Align/distribute menu ans menu items 2016-12-20 17:50:29 +01:00
Tomasz Włostowski b20323dc63 SELECTION: fixed pointer arithmetic-related segfault in operator[] 2016-12-20 12:01:09 +01:00
jean-pierre charras 3ffa37c8b9 Fixes: lp:1650524 (Trapezoidal pad solder mask is incorrect when the minimal solder mask width is 0)
https://bugs.launchpad.net/kicad/+bug/1650524
2016-12-18 13:03:15 +01:00
Maciej Suminski f631ae27b2 Fixed crash on DRC
Fixes: lp:1650360
* https://bugs.launchpad.net/kicad/+bug/1650360
2016-12-16 12:04:15 +01:00
Chris Pavlina 809e71abac Rename footprint attributes more understandably 2016-12-14 15:53:04 -05:00
jean-pierre charras 188d7812ec Disable Flip board view in Legacy mode (because the view cannot be flipped) 2016-12-13 21:24:29 +01:00
jean-pierre charras 0265a5bac5 Add a specific icon to the Flip board menuitem command 2016-12-13 19:36:17 +01:00
Maciej Suminski 139521750b Fixed a crash on finishing line drawing in the legacy FP editor
Fixes: lp:1649597
* https://bugs.launchpad.net/kicad/+bug/1649597
2016-12-13 17:25:34 +01:00
Maciej Suminski b1e37ae1dc Fixed a few warnings (dialog_track_via_properties.cpp) 2016-12-12 18:01:09 +01:00
Maciej Suminski c8676db84e Fixed panning & cursor control with arrow keys in flipped view 2016-12-12 16:45:52 +01:00
Maciej Suminski 027515f4e1 Fixed refreshing after flipping the view 2016-12-12 16:45:52 +01:00
Maciej Suminski 7ad5fca6de More code formatting, updated copyright headers 2016-12-12 16:45:52 +01:00
Maciej Suminski 07c7334238 Moved 'Flip View' menu entry
Under Windows wxWidgets there is a problem with the last menu
item having wxITEM_CHECK flag.
2016-12-12 16:45:52 +01:00
Maciej Suminski f94c10b453 Fixed a warning in release builds 2016-12-12 16:45:52 +01:00
Maciej Suminski c96db4f5c4 Removed aCreateUndoEntry flag from COMMIT::Push()
It was not used anywhere and COMMIT should handle creating
undo buffer entries.
2016-12-12 16:45:52 +01:00
Maciej Suminski 89055c4425 Code formatting 2016-12-12 16:45:52 +01:00
Tomasz Włostowski da28e163d2 Optimizations/fixes to the VIEW/GAL classes:
- much faster Cairo rendering (outperforms legacy)
- improvements in VIEW update handling
- fixed issue with grid rendering in flip view mode
2016-12-12 16:45:52 +01:00
Tomasz Włostowski 3f7c5a0845 fixed post-rebase issues 2016-12-12 16:45:52 +01:00
Tomasz Włostowski c661c30f68 pcbnew: added flip view mode 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
Tomasz Włostowski 27a10e8597 Multiple simplifications to GAL tools in PCBNew:
- Finalize transition to BOARD_COMMIT (removed all remaining uses of PICKED_ITEMS_LIST) and implicit view/ratsnest updates
- Simplified SELECTION class, it now can be directly added to a VIEW
- Removed unnecesary casts and templates
- Introduced C++11 features (range based for, lambdas) where they improve code readability
- Added non-undoable COMMITs, which can be used to propagate change notifications to interested listeners (e.g. ratsnest/view)
2016-12-12 16:45:52 +01:00
Tomasz Wlostowski 5476e97bfa Pcbnew: fix segfault when importing netlist with no footprint assignments.
Fixes lp:1647803

https://bugs.launchpad.net/kicad/+bug/1647803
2016-12-10 10:20:21 -05:00
jean-pierre charras 3d89fb640a Fix an issue in github plugin, when a library is not found (perhaps due to changes in curl 2016-12-07 18:06:26 +01:00
Heikki Pulkkinen f660771ecf Fix redundant via removal code 2016-12-07 17:14:41 +01:00
Maciej Suminski 29ab646e7c Fix 'remove dangling tracks' in board cleanup code
Code removing dangling tracks is called in a loop until
there are no more changes, and relies on removing tracks
instanly. Previously the tracks to be removed were added to
a set and removed in one go, so only one segment for each
dangling connection was removed.
2016-12-07 17:10:43 +01:00
Maciej Suminski e37488f145 Minor code simplification in BOARD_COMMIT 2016-12-07 16:50:23 +01:00
jean-pierre charras 6d6542e133 Gerber file generation: in X1 format, in header, use structured comments instead of basic comments.
(a structured comment starts by "G04 #@! " followed by a X2 attribute, and is a comment for old Gerber readers)
2016-11-30 17:48:31 +01:00
Maciej Suminski 524dddaf70 Sync the PNS model when its changed 2016-11-28 15:51:18 +01:00
Maciej Suminski 89a5f8ce69 Remove boost::bind from BOARD_COMMIT 2016-11-28 15:51:18 +01:00
Maciej Suminski bb1390e2f1 Modify TRACKS_CLEANER to use BOARD_COMMIT 2016-11-28 15:51:18 +01:00
Maciej Suminski abb3524563 Code formatting (clean.cpp) 2016-11-28 15:51:18 +01:00
jean-pierre charras 30df041de6 fix shadowed local variables 2016-11-25 18:17:34 +01:00
jean-pierre charras bcfc1e7a3f fix shadowed local variables 2016-11-25 16:00:42 +01:00
jean-pierre charras 6d7f0b45f4 dialog_export_step_base: cosmetic enhancements, add tool tips and better messages. 2016-11-25 12:05:51 +01:00
jean-pierre charras ccdfabc866 Add tool tips to autosave widget in dialogs (pcbnew and eeschema) 2016-11-22 11:26:32 +01:00
Wayne Stambaugh 64c892ee23 Make footprint ID into a generic library ID.
Rename FPID to LIB_ID as is now used as a generic library identifier and
is no longer specific to footprints.

Remove all mention of footprint from the new LIB_ID doxygen comments and
code.

Rename files fpid.h and fpid.cpp to lib_id.h and lib_id.cpp.

Rename fp_lib_table.keywords file to lib_table.keywords and adjust CMake
build dependencies accordingly.

Update all source files effected by the code and file name changes.

Update .gitignore for file name changes.
2016-11-20 18:35:08 -05:00
Wayne Stambaugh b9c296420a Complete library table and library table row refactor.
Derive LIB_TABLE_ROW from boost::noncopyable for use in boost pointer
containers.

Use std::unique_ptr to manage PROPERTIES pointer.

Add clone support for boost pointer containers.

Split common library table code out from FP_LIB_TABLE into base LIB_TABLE
object.  The FP_LIB_TABLE object only contains the code specific to
footprint library tables.

Use boost::vector_ptr for storing library table row objects.

Fix move up and down bugs in footprint library table edit dialog.
2016-11-19 17:16:43 -05:00
Diego Herranz 90897d4983 Pcbnew, plot dialog: fix incorrect wording. 2016-11-19 09:48:32 +01:00
jean-pierre charras 19ce3f276c Fixes: lp:1642864 (Pcbnew Eagle import layer 48 incorrectly mapped)
https://bugs.launchpad.net/kicad/+bug/1642864
2016-11-18 13:19:05 +01:00
jean-pierre charras f53cfe58bd Pcbnew: fix outdated environment vars settings for Kicad python on Windows:
On Windows, previously, Pcbnew try to set env vars PYTHONPATH, if <kicad>/bin/python27_us folder is found.
Now, if python.exe is found in kicad bin folder (therefore if our python executable and libs are
installed in Kicad), PYTHONPATH and PYTHONHOME are set to an empty string.
( the default python path work fine with our standard python install )
2016-11-14 08:23:02 +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
jean-pierre charras 9ab7cfea0c * Pcbnew: in fill zones calculations, make polygons strictly simple before fracturing them. 2016-11-06 19:51:09 +01:00
jean-pierre charras 941eeee4d1 Fixes: lp:1638499 (footprint editor, footprint transform: incorrect mirror for pads (noticeable only for pads with offset)
https://bugs.launchpad.net/kicad/+bug/1638499
2016-11-02 12:55:19 +01:00
Wayne Stambaugh 192d4b87ad Rework footprint library table for use in symbol library table.
Factor out ROW object from FP_LIB_TABLE so it can be reused to create a
symbol library table row object.

Create base LIB_TABLE_ROW object from ROW object common code.

Derived FP_LIB_TABLE_ROW object from LIB_TABLE_ROW to provide support for
footprint library table rows.

Update all instances of FP_LIB_TABLE::ROW with FP_LIB_TABLE_ROW.

Purge wxT() macros from modified files where possible.
2016-10-28 09:12:28 -04:00
jean-pierre charras 89f9b7df5c Pcbnew: when update PCB from schematic, spread footprints also in legacy mode. Remove also one useless undo command level after update. 2016-10-25 15:34:59 +02:00
jean-pierre charras 4ee344e150 Gerber files: Enable net attributes options in plot Gerber dlg and fix net attribute for "no net" tracks and vias (netcode <= 0). 2016-10-23 19:43:31 +02:00
jean-pierre charras 1840c3c4c7 Eeschema/Pcbnew: Update PCB From Schematics tool: ensure the netlist is reliable: warn user if a component is not annotated before exporting the netlist to Pcbnew (like in netlist creation dialog). 2016-10-22 20:02:15 +02:00
Maciej Suminski 74b5858665 Fixed a crash when removing zones using the Global Deletion dialog
Fixes: lp:1635266
* https://bugs.launchpad.net/kicad/+bug/1635266
2016-10-20 17:15:50 +02:00
jean-pierre charras ce83410c52 export_vrml.cpp: fix shadowed variable. 2016-10-20 13:20:49 +02:00
jean-pierre charras 45e67d25dd Fixes: lp:1635018 (Per-footprint tedit timestamp updated even when footprint isn't (updated at loading time, not after edit))
https://bugs.launchpad.net/kicad/+bug/1635018
2016-10-20 13:20:00 +02:00
Tomasz Włostowski 4d180efa5f router: correct handling of per-pad/per-module clearance 2016-10-19 17:54:00 +02:00
Henner Zeller cd49ff0120 Pcbnew: prevent reversal of pad loading order when loading board.
When opening a board file and storing it again, the pads in all
embedded modules get reversed.  This is generally not really nice
if the PCB is managed by version control as it creates churn and
could make merges hard.
2016-10-17 10:07:29 -04:00
jean-pierre charras d167407d1a Pcbnew: add "edit all tracks and vias" command in edit menu.
Previously, this command was accessible only by right clicking on a track and only in the legacy mode.
2016-10-14 21:07:39 +02:00
jean-pierre charras 038f8713ce Pcbnew: trace length calculations:
fix incorrect calculation when a small segment at the end of the track was inside a pad: it was not taken in account.
Fix also the len die values not always taken in account (references to pads at end of track not always stored)
This is a partial fix of bug 1628585.
2016-10-14 10:35:08 +02:00