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
Simon Richter
270aaec443
Rewrite FBP files generated with unreleased wxFB
...
These use a few features that are too new, causing errors when trying to
edit with a released version of wxFormBuilder.
2020-01-07 13:32:33 +00:00
jean-pierre charras
a46abcd2dc
FILENAME_RESOLVER: fix missing conversion from UTF8 to wide chars.
...
Fixes #3742
https://gitlab.com/kicad/code/kicad/issues/3742
2020-01-07 13:35:37 +01:00
jean-pierre charras
86f9ed1dd9
Allows pad property only by the kicad_advanced feature.
...
pad property is allowed if "UsePadProperty=1" is found in kicad_advanced.
2020-01-06 18:11:01 +01:00
jean-pierre charras
f2518a5120
ADDED: pad fabrication property, as required in latest Gerber file specification.
...
Property is a pad info used mainly for fabrication or test.
Currently, supported properties are:
BGA property (variant of SMD pad)
Fiducial (global to the board or local to the footprint)
Test Point
Heat sink
Castellated.
And are used in Gerber files (copper layers and drill files)
Increment BOARD_FILE_VERSION to 20200104
2020-01-06 16:37:35 +01:00
Seth Hillbrand
49e3542662
Remove unused common defines
2020-01-06 05:55:06 -08:00
Seth Hillbrand
850ca98e7b
Remove outdated RoundTo0
...
With internal units in 100nm, there are no rounding errors when
representing mm coordinates in eeschema.
2020-01-06 05:15:14 -08:00
Jon Evans
21d577e638
Implement Gerber job file writing using nlohmann/json
2020-01-04 10:46:50 -05:00
jean-pierre charras
5707e6eac8
Fix QA arc test according to the new arc bounding box calculation.
...
Previously, the arc center was included in the bounding box,
but this is incorrect.
In many cases it is not in the bbox, and can be very far away.
2020-01-04 10:16:30 +01:00
Ian McInerney
20e7fc8a0e
Properly escape spaces when opening PDFs on windows
...
Fixes https://gitlab.com/kicad/code/kicad/issues/2625
2020-01-03 19:06:49 +00:00
Ian McInerney
2f75dfb09c
Fix symbol editor column widths
...
102b5301
introduced an issue on GTK where the column width was
incorrect when read, then was set incorrectly (a known problem
on GTK tree views). We should only apply that fix on OSX.
Fixes https://gitlab.com/kicad/code/kicad/issues/3720
2020-01-03 17:04:18 +00:00
Ian McInerney
5d46e721e5
pcbnew: Cleanup includes of pcbnew_id.h
...
* Remove unused IDs from the enum
* Remove the include statements from files that no longer need it
2020-01-03 15:39:05 +00:00
Mark Roszko
49db816c82
Pcbnew: improve add existing footprint library browser and button
...
CHANGED: Modify Add Existing Footprint Library button to us OS file/directory browsers
2020-01-03 15:09:26 +00:00
jean-pierre charras
baa1db031e
Fix incorrect arc bounding box calculation.
...
add comments to SHAPE_ARC ctor.
2020-01-03 14:27:00 +01:00
jean-pierre charras
3543de039b
More about code cleaning.
...
Remove useless includes and dead code
2019-12-31 13:08:50 +01:00
jean-pierre charras
2999bcb721
Try to fix SEG::PointCloserThan(), not working for quasi H or V segments.
...
Quasi H or V segments are segments having the same x value or y value
(with a + or -1 max diff) for end points coordinates.
The change is a workaround, not really a fix.
Fixes #3711
https://gitlab.com/kicad/code/kicad/issues/3711
2019-12-29 18:24:17 +01:00
Ian McInerney
5c0656d97f
Move potrace and libcontext into thirdparty directory
...
Part of the cleanup in #3637
2019-12-28 18:17:55 +00:00
Ian McInerney
6faa2188ed
Silence warnings on MacOS about OpenGL deprecation
...
Apple has apparently deprecated OpenGL and replaced it with
their Metal API. It still works for now though.
2019-12-28 16:05:03 +00:00
jean-pierre charras
d5b8e4928c
Gerber P&P files: escape the double quote char inside user strings.
...
This is a reserved char, used to quote user strings
2019-12-28 13:27:31 +01:00
jean-pierre charras
7241247fbc
Pcbnew: add missing storage of dimension units and dimension precision in pcb files.
...
https://gitlab.com/kicad/code/kicad/issues/3712
2019-12-28 13:27:31 +01:00
Mark Roszko
19ceb11ae7
Change more enums over to scoped enums
2019-12-28 00:55:11 +00:00
Mark Roszko
d4dee3c5a0
Inner loop iterator should be size_t as well
2019-12-26 13:10:18 +00:00
Mark Roszko
a418242ca7
Prevent oob on LSET::FmtHex call when BITSET size is not a multiple of 4 (which it isn't usually)
2019-12-26 13:10:18 +00:00
Jon Evans
2ea565473f
LSET: Prevent assertion in MSW when size is not a multiple of 4
2019-12-25 11:34:12 -05:00
jean-pierre charras
60dd1cd5c7
Gerber files: update unicode coding to the 2019 06 Gerber specifications.
...
In gbr files, not allowed chars are coded using a 16 bit (4 hexa digits) unicode sequence.
Previously, it was \XXXX and now is \uXXXX escape sequence.
2019-12-21 11:15:57 +01:00
Mark Roszko
11ff16be4e
Switch to scoped enums
2019-12-20 14:11:39 +00:00
Ian McInerney
b9d8849b28
Unify unsaved changes detection logic in all frames
...
Create an IsContentModified() function in each frame
that provides if the content has been modified, and
use that instead of always copying the checks.
2019-12-19 15:34:01 +00:00
Mark Roszko
686b768a3d
Add shutdown blocking on Windows for pcbnew, eeschema and pleditor
...
ADDED: Block shutdown/logoff on Windows when contents have been modified
2019-12-19 14:11:11 +00:00
Jonatan Liljedahl
1e42d6abeb
symbol-editor: Fix MacOS segfault in lib_tree_model_adapter
...
In LIB_TREE_MODEL_ADAPTER::UpdateSearchString(), don't call
AttachTo() on MacOS.
Fixes https://gitlab.com/kicad/code/kicad/issues/3653 and
https://gitlab.com/kicad/code/kicad/issues/3666
2019-12-19 14:01:35 +00:00
Ian McInerney
3370e89967
Update Linux appdata file and CMake version strings
...
CHANGED: Update the Linux appdata file to include new tags
* Include version tags (and others) in the appdata file
* Refactor the version string generation to clean it up
2019-12-18 17:24:07 +00:00
jean-pierre charras
24cd80ef3e
Gerber plotter: modify G02 and G03 commands.
...
They are now in a specific block and no longer combined with an other command.
(combining these commands with an other command (D01 or D02) is deprecated)
Fixes #3677 | https://gitlab.com/kicad/code/kicad/issues/3677
2019-12-18 11:35:28 +01:00
Ian McInerney
c31c99abd1
Update about dialog link to GitLab
...
Fixes #3687
2019-12-17 20:17:03 +00:00
Ian McInerney
0259e0ba07
Cleanup struct initialization and formatting
2019-12-17 16:09:32 +00:00
Ian McInerney
18dbe51d66
Remove WINCE check
...
We don't actually support Win CE
2019-12-17 15:38:38 +00:00
Mark Roszko
bf32122134
common: Remove out of bounds and erroenous array access
2019-12-17 14:10:52 +00:00
Jeff Young
1f07505b27
Fix long-standing issue with arrow keys moving in both axes.
2019-12-15 14:29:47 +00:00
Wayne Stambaugh
1abb198fb4
Minor UI improvement.
...
Use wxMessageDialog instead of wxRichMessageDialog in DisplayErrorMessage
so the platform specific message dialog is used. wxRichMessageDialog
looks different than the stock message dialog on every platform so only
use it when a checkbox is required.
2019-12-14 12:29:38 -05:00
Mark Roszko
ae785194ce
Silence/fix double to float conversion warnings
2019-12-12 21:51:21 +00:00
Seth Hillbrand
eb3d32f967
SHAPE_LINE_CHAIN: Unify constructors
...
Keeps the multi element SHAPE_LINE_CHAIN constructors in a single
routine using std::vector and implicit construction.
2019-12-12 13:54:48 +00:00
Seth Hillbrand
c4d853c1e8
SHAPE_LINE_CHAIN: Remove element access
...
This is the first step to allowing non-segments in the line chain.
External routines cannot be allowed to change the line chain without
going through the internal routines. To accomplish this, we remove the
Vertex() and Point() access routines and only leave the const versions.
Transformations are given for both points as well as the chain itself.
2019-12-12 13:54:48 +00:00
Seth Hillbrand
7d6665c313
Simplify to merge sequential, parallel segments
...
The Simplify() routine can take multiple segments that are in a single
line and merge them into a single segment, reducing the line complexity.
2019-12-12 13:54:48 +00:00
Ian McInerney
179f31d377
Add a minimum size to the part column in the lib trees
...
When the column has 0 width, it becomes hidden and users don't
know where it went or how to get it back.
Fixes https://gitlab.com/kicad/code/kicad/issues/3656
2019-12-10 23:26:07 +00:00
Seth Hillbrand
fa133f3f5c
Plot SVG embedded
...
ADDED: embedded image support for SVG files
Fixes #3643 | https://gitlab.com/kicad/code/kicad/issues/3643
2019-12-08 08:57:33 -08:00
Wayne Stambaugh
54f066fed7
Implement simple inheritance for library symbols.
...
This change completely removes the LIB_ALIAS design pattern an replaces
it by allowing LIB_PART objects to inherit from other LIB_PART objects.
The initial implementation only allows for single inheritance and only
supports the mandatory fields in the derived part because that is all
that the current symbol library file format will support. Once the new
file format is implemented and saving to the old file format is deprecated,
more complex inheritance will be added. The LIB_ALIAS information saved
in the document files was move into the LIB_PART object. This change
impacts virtually every part of the schematic and symbol library editor
code so this commit message is woefully incomplete.
REMOVE: Removed the symbol aliases concept from the schematic and symbol
editors and the symbol viewer.
NEW: Replace the symbol alias concept with simple inheritance that allows
a library symbol to be derived from another library symbol.
2019-12-06 11:33:52 -05:00
Seth Hillbrand
4f4bb96f2b
Suppress false warning of uninit var
2019-12-06 06:27:47 -08:00
Seth Hillbrand
df75167e14
Fix ordering warning and init error for clang
...
The glyphs and bb pointers were reversed.
2019-12-06 04:33:50 -08:00
jean-pierre charras
52db6acb86
Fix a compil issue on Windows.
...
A wxString was defined as const, but on Windows it is modified.
2019-12-06 08:40:58 +01:00
Seth Hillbrand
ac92afcf13
Clean up compile warnings
...
Ratsnest did not need a reserve and then iterative emplace. Instead, we
use resize(). Stroke font gets private vars initialized and kiway
variables that are only used in debug builds are properly scoped for
releases as well
2019-12-05 20:05:21 -08:00
Seth Hillbrand
6983c56cf8
Use const references where possible
...
This avoids copy cost on local vars where we only read.
2019-12-05 14:40:22 -08:00
Seth Hillbrand
c6f5df134c
Minor speed cleanup
...
This adjusts iterators to use const reference when only used for
copy. It also ensures pre-allocation of vectors when size is known
ahead of time.
2019-12-05 14:20:59 -08:00
Seth Hillbrand
b5f021ff9f
Cleanup: Replace push_back with emplace_back
...
In cases where we create a new item and immediately push into a
container, the emplace idiom is faster and more efficient.
2019-12-05 13:41:21 -08:00
Seth Hillbrand
6f8b399c5f
Replace unused resize() call
...
Calling resize(size()) will only zero out elements that exist above the
vector size(). The memory is not freed in this case. shrink_to_fit()
will accomplish this action (at the discretion of the library)
2019-12-05 13:21:48 -08:00
Seth Hillbrand
4d2e953f42
Cleanup: Replace C-only deprecated headers
...
This replaces headers deprecated by C++14 with their equivalent
replacement
2019-12-05 11:03:15 -08:00
Seth Hillbrand
a2edf9c442
Unified update to C++14 std::make_unique
...
This update replaces the existing uses of unique pointer creation with
the C++14 std::make_unique call that provides proper memory release in
event of an exception.
2019-12-05 10:43:55 -08:00
Seth Hillbrand
65ef8c1894
StrokeFont: Reserve rather than resize
...
Minor speedup by not double-initializing the stroke font vector.
2019-12-04 16:36:06 -08:00
Jeff Young
581dc81358
Performance optimizations for the stroke font.
2019-12-03 17:45:26 +00:00
Jeff Young
089ce90de3
Fix some issues with the previous commit.
2019-12-02 23:35:19 +00:00
Jeff Young
9b36489270
Make sure that libraries are always sorted consistently.
...
Fixes #1847481 | https://gitlab.com/kicad/code/kicad/issues/1847481
2019-12-02 21:52:50 +00:00
Jeff Young
102b530162
Fix library tree updating bug present at least on OSX.
2019-11-29 17:55:01 +00:00
Jonatan Liljedahl
7c7d9c3e3f
Eeschema: simulator plot: allow standard mac pan and pinch to zoom
2019-11-25 09:24:31 -05:00
jean-pierre charras
a6566b9b53
Fix a crash in some languages when loading a dynamic library.
...
The crash is inside wxDynamicLibrary::Load() when loading Eeschema,
and hard to find on Windows (gdb shows nothing).
Perhaps due to some issue with a specific string.
The fix is to switch to "C" locale with LC_COLLATE option to load the dll.
Fixes: lp:1853681
https://bugs.launchpad.net/kicad/+bug/1853681
2019-11-24 11:56:02 +01:00
Ian McInerney
99b9354a51
Add clear recent files action to the menus
...
ADDED: Menu item to allow the recent file lists in each program to be
cleared
Fixes: lp:1821685
* https://bugs.launchpad.net/kicad/+bug/1821685
2019-11-23 23:35:21 +00:00
jean-pierre charras
f7159e4692
Make pin function in pads an advanced feature.
...
Mainly because it creates a new keyword a new keyword in *.kicad_pcb files,
and needs some tests, this is currently a advanced feature.
Enable it by adding "UsePinFunction=1" in "kicad_advanced" config file.
Note also "UsePinFunction=1" only enable saving this info in *.kicad_pcb
and kicad_mod files.
2019-11-23 09:12:44 +01:00
jean-pierre charras
71cd8c57bf
ADDED: Pcbnew, add "pin function" (pin name in eeschema) to pads.
...
The pin name defined in Eeschema is now available as pad info.
Useful for the board designer (the pin function is displayed in the message panel).
Needed for the Gerber P&P files.
2019-11-23 09:12:43 +01:00
jean-pierre charras
767d7f2009
Fix bug (typo?) in gestfich.cpp.
...
Minor enhancement in treeproject_item.cpp
2019-11-19 16:11:56 +01:00
Jeff Young
89ace3b0d0
Apply the overbar fixes from the stroke font to bitmap text.
...
Fixes: lp:1852037
* https://bugs.launchpad.net/kicad/+bug/1852037
2019-11-18 11:36:30 +00:00
jean-pierre charras
c1f88b2d9c
Gerber P&P file: remove BGA option from TO.CMnt attribute.
2019-11-17 20:34:28 +01:00
jean-pierre charras
6f2cbe5982
Pcbnew: housekeeping: move netlist code to netlist_reader sub directory.
2019-11-17 13:58:38 +01:00
jean-pierre charras
c5290de6ec
housekeeping:
...
Remove not used files:
- markdown2html is not used (we are using "Sundown" tool)
- newstroke_font_without_CJK.cpp is removed.
Due to code optimization the full font works fine without memory issues
-fix also a few very minor compil warnings
2019-11-16 09:39:36 +01:00
jean-pierre charras
544867cf2a
ADD: layer stack manager: support of multilayer dielectric between 2 copper layers
...
This feature is useful for advanced microwave applications.
This is the last missing feature in the board stackup management.
2019-11-15 14:33:10 +01:00
Ian McInerney
88e55bbf2d
Recursively delete directories in the project tree
...
Ensure we iterate over all the sub directories and files inside of them
when deleting a directory from the project tree.
Fixes: lp:1852357
* https://bugs.launchpad.net/kicad/+bug/1852357
2019-11-15 00:26:52 +00:00
jean-pierre charras
de2818c113
Fix a few I18n minor issues.
2019-11-12 13:47:35 +01:00
qu1ck
695caa7dfa
Make stroke font bbox calculation consistent with rendering
...
When rendering tabs we count them as 4 + 1 space but when calculating
bbox it is 4 spaces + '?' width, which is a bit wider.
2019-11-11 20:16:59 -08:00
Seth Hillbrand
ed77f522dd
Align text to 4th column correctly
...
Text mod calculation was off by one in alignment
2019-11-11 20:16:59 -08:00
Jeff Young
04b0feb365
Fix a couple of issues in new Save As command.
...
Handle symbols as well as strings in the "source" lists of
netlist files.
Handle Protex gerber file extensions.
Check for project_name-whatever pattern for files that we
don't recognize (such as project_name-NPTH-drl_map.ps)
2019-11-11 20:36:48 +00:00