Commit Graph

5399 Commits

Author SHA1 Message Date
Jeff Young 998fe12a5a Make sure COMMON_TOOLS initializes the grid. 2020-06-13 22:44:16 +01:00
Jeff Young c48f4272f3 Collapse a level out of the zoom settings.
The APP_SETTINGS_BASE now holds the list of zoom factors, and
the old legacy (screen-based) code has been removed.
2020-06-13 22:44:16 +01:00
Jeff Young fc44506fe1 Give up on enforcing non-defined-internal-units.
It results in trade-offs in packaging and/or conidtional compilation
which are worse than the disease.
2020-06-13 22:44:16 +01:00
Seth Hillbrand a02d8a5993 Fix a number of signed/unsigned comparisons 2020-06-13 11:55:59 -07:00
Jeff Young f84406009b Push a couple of layers of indirection out of grid settings. 2020-06-13 11:35:56 +01:00
Ian McInerney 60915fbc76 Default canvas scale setting to automatic on OSX
Fixes https://gitlab.com/kicad/code/kicad/issues/4652
2020-06-12 18:39:08 +01:00
jean-pierre charras 1973153368 Gerber plotter: ensure the gerber region for a round rect pad is always closed.
Due to rounding issues, sometimes (especially for rotated pads) the region
(4 segments+4 arcs) was incorrectly closed (1 unit (nanometer) mismatch between
start point and end point.
Although it does not create bad shape, its breaks the round rect pad identification
in CAM tools.
start point and end point are now the same.
2020-06-12 10:22:19 +02:00
Ian McInerney 4d6abfdf05 Fix DELETE in Scintilla
The previous method would act like backspace at the end
of the string
2020-06-05 14:24:26 +01:00
Jeff Young 22b8133108 Change DELETE behaviour from delete sel to delete forward.
In other words, if there's no selection delete the character in
front of the cursor.

Fixes https://gitlab.com/kicad/code/kicad/issues/4609
2020-06-05 14:09:09 +01:00
Ian McInerney 4357c1d3b3 Coverity and compiler warning fixes
* Initialize variables
* Test dynamic casts

Fixes https://gitlab.com/kicad/code/kicad/issues/4620
2020-06-05 12:50:56 +01:00
Ian McInerney ab83c86210 Remove the platform-specific GetBackendScalingFactor from HIDPI_GL_CANVAS
The scaling factor stored inside the canvas is created by a DPI_SCALING
helper, which will call the platform-specific functions if no user scaling
is specified. This change only affects OSX and Retina displays, so this
now also allows custom scaling to be used on OSX if desired (although it
shouldn't be needed, since wx has detection for it in 3.0.4).
2020-06-05 00:15:54 +00:00
Jeff Young 0ddf53397f Make sure CvPcb gets its Cancel button fixed up.
It's no longer a DIALOG_SHIM so it can't depend on its fixup.

Fixes https://gitlab.com/kicad/code/kicad/issues/4611
2020-06-04 22:35:01 +01:00
Jeff Young b274b9f972 Fix type-checking which was too tight.
Also fixes a typo leaving the return statement in the wrong place.

Fixes https://gitlab.com/kicad/code/kicad/issues/4611
2020-06-04 22:35:01 +01:00
Johannes Pfister 8e8979e317 Fixed a memory leak in CONDITIONAL_MENU
CONDITIONAL_MENU::ENTRY now owns the wxItem object.
2020-06-04 19:08:59 +00:00
Ian McInerney d46f9a5273 Give the 3D viewer an infobar & Infobar upgrades
ADDED: Infobar warning in 3d viewer for board outline issues
2020-06-04 00:13:27 +01:00
Wayne Stambaugh 0032845f9e Fix clipped bitmap buttons with GTK on Linux.
A note to developers, please do not set the minimum and/or size of bitmap
buttons.  It causes bitmaps to get clipped using GTK on Linux.  If the
bitmap button size is not acceptable, then supply an appropriately sized
bitmap rather than attempt to force the wxWidgets sizing mechanism to do
what you want.  This almost always causes platform differences that do
not work well.
2020-06-03 14:01:44 -04:00
Ian McInerney a843c74529 Add new kiplatform library for platform-specific code
* Implement ReparentQuasiModal for OSX natively
* Implement ForceFocus of OSX natively

This change means we no longer rely on the kicad-specific functions in our osx wx fork.
2020-06-03 14:58:54 +00:00
Ian McInerney 57e35c9a60 Fix infobar bitmap size
Fixes https://gitlab.com/kicad/code/kicad/issues/4514
2020-06-02 00:20:08 +01:00
Jeff Young 7aaf72c473 Improve visuals of html error reporting. 2020-06-01 22:00:03 +01:00
jean-pierre charras 59523efc1a Eeschema: fix a crash after reopening the ERC dialog, after changes in schematic.
When the ERC is run and a component has a ERC error linked to it, if it is deleted,
when reopening the ERC dialog, the dialog crashed due to a not found item
(null pointer use)
2020-06-01 19:42:16 +02:00
Jon Evans daad2824c5 Add ability to skip JSON writes if the params aren't modified 2020-05-30 18:07:24 -04:00
Jeff Young 0741bbb1b9 Move autocomplete to the remove filtered items paradigm.
Fixes https://gitlab.com/kicad/code/kicad/issues/4190
2020-05-30 20:09:09 +01:00
Jeff Young 449c90a0ae Some more work on getting wxWidgets to stop stealing textEntry keys.
Fixes https://gitlab.com/kicad/code/kicad/issues/1941
2020-05-30 12:32:33 +01:00
Jeff Young a6eaa3257a Autocomplete for page layout editor text items. 2020-05-30 10:22:50 +01:00
Jon Evans fbef52ec33 Don't process hotkeys on text entries
Thanks @jeffyoung for the suggestion

Fixes https://gitlab.com/kicad/code/kicad/-/issues/4463
Fixes https://gitlab.com/kicad/code/kicad/-/issues/1941
2020-05-29 21:20:44 -04:00
Jeff Young 112316cdfb Fixup kiway by hand when dynamic_cast fails.
Also allows a shortened version of Configure Paths without the 3D
paths when Pcbnew isn't already running.

Fixes https://gitlab.com/kicad/code/kicad/issues/4568
2020-05-29 22:06:48 +01:00
Wayne Stambaugh b624c7090a Deprecate saving legacy schematic and symbol library file formats.
REMOVED: The ability to save schematics in the legacy file format.
2020-05-29 12:43:00 +00:00
Jeff Young e8524163db Another attempt to reconcile GTK and OSX slider spacing. 2020-05-28 23:07:16 +01:00
Jeff Young f4e7e201d8 Use a big hammer when beating wxWidgets over the head. 2020-05-28 22:18:30 +01:00
Jeff Young b06a454559 Try and find settings that look good on both OSX and GTK. 2020-05-28 21:41:17 +01:00
Jeff Young 8f533e1833 A bit of dialog cleanup. 2020-05-28 19:59:18 +01:00
Jeff Young 2c0f3c8088 Recurse into title block fields when resovling text vars.
Fixes https://gitlab.com/kicad/code/kicad/issues/4554
2020-05-28 17:36:22 +01:00
Jeff Young 9f2be3714f Add unresolved variable testing for worksheet items. 2020-05-28 17:36:22 +01:00
Jeff Young fe4fd19c66 Fix crash bug in unicode chars with Scintilla. 2020-05-28 00:23:18 +01:00
Jeff Young 8b084c373e Autocomplete for text variables.
Fixes https://gitlab.com/kicad/code/kicad/issues/4190
2020-05-27 23:29:51 +01:00
Jeff Young e4f4de0221 Improve spacing in migrate settings dialog.
Fixes https://gitlab.com/kicad/code/kicad/issues/3989
2020-05-27 23:29:51 +01:00
Jon Evans 40dc7a5eef Update legacy migration of common settings for mousewheel pan 2020-05-26 21:43:59 -04:00
Jon Evans 695cdbbde8 Move bug reporting to COMMON_CONTROL; add to Help menu
Also make a shorter version of the version info string
and some other shortening edits to the issue template
to fix occasional 500 errors thrown by Cloudflare due
to excessively long URLs

Fixes https://gitlab.com/kicad/code/kicad/-/issues/3953
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4272
2020-05-26 21:18:32 -04:00
Jon Evans c6a6c071cf PDF Plotter: avoid assert if default pen width is zero 2020-05-26 21:17:39 -04:00
jean-pierre charras 8226e5f0e2 Minor fix: add Fab layers to the assembly layers list. 2020-05-26 19:57:22 +02:00
Wayne Stambaugh f262e08d40 Symbol editor: fix crash when editing new symbol value field.
This also fixes an ASAN accessing deleted memory warning.  See the issue
tracker comments for more information.

Fixes https://gitlab.com/kicad/code/kicad/issues/4471

(cherry picked from commit a16e9ac76a)
2020-05-26 13:20:32 -04:00
Jon Evans 711fc999f2 Coverity fixes 2020-05-25 19:29:41 -04:00
Jeff Young 1db799d841 Implement "disallow" rules and integrate with keepout settings. 2020-05-25 22:51:47 +01:00
Jeff Young c415130de9 Improve parse error messages. 2020-05-25 22:51:47 +01:00
Jeff Young 160981ee71 Better error reporting for DRC rule parsing. 2020-05-25 22:51:47 +01:00
Jeff Young 416d82727f Redo DRC rules to get ready for new system. 2020-05-25 22:51:47 +01:00
jean-pierre charras 077611b8f1 BITMAP_BASE, Eeschema: fix incorrect position of the bitmap when printing.
The previous calculation was not compatible with aDC->SetTransformMatrix()
used in PrintPage in Eeschema.
2020-05-25 07:51:46 +02:00
Jon Evans 237bf35362 Fix accidental revert of touchpad to trackpad 2020-05-24 16:24:43 -04:00
Jon Evans a52435bbb0 ADDED: New mouse settings panel, expanded mouse settings
You can now choose the behavior of dragging with the
middle and right mouse buttons.

You can also choose which modifier keys to use for
panning and zooming with the scroll wheel or trackpad.

You can also customize the zoom speed, which makes
it possible to have a good zoom experience on a wider
range of input devices.

You can also now zoom by dragging with the right or
middle button if desired.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/3885
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4348
2020-05-24 14:38:28 -04:00
Jon Evans c7daf8a8f3 ADDED: Cross-probe highlighting of bus members
Note: this is a basic implementation but it could be
improved once we include bus information in the netlist
and pcbnew can natively keep track of buses and nets
instead of just nets.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/4158
2020-05-24 13:30:23 -04:00
Ian McInerney a6e9efbe57 Add icon for schematic reverse annotation
Fixes https://gitlab.com/kicad/code/kicad/issues/4527
2020-05-24 12:13:48 +01:00
Ian McInerney c7e512852a Fix escape key event propagation regression from bdf94916
The escape key event shouldn't be propagated after the first
tool dispatcher. Propagatint it causes it to go to parent frames,
which can mean problems arise (such as in cvpcb, where an
escape key press in the fpviewer frame was closing the main
cvpcb window when it is propagated).
2020-05-24 11:58:33 +01:00
Ian McInerney 4ecf99e7c8 Give the footprint viewer a toolbar and remove the options dialog
CHANGED: Cvpcb fpviewer and the pcbnew fpviewer no longer have an options dialog
ADDED: Add a side toolbar to the pcbnew footprint viewer (and the measure tool)

This also cleans up some of the settings structs in the viewers, since
it was somewhat confusing before.

Fixes https://gitlab.com/kicad/code/kicad/issues/2205
2020-05-24 11:58:33 +01:00
Ian McInerney 6692935808 Consolidate common viewer actions across cvpcb and pcbnew frames
* Consolidate the measure tool into one tool (this gives cvpcb
  unit changing and snapping capabilities in its measure tool)
* Transition cvpcb to use actions for the sketch modes
* Replumb how magnetic items settings are stored and used
2020-05-24 11:58:33 +01:00
Stefan 7e6b2211e0 Add Assembly pcbview to pcb_layer_widget 2020-05-22 20:40:53 +00:00
Ian McInerney fca7ade81f Move to the AUI version of the infobar
The sizer-based version had issues with the event processing
inside the GAL panel on Windows systems.

Fixes https://gitlab.com/kicad/code/kicad/issues/4501
2020-05-21 18:22:56 +01:00
Jon Evans 7c7b7f41da Move SCH_SCREEN project access to SCHEMATIC
SCH_SCREEN no longer needs to be a KIWAY_HOLDER
2020-05-20 22:27:48 -04:00
Ian McInerney a49fde5ce0 Fix the UI for the infobar
* Remove the animations on show/hide
* Give the button a small right border
2020-05-20 20:16:34 +01:00
Ian McInerney b5dc213d76 Fix infobar sizer issue for wx 3.1
On wx 3.1, the sizer was iving too much space to the infobar.

Fixes https://gitlab.com/kicad/code/kicad/issues/4501
2020-05-20 19:00:19 +01:00
Ian McInerney 73a1ce3e84 Move eeschema find notification to the infobar and improve the infobar widget
* Move it to a panel along with the canvas to have a better UI
* Allow the infobar to automatically close after a set time

CHANGED: The eeschema find notifications now use the infobar instead of
a popup window
2020-05-20 02:31:47 +01:00
Ian McInerney 2bc57ade28 Cleanup parentage inside the draw panels 2020-05-20 02:23:46 +01:00
Jeff Young 0aaccfbb28 Save hole-to-hole-min to file. 2020-05-19 20:48:47 +01:00
Ian McInerney a2f027e063 Add an infobar widget to display information above the canvas
This widget allows for non-intrusive display of text
above the editing canvas. Currently, this is used
for displaying the read only status of the files.
2020-05-19 00:46:33 +01:00
Jon Evans d7bd4c9b04 Move Eeschema globals to new SCHEMATIC object
Set up a new lineage for SCH_ITEMS to get back to the SCHEMATIC
they live on: Items will all be parented to the SCH_SCREEN that
they are added to, and each SCH_SCREEN will point back to the
SCHEMATIC that it is part of.  Note that this hierarchy is not
the same as the actual schematic hierarchy, which continues to
be managed through SCH_SHEETs and SCH_SHEET_PATHS.
2020-05-18 13:04:56 -04:00
Jeff Young c7da63151c Clamp egregiously large numbers when plotting.
This keeps some plot file viewers (such as Acrobat) from choking.

Fixes https://gitlab.com/kicad/code/kicad/issues/4408
2020-05-18 13:38:17 +01:00
Jeff Young f5bbf24047 Cleanup unused code that was masking earlier stroking bug. 2020-05-18 13:38:17 +01:00
Jeff Young 21ae7907f2 Don't stroke text. Stroking is for move/line statements. 2020-05-18 13:38:17 +01:00
Jeff Young d8a74c13b8 Fix a syntax error in the PDF generator.
The /Trapped key needs to be the name False, which is not the same
as the boolean false.  Thanks PDF, that's clear as mud.
2020-05-18 13:38:17 +01:00
Ian McInerney e662e33104 Store the current filename in the history on close 2020-05-17 00:12:49 +01:00
Ian McInerney 613c020920 Move the file history into the frames 2020-05-17 00:12:49 +01:00
Jon Evans f2e003147e ADDED: Enable color themes for PcbNew printing 2020-05-16 13:19:43 -04:00
Jon Evans d599648ec7 ADDED: Enable color themes for schematic printing 2020-05-16 13:19:43 -04:00
Jeff Young d3f017d825 DRC rules parser and engine.
Fixes https://gitlab.com/kicad/code/kicad/issues/2182

Fixes https://gitlab.com/kicad/code/kicad/issues/2116

Fixes https://gitlab.com/kicad/code/kicad/issues/1958

Fixes https://gitlab.com/kicad/code/kicad/issues/1965
2020-05-16 15:53:05 +01:00
Jon Evans 92ce7caf9a Remove extra write to common view control settings
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4458
2020-05-15 21:37:17 -04:00
jean-pierre charras 3f8d11144e Avoid crash when reading a json config file having an unexpected parameter value.
Now print the json path in debug mode instead of crashing.
In release mode, skip the parameter (the default value is still used)

Fixes #4451
https://gitlab.com/kicad/code/kicad/issues/4451
2020-05-15 15:02:40 +02:00
emC5RgViIK 47297402d3 #include <algorithm> so std::sort is found. 2020-05-15 10:49:43 +00:00
Jeff Young 37adf7d3d5 Add text field for color definitions.
You can enter HTML notation, CSS 3-value notation (rgb), or CSS
4-value notation (rgba).  It will always print rgba.

Fixes https://gitlab.com/kicad/code/kicad/issues/4016
2020-05-15 00:18:15 +01:00
Jeff Young 3a9746c657 Add ~ processing in env vars.
Fixes https://gitlab.com/kicad/code/kicad/issues/1829
2020-05-13 23:45:32 +01:00
Jeff Young c9bf2eaa1d Fix PDF syntax error. 2020-05-13 18:04:08 +01:00
Jeff Young bcea2019d4 Unify support for line width magic cookies.
They were added for the Gerber plotter but once there there's the
expectation by others that they'll work.
2020-05-13 17:56:47 +01:00
Jeff Young a632e5fbdb Fix same parsing issue in PCBNew.
Fixes https://gitlab.com/kicad/code/kicad/issues/4416
2020-05-12 20:38:58 +01:00
Jeff Young 301ac3461c Fix some more pen width issues from global removal.
Fixes https://gitlab.com/kicad/code/kicad/issues/4408
2020-05-12 15:20:17 +01:00
Jeff Young 06dea92bcb Fix issues with Kicad Manager frame and new kicad_sch files.
Fixes https://gitlab.com/kicad/code/kicad/issues/4410
2020-05-12 15:20:17 +01:00
Jeff Young 74ee143d45 Add via annulus minimum. 2020-05-11 22:56:09 +01:00
Jeff Young 1fb51d29ab Reverse interpretation of triple-tilde.
Fixes https://gitlab.com/kicad/code/kicad/issues/4396
2020-05-11 22:56:09 +01:00
Jon Evans 108cf23892 Restore separate libedit settings for common settings params
Be careful when calling config() in eeschema/libedit/pcbnew/modedit
It's usually not the thing you want.

A better fix for #4389
2020-05-10 18:02:58 -04:00
Simon Richter 632494cba7 Add missing includes
A few more instances of missing <algorithm> for std::max
2020-05-10 00:24:11 +02:00
Simon Richter 2341b69840 Make sure that Ninja knows the version header (fixes #4209)
This is required, because Ninja otherwise doesn't properly rebuild after
updating the version string header file.

Because BYPRODUCTS requires CMake 3.2, bump the minimum version and remove
now unused compatibility code for older CMake versions.
2020-05-09 15:25:33 +00:00
Jeff Young 3c3984a6fc Generalize default footprint fields.
Fixes https://gitlab.com/kicad/code/kicad/issues/2289
2020-05-08 23:30:33 +01:00
Jeff Young 8efa8af8cc Add persistence of DRC error severities. 2020-05-07 17:51:27 +01:00
Jeff Young 0f8c7ffd11 Add pad keepout and footprint keepout areas.
Fixes https://gitlab.com/kicad/code/kicad/issues/2365
2020-05-07 17:51:27 +01:00
Ian McInerney 18cd0cdb58 Don't copy the items being iterated 2020-05-06 22:37:13 +01:00
Jeff Young 001a50bf14 Moved PANEL_COLOR_SETTINGS from buttons to swatches.
This allows us to correctly display non-100%-opacity colors (ie:
over the correct background color).
2020-05-06 19:02:21 +01:00
Ian McInerney c43122a45f Get the undecorated window size on GTK when saving the window config
The window decorations introduce an offset to our window size, since
they are not used when restoring the window size at startup they are
added by the window manager again.

Fixes https://gitlab.com/kicad/code/kicad/issues/4278
2020-05-06 14:53:15 +01:00
Jon Evans 9916f24fab Split out footprint editor color settings
Migrate COLOR_SETTINGS 0->1 to remove fpedit section
Migrate FOOTPRINT_EDITOR_SETTINGS 0->1 to use new theme if created
Remove COLOR_CONTEXT that is no longer needed
2020-05-05 21:46:00 -04:00
Jon Evans 66eb84097a Auto-size theme list 2020-05-05 21:46:00 -04:00
Jon Evans d00df0169f A few tweaks to settings migration infrastructure 2020-05-05 21:46:00 -04:00
Jon Evans c0a345882e Fix schema version for APP_SETTINGS_BASE derivatives 2020-05-05 21:46:00 -04:00
Ian McInerney e4b6487fca Overhaul compiler warnings infrastructure
* Track our warnings separate from normal flags
* Remove all warnings from the SWIG code
* Add more GCC warnings
2020-05-06 01:47:20 +01:00
Jeff Young 67bccaf465 Make indeterminate control states clearer for the user.
Fixes https://gitlab.com/kicad/code/kicad/issues/4313
2020-05-05 20:26:51 +01:00
Jeff Young e0da677d4d Add min clearance to DRC; rename Min Via Drill to Min Through Hole.
Also fixes a crash bug when ignoring a DRC violoation with multiple
markers.

Fixes https://gitlab.com/kicad/code/kicad/issues/2528
2020-05-04 22:08:36 +01:00
Wayne Stambaugh 169f63a6c0 Eeschema: make schematic sharing truly safe across all designs.
There has been a long standing (since the beginning of the project?)
issue with sharing schematics between projects.  It has been somewhat
supported for complex hierarchies (a sheet shared multiple times in a
single design) but it has not been well supported for simple hierarchies
(the symbol references cannot be changed in the shared schematic).  This
issue has been resolved by moving all of the symbol instance sheet paths
from the symbol definitions in the all of the project files and save all
symbol path instances in the root sheet.  This ensures that orphaned
symbol instance paths do not accumulate in shared schematic files and
that designs that reuse schematic in simple hierarchies can how have
different references.  It also allows the root schematic from one project
to be uses as a sub-sheet in another project.

When legacy schematics are loaded, all sheet and symbol UUIDs are
converted from time stamps to true UUIDs.  This is done to ensure there
are no sheet path instance clashes between projects.  That being said,
there are no checks for this.  It is assumed that the probability of
UUID clashes is so low that it doesn't make sense to test for them.
2020-05-04 12:40:03 +00:00
Jeff Young bdf9491682 Re-factor the event whitelist stuff so that it doesn't promise what it can't deliver. 2020-05-03 20:56:32 +01:00
Jeff Young a3486b7cd4 Fix ESC handling with whitelist. 2020-05-03 20:56:32 +01:00
jean-pierre charras da05b43a9f DIALOG_SHIM: fix incorrect escape key handling.
Fixes #4304
https://gitlab.com/kicad/code/kicad/issues/4304
2020-05-03 12:52:27 +02:00
Jeff Young 199bb2ffb0 Add hittesting for worksheets in Pcbnew and Eeschema.
Fixes https://gitlab.com/kicad/code/kicad/issues/4282
2020-05-03 00:07:38 +01:00
Wayne Stambaugh 0d1bb10771 Fix common preferences panel control padding. 2020-05-02 18:32:54 -04:00
Wayne Stambaugh 8d0b2dcfd3 Fix path configuration dialog control padding. 2020-05-02 16:48:39 -04:00
Jeff Young cf7ffda5f6 Performance improvements for Gerber loading.
The entire issue (at least on OSX) was the layers palette.  Go
figure.

Fixes https://gitlab.com/kicad/code/kicad/issues/1892
2020-05-02 21:10:40 +01:00
Jeff Young 73eda91ec7 Allow some events to run behind a modal dialog.
Right now this is just unit switching.

Fixes https://gitlab.com/kicad/code/kicad/issues/2344
2020-05-02 14:37:24 +01:00
Simon Richter 5acee1962e Add missing include
We need <algorithm> for std::max
2020-05-02 11:19:04 +00:00
jean-pierre charras 02e91807ab Avoid marking an empty string translatable (create issues with translation tools).
Fix also a minor compil warning.
2020-05-02 10:35:40 +02:00
Jeff Young 10614a9ebc Implement changes for Sketch Pads to Fab Layers.
Includes adding Fab Layers to default text & graphic settings.

Fixes https://gitlab.com/kicad/code/kicad/issues/1885

Fixes https://gitlab.com/kicad/code/kicad/issues/2274
2020-05-01 18:49:42 +01:00
Jeff Young 4a60b8a776 Improve DRC error reporting and fix some bugs. 2020-05-01 18:49:42 +01:00
Jeff Young 9d6b987ecc Fixes to map pin-to-pin erorrs to new Warning/Error strucutre. 2020-05-01 18:49:42 +01:00
Jeff Young a56191b658 Add distances to a bunch of DRC violation reports. 2020-05-01 18:49:42 +01:00
jean-pierre charras b7e7d6fd5c DIALOG_CONFIGURE_PATHS: Fix crash when deleting the last item in list.
When the list (in 3D search path list) contains only one item, when trying
to remove this last item, the crash happened.
2020-04-30 20:42:40 +02:00
jean-pierre charras 687c2f3e82 eeschema: fix a readability issue for small texts.
Texts were drawn with a minimal line thickness = GetDefaultPenWidth().
The default pen width can be to large for small texts.
So the actual text thickness is now always clamped.
2020-04-30 09:38:23 +02:00
Wayne Stambaugh b1e1e22a5e Fix minor hot key panel layout padding issue. 2020-04-27 12:57:16 -04:00
jean-pierre charras 3e287160d8 gal/opengl: better message for checkGlError() unknown error sub-type
in GL_INVALID_FRAMEBUFFER_OPERATION main error.
The returned error code is now printed in the error message.
2020-04-27 14:46:53 +02:00
Jeff Young 1daa2224d0 Tidy up the layout of the Colors Editor. 2020-04-27 11:59:57 +01:00
jean-pierre charras 5340046747 base_units.cpp: better fix for a overzealous gcc compil warning than 4f369801 fix.
(Replaced a useless break by a default case with a debug warning)
2020-04-27 10:12:01 +02:00
Ian McInerney d006acecf4 More window sizing fixes
* Push all sizing operations into EDA_BASE_FRAME
* Save the unmaximized window size when maximizing
  so that we can then save it in the config if the
  window is maximized. Otherwise the config ends up
  with the maximized size saved, and weird behavior
  occurs when unmaximizing on the next opening.
2020-04-27 00:14:12 +01:00
Marek Roszko 127df701da Remove unnecessary wxPaintEvent from SPLIT_BUTTON 2020-04-26 20:52:28 +00:00
jean-pierre charras 4f369801f2 Fix a few compil and Coverity warnings. 2020-04-25 08:49:16 +02:00
Ian McInerney 99dcadf7e6 Introduce new KI_FALLTHROUGH macro
Annotate purposeful fallthroughs in switch statements with the
KI_FALLTHROUGH macro.
2020-04-25 00:44:09 +01:00
Jeff Young 2fb2eac4d5 Performance enhancements. 2020-04-24 22:17:45 +01:00
Jeff Young 32db9eb0f1 Add some distances to a few DRC errors. 2020-04-24 22:17:45 +01:00
Jeff Young c67d819b17 Adjust GTK hack for wxSearchCtrl.
Fixes https://gitlab.com/kicad/code/kicad/issues/4230
2020-04-24 22:17:45 +01:00
jean-pierre charras 18150e5769 SVG plotter: fix some issues: incorrect bitmap size and missing lines in header
Fixes #4256
https://gitlab.com/kicad/code/kicad/issues/4256
2020-04-24 17:19:08 +02:00
Jeff Young b09463cc86 Improve hack for GTK wxSearchCtrl.
Fixes https://gitlab.com/kicad/code/kicad/issues/4230
2020-04-24 14:55:15 +01:00
Jeff Young 7f742ef934 Fix typo. 2020-04-24 14:46:22 +01:00
Jeff Young 1535c83b88 Lay some groundwork for adding distances to DRC errors.
modified:   eeschema/lib_rectangle.cpp
2020-04-24 14:46:22 +01:00
Jon Evans 69db66e1ea Fix saving of pcbnew colors when edited from layers widget 2020-04-23 22:33:02 -04:00
Jon Evans 2d95270a31 Add color theme settings to pcbnew 2020-04-23 21:55:29 -04:00
Ian McInerney 60891f0b6d Add more trace messages in the tool framework 2020-04-23 23:56:53 +01:00
jean-pierre charras fd59660ec8 Save new svg plot options in the board plot parameters section. 2020-04-23 10:02:59 +02:00
jean-pierre charras 7e0a1a16ee SVG plotter: use %f instead of %g to print floats.
Looks like scientific notation is not always accepted by Inkscape.
2020-04-23 07:59:41 +02:00
jean-pierre charras 825d202480 Fix some strings to help translation.
Remove translation mark for strings used in debug, or strings
that cannot be translated (for instance because they are char strings
instead of wide char strings)
2020-04-23 07:40:19 +02:00
Jon Evans f7ebf2af5e Add separate color setting for bus junctions
Fix plotting and printing to use bus color when
connectivity detects that the junction is on a bus.

Fixes #4098
2020-04-22 21:55:48 -04:00
Michael Kavanagh e4cbeeab4c Remove dead code in pcbnew
* Remove dead zone printer
* Remove old canvas in pad properties window
2020-04-22 21:50:15 +00:00
Jeff Young c8140ddb4a Fix a typo that was keeping units refresh from working.
Fixes https://gitlab.com/kicad/code/kicad/issues/4249
2020-04-22 22:41:00 +01:00
Jeff Young 5bc6ad9786 Make UNIT_BINDER sensitive to parent frame user unit changes.
Fixes https://gitlab.com/kicad/code/kicad/issues/4243
2020-04-22 20:45:45 +01:00
Jeff Young fbd68722b2 Fix a couple of problems with text stroke thickness. 2020-04-21 21:17:59 +01:00
Oleg Endo 2f1d23312f add BOARD_CHANGED and UNITS_CHANGED events 2020-04-21 13:23:56 +00:00
Oleg Endo 7bf8a744f1 add support for board listeners 2020-04-21 13:23:56 +00:00
Seth Hillbrand 819f28daf5 Revert part of 9c8941e04
This accidentally changed gerber plotting behavior, resulting in invalid
aperture sizes

Fixes https://gitlab.com/kicad/code/kicad/issues/4232
2020-04-20 15:42:23 -07:00
Johannes Pfister e5042a46ba Add ability to set SVG plot units and precision
ADDED: Ability to set SVG to metric or imperial units
and made it possible to change the size of a step
2020-04-20 22:02:03 +00:00
Jeff Young 10684e9961 Attempt to work around clipping bug on GTK wxSearchCtrl. 2020-04-20 21:49:32 +01:00
Jeff Young db9fd3be21 Minor cleanup. 2020-04-20 21:49:32 +01:00
Seth Hillbrand 1770a1ea21 Prevent invalid decrement in tool manager
Iterating over the tool stack, we potentially remove the current
iterator.  If this removal happens at the beginning of the toolstack, we
cannot decrement the iterator to a position before the stack without
creating an invalid state.
2020-04-20 11:50:45 -07:00
Jeff Young 94e2690fed Fix compile issue on clang. 2020-04-20 17:19:29 +01:00
Jon Evans 3ff3d2cb14 Fix errant $ 2020-04-19 19:13:24 -04:00
Jon Evans b802a3e776 Add command-line option to generate netlist and exit 2020-04-19 19:13:24 -04:00
Jeff Young c977addfa2 Fix conflict between special char escaper and super/subscript.
Fixes https://gitlab.com/kicad/code/kicad/issues/4227
2020-04-19 21:16:22 +01:00
Jeff Young c08a6adb2a Implement GUI and file R/W for 3D model opacity.
Fixes https://gitlab.com/kicad/code/kicad/issues/2087
2020-04-19 18:24:39 +01:00
Jeff Young 71fd560735 Add "Export to other sheets" to paper settings.
Fixes https://gitlab.com/kicad/code/kicad/issues/2177
2020-04-19 18:24:39 +01:00
Ian McInerney e528769637 Move TOOLS_HOLDER into tools/ folder
Also clean up some compiler warnings
2020-04-19 01:51:49 +01:00
Ian McInerney 7bda8178d1 Move library includes to main CMake file
Placing them behind the SYSTEM directive tells CMake to tell
the compiler they are system libraries, so it shouldn't show
warnings created from them.
2020-04-19 01:11:56 +01:00
Jeff Young 2b6089240a Change super/subscript syntax to ^{foo} and _{foo}. 2020-04-18 21:04:41 +01:00
Jeff Young d7d1cb6f78 A bunch of fixes to Eeschema Find/Replace. 2020-04-18 14:43:08 +01:00
jean-pierre charras 56c31e65f6 Fix a compil issue: Try a better fix than commit 8f0449c. 2020-04-18 12:36:05 +02:00
jean-pierre charras 8f0449cbab Fix a compil issue. 2020-04-18 09:02:51 +02:00
Ian McInerney 3b67e3d0a4 Rewrite window positioning logic
Now only reposition a window if it is completely on a
disconnected display or if only one corner is on screen
and it is within a region close to the screen border.

CHANGED: Window position on startup should be preserved more
2020-04-18 00:47:38 +01:00
Ian McInerney b8d2802cfe Add missing cases to silence compiler warnings 2020-04-18 00:47:35 +01:00
Jeff Young 919a66a703 Remove side-effect from finishTool().
It belongs out in the calling loop so that if someone else uses
finishTool() later they won't get bit by it.

This also fixes a crash bug where we weren't deactivating all tools
because we couldn't back up at the beginning of the stack (and the
loop increment therefore went past the first element).

Fixes https://gitlab.com/kicad/code/kicad/issues/4206
2020-04-16 21:58:45 +01:00
Jeff Young 9c8941e040 Remove a bunch of globals. 2020-04-16 17:34:46 +01:00
Tomasz Wlostowski ee70c6dd5b NESTED_SETTINGS: allow to create/load without a parent settings object. Used for test/mocking 2020-04-15 13:00:48 +02:00
jean-pierre charras 04ea20dd44 Eeschema, SCH_PAINTER: fix max text thickness issue, to have small texts readable. 2020-04-14 11:08:42 +02:00
Jeff Young 6e800bddae Rationalize penWidth processing as first step in removing some globals. 2020-04-13 20:58:13 +01:00
Jeff Young 122b1ddaae Unwrap an unnecessary layer now that we have new config stuff. 2020-04-13 20:58:12 +01:00
jean-pierre charras bdada70ee7 Cosmetic enhancements: add bitmaps to a few context menus.
Fix also a minor compil warning.
2020-04-12 10:29:28 +02:00
Jeff Young 84944524cc Fix crash on OSX when page was changed before hack array was alloc'ed. 2020-04-10 22:49:56 +01:00
Jeff Young b067e441c7 Show/hide sheet colors when flipping override flag. 2020-04-10 00:35:17 +01:00
Jeff Young f4e22a9264 Add ability to override individual item colors.
Fixes https://gitlab.com/kicad/code/kicad/issues/4167
2020-04-09 17:17:27 +01:00
Jeff Young 317e98b344 Simplify user model for editing color themes. 2020-04-08 22:34:56 +01:00
Jeff Young 8eb15fe911 Tidy up some Coverity issues. 2020-04-07 17:29:58 +01:00
Jeff Young 76bbb71402 Correct some formatting issues. 2020-04-07 17:29:58 +01:00
Jeff Young 5b70856a85 Change default sheet background color to transparent.
Fixes https://gitlab.com/kicad/code/kicad/issues/4166
2020-04-06 12:31:59 +01:00
Jeff Young 322ab60cc5 Fix some Coverity issues. 2020-04-06 12:31:59 +01:00
Ian McInerney cb380cda0c Fix some build warnings 2020-04-06 00:31:45 +01:00
Jeff Young b13559c926 Add envVar and text variable resolution to plot directory paths.
Fixes https://gitlab.com/kicad/code/kicad/issues/3808
2020-04-05 23:56:24 +01:00
Jeff Young cc9ac37a0e Add text variable support to envVar processing. 2020-04-05 20:52:26 +01:00
Ian McInerney c0b03a043e Force menubar update when file history is changed
Fixes https://gitlab.com/kicad/code/kicad/issues/4137
2020-04-05 18:05:43 +01:00
Jeff Young 591428b0d9 Remove some problematic global variables.
Fixes https://gitlab.com/kicad/code/kicad/issues/4121
2020-04-05 16:17:04 +01:00
Ian McInerney 306ebb0e89 Cleanup dynamic casts in unit binder 2020-04-04 12:24:54 +01:00
Thomas Pointhuber b707c84b62 Use Record handling for parsing
Now, we know how big a record is, and should be able to parse all boards without missing bytes?
2020-04-03 23:22:24 +00:00
Jeff Young 78dfbca9a3 Save pre-eval values for Move Exactly dialog.
Fixes https://gitlab.com/kicad/code/kicad/issues/4088
2020-04-03 21:47:47 +01:00
Wayne Stambaugh 082944ad06 Minor build warning fixes. 2020-04-03 13:03:23 -04:00
jean-pierre charras b1b8a32078 fix a few Coverity warnings and compil minor warnings. 2020-04-03 09:54:47 +02:00
Jon Evans 23c1baae8e Defer image surface destruction until next paint
Fixes #4043

(cherry picked from commit dbf786e456f2792476791caf9dadfeb43e9ab383)
2020-04-02 14:36:57 -04:00
jean-pierre charras 161b73e55b Enable storing pin function (pin name) in pads.
This is useful in board routing.
It is plotted in pad attribute TO.P in Gerber files.
2020-04-02 20:14:45 +02:00
Jeff Young a76ddb52a0 Add sheet borders and backgrounds to Edit Text & Graphics.
Also moves sheet border and sheet background colours to preferences
so it's clearer they're just for newly-created items.

Fixes https://gitlab.com/kicad/code/kicad/issues/4144
2020-04-02 14:01:30 +01:00
Jeff Young 811968716c Add OSX layout hack to PAGED_DIALOG for preferences. 2020-04-02 14:01:30 +01:00
Jeff Young 4966ab802e Support single-click colour editing in dialogs. 2020-04-02 14:01:30 +01:00
Jeff Young 13d3f57fce Implement a different solution to refreshing lib trees.
Fixes https://gitlab.com/kicad/code/kicad/issues/4110
2020-03-31 02:09:31 +01:00
Jeff Young eb855d40bb Restore lib tree refreshing, but don't attempt to refresh tree root. 2020-03-30 17:30:26 +01:00
jean-pierre charras 58e03be23c Fix a compil issue. 2020-03-30 17:38:19 +02:00
Jeff Young a1d62e0622 Improve some comments. 2020-03-30 14:15:59 +01:00
Jeff Young 41b5872f12 Add ERC & DRC checks for unresolved variables. 2020-03-30 14:15:59 +01:00
Jeff Young 4990d1e7b2 Variable substitution framework.
This implements editing of variables and moving SCH_FIELDs,
TEXTE_MODULEs, TEXTE_PCB and worksheet items over to the new
framework.
2020-03-30 14:15:59 +01:00
jean-pierre charras 9d2712a824 Fix a few Coverity warnings.
It also fix:

Fixes #4082
https://gitlab.com/kicad/code/kicad/issues/4082
2020-03-29 18:42:24 +02:00
Ian McInerney c29c3d9cc1 Diferentiate action types in the tool trace 2020-03-28 22:01:35 +00:00
Jeff Young 88c4254bb5 Discourage use of wxDataViews. WX_GRID is much less problematic. 2020-03-28 16:09:40 +00:00
jean-pierre charras c41199f048 lib_tree.cpp: Fix a lot of wxWidgets alerts on Windows.
On Windows calling m_adapter->RefreshTree() to refresh the tree does not work fine.
Just calling Refresh() is enough.
2020-03-28 11:00:54 +01:00
jean-pierre charras aebfbda183 DRC dialog: fix a crash when clicking on a item in Footprint Warning panel:
if the warning is a missing footprint, obviously there is no marker associated.
It creates a crash due to a null pointer.

Fixes #4114
https://gitlab.com/kicad/code/kicad/issues/4114
2020-03-28 11:00:54 +01:00
jean-pierre charras 53a98b45f0 DIALOG_ABOUT_BASE: fix a minor wxWidgets alert 2020-03-28 11:00:54 +01:00
jean-pierre charras de7154e8e9 Gerber plotter: Non horiz or vertical oval pads: better plot output:
These pads were plotted as a segment. This is not the right way.
Pads must be flashed or plotted as regions, not painted.
They are now plotted as Gerber regions round rectangle pads.
These regions are similar to flashed pads.
2020-03-27 10:34:41 +01:00
Jeff Young d69ebfae49 Push tool framework base down into TOOL_HOLDER.
This allows us to use it outside of EDA_BASE_FRAMEs (in this case, in
PANEL_PREVIEW_3D.)
2020-03-24 19:00:25 +00:00
Jeff Young 14788eec94 Performance improvement in wx_grid column label height calc.
Don't call GetColLabelValue() repeatedly.  It's expensive as it doesn't
cache the string translations.
2020-03-24 19:00:25 +00:00
Jeff Young c4aed3a8de Add user-configurability of the LibEdit axes color. 2020-03-24 19:00:25 +00:00
jean-pierre charras 4d9d1a5380 Fix a few compil minor warnings and Coverity minor issues 2020-03-22 09:45:51 +01:00
Jeff Young d25a63cd02 Don't allow selection flags to leak in to the libmanager cache.
Fixes https://gitlab.com/kicad/code/kicad/issues/4021
2020-03-21 23:25:08 +00:00
jean-pierre charras 9cb3333d05 Gerber plotter: plot round rectangle pads using a region with arcs.
Previously, the region was a usual polygon with arc approximated by segment.
Using a region with arcs is a better way because it allows CAM tools to
identify this region as a round-rect pad.

A side effect is a better shape and smaller files, however not really noticeable in fact.
2020-03-20 19:45:05 +01:00
Jeff Young e9cd9ee8ff Actionize the rest of the 3D viewer.
Fixes https://gitlab.com/kicad/code/kicad/issues/2228
2020-03-19 15:10:32 +00:00
jean-pierre charras 04e4599989 PANEL_SETUP_SEVERITIES: skip non existing error codes in TransferDataFrom/ToWindow
Fixes #4066
https://gitlab.com/kicad/code/kicad/issues/4066
2020-03-18 09:17:43 +01:00
Wayne Stambaugh 7dc64f08b7 Eeschema: implement s-expression schematic file formatter.
Please note that the symbol cache is not embedded in the schematic file
to allow for round robin testing with the existing file format.  Once
the parser round robin testing is complete, the symbol cache will be
embedded in the schematic file.
2020-03-16 09:05:16 -04:00
Jeff Young cee973dc04 Move ERC error reporting over to the new framework.
Fixes https://gitlab.com/kicad/code/kicad/issues/1989
2020-03-16 11:06:15 +00:00
Jeff Young 085d80e3f3 Remove duplicated settings from preferences.
These have now moved to project-specific settings.
2020-03-13 17:28:53 +00:00
jean-pierre charras 08f0e8d6e8 Pcbnew, Gerber output: always generates Aperture Attributes.
Previously, for historical reasons, they were added only if
Include Netlist Attributes option was on.

But Aperture Attributes have nothing to do with Netlist Attributes, and good
Gerber files must include them.
2020-03-12 16:57:13 +01:00
Jeff Young c699fb9e39 Move pin-to-pin errors to Setup Schematic. 2020-03-11 21:43:55 +00:00
Jeff Young 437f888c25 Schematic Setup dialog.
Includes:
- moving some of the project settings from the Preferences dialog
- ERC severites
- project-specific field-name templates

Fixes https://gitlab.com/kicad/code/kicad/issues/2145
2020-03-10 18:54:17 +00:00
Jeff Young bbf5ad6160 Improve dialog spacing and remove 'auto' type decls.
Also fixes a couple more coding style issues.
2020-03-10 18:54:17 +00:00
Jeff Young becc66b583 Change some layer names for better grouping when alphabeticized. 2020-03-10 18:54:17 +00:00
Jeff Young d875d5850e Update library trees when their items change.
Fixes https://gitlab.com/kicad/code/kicad/issues/4019
2020-03-08 15:18:19 +00:00
Jeff Young 3e34c1783f Added sheet border width, border color and background color.
Fixes https://gitlab.com/kicad/code/kicad/issues/2216
2020-03-08 15:18:19 +00:00
Jon Evans 8cb8d55843 Remove unnecessary exception handling in settings
Use optionals instead where a value can be absent

Fixes #4024
2020-03-07 16:06:33 -05:00
Jeff Young fb00ca12d6 Performance enhancements for stroke font initialisation. 2020-03-07 18:52:30 +00:00
Jeff Young 535033c5c9 Enable editing of sheet fields. 2020-03-07 18:52:30 +00:00
Ian McInerney a2ad9d67ba Expose more version strings from CMake
Let cmake generate the needed version strings, so we don't
have to spend program time doing it. This simplifies the
settings manager versioning.

Also, convert some file line endings to UNIX from Windows.

A more robust fix for https://gitlab.com/kicad/code/kicad/-/issues/4015.
2020-03-07 18:43:24 +00:00
Jon Evans 01a6d0067b Add missing layer name for sheet fields
Fixes #4018
2020-03-07 09:44:06 -05:00
Jon Evans 1e61668cee Make GetSettingsVersion handle extra version appends better
Fixes #4015
2020-03-07 09:33:35 -05:00
Jeff Young fe3e0307d8 Move sheet name and filename to SCH_FIELD architecture.
Only internal storage architecture has changed (so far).
2020-03-06 16:23:44 +00:00
Jon Evans dd56f6f8e2 Increase width of bitmap button on settings migration dialog 2020-03-06 08:15:14 -05:00
Jon Evans 643c97a2f4 ADDED: Schematic plotting can use a dedicated color theme
ADDED: PDF, PS, and SVG plots can optionally include the page background color

Fixes #1830
2020-03-06 00:01:02 -05:00
Jon Evans 8660b4c144 ADDED: New color theme editor and multi-theme support 2020-03-06 00:01:03 -05:00
Jon Evans ca1ab0af16 Set expand flags and minimum button size on migration dialog
Hopefully fixes #3989
2020-03-04 21:47:28 -05:00
Seth Hillbrand e38ab6c699 Treat 0-length ovals as circles
Some buggy SVG interpreters can't handle 0-length ovals.  In this case,
they are meant to be circles, so we can export as circles in our
plotter.

Fixes https://gitlab.com/kicad/code/kicad/issues/3995
2020-03-04 18:03:20 -06:00
Seth Hillbrand ecbfea68dd ADDED: Allow creation of nets in pcbnew
When editing pcb items, the creation of a new net to connect existing
pads or traces can be a useful shortcut.  This inserts the ability to
optionally create a new net from the Net Selector dropdown menu.
2020-03-04 16:11:47 -06:00
Seth Hillbrand 12088f240d Fix a couple crashes with small canvases
The canvas size is not guaranteed to be strictly > 0, so we need to
enforce a minimum returned size before dividing by it or passing to GAL
initialization
2020-03-04 14:33:42 -06:00
jean-pierre charras b7cd0c54c2 Fix compil issues, especially on Windows:
Replace SEVERITY_ERROR by RPT_SEVERITY_ERROR to avoid collision with a system definition.
Replace other SEVERITY_XXX by RPT_SEVERITY_XX for consistency.
Fix compil warnings and some other compil issues.
2020-03-04 10:48:18 +01:00
Jeff Young 21469efa63 Make sure EESCHEMA definition gets passed into common.cpp.
Also includes a fix to seed timestamps that got incorrectly
written out as '00000000' because of the above.

Fixes https://gitlab.com/kicad/code/kicad/issues/3977
2020-03-04 02:04:18 +00:00
Jeff Young 85c2e0d23a Add user-defined severities, exclusions and colors to DRC markers.
Exclusions are currently persisted in the project file.

Fixes https://gitlab.com/kicad/code/kicad/issues/1989
2020-03-04 00:39:28 +00:00
Marcus Comstedt 349c0e1a14 gal/opengl: Fix shader link state check
The old code caused a bool (size 1) to be overwritten by a GLint (size
4) causing undefined behaviour.

Fixes https://gitlab.com/kicad/code/kicad/issues/3981
2020-03-03 21:47:43 +00:00
Marcus Comstedt 55ac575a88 Cairo GAL: fix incorrect use of pixman formats
Fixes https://gitlab.com/kicad/code/kicad/issues/3970
2020-03-03 18:07:30 +00:00
Wayne Stambaugh e1900161a7 Eeschema: implement new symbol library file s-expression formatter.
CHANGES: Symbol library file format has been converted to s-expressions.

Add support code for picking apart symbols at some future junction that
will allow full inheritance conversion of existing symbol libraries.  For
now, symbols arranged by unit and body style numbers are nested for round
robin testing of symbol libraries once the parser is complete.
2020-03-03 08:06:22 -05:00
Jon Evans 08ef7de493 Use STL replace instead of Boost in JSON_SETTINGS 2020-03-02 19:18:52 -05:00
jean-pierre charras 911c6eb781 Pcbnew, DIALOG_NETLIST: fix incorrect storage of wx_MessageWindow options.
Config values were not stored into the right variables.

Make also an option persistent during the session
in DIALOG_UPDATE_PCB and DIALOG_NETLIST

DIALOG_UPDATE_PCB and DIALOG_NETLIST match options: use same order in dialogs.
2020-03-01 20:49:56 +01:00
Simon Richter 0f105c4c9a Fix preprocessor expression
The "and" and "or" keywords are only defined if <iso646.h> is included.

This fixes the C4067 warnings.
2020-03-01 00:33:45 +00:00
Andrew Downing 2f7ac2b5b4 Don't truncate polar coordinates in position relative dialog/move exact dialog 2020-02-29 02:21:18 +00:00
Jon Evans 72a6963e9e Free some memory that asan was complaining about 2020-02-27 22:58:33 -05:00
Jon Evans 9cc5b4b3f9 Fix management of nested settings for PNS 2020-02-27 22:53:00 -05:00
Jeff Young 3860ab9f0c Fix issue returning pointers to items inside std::vector.
(When the vector is re-allocated your pointers become bogus.)
2020-02-27 22:00:51 +00:00
Tomasz Wlostowski ce683c403a genral: always link libcurl to avoid unresolved symbols in pcbnew 2020-02-27 22:02:56 +01:00
Tomasz Wlostowski 6673554866 common: prevent segfault with no edit frame in TOOL_MANAGER 2020-02-27 22:02:56 +01:00
Tomasz Wlostowski 33f9843fb7 ACTION_MANAGER: prevent null object call when used without a host frame 2020-02-27 22:02:56 +01:00
Jon Evans b1fd931251 Use grid color for worksheet page borders 2020-02-25 20:36:27 -05:00
Jon Evans 009641d151 Make libcurl a required dependency and always build KICAD_CURL 2020-02-26 01:03:07 +00:00
Ian McInerney 879a8f4efb Rework the file history menus to not need references to the file history
Keeping a pointer to the actual file history inside a special
file history menu led to many cases of use after free crashes,
so instead rework the actual file history to add the menu
items.

Fixes https://gitlab.com/kicad/code/kicad/issues/3741
2020-02-25 16:18:10 +00:00
Ian McInerney cc588471ca Hardcode the minimum window size
For some reason, OSX won't return the minimum window size properly
using GetMinWidth/GetMinHeight, so it would not properly adjust
windows with saved size (0,0).
2020-02-25 01:14:06 +00:00
Jeff Young c7ec110fba Only center focused items when they're not visible.
This includes outside the window and behind an occluding dialog.
This keeps the view from jumping around when focusing on nearby
objects.
2020-02-24 23:19:17 +00:00
Jon Evans d3d74b36bd Allow version selection; make buttons the same size 2020-02-22 11:23:47 -05:00
Jon Evans 80233aece9 Fix URL launching on MacOS 2020-02-22 09:47:51 -05:00
Jon Evans 712ae5a953 Check if scaling factor has changed when top-level window is moved
Fixes #2592
2020-02-22 01:25:08 +00:00
Jon Evans 96da45f12f Rework window size and position fixing code
Fixes #2624
Fixes #3888
2020-02-22 01:25:08 +00:00
Seth Hillbrand 3af868e3d1 Adding Arcs to TRACKS
This expands the TRACKS class to also include ARCS
2020-02-21 23:51:58 +00:00
Jeff Young ea025a35e5 Change KUUID to KIID. 2020-02-21 22:20:42 +00:00
Jon Evans a533748796 Cleanup 2020-02-21 09:30:08 -05:00
Jon Evans ad3e99f933 Fix file history save order 2020-02-21 08:12:53 -05:00
Jon Evans fcdf2bac0b Remove dead code 2020-02-21 08:07:15 -05:00
jean-pierre charras 6d44a93eaf Linking, mingw: Add bcrypt to libraries linked to libcommon.
It is already added with MSVC, and must be added with gcc/mingw

However, the cmake option:
add_definitions( -DBOOST_UUID_FORCE_AUTO_LINK )
does not work on msys2 (at least with my cmake version), so another syntax is used.
2020-02-21 10:37:59 +01:00
Jon Evans ea733639ff Rearrange about dialog; add easy bug report button
Fixes #3871
2020-02-20 22:20:34 -05:00
Jon Evans da1ba54188 Expose curl_easy_escape via KICAD_CURL_EASY 2020-02-20 22:07:17 -05:00
Jon Evans dc75c2b800 Factor out utility to launch a given file or folder 2020-02-20 22:07:17 -05:00
Jon Evans e8e3b4f11e Rename UUID to KUUID to fix MSVC build
Also add another newly-required boost flag
2020-02-20 22:07:17 -05:00
Jeff Young e69c82f45f Back out changes which updated the eeschema file format.
We'll wait until we have the new eeschema format to turn on UUID
generation for Eeschema.  Right now only Pcnbew generates full UUIDs.
2020-02-20 23:40:30 +00:00
Jeff Young 48874a7f19 Fix mis-match between color defaults in old and new systems. 2020-02-20 21:29:52 +00:00
Jeff Young 81dd1d7a68 Timestamp-based paths were ugly. UUID-based ones are worse.
Show a human-readable path in the Edit Footprint dialog.
2020-02-20 21:29:52 +00:00
Jeff Young 129042f8a6 Convert timestamps to UUIDs. 2020-02-20 21:29:52 +00:00
Jon Evans e59a3d981e Implement a new settings framework across all of KiCad
CHANGED: Settings are now stored in versioned sub-directories
ADDED: First-run dialog for migrating settings from a previous version
CHANGED: Settings are now stored as JSON files instead of wxConfig-style INI files
CHANGED: Color settings are now all stored in a separate settings file
CHANGED: The symbol editor and footprint editor now have their own settings files
CHANGED: Color settings are no longer exposed through BOARD object
CHANGED: Page layout editor now uses Eeschema's color scheme

Settings are now managed through a central SETTINGS_MANAGER held by PGM_BASE.
Existing settings will be migrated from the wxConfig format on first run of each application.
Per-application settings are now stored in one class for each application.
2020-02-19 23:44:56 -05:00
jean-pierre charras 625249322e Pcbnew: regroup drc files to the already existing drc folder. 2020-02-19 10:31:32 +01:00
jean-pierre charras 021eb2f3a8 Fix incorrect usage of a UTF8 char in a C string in code.
Using a UTF8 char inside a C string can work on unix, but not on Windows.
It must be explicitly converted in a unicode value inside a wide string
(like a wxString)
2020-02-16 10:21:36 +01:00
Ian McInerney 43514a18bb Test every environment variable when doing substitution to remove more directories
CHANGED: Use the environment variable that removes the most directories

Fixes https://gitlab.com/kicad/code/kicad/issues/2500
2020-02-14 22:59:18 +00:00
Ian McInerney 36de20a0a7 Allow space to toggle all selected entries in a grid
CHANGED: Space now toggles all selected checkboxes in a grid

Fixes https://gitlab.com/kicad/code/kicad/issues/2252
2020-02-14 19:28:18 +00:00
Ian McInerney 4fef513a3f Fix library table panel path adding and cleanup duplicate dialog
When adding a .pretty library, if the actual .pretty folder were
selected then no folder would be added to the list of libraries.
This led to an assert when normalizing paths, and the library
not being added.
2020-02-14 19:07:27 +00:00
Jeff Young 3ec360f15c Save pinned libraries in project.
Fixes https://gitlab.com/kicad/code/kicad/issues/2288
2020-02-14 14:22:54 +00:00
jean-pierre charras f17f10d2a6 Eeschema, DIALOG_UPDATE_FIELDS: ensure mandatory fields are put in list.
Add also a comment in common.cpp about using wxLocale instead of setlocale.

DIALOG_UPDATE_FIELDS has issues in non English languages, due to its design.
The fix for mandatory fields is only a partial fix that avoid major issues.
2020-02-14 13:07:13 +01:00
Ian McInerney 25b3cce474 Fix build error and cleanup overzealous refactor changes 2020-02-14 00:56:41 +00:00
Jeff Young 2017389f2d Pinning for library trees in FPEditor and SymbolEditor.
Fixes https://gitlab.com/kicad/code/kicad/issues/2288
2020-02-14 00:10:40 +00:00
Seth Hillbrand 39a45f2a81 Correct cyrillic 'f' in newstroke
The lowercase greek phi had been used which did not match the cyrillic
f.  We use the variant of phi that includes the full strokes instead.

Fixes #3898 | https://gitlab.com/kicad/code/kicad/issues/3898
2020-02-12 14:08:02 -08:00
Seth Hillbrand 03f74c87a1 Update immediate mode location and restart wires
The immediate action option clears (or not) the position of the events.
We use this to determine if the command should start at the given
position or merely activate the tool.  This was being checked in the
menu options, which only activated for tool commands in the context
menu.  Moving to the process event, we catch hotkeys as well.

This also restores the previous logic in eeschema that used a static
variable for storing wires rather than the private class variable.
Starting the draw event now picks up from the existing wires when
activated in immediate mode.

Fixes #3891 | https://gitlab.com/kicad/code/kicad/issues/3891
2020-02-11 09:12:36 -08:00
jean-pierre charras feab56f6e7 LOCALE_IO: replace the call to setlocale by a call to wxLocale to switch to "C" locale.
Previously we call only setlocale( xx, "C" ), but it was not enough on Windows.
Now we call wxLocale("C")
wxLocale calls setlocale, but also make some others initialization in wxWidgets.
It fixes some issues related to comma versus point as fp separator.
Especially wxWidgets warnings are no longer thrown, and a one case of incorrect
conversion is fixed.
2020-02-11 16:19:00 +01:00
Wayne Stambaugh e933045663 Fix build issue exposed by commit b824051a.
The combination of left over test code in lib_id.h/cpp and the changes
to handle the DEBUG compiler flag correctly on all platforms exposed a
swig issue on debug builds.  Removing the offending test from lib_id.h
resolved the issue.
2020-02-07 15:29:03 -05:00
jean-pierre charras 46b72d807b Kicad manager: Avoid crash when calling configure paths or libraries from main menu,
when _eeschema.kiface or _pcbnew.kiface is not found.
Happen mainly when running Kicad from build tree.

Now a suitable error message is displayed.

Fixes #3868
https://gitlab.com/kicad/code/kicad/issues/3868
2020-02-06 11:41:21 +01:00
Ian McInerney b1240b5b1e Gracefully shutdown tools when frames are closed
If the tools are not gracefully exited, then the stack variables are
never destroyed, so variable lifetime issues can occur.

Fixes https://gitlab.com/kicad/code/kicad/issues/1753
2020-02-05 22:23:24 +00:00
Jon Evans fe375b4419 Allow sheet pins to be strong drivers if they don't conflict with anything
Also try harder to match bus members in case one was renamed by a higher
priority label.

Fixes https://gitlab.com/kicad/code/kicad/issues/3797
2020-02-05 14:23:55 +00:00
Jon Evans 8fb72d8290 ADDED: Expose GetBuildVersion and GetBuildDate to Python 2020-02-05 13:28:44 +01:00
Simon Richter 48ce1239a2 Remove unused LIB_TABLE_ROW::Parse 2020-02-05 09:56:41 +00:00
Ian McInerney 6b8d81e95d Add zone area to message panel
ADDED: Area of zone fill is displayed in the message panel

Fixes https://gitlab.com/kicad/code/kicad/issues/2412
2020-02-05 09:44:53 +00:00
Drew Fustini f359892de3 Update copyright year in About dialog to 2020 2020-02-03 22:56:42 +00:00
Jeff Young a1c2abaff5 Get rid of line-weight component of overbar height.
It's not really necessary and it messes up text highlighting.

Fixes https://gitlab.com/kicad/code/kicad/issues/3680
2020-02-03 19:35:48 +00:00
jean-pierre charras 465ffff162 Gerber plots: Add initial G01 command to the header,
to ensure linear interpolation mode.
To avoid issues, an interpolation mode must be set before first D01 command.
2020-02-03 17:55:19 +01:00
Jeff Young a04fdf64da Improve directory handling for Project Save As.
1) don't change directory names that we don't recognize
2) when we do, make sure the child files get copied to the
changed name.

Fixes https://gitlab.com/kicad/code/kicad/issues/3834
2020-02-03 15:08:01 +00:00
Ian McInerney 4f82939384 Fix layout in color dialog on GTK
Don't initially set the minimum widget size, and instead let it be
computed at launch.

Fixes https://gitlab.com/kicad/code/kicad/issues/2617
2020-02-02 15:28:21 +00:00
jean-pierre charras 79e7a27492 Fix a few Coverity warnings. 2020-02-02 08:55:24 +01:00
jean-pierre charras ad3c4b37ab Fix a few coverity warnings 2020-02-01 15:15:51 +01:00
Alexander Shuklin 3d0b3a51f3 Eeschema: Adding back annotation
ADDED: Back annotation algorithm,
eeschema back annotation dialog

CHANGED: added some minor helper methods to SCH_REFERENCE_LIST and SCH_REFERENCE,
split SCH_REFERENCE_LIST::CheckAnnotation on 2 parts to reuse code
2020-01-29 16:33:57 +00:00
jean-pierre charras 460060a694 page layout editor: fix incorrect bitmaps bounding box size.
Bitmap size is using Eeschema units.
So the size was incorrectly calculated for pl_editor.
2020-01-24 11:52:41 +01:00
Ian McInerney 06c979dfaa Convert all CMake paths to absolute instead of relative
It is cleaner and safer to handle the include and source paths
as absolute from the source directory instead of relative to every
path.
2020-01-22 23:27:20 +00:00
Alexander Stock 974f84a5a6 Use proper encoding in UnescapeString() to speed up processing
Use the proper encoding to prevent extraneous conversion encoding conversion inside UnescapeString(). This change reduces the eeschema symbol library loading time (ubuntu and windows build) from 2700ms to 1700ms.

See merge request https://gitlab.com/kicad/code/kicad/merge_requests/70
2020-01-20 10:51:20 +00:00
Mark Roszko 8ac0d84f45 Fix invalid std::array constructor causing MSVC illegal indirection error 2020-01-20 01:30:26 +00:00
Ian McInerney c4277409d7 Add missing header that broke compilation 2020-01-19 11:52:34 +00:00
Seth Hillbrand 7c296fbcb7 GRID_HELPER: Provide alignment axes from snap points
ADDED: alignment lines from item snap points

Alignment lines are shown when moving the cursor horizontally or
vertically from a possible snap point.
2020-01-18 20:43:40 -08:00
jean-pierre charras d714773c22 Fix a minor compil warning. Add a wxASSERT in hierarch.cpp. 2020-01-18 18:23:21 +01:00
Ian McInerney 39b1f0e1ff Replace wxCriticalSection with std::mutex 2020-01-15 23:42:16 +00:00
Ian McInerney 415aaabc29 Fix return type in KIDIALOG
It was returned as a bool for some reason...
2020-01-15 18:29:15 +00:00
Mark Roszko a80b2b7e39 KIDIALOG should ignore "cancel" for the do not show again option.
Fix #3734
2020-01-15 18:23:07 +00:00
Jeff Young 0f4c56cbbd Also catch null dereference in case wxASSERT was skipped. 2020-01-15 17:51:48 +00:00
Jeff Young 1bdcb33f75 Handle error returns from lstat. 2020-01-13 20:16:42 +00:00
Jeff Young 9df2cfb328 More uninitialized variables. 2020-01-13 20:16:40 +00:00
Jeff Young 91d1508c16 Fix some Coverity identified issues. 2020-01-13 20:16:40 +00:00
Jeff Young aeba5c005f Many callers of uni_forward are not expecting an exception.
Remove the throw and used a different mechanism to detect non-unicode.
2020-01-13 15:40:32 +00:00
Ian McInerney e2853862e5 Cleanup redundant type casting 2020-01-13 14:00:45 +00:00
Ian McInerney 8fc434be19 Formatting change for dynamic cast tests 2020-01-13 01:48:57 +00:00
Ian McInerney 36f6b4a9b4 Clean up redundant dynamic casts 2020-01-13 01:39:08 +00:00
Jeff Young 836c1ea56e Fix a bunch of un-caught boost::bad_pointer exceptions.
This also removes vector cover types which do nothing except obfuscate
the underlying implementation.

Mainly changes SCH_SHEET_PINS and CONFIG_PARAM_ARRAY (which will soon
be replaced by Jon's new stuff).
2020-01-12 19:55:00 +00:00
Ian McInerney b445ce6632 Clean up pointer casting
* Make note of when dynamic cast is actually needed
* Convert some to static cast when we know the type for sure
2020-01-12 19:45:37 +00:00
Ian McInerney 00e58cd974 Fix unintialized values (from coverity scan) 2020-01-12 13:00:42 +00:00
Jeff Young b343391723 Code cleanup for readibility. 2020-01-11 21:30:48 +00:00
Ian McInerney f896043067 Fix comments for switch statement fall throughs
This cleans up all GCC warnings (-Wimplicit-fallthrough=2) about
implicitly falling through switch cases.
2020-01-11 19:16:32 +00:00
Seth Hillbrand 4ebb87d1c1 Fix Eeschema BW printing
Checks forced state when printing to convert images to grayscale.
2020-01-11 09:55:30 -08:00
Seth Hillbrand 195c3d074b Fix bitmap clipping
When printing (using DC context) the bitmap will clear the full screen
unless the clipping region is set to the image itself.

Addresses KSC ticket 126

Fixes #1877 | https://gitlab.com/kicad/code/kicad/issues/1877
2020-01-11 09:47:19 -08:00
Seth Hillbrand 7c28c3838a Comment-only changes
Makes class comments conform to coding standards
2020-01-10 16:43:01 -08:00
Seth Hillbrand 2a780dba0e Initialize view variable
Sets known initialization value to the last keyboard command
2020-01-10 16:43:01 -08:00
Seth Hillbrand d1a0102e84 eeschema: Fix print order between worksheet and screen
The worksheet should be drawn behind the screen.
2020-01-10 16:33:53 -08:00
Seth Hillbrand a35db35029 eeschema: Fix bitmap scaling when printing
Bitmaps scale internally to 100nm instead of 1mil.  There is a better
way to do this but I think we'll be adjusting it again when Cairo
printing in finished.
2020-01-10 16:33:53 -08:00
Jeff Young 0fd68dad62 Fix freed pointer access issue (from Coverity scan). 2020-01-11 00:09:08 +00:00
Jeff Young 7bb9551801 Handle boost exceptions. (From Coverity scan.) 2020-01-11 00:04:01 +00:00
Jeff Young c27e278e58 Fix uninitialized variable (from Coverity scan). 2020-01-10 22:32:50 +00:00
Jeff Young 5e5edd03f6 Implement super- and subscript printing and plotting for eeschema. 2020-01-10 22:32:49 +00:00
Jeff Young 65c88ba2c3 Reduce the auto-panning margin and implement acceleration. 2020-01-10 22:32:49 +00:00
Seth Hillbrand 77c60d9655 Remove the last vestiges of dlist
It served us (mostly) well for more than a decade.  It helped KiCad grow
before the std:: came into decent shape or speed.  It was a good little
list.

RIP DLIST 2008-2020
2020-01-10 06:37:08 -08:00
Seth Hillbrand 6e5e453d0d Replace EESchema DLIST
This moves EESchema DLIST structures to rtree.  These changes are more
fundamental than the pcbnew changes from 9163ac543 888c01d11 d1877d7c1
and 961b22d60 as eeschema operations were more dependent on passing
drawing list references around with SCH_ITEM* objects.
2020-01-10 06:37:08 -08:00
Ian McInerney a8d9fcb4e0 Fix event handler type casting
The old methods were very clunky and not recommended (and didn't
properly cast the function types). This changes to useing the
recommended way of declaring events and casting the event handlers.
2020-01-09 18:08:49 +00:00
jean-pierre charras d587bd5bca SVG plotter: fix an issue with mirrored texts.
Mirrored texts have a size < 0.
Of course, the actual value for the plotter is the absolute value.
2020-01-09 18:07:56 +01:00
Mark Roszko ca34ade00c Make global labels have the same spin style as net/hierarchical labels
For legacy reasons, it stored left and right "spin" as flipped integers in the file format.
But the code handled the flip in multiple locations rather than just doing it on file io.
This change unifies the internal code and does the mapping in the file I/O.
2020-01-08 19:07:55 +00:00
Ian McInerney 9e5d52f92d Cleanup 2020-01-08 01:49:51 +00:00
Ian McInerney 9dff31c2ac Remove unused DIALOG_FILE_DIR_PICKER
This class was replaced with native dialogs for choosing
the files and directories
2020-01-07 23:40:00 +00:00
Jonatan Liljedahl f433037dcd Eeschema: simulator: allow dotted traces for current and phase.
ADD: Allow drawing of current and phase traces with dotted style
for easier differentiation from voltage and magnitude. The option
is available in the View menu of the simulator.
2020-01-07 19:45:44 +00:00
Ian McInerney 13b6028e1b Refactor all math into a new kimath library
* Split up the thirdparty code into the thirdparty folder (#3637)
* Create a new kimath static library containing all the math functions

This is part of cleaning the build system for #1906.
2020-01-07 17:12:59 +00:00