Commit Graph

7432 Commits

Author SHA1 Message Date
Jeff Young c8a50d9b50 Remove unit-less angles from VECTOR2I/D APIs. 2022-01-20 23:58:20 +00:00
Jeff Young 4eac8d7c66 Remove unit-less angles from geometry lib APIs. 2022-01-20 21:10:04 +00:00
Jeff Young ba3a810e55 Prefer EDA_ANGLE to naked degrees. 2022-01-20 21:10:04 +00:00
Jeff Young 4a05b36bc6 Prefer EDA_ANGLE to naked radians. 2022-01-20 21:10:04 +00:00
Jeff Young 854987f663 Remove unit-less angles from geometry manager APIs. 2022-01-20 21:10:04 +00:00
Jeff Young fbab335128 Retire DPOINT and DSIZE. 2022-01-20 21:10:04 +00:00
Jeff Young 67eb3116ce Remove DPOINT from drawing sheet stuff. (Use VECTOR2D instead.) 2022-01-20 21:10:04 +00:00
Seth Hillbrand 881af75029 Always use the project directory for default save
Fixes https://gitlab.com/kicad/code/kicad/issues/10478

(cherry picked from commit dd7029ea07)
2022-01-20 11:51:45 -08:00
Seth Hillbrand 4c8f556b80 Prevent UI updates from changing zoom selection
The zoom selection should only change when requested by the user, not in
response to UI updates.  This can cause unexpected zoom shifts when the
calculated zoom is within a range of one of the presets.  It also adds
unneeded calls during the UI update cycle

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

(cherry picked from commit 6810479a19)
2022-01-20 10:10:06 -08:00
jean-pierre charras b084115a9e BITMAP_BASE::DrawBitmap(): fix position of the clipping area when using matrix transform.
Fixes #10525
https://gitlab.com/kicad/code/kicad/issues/10525
2022-01-20 16:15:39 +01:00
Jeff Young 3ba89f50ef Maybe, just maybe, fix LibEdit arc parsing.
Fixes https://gitlab.com/kicad/code/kicad/issues/10455
2022-01-19 22:22:18 +00:00
Jeff Young 9d5322cfdf Move rotation angle increments to UNIT_BINDER and EDA_ANGLE. 2022-01-19 15:15:33 +00:00
Jeff Young 0091c76a6f Excise deci-degrees from UNIT_BINDER.
Fixes https://gitlab.com/kicad/code/kicad/issues/10495
2022-01-19 00:10:32 +00:00
Jeff Young a808e2396b Run font/laguage checks only on Mac. 2022-01-18 14:19:57 +00:00
Jeff Young 8445783216 Fix backwards arcs in legacy LIB_ARCs.
Fixes https://gitlab.com/kicad/code/kicad/issues/10455
2022-01-18 14:08:47 +00:00
Jeff Young d4ff829c26 Trace logging for fonts. 2022-01-18 14:08:47 +00:00
jean-pierre charras 1c8ba6dafc fix python QA tests to run with latest changes in eda_angle.h 2022-01-18 13:49:50 +01:00
Jeff Young b828355206 A bit more angle cleanup. 2022-01-18 09:48:24 +00:00
Jeff Young e37ca2f757 Remove dead code. 2022-01-18 01:40:03 +00:00
Jeff Young 8c246a761d Move EDA_ANGLE from int to double. 2022-01-17 20:57:54 +00:00
Thomas Pointhuber 5aff3ef949 altium: First prototype to parse tracks of a footprint 2022-01-17 19:54:28 +01:00
Thomas Pointhuber 0129e49b79 altium: Introduce new ALTIUM_COMPOUND_FILE object to handle file opening and searching for streams at a central place 2022-01-17 19:54:26 +01:00
Thomas Pointhuber 2cc9517cfd altium: Allow extraction of names of footprints stored in *.PcbLib file
See: https://gitlab.com/kicad/code/kicad/-/issues/10274
2022-01-17 19:51:51 +01:00
Thomas Pointhuber c6504628f0 altium: Fix Compound File Reader which returned wrong entries
It was possible that we confuse multiple files with the same name. This should not be that relevant for board and schematic import, but is important for library import!
2022-01-17 19:51:51 +01:00
jean-pierre charras 8d5eba7649 DRAWING_SHEET_PARSER: fix missing parse of "T_comment" case for DS_DATA_ITEM_BITMAP.
Fixes #10477
https://gitlab.com/kicad/code/kicad/issues/10477
2022-01-17 18:02:44 +01:00
Scott Candey 23fdbe4b21 Common: Corrects Mac OS text navigation shortcuts in Scintilla
Ctrl-A moves cursor to beginning of current line in text box.
Ctrl-E moves cursor to the end of the line.
This change makes navigation in Scintilla text boxes consistent
with other text boxes in KiCad.

Fixes https://gitlab.com/kicad/code/kicad/issues/9996
2022-01-17 14:31:06 +00:00
Jeff Young 2defd8d911 Move show-bounding-boxes to a tool on the toolbars. 2022-01-17 11:56:40 +00:00
jean-pierre charras 1f2d1528cb LSET::SeqStackupBottom2Top(): add missing user layers to list of layers
These missing layers were not exported in export SVG.
2022-01-17 10:54:19 +01:00
Jeff Young 5cc3368b14 Fix bounding boxes and hittesting for arcs in eeschema. 2022-01-16 23:54:59 +00:00
Jeff Young e61144d45a Finish with EDA_ANGLE. 2022-01-16 21:15:40 +00:00
dsa-t bc1ff6756f Cross-probing/selection for multiple items (SCH->PCB) 2022-01-16 20:29:03 +00:00
Jeff Young e84c574830 Some more EDA_ANGLE cleanup. 2022-01-16 19:16:18 +00:00
Jeff Young 9b661aea10 EDA_ANGLE for plotters.
Also fixes a compile error in the PNS Playground.
2022-01-16 01:19:45 +00:00
Jeff Young 1539fa5af2 Move SHAPE_ARC to EDA_ANGLE. 2022-01-16 01:19:45 +00:00
Ola Rinta-Koski da65fe0469 Font outline decomposition fixes 2022-01-15 12:51:09 +00:00
Marek Roszko 8fe16690b7 Add array deleter 2022-01-14 22:04:47 -05:00
Jeff Young 3f98769a77 More EDA_ANGLE.
Includes bug fix for catastrophic error in Add() for converting to
radians.

Includes bug fixes for the fact that the pcbnew test can't seem to
find the ANGLE_* objects (getting all 0's instead).
2022-01-15 01:30:04 +00:00
Seth Hillbrand 22a77d3556 Move EDA_ANGLE to KiMath lib
KiMath should only depend on itself not on other elements in the tree
2022-01-14 17:12:24 -08:00
Seth Hillbrand de006fc010 Fix transparent circle printing
DrawEllipse seems to work fine using transparent bg for all DCs except
printing (which is the only one we use now)  Use two arcs to draw a
transparent fill for the circle instead as a workaround until we
implement Cairo printing

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

(cherry picked from commit cccdac136f)
2022-01-14 16:13:35 -08:00
Seth Hillbrand 728ca8265f Print fonts as polygons, not triangles
Similar to plotting, print engines are probably happier dealing with
filled polygons than hundreds of triangles
2022-01-14 09:18:42 -08:00
Jeff Young 07013d00e1 More EDA_ANGLE. 2022-01-14 16:08:19 +00:00
Jeff Young 1b19ff5f42 More EDA_ANGLE changes. 2022-01-14 16:08:19 +00:00
Jeff Young c9487bad18 Move BOARD_ITEM::Rotate() to EDA_ANGLE. 2022-01-14 16:08:19 +00:00
Jeff Young abd3f5bc2b Move footprints to EDA_ANGLE. 2022-01-14 16:08:18 +00:00
Jeff Young 70ad554343 Coverity fixes. 2022-01-14 16:08:18 +00:00
Jeff Young d485eb2514 Move pads to EDA_ANGLE. 2022-01-14 16:08:18 +00:00
Jeff Young e048e51f5d Improve SNR of EDA_ANGLE stuff. 2022-01-14 16:08:18 +00:00
jean-pierre charras 431560a46b EDA_SHAPE::SwapShape() : add missing items to the swap list.
Some items (color, fill) were missing in list, so the undo/redo was incorrect
2022-01-14 09:40:15 +01:00
Seth Hillbrand e7d0318fb2 Plot fonts in outline mode, not triangulated
Putting 1,000s of tiny triangles on a gerber file will cause mfg fits.
Instead, we use easy outline plotting for plots and triangulation for
everything else.
2022-01-13 17:04:14 -08:00
jean-pierre charras d0f2c20235 Define our kicad font name only once, and do not translate it.
Especially using a translated name breaks kicad config and files because
in non English languages both translated and not translated names were used in code.
2022-01-13 14:32:55 +01:00
dana 8373180cbb Handle Unicode clipboard data in pcbnew and symbol editor
Fixes #10323
2022-01-12 17:15:47 +00:00
jean-pierre charras cf11abda3d Fix test_drc_regressions.cpp: disable tests that need a footprint library
DRCE_LIB_FOOTPRINT_ISSUES and DRCE_LIB_FOOTPRINT_MISMATCH imply a library
but the test cases do not have a library.
2022-01-12 15:57:41 +01:00
jean-pierre charras 0aca35bcab Eeschema, plot: fix missing initialization that created 0 size texts.
0 sized texts are hard to read
2022-01-11 20:47:16 +01:00
Seth Hillbrand 7ef8843545 Assign font if null
Fixes https://gitlab.com/kicad/code/kicad/issues/10370
2022-01-11 11:05:38 -08:00
jean-pierre charras 083193c3d4 Eeschema, print: fix missing initialization that created 0 size texts. 2022-01-11 18:16:23 +01:00
Jeff Young 33338aa0f2 Formatting. 2022-01-11 14:34:16 +00:00
Jeff Young 8f7d2dd06a More VECTOR2D -> VECTOR2I and wxPoint cleanup. 2022-01-11 14:20:14 +00:00
Marek Roszko fcfe42d67c Continue the war on wxPoint 2022-01-10 19:52:26 -05:00
Jeff Young cdb411bb14 Fix issue with hotkeys getting overridden by non-running Kifaces. 2022-01-10 23:41:56 +00:00
Ola Rinta-Koski dcab2833b8 PEGTL 2.x->3.x 2022-01-10 23:22:23 +00:00
Seth Hillbrand d5faac7614 Better fix for missing end segment
Rather than skipping our endEdit() call in libedit, we need to
parameterize whether we want the shape open/closed.  Closed will remove
the last segment if it lands on the first point.  We don't want that
but we do want to remove the last point if it duplicates the second to
last (in the case of double-clicking)

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

(cherry picked from commit 55020c2b89)
2022-01-10 13:39:39 -08:00
Jeff Young 21790fcab7 Fix a pair of dereference-freed-pointers in DRC.
Fixes https://gitlab.com/kicad/code/kicad/issues/10335
2022-01-10 21:06:03 +00:00
Jeff Young 73a2984963 Fixes for rotated footprint text. 2022-01-10 15:30:19 +00:00
Jeff Young 236feeb592 Cleanup GRText APIs, 3D Viewer <-> board APIs, and Plotter APIs.
Also fixes a bug where outline fonts weren't being handled for footprint
text in 3D Viewer, and a copy/paste error in stroke font handling for
both PCB and footprint text in 3D Viewer.

Fixes https://gitlab.com/kicad/code/kicad/issues/10319
2022-01-10 14:17:11 +00:00
Jeff Young 7d032f9c2f Outline font rendering for Cairo, plotter, printer and 3D viewer.
Fixes https://gitlab.com/kicad/code/kicad/issues/10319
2022-01-10 01:54:28 +00:00
Jeff Young 76368af7b9 Font cleanup and bug fixes. 2022-01-09 18:33:53 +00:00
Jeff Young 7e18256386 Performance optimizations for building the stroke font. 2022-01-09 15:47:08 +00:00
Jeff Young 78cac128b7 Careful: symbol fonts have no language.
Also a bit of clean up to shut up a false-positive in Coverity (and
clangd) on dereferencing a possibly (not) nullptr.
2022-01-09 11:34:20 +00:00
Jeff Young a170d3f006 Commenting. 2022-01-09 11:34:20 +00:00
Jeff Young a4349ae638 Cleanup and error reporting for fonts. 2022-01-09 11:34:20 +00:00
Mikolaj Wielgus a42f33414e Update contributor name 2022-01-09 09:22:41 +01:00
Jeff Young 6242b40cde Supported language filtering for fonts.
If the language isn't supported by the system, no point showing the
user the fonts.
2022-01-08 22:02:17 +00:00
Jeff Young c5eb77d765 Fix second case of font name mismatch. 2022-01-08 20:11:37 +00:00
Marek Roszko 263513b8cf Fix default font name check 2022-01-08 14:37:50 -05:00
Jeff Young 05cfdd3907 Supply a text size & thickness for GAL::StrokeText
Fixes https://gitlab.com/kicad/code/kicad/issues/10226
2022-01-08 16:47:45 +00:00
Jeff Young 04c76f10e9 Performance enhancements for fonts. 2022-01-08 16:47:45 +00:00
Jeff Young 438c63f587 Fix outline font boundingbox issues. 2022-01-08 16:47:45 +00:00
Jeff Young aef2a3fca4 Default font for eeschema. 2022-01-08 16:47:45 +00:00
Jeff Young eb58d7e44c Text glyph caches and bug fixes.
1) Unify metrics between stroke and outline fonts
2) Unify handling of rotation and mirroring
3) Bug fixes in collision handling
4) Use of VECTOR2I (instead of VECTOR2D) for world-coordinates
5) Generate outline font overbar with rounded ends and fix rotation
bugs
6) Generate wxEVT_CHOICE events from FONT_CHOICE::SetFontSelection
7) Change text-item PNS SOLIDs to use compound shapes
2022-01-08 16:47:45 +00:00
Ola Rinta-Koski 5b7198dfc8 Fixes as per @sethhillbrand's comments 2022-01-08 16:47:45 +00:00
Jeff Young 383beeba8e Fix font name that shouldn't be translated. 2022-01-08 16:47:45 +00:00
Jeff Young 72340fcee2 Implement router and DRC collisions for outline fonts. 2022-01-08 16:47:45 +00:00
Jeff Young a2030a5956 GUI for font selection. 2022-01-08 16:47:45 +00:00
Ola Rinta-Koski 72b69e8d7f File format changes for fonts. 2022-01-08 16:47:45 +00:00
Ola Rinta-Koski 9b406c1da4 Outline font support. 2022-01-08 16:47:45 +00:00
jean-pierre charras 9c29cc945c prepare teardrops, round 2 2022-01-08 16:56:41 +01:00
jean-pierre charras 563e8817a2 Fix a compil issue. 2022-01-08 08:10:18 +01:00
Seth Hillbrand c72593ca01 Printing multiple bitmaps
A long-standing issue with multiple workarounds
(https://gitlab.com/kicad/code/kicad/-/issues/1877) prevented eeschema
printouts with multiple images or images in both the worksheet and the
schematic.

We worked around this by ordering the bitmap printing to be the first
step in the printing process.  This partially worked but didn't get
everything correct.  The primary difficulty in debugging this was that
the wxPrintPreview that we generate looked correct.  Only the actual
printout was incorrect.

The fix is to explicitly clip bitmap drawing to the bitmap area,
regardless of how large the bitmap is.

(cherry picked from commit 69469b254a)
2022-01-07 17:22:16 -08:00
Seth Hillbrand 26c0a78947 Plot pads in layer color
v6 pads are not allowed to be a different color from the rest of the
copper layer, so don't query the GAL layer for a color

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

(cherry picked from commit bfca928900)
2022-01-07 08:56:22 -08:00
Seth Hillbrand ac9693bb8d Safely sort view layers
Changing view order of only some layers can cause overwriting of the
original layer if not pre-staged

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

(cherry picked from commit 3e6bf7814b)
2022-01-06 14:41:51 -08:00
Brian Mayton e4f73c8dc9 Add ORANGE to DXF output
Matches the schematic color options to DXF layers

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

Signed-off-by: Seth Hillbrand <seth@kipro-pcb.com>
(cherry picked from commit d014f0307b)
2022-01-06 11:06:31 -08:00
Seth Hillbrand b01715dd22 Fix crash in SVG plot
NULL fonts need to be assigned a default.

KSC internal ticket #459
2022-01-05 17:26:18 -08:00
Seth Hillbrand c340760eaa Prevent unneeded fallback
Starting in be8327bd54, we assume that all
exceptions in DoRePaint() are caused by OpenGL.  But many calls in
UpdateItems() will throw if there are internal errors such as
std::out_of_range.  Here, we catch those errors and simply skip ahead
rather than falling back to Cairo

(cherry picked from commit 444801ada6)
2022-01-05 13:47:43 -08:00
Marek Roszko 726d873c53 Tear down the wxPoint trigo helpers 2022-01-04 21:23:11 -05:00
jean-pierre charras 2bfff9d4ce Fix crash when trying tp draw a text with over-bar.
(missing initialization of a pointer)
Fixes #10252
https://gitlab.com/kicad/code/kicad/issues/10252
2022-01-04 18:18:34 +01:00
Jeff Young cbd665db7b Remove markup_parser from headers so PEGTL doesn't leak windows.h. 2022-01-04 12:20:18 +00:00
Marek Roszko 38a25fbc4d Fix windows compile error
pegtl.hpp is dumb and leaks windows.h which then causes #define conflicts
2022-01-04 00:49:29 -05:00
Marek Roszko ac715d2e51 Scoop up some more wxPoint instances 2022-01-03 20:00:53 -05:00
Jeff Young 8e4a4306c7 Go back to using inter-character spacing from the stroke font.
Fixes https://gitlab.com/kicad/code/kicad/issues/1078
2022-01-04 00:46:08 +00:00
Wayne Stambaugh ff38853886 Make footprint and symbol editors use MRU path for new libraries.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/10216
2022-01-03 18:02:41 -05:00
Jeff Young f40f516af6 KiCad Manager doesn't implement Kiface().
Fixes crash bug from Help > List Hotkeys in Kicad Manager.
2022-01-03 22:24:44 +00:00
Jeff Young e21fa31f64 Rip out rest of macHack architecture. 2022-01-03 22:09:56 +00:00
Jeff Young 2fdbc41b8f Remove macHack.
Either the recently added size-event works better than the version I
originally tried or it's simply no longer needed in wxWidgets 3.1.
In any case, I can't reproduce the wxGrid layout errors anymore.
2022-01-03 18:24:26 +00:00
Mike Williams 404659d275 Gerbview: Fix diff mode issues with OpenGL transparency
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/10121
2022-01-02 23:15:36 +00:00
qu1ck 356cddd474 Template for vector<VECTOR2I> in swig 2022-01-02 21:33:58 +00:00
Marek Roszko ec83537576 Fix missing win32 header 2022-01-02 13:07:56 -05:00
Jon Evans 59be6a8d19 Load local settings even when not setting project active
Fixes https://gitlab.com/kicad/code/kicad/-/issues/10179

(cherry picked from commit 0065036899)
2022-01-02 12:40:49 -05:00
jean-pierre charras c4af66f6d3 Fix compil issues on Windows+msys2
Probably some fixes also on other platforms
2022-01-02 18:32:39 +01:00
Jeff Young 0365c6bf4b Coverity fixes. 2022-01-02 14:57:03 +00:00
Jeff Young 89c0f8e297 Move to new font engine. 2022-01-02 14:57:03 +00:00
Jeff Young e41a4d406a Cherry-pick MARKUP_PARSER from rockola/kicad-strokefont. 2022-01-02 14:57:03 +00:00
jean-pierre charras 797de9d327 Fix some issues (but not all) in qa tests for eeschema
The main fix is for errors in SCH_TEXT and derived:
qa test expects 4 rotations is an identity transform:
This is false if the item has autoplaced fields.
The fix clears autoplaced flags.
2022-01-02 14:54:27 +01:00
Simon Richter d25fe17b28 Bump minimum required CMake version to 3.11
Signed-off-by: Marek Roszko <mark.roszko@gmail.com>
2022-01-01 21:35:08 -05:00
Jeff Young 27d8df1122 Don't update units for UNSCALED, PERCENT or DEGREES.
Fixes https://gitlab.com/kicad/code/kicad/issues/10020
2022-01-01 20:46:45 +00:00
Marek Roszko ea613cf448 Another batch of point changes 2022-01-01 13:17:12 -05:00
Marek Roszko c4c56de708 Neurotically update position wxPoint usages 2022-01-01 11:55:51 -05:00
Marek Roszko 347e03363a Convert wxPoint/wxSize starting from EDA_RECT usages 2022-01-01 11:30:33 -05:00
arturo182 c07e5ca5d1 Happy New Year! 2022-01-01 14:27:22 +00:00
Wayne Stambaugh d634b33c34 Preference dialog fixes.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/10139
2021-12-31 14:59:46 -05:00
Ian McInerney 14780ab2e4 Code cleaning un kicad_curl_easy 2021-12-31 11:00:31 +00:00
Ian McInerney 0e9cfd0af2 Add missing initialization values to variables
Flagged by Coverity.
2021-12-30 23:42:06 +00:00
Marek Roszko c7447f9be6 Remove UpdateUI from preferences pdf viewer option 2021-12-30 11:36:01 -05:00
Mark Roszko 44dc602d6b Yeet wxPoint/wxSize out of PLOTTER 2021-12-29 19:02:50 +00:00
Jeff Young ccb94fd1a7 APIs for passing KIFONT::FONT pointers around.
Also some clean-up and bug fixes.
2021-12-29 17:32:19 +00:00
Jeff Young dd6cd7d184 Pull some more improvements in from rockola/kicad-strokefont.
This one is primarily about pushing TEXT_ATTRIBUTES in to the GAL
API, but it also includes adding EDA_ANGLE signatures to some trig
routines to ease integration.
2021-12-29 17:32:19 +00:00
Franck Bourdonnec e3fb9f77eb missing statement 2021-12-29 11:41:40 +00:00
Wayne Stambaugh cc9d074a2a Add upated UI event throttling to advanced configuration. 2021-12-28 18:17:53 -05:00
Jeff Young 86cb57f4a7 Cherry-pick TEXT_ATTRIBUTES and EDA_ANGLE from rockola/kicad-strokefont 2021-12-28 22:15:20 +00:00
Wayne Stambaugh b5960fef38 Fix another broken tree book selection in paged dialogs. 2021-12-28 16:57:42 -05:00
Wayne Stambaugh 7b1b96c933 Fix broken tree book selection in paged dialogs.
This only affected the tree controls that only parented sub-pages.  Do
not use the dialog ctor to select the initial page.  Queuing a page
changed event to fire after the dialog is shown is the proper solution.
2021-12-28 09:43:57 -05:00
jean-pierre charras b0bf780b80 Ensure stroke_params_lexer.h is created on all platforms (linux or msys2)
Probably due to an order of build commands this file was not created before use
on msys2.
2021-12-28 12:01:30 +01:00
Wayne Stambaugh 14c148cb38 Expunge update UI event handler from paged dialog object.
Use the book control page changing event to update any pages prior to
them being shown.  When the validation fails when changing pages, the
page change is vetoed until the invalid condition is fixed by the user.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/5049

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/10139
2021-12-27 18:40:12 -05:00
Jeff Young 5e4a704155 Remove some more duplicated preferences.
Fixes https://gitlab.com/kicad/code/kicad/issues/10112
2021-12-26 13:37:28 +00:00
Jeff Young 933b82495d Use ISO 128-2 values for dashed line defaults. 2021-12-25 14:00:57 +00:00
Jeff Young b07afad83c Cleanup. 2021-12-24 21:21:14 +00:00
Jeff Young 03a2723b67 Improve GUI of lib item colors. 2021-12-24 21:21:11 +00:00
Jonathan Haas 24472ff9e3 Add simple implementation of FILL_T::FILLED_WITH_COLOR for SVG plotter (custom color is ignored at this point) 2021-12-24 21:21:08 +00:00
Jeff Young 09b7e0b72b ADDED Exclude Footprint from Courtyard Requirement.
Fixes https://gitlab.com/kicad/code/kicad/issues/9881
2021-12-24 21:10:28 +00:00
Jeff Young d649b288a6 Swap out autoplace rotation costs for private footprint layers.
Fixes https://gitlab.com/kicad/code/kicad/issues/2291

Fixes https://gitlab.com/kicad/code/kicad/issues/5391
2021-12-24 21:10:28 +00:00
Jeff Young fa908e1f98 Dimensions for footprints.
Fixes https://gitlab.com/kicad/code/kicad/issues/8441
2021-12-24 21:10:28 +00:00
Jeff Young b84a85f648 Cleanup dead code and stale TODOs. 2021-12-24 21:10:28 +00:00
Jeff Young ed79f6e511 Clean up some TODOs. 2021-12-24 21:10:28 +00:00
Jeff Young 29c942816e Reduce duplication of settings. 2021-12-24 21:10:28 +00:00
Mikolaj Wielgus 567948cb39 Restore Translators-Other section in credits 2021-12-24 20:40:32 +01:00
Jeff Young c3552a940a Make sure standard OK/Cancel buttons respond to current language.
Fixes https://gitlab.com/kicad/code/kicad/issues/9635
2021-12-24 18:13:11 +00:00
Jeff Young 6cec58cf75 Add field access to custom DRC rules.
ADDED getField() method to custom DRC rules.
2021-12-24 18:13:00 +00:00
Jeff Young 23194dbe54 User-settable high-contrast dimming factor.
ADDED user-settable high-contrast dimming factor.

Fixes https://gitlab.com/kicad/code/kicad/issues/6922
2021-12-24 17:38:55 +00:00
Jeff Young af13533b42 Add show/hide controls for ERC markers.
ADDED show/hide controls for ERC warnings, ERC errors and ERC exclusions.

Fixes https://gitlab.com/kicad/code/kicad/issues/7270
2021-12-24 17:38:50 +00:00
Jeff Young a6dd1bf09b Implement Reset to Defaults for all preferences panels. 2021-12-24 17:38:39 +00:00
Jeff Young ceceda37cc No more long-lived parsers.
We've had too many bugs from improper re-initialization.

Fixes https://gitlab.com/kicad/code/kicad/issues/9429
2021-12-24 17:11:18 +00:00
Jeff Young 6c05e5d1a8 Implement user viewports.
ADDED popup to Appearances palette where users can define viewports
for later selection.

Fixes https://gitlab.com/kicad/code/kicad/issues/2271
2021-12-24 17:11:14 +00:00
Jeff Young 9de62d1dd4 Promote to cell selection for spreadsheet-style paste.
Fixes https://gitlab.com/kicad/code/kicad/issues/9211
2021-12-24 16:29:23 +00:00
Jeff Young 889970a449 SCH_NETCLASS_FLAGs and SCH_FIELDs for labels.
ADDED: a new label type for netclass flags.
ADDED: the ability to define fields on labels.
2021-12-24 16:13:27 +00:00
Jeff Young b7e196b710 ADDED assertion constraints for user-defined DRC checks. 2021-12-24 16:13:18 +00:00
Jeff Young 9ee28ea8f5 Flatten out some more preferences. 2021-12-24 15:43:20 +00:00
Jeff Young 5f37c2b247 Custom rule severities.
ADDED severity token to custom rule syntax.  Each rule can now define
its own severity.

Fixes https://gitlab.com/kicad/code/kicad/issues/6148
2021-12-24 15:42:22 +00:00
Jeff Young d28714167c All the preferences, all the time.
Fixes https://gitlab.com/kicad/code/kicad/issues/7877

Fixes https://gitlab.com/kicad/code/kicad/issues/5153
2021-12-24 13:08:44 +00:00
Jeff Young f1410f0240 Line styles for PCBNew shapes.
Fixes https://gitlab.com/kicad/code/kicad/issues/2150
2021-12-24 12:36:59 +00:00
Jeff Young e92efebb5f Formatting. 2021-12-24 11:39:57 +00:00
Jeff Young 150dedbb83 Add dash-dot-dot lines for HPGL.
Also converts HPGL line types to fixed (rather than adaptive).  Varying
the pattern to fit each segment is going to look bad most of the time,
but particularly when stroking arcs or circles where HPGL will try to
repeat it for each chord segment.
2021-12-23 23:48:01 +00:00
Jeff Young 3f64b69917 Mechanical clearance rules.
ADDED mechanical_clearance and mechanical_hole_clearance constraints.

Fixes https://gitlab.com/kicad/code/kicad/issues/2183
2021-12-23 22:31:21 +00:00
Jeff Young a48867ea01 Solder mask integrity testing.
ADDED DRC test for solder mask aperture bridging copper from different
nets.
ADDED visualization of minimum web width processing for solder masks.
ADDED allow_soldermask_bridges property for footprints.

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

Fixes https://gitlab.com/kicad/code/kicad/issues/1792
2021-12-23 22:31:14 +00:00
Jeff Young 533276e6b6 Copper sliver checking.
ADDED DRCE_COPPER_SLIVER DRC error.
ADDED ADVANCED_CFG DRCSliverWidthTolerance and DRCSliverAngleTolerance.

Fixes https://gitlab.com/kicad/code/kicad/issues/2183
2021-12-23 22:31:05 +00:00
Jeff Young a1e3f2b188 Starved thermals DRC checking.
ADDED min_resolved_spokes constraint.
ADDED "Thermal relief connection to zone incomplete" violation.

Fixes https://gitlab.com/kicad/code/kicad/issues/2183
2021-12-23 22:30:42 +00:00
Jeff Young 32721755bf Hook up zone-pad connections to custom rules.
ADDED zone_connection constraint.
ADDED thermal_relief_gap and thermal_spoke_width constraints.

ADDED angle override for thermal relief spokes in Pad Properties.

Fixes https://gitlab.com/kicad/code/kicad/issues/4067
2021-12-23 22:30:26 +00:00
Jeff Young 28b279cb2d Units cleanup.
It's 2021.  Time to move beyond ASCII.  This also makes spacing of
units consistent (space before abbreviated units, no space before
symbolic units).
2021-12-23 22:17:10 +00:00
Jeff Young 295a6408c3 User-configureable dash styles (and dash-dot-dot).
ADDED: Schematic Setup properties for dash length and gap length.
ADDED: dash-dot-dot line style

Fixes https://gitlab.com/kicad/code/kicad/issues/2206
2021-12-23 20:36:24 +00:00
Jeff Young e26341d424 Cleanup. 2021-12-23 20:36:18 +00:00
Jeff Young 2bc86fa0a8 Shapes for schematic.
ADDED arc, circle and rectangle shapes for schematic.  Shapes support
line styles and fill colors.

CHANGED sheet background color in Edit Text & Graphics Properties to
fill color (and it now affects shapes).

Pushed STROKE_PARAMS down into common and moved all shapes to using it
for stroke descriptions.
2021-12-23 20:36:07 +00:00
Jeff Young 4b6bf3095a Radial dimensions.
ADDED radial type dimensions.

Fixes https://gitlab.com/kicad/code/kicad/issues/2056
2021-12-23 19:34:54 +00:00
Jeff Young 2001d08186 Add DRC tests for text height and text thickness.
Fixes https://gitlab.com/kicad/code/kicad/issues/8683
2021-12-23 19:18:45 +00:00
Jeff Young f089cf44a7 Allow a 0 pin-symbol-size.
This is particularly important when reading legacy projects as 0 is
what signals the painter to use the old algorithm (1/2 pin name/number
size).

Fixes https://gitlab.com/kicad/code/kicad/issues/10100
2021-12-23 16:54:03 +00:00
Jeff Young 6e2460ad37 Add hot-updating of units in common wxGrids.
Fixes https://gitlab.com/kicad/code/kicad/issues/10020
2021-12-23 16:54:03 +00:00
Mikolaj Wielgus 2ecd5ac909 Fix calculation of selection center
Fixes https://gitlab.com/kicad/code/kicad/issues/9998
2021-12-16 08:13:52 +01:00
Seth Hillbrand 9e6538b9a0 Revert accidental tilde change
Our baseline script to generate the font seems to shift the tilde down
by half a cell.  Unclear why but we shouldn't be changing the position
between versions.

Reference https://gitlab.com/kicad/code/kicad/-/issues/4396
2021-12-15 19:28:12 -08:00
Seth Hillbrand d785a97940 Add Donate button to About dialog. 2021-12-15 10:02:01 -08:00
Seth Hillbrand 7f419e4468 Update translators 2021-12-14 13:01:10 -08:00
Alex 5bf9bd3ebb Hotkey editor: prevent closing on Enter release 2021-12-14 19:52:24 +00:00
Jeff Young 724182abe4 Fix lib tree searches to handle searching on library names.
Fixes https://gitlab.com/kicad/code/kicad/issues/9981
2021-12-14 15:18:48 +00:00
Wayne Stambaugh 0bfb5bab02 Fix some minor paged dialog object issues. 2021-12-14 08:15:02 -05:00
Seth Hillbrand 78ff9a857a Jerry-rig HTML-format alpha parsing
On wx3.0, the HTML format #RRGGBBAA cannot handle the alpha channel.
Instead, we route this through a COLOR4D routine when we need to use
these colors

Fixes https://gitlab.com/kicad/code/kicad/issues/9963
2021-12-13 16:04:40 -08:00
Jon Evans 6e51905e69 Kick wxWidgets to set column sizes the first time
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6396
2021-12-13 18:37:36 -05:00
Wayne Stambaugh 755607b8f8 Fix a few wxUpdateUIEvent retrigger loops. 2021-12-13 15:46:13 -05:00
jean-pierre charras 007b3bdbcc Hotkeys help: fix incorrect modifiers.
Fixes #9951
https://gitlab.com/kicad/code/kicad/issues/9951
2021-12-13 16:29:42 +01:00
Wayne Stambaugh e32448edc2 Center preferences dialog correctly on initialization. 2021-12-13 09:17:42 -05:00
Jeff Young 88fc6d25a7 Correctly handle deleting multiple selections in some grids.
Fixes https://gitlab.com/kicad/code/kicad/issues/9952
2021-12-12 17:28:17 +00:00
Jon Evans 3cb7ca1db4 Remove manual canvas scale from GTK
Fixes https://gitlab.com/kicad/code/kicad/-/issues/9912
2021-12-09 18:36:44 -05:00
Seth Hillbrand 70841c6393 Fix a crash bug when changing footprint name
Save-As to a new footprint name will cause the fp table to reload.  We
were incorrectly locking the indices in a manner that did not protect
the proper index, causing lock errors that threw/crashed editor
2021-12-09 10:46:43 -08:00
Seth Hillbrand 1df765af44 Reset the read-only flag when performing Save As
The new location is checked for writing and so we shouldn't keep the old
flag when changing project locations

Fixes https://gitlab.com/kicad/code/kicad/issues/9904
2021-12-08 17:21:17 -08:00
Seth Hillbrand 3180764309 Don't remove converted files in local settings
When migrating local settings, we don't want to remove files that we
converted from as these settings will be created on demand and don't
represent the totality of user settings

Fixes https://gitlab.com/kicad/code/kicad/issues/9905
2021-12-08 09:30:42 -08:00
Jeff Young 7ffd43a6f4 Regularize the promotion of pads to footprints in non-free-pad mode.
Also regularizes some of the other selection filtering options.

This also fixes an invalidated iterator (and subsequent segfault) in
the old code.

Fixes https://gitlab.com/kicad/code/kicad/issues/9896
2021-12-08 13:08:54 +00:00
Seth Hillbrand 42f63b679d Check for proper winding when creating an EDA_SHAPE
There is a defined order to arc points in the EDA_SHAPE.  When creating
the new object, we need to check that that order is preserved on
conversion
2021-12-07 10:51:43 -08:00
Jon Evans 014bad7b28 Add profile counters for PCB mouse and paint events 2021-12-05 15:16:08 -05:00
Jon Evans a205595404 PROF_COUNTER -> PROF_TIMER
I want to add an event counter, and this one is a timer
2021-12-05 14:25:37 -05:00
Jon Evans 91359c047d Disable migrating library tables from a previous version
Fixes https://gitlab.com/kicad/code/kicad/-/issues/9826
2021-12-05 13:45:34 -05:00
Mikolaj Wielgus 10be483430 Make an exception for SCH_TEXT in SELECTION::GetCenter()
And undo the previous changes in SCH_TEXT::Rotate().

We continue hitting this with a wrench until it gets fixed or becomes
broken beyond any recognition.
2021-12-04 05:32:48 +01:00
dsa-t cb482eb8eb Symbol Fields Table: Highlight proper symbols even if they aren't annotated 2021-12-03 20:35:54 +00:00
jean-pierre charras f24bdf4067 Fix minor Coverity warnings (not initialized vars). 2021-12-03 17:55:21 +01:00
jean-pierre charras ac7c51e2f7 Fix compil issue. 2021-12-03 16:49:43 +01:00
Mikolaj Wielgus 5f8f1542f8 Use the mean of all positions as center when rotating label-only selection
Fixes https://gitlab.com/kicad/code/kicad/issues/9690
2021-12-03 16:18:43 +01:00
Mikolaj Wielgus 9efbeaa064 Dark theme support for SPICE model editor 2021-12-03 03:41:32 +01:00
Ian McInerney cec258f7dd Normalize the settings migration path to have no trailing slash
If we use the raw user input, it may or may not have a trailing slash on
the directory name, and then if the user provides a trailing slash
migrating the folders inside the old settings directory will fail.
2021-12-03 01:43:53 +00:00
Franck Bourdonnec d877f04198 fixe paths 2021-12-02 20:23:00 +00:00
Jeff Young ffe91b31bf Better layer name for notes.
Fixes https://gitlab.com/kicad/code/kicad/issues/9849
2021-12-02 13:17:58 +00:00
Jeff Young 8fab8a05d6 Fix shadow variable defn. 2021-12-02 11:40:31 +00:00
Mikolaj Wielgus 0d3e8e3d09 Make ERC/DRC item lightness proportional to default text brightness
Fixes https://gitlab.com/kicad/code/kicad/issues/9824
2021-12-01 23:06:58 +01:00
Ian McInerney e57bde6582 Remove last vestiges of the KICAD_USE_OCE build flag
This build flag was removed in a previous commit, but some last uses
remained.
2021-12-01 15:53:00 +00:00
Seth Hillbrand 993b4eade6 Update contributor lists
Add 2021 contributors
2021-11-30 11:11:46 -08:00
Tomasz Wlostowski 4d2ce5c685 VIEW: don't create a GAL_UPDATE_CONTEXT if there's nothing to update
Avoid a very expensive glMapBuffer() call and greatly improves scrolling/redraw speed.
2021-11-29 23:30:10 +01:00
Tomasz Wlostowski 691ca11b5a DRAW_PANEL_GAL: add profiling counter for OGL buffer swap 2021-11-29 23:30:10 +01:00
Tomasz Wlostowski cdb214d43a DRAW_PANEL_GAL: remove unused profiling counter 2021-11-29 23:30:10 +01:00
Tomasz Wlostowski 2c6e9778a1 GAL: OpenGL draw calls pooling/splitting
Improves rendering performance, esp. for large designs by:
- using a separate glDrawArrays calls() for large buffers of contiguous vertices (e.g. large zone fills)
- pooling smaller items into a small-sized index buffer held in system RAM (has to be DMAed to the GPU by the driver anyway)
2021-11-29 23:30:10 +01:00
Tomasz Wlostowski 569c39ac37 GAL: runtime profiling for CACHED_CONTAINER 2021-11-29 23:30:10 +01:00
Tomasz Wlostowski 9518d425ca OPENGL_GAL: added runtime render speed profiling 2021-11-29 23:30:10 +01:00
Tomasz Wlostowski f4b25a756d DRAW_PANEL_GAL: add runtime rendering tracing/profiling 2021-11-29 23:30:10 +01:00
Tomasz Wlostowski ee8b2113a8 TRACE_MANAGER: very simple run-time tracing infrastructure 2021-11-29 23:30:10 +01:00
Tomasz Wlostowski b59ee13fcc GAL: made Begin/EndDrawing calls public to have more control over timing of rendering context creation/destruction 2021-11-29 23:30:10 +01:00
Jeff Young 78be5df39a Don't allow negative line widths to shrink bounding box.
Fixes https://gitlab.com/kicad/code/kicad/issues/9776
2021-11-29 20:02:03 +00:00
Jeff Young 7ccf658379 Fix stupid coding error.
(Don't use epsilon on non-coordinate values, and in particular,
definitely not on polygon vertex count.)
2021-11-29 19:33:32 +00:00
Jeff Young dede3f5709 Implement an EPSILON for library/schematic/board checking.
This is mainly to not get caught out when format changes result in
different values being stored vs. calculated (such as for arcs).
2021-11-29 15:08:21 +00:00
jean-pierre charras 33454ef8d2 Ensure the end of line char is '\n' in wxStyledTextCtrl when using SCINTILLA_TRICKS. 2021-11-29 15:30:38 +01:00
Jon Evans 4944ff0a3c Add Andrew Lutsenko to developers list 2021-11-27 08:21:40 -05:00
Stefan f78033b03c add myself as contributor 2021-11-27 12:28:31 +00:00
Jon Evans 6805dff49f Add myself to docs team 2021-11-26 09:41:04 -05:00
Jeff Young ba6ae4fa9b Kicad has many plugins. This one is for the pcb. 2021-11-25 12:56:46 +00:00
Jeff Young 5863bc0937 Put Repair Schematic behind Advanced Config. 2021-11-25 12:56:46 +00:00
Seth Hillbrand d60474d3ef Fix missing const 2021-11-24 11:49:13 -08:00
Rachel Mant a0fe10031d Fix curl usage so it builds on CentOS 7 2021-11-24 19:23:35 +00:00
Jeff Young 228edd4121 Don't generate duplicate IDs in line/wire/bus tool.
Also cleans up existing duplicate IDs when reading.

Fixes https://gitlab.com/kicad/code/kicad/issues/9749
2021-11-24 13:20:44 +00:00
qu1ck 18b4ebcc17 Skip migrating installed_packages.json 2021-11-23 14:49:40 -08:00
Seth Hillbrand f97c7c78c8 Connect ruler tool with axes preferences
Adds "UpdatePreferences" action that is called when the preferences are
updated, allowing running tools to act on changes that may affect them

Fixes https://gitlab.com/kicad/code/kicad/issues/9737
2021-11-23 12:52:21 -08:00
Jeff Young 3dc0c78993 Workaround baseline alignment issue in wxHtmlWindow
In particular, don't allow a cell boundary between Japanese/Chinese
chars and Roman chars.

Fixes https://gitlab.com/kicad/code/kicad/issues/9718
2021-11-22 15:37:18 +00:00
david-beinder b471945224 Fix MSVC C4312 warning when casting 32bit ints to pointer types on 64bit builds 2021-11-22 04:37:41 +00:00
Jeff Young 212666e987 Allow theme to change text color of highlighted text.
Fixes https://gitlab.com/kicad/code/kicad/issues/9716
2021-11-21 22:54:16 +00:00
Seth Hillbrand 3f2d86adec Make OpenGL default for all apps
Fixes https://gitlab.com/kicad/code/kicad/issues/9699
2021-11-21 12:33:07 -08:00
Jon Evans 572747a3f9 Protect KIID generator from threading 2021-11-21 13:30:46 -05:00
Tomasz Wlostowski 9add03dd88 VIEW: rebuild the R-trees from scratch if more than 30% of items require a geometry update.
(see comments in the code for detailed explanation)
2021-11-21 17:33:59 +01:00
Jonathan Haas e79fd19326 Pass the rng as reference to randomGenerator constructor
Fixes https://gitlab.com/kicad/code/kicad/issues/9714
2021-11-21 16:11:38 +00:00
Jon Evans 22b9856a6a Fix shadowing 2021-11-20 15:32:28 -05:00
Jon Evans 1e8284bc1a Add ability to seed the KIID generator
Fixes https://gitlab.com/kicad/code/kicad/-/issues/9689
2021-11-20 14:19:29 -05:00
Mikolaj Wielgus a17782d5d2 Add myself as lead dev team member 2021-11-20 03:03:37 +01:00
Seth Hillbrand 766a09c338 Remove autocomplete when we lose focus
Prevents the excess dropdown from persisting over windows

Fixes https://gitlab.com/kicad/code/kicad/issues/9651
2021-11-19 17:24:16 -08:00
Jeff Young 48c3734eea Dark mode colors for HTML report generator.
Fixes https://gitlab.com/kicad/code/kicad/issues/9688
2021-11-19 13:36:14 +00:00
Jeff Young c01649fc6e Make it easier to open legacy files. 2021-11-19 13:36:14 +00:00
jean-pierre charras 90fcf55ab6 Keep Grid menu translatable, as before. 2021-11-18 19:39:55 +01:00
Jeff Young 4e6a201881 Correct cursor for search control buttons. 2021-11-18 18:25:14 +00:00
Jeff Young 60a1ca2c67 Remove locale printf test. 2021-11-18 15:38:46 +00:00
jean-pierre charras e954531ca8 Call m_locale->Init() with option wxLOCALE_DONT_LOAD_DEFAULT to avoid any warning message.
We do not use or install the wxWidgets dictionaries, so do not use the default
option (wxLOCALE_LOAD_DEFAULT) when initializing wxLocale.
2021-11-18 11:01:29 +01:00
Roberto Fernandez Bautista bfad40bdcc Also erase KICAD6_TEMPLATE_DIR when library tables are not migrated
That path contains the default library table and should be set to the
latest one in from the installation.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/9660
2021-11-17 19:45:33 +00:00
Wayne Stambaugh e57ef66971 Fix build error with wxWidgets 3.0. 2021-11-17 12:28:23 -05:00