Commit Graph

8304 Commits

Author SHA1 Message Date
jean-pierre charras dcc1009162 plotters rework: add plot fct to use TEXT_ATTRIBUTES class to pass text settings
Old PLOTTER::Text is not (yet) removed, but it use negative text size
to mirrored text, which is not really compatible with some plotters (especially PDF).
Using TEXT_ATTRIBUTES is much easy and much better,
so PLOTTER::PlotText() is added.
Note: "old" PLOTTER::Text() is not removed yet.
From master, commit 51d46c0e73
2023-03-01 10:45:23 +01:00
jean-pierre charras d61e01ff4f Plot Gerber format: ensure all attributes are added to polygon items.
Especially, TA.AperFunction,EtchedComponent for net tie footprints using polygons.
From master, commit ece34e1a0c
2023-03-01 09:39:15 +01:00
qu1ck 90eb5e9c31 PCM: auto reload global libs after dialog is run
This adds Reset() method to KIFACE to reload global libs stored in
global static vars.
Also refactors some lib reload code in various frames to have
common MAIL_RELOAD_LIB handler.

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

(cherry picked from commit 2975f53647)
2023-02-28 16:48:28 -05:00
Salvador E. Tropea 4213bb3a62 Fix rounding errors in gerber files
The userToDeviceCoordinates helper returns a VECTOR2D
Converting it to VECTOR2I back and forth generates rounding errors
Also is a waste of time
2023-02-28 19:23:26 +00:00
Johannes Pfister 33f835a437 When importing legacy PCB dimension: Use automatic dimension when Unit couldn't be determined
(cherry picked from commit a87550a2c6)
2023-02-28 14:21:12 +00:00
Roberto Fernandez Bautista c96f0f2396 Fix CADSTAR importer memory leaks
We were leaking the xml tree when throwing exceptions


(cherry picked from commit b03366c9e8)
2023-02-27 22:58:41 +00:00
jean-pierre charras c588639503 PANEL_COLOR_SETTINGS: swap swatches and texts to avoid annoying truncation.
In some languages, the texts can be long, and create truncation of the left
column. So if the left column shows swatches they are truncated, or not visible
Truncating long texts is less annoying.
Fixes #14052
https://gitlab.com/kicad/code/kicad/issues/14052
2023-02-27 08:37:13 +01:00
Jeff Young b2241dca72 Adjust stroke font baseline offset to better match 6.0.
Fixes https://gitlab.com/kicad/code/kicad/issues/13886

(cherry picked from commit 4bb508eacf)
2023-02-26 21:59:43 +00:00
Jeff Young 5979b8e385 Don't allocate all of memory when the coord system turns inside out.
Fixes https://gitlab.com/kicad/code/kicad/issues/14088

(cherry picked from commit fe9370ceea)
2023-02-26 21:58:08 +00:00
Roberto Fernandez Bautista 955bd5a6d1 CADSTAR Sch: Fix loading of graphical arc shapes
Correctly load arc shapes as real arcs instead of approximating now that
v7 supports graphical arcs in the schematic.

Also fix calculation of arc geometry for ccw arcs.

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


(cherry picked from commit 698d0b7e92)
2023-02-26 18:47:39 +00:00
Seth Hillbrand f927c15adf Prevent mutex deadlock
The overbar function in outline fonts recursively calls the text
function which already owns the lock.  To avoid this, we have an
unlocked variant that is wrapped by the exposed text function

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


(cherry picked from commit 81256c0fa4)
2023-02-25 13:44:18 +00:00
Jon Evans 009211c740 Fix some PCB_SHAPE properties
Hide irrelevant position/start/end properties
for shape classes that don't use them.


(cherry picked from commit 1651b44ab1)
2023-02-24 01:24:41 +00:00
jean-pierre charras c3d7158669 Eeschema plot: honor B&W plot option for bitmap images.
Fixes #14013
https://gitlab.com/kicad/code/kicad/issues/14013
2023-02-23 09:53:35 +01:00
jean-pierre charras d5eb242295 Fix incorrect tilt of italic texts when plotting them.
Fixes #14023
https://gitlab.com/kicad/code/kicad/issues/14023
2023-02-22 20:25:25 +01:00
Salvador E. Tropea b21e65fc5f Fix compatibility with wxWidgets 3.0.x
- Use CanonicalName when GetCanonicalWithRegion() isn't available
2023-02-22 19:23:55 +00:00
Salvador E. Tropea aee6d9d01c Create the built-in colors in the constructor
This is needed so Python scripts can get built-in colors using the
SETTINGS_MANAGER.GetColorSettings() member.
Otherwise calling it with a built-in name crashes.
2023-02-22 09:12:22 -03:00
Marek Roszko fd4a0dbedf Fix up handling of font names available in multiple names
ttf fonts can declare multiple language names. Many by default opt to just declare one and not tag it any particular language.
However, there are CJK languages that typically leverage this function the most. They'll tag both a "en" and a cjk lang family name in CJK characters.

To be as user friendly as possible, we need to display said fonts in the CJK languages if KiCad to set to such a locale.

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


(cherry picked from commit 39e69a3d29)
2023-02-22 01:27:09 +00:00
Mark Roszko aab7581909 Fix symbol contributor link
(cherry picked from commit 365c7be4ed)
2023-02-20 19:44:59 +00:00
Marek Roszko 6b38927123 Fix crash parsing cadstar
Fixes sentry KICAD-B2
2023-02-19 08:11:33 -05:00
Marek Roszko f46e4049b6 Try to prevent a crash in mpFXY::Plot
Fixes sentry kicad-c0
2023-02-19 08:11:27 -05:00
Marek Roszko 5d793193e0 Fix crash by using a shared_mutex to read/write lock the nickIndex
Fixes sentry kicad-ax
2023-02-18 13:02:25 -05:00
Mark Roszko 62337f75b8 FT_Face is also not thread, protect getTextAsGlyphs
(cherry picked from commit 7b4abb1f7b)
2023-02-17 15:17:11 +00:00
Marek Roszko 4d4fdfff70 freetype is not thread safe, zone filler can trigger multi-thread access
sentry KICAD-B1

https://freetype.org/freetype2/docs/reference/ft2-base_interface.html
[Since 2.5.6] In multi-threaded applications it is easiest to use one FT_Library object per thread.
In case this is too cumbersome, a single FT_Library object across threads is possible also, as long as a mutex lock is used around FT_New_Face and FT_Done_Face.


(cherry picked from commit 65d5b34da3)
2023-02-17 15:17:02 +00:00
Seth Hillbrand 3f535aca8c Fix Ukrainian language name
Should refer to the language not to a Ukrainian person

(cherry picked from commit 576bef4ba0)
2023-02-16 15:11:14 -08:00
Marek Roszko 3b5c38d861 CURLINFO_SIZE_DOWNLOAD_T is a enum entry, use the version check instead
(cherry picked from commit c189053ee5)
2023-02-15 04:45:22 +00:00
Marek Roszko 90fb075e34 CURLOPT_XFERINFOFUNCTION is an enum entry not a define, the check is invalid
(cherry picked from commit 94b5ddbb50)
2023-02-15 04:26:51 +00:00
Jon Evans df0f626283 Properties: remove assertion that no longer makes sense
(cherry picked from commit e5b376721d)
2023-02-14 21:10:42 -05:00
Jon Evans 1909ce9220 Properties: fix rebuilding when availability changes
(cherry picked from commit 61dd4b7043)
2023-02-14 21:10:42 -05:00
Jon Evans 60a45241e6 Properties: introduce validators; re-enable zone hatch settings
(cherry picked from commit eb240fda9a)
2023-02-14 21:10:42 -05:00
Jon Evans d403e92315 Properties: introduce method chaining for initialization
(cherry picked from commit 254168c788)
2023-02-14 21:10:42 -05:00
Jon Evans d20f49b58b Fix handling of PPI when loading embedded images
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13884


(cherry picked from commit 473979d686)
2023-02-15 00:42:30 +00:00
Jeff Young f4b2b1b03f Workaround wxWidgets enforced min pen width by using transparent pen.
Also fixes some bugs in our shape printing code when a border is not
specified but a fill is.

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

(cherry picked from commit 03484aedbc)
2023-02-14 14:45:24 +00:00
Marek Roszko a48eace90a It's not impossible for the font face to fail loading
LoadFont()'s only usage already checked for nullptr to fallback, let's actually return nullptr on a failed load

Fixes sentry KICAD-8Z
Make the cause of sentry KICAD-95


(cherry picked from commit e8e407dfba)
2023-02-14 01:09:56 +00:00
Marek Roszko 7a2a51ad44 Prevent another GAL crash on init due to psuedo-race
Fixes Sentry KICAD-98


(cherry picked from commit 9647a22e50)
2023-02-14 00:11:15 +00:00
Marek Roszko 534000b49d Ensure gal is initialized before letting DoRepaint blowup spectacularly.
Maybe a fix for KICAD-6B


(cherry picked from commit 58350b4521)
2023-02-13 12:21:44 +00:00
Jon Evans e1eedd3bba Attempt to fix GitLab template duplication
(cherry picked from commit 609ef96e42)
2023-02-11 12:04:39 -05:00
Jon Evans 6948a0bebd Expose new netclass storage to SWIG
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13337
2023-02-11 09:50:24 -05:00
Alex 822d7af4b7 Hide scrollbars in editors by default. 2023-02-11 16:39:09 +03:00
Seth Hillbrand fda3feaf3f Revert "Add doc link to custom rules syntax help."
This reverts commit 7874735810.
2023-02-10 15:33:03 -08:00
Alex 4ac6d6a0bd Fix "wxEXPAND overrides alignment flags in box sizers" assert.
wxALIGN_CENTER_VERTICAL flag is ignored if wxEXPAND is present in
box sizers.
2023-02-11 02:15:44 +03:00
FPiorski 7978fdbfce Plot colored drawing sheet text with the correct color 2023-02-09 14:12:48 +00:00
jean-pierre charras 5da5ccc4bf pagelayout_editor: fix some minor issues:
- text color not always stored in file
- Indicator for changes in main title not updated after save.
2023-02-09 14:16:26 +01:00
jean-pierre charras ae2da76615 Pcb printing: fix incorrect pos. of the board when printed without worksheet.
Fixes #13258
https://gitlab.com/kicad/code/kicad/issues/13258
2023-02-08 11:05:31 +01:00
jean-pierre charras a493a2c822 kicad-cli, pcbnew pàlot: honor the color options when ploting pdf files
--black-and-white and -t were shown in help, but not handled
Fixes #13805
https://gitlab.com/kicad/code/kicad/issues/13805
2023-02-07 20:20:45 +01:00
jean-pierre charras 0d903d43a0 pagelayout editor: Add tests for invalid parameters.
Invalid parameters are repeat count < 1, size < 0 and default size < 0.01 mm
2023-02-07 12:53:34 +01:00
Seth Hillbrand 823607796b Additional safety around wks bitmaps
Invalid files can create large problems for unloaded PNG data

Fixes https://gitlab.com/kicad/code/kicad/issues/13801
2023-02-07 12:08:39 +01:00
jean-pierre charras 23d0e6b4c0 Fix compil on msys2 (Structured Exception Handling not really supported) 2023-02-05 10:39:25 +01:00
Alex 525d0da126 Move __try into lambda. 2023-02-05 07:55:01 +03:00
Alex b913e9be1e Move more of defragment inside the __try block. 2023-02-05 07:45:03 +03:00
Alex 74a242c662 Catch access violation in defragment due to OpenGL drivers on Windows. 2023-02-05 07:03:04 +03:00
jean-pierre charras 729be64850 Preferences dialog: try to reduce its width, in non English languages.
Step 2: Remove some useless spacers, and do not force some widgets
to have a too large size.
2023-02-04 17:45:39 +01:00
jean-pierre charras 6b5eeeb861 Preferences dialog: try to reduce its width, in non English languages.
Remove some useless spacers, and do not force some widgets to have a to
large size (by removing empty areas).
Work in progress: one panel is still too big.
2023-02-04 14:36:14 +01:00
jean-pierre charras 90e759e738 Dialogs: minor cosmetic fixes (reduce a few spaces between widgets) 2023-02-03 16:58:30 +01:00
Graham Keeth 9a34178f66 add CURRENT_DATE to text var autocomplete 2023-02-03 00:10:55 +00:00
Wayne Stambaugh e20c86ad5e Minor dialog layout improvements. 2023-02-02 16:54:52 -05:00
Jeff Young 7874735810 Add doc link to custom rules syntax help.
Fixes https://gitlab.com/kicad/code/kicad/issues/13727
2023-02-01 23:40:53 +00:00
jean-pierre charras 8b6fda2890 PANEL_COMMON_SETTINGS_BASE: Reduce the minimal width of the panel.
Other languages than English can have much bigger sentences, thus
creating a very large panel.
2023-02-01 11:29:55 +01:00
Jon Evans ee2cdc01e7 Make common settings options not stretched out 2023-01-31 21:57:30 -05:00
Marek Roszko 7d80815b7b Just use hash for sentry release for all builds for now 2023-01-31 21:17:11 -05:00
Marek Roszko 719be61627 Silence some kicad-cli loading errors on clean installs 2023-01-31 20:57:31 -05:00
Seth Hillbrand ef964f2303 Move Ivan Chuba to Ukrainian 2023-01-30 11:52:59 -08:00
Seth Hillbrand 6a993ffb13 Update contributors lists for v7 2023-01-30 09:31:55 -08:00
Marek Roszko 5163cb6976 Don't use SystemDirsAppend on windows for finding the docs
TODO, yeet SystemDirsAppend entirely on Windows into the sun

Fixes https://gitlab.com/kicad/code/kicad/-/issues/11589
2023-01-29 20:50:16 -05:00
kliment ef8062bfad pcbnew: Change some of the default settings in board setup and netclasses 2023-01-29 23:20:40 +00:00
Marek Roszko 80b1826095 Fix sentry release tagging broken by 98d55ce8 2023-01-29 11:51:03 -05:00
Marek Roszko 088cadfefc Attempt to select PCM themes for cli by their display name
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13648
2023-01-28 17:07:06 -05:00
Jon Evans d04cda35c5 Handle hidden attribute in fp-lib-table
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13689
2023-01-28 09:23:25 -05:00
Marek Roszko 4d811ba975 Enable layer arg for fp export svg 2023-01-27 23:45:42 -05:00
Seth Hillbrand 9ad2e9f25d Standardize view checking
Uses wxCHECK* functions for mesage display and correct behavior when
encountering an invalid layer
2023-01-27 12:35:36 -08:00
jean-pierre charras ff46b7b1e5 fix compil warnings 2023-01-27 18:25:09 +01:00
Jeff Young 36d44e0ef2 Fix vertical centering of buttons in button row. 2023-01-27 12:34:50 +00:00
Marek Roszko d8bde5bcfe Avoid the sentry prompt in kicad-cli
Fixes KICAD-47
2023-01-27 06:52:40 -05:00
Alex a872ed11bf Fix paths for Copy default global library table. 2023-01-27 09:24:52 +03:00
Seth Hillbrand 242b9855dd Protect VIEW against oddball items
Importing may have more view layers than we allocate.  In these cases,
we need to avoid accidentally writing to unallocated view layers

Fixes https://gitlab.com/kicad/code/kicad/issues/13638
2023-01-26 11:22:56 -08:00
Seth Hillbrand bcc1e28bab Fix Windows build error
bc Microsoft owns all the words
2023-01-25 16:45:04 -08:00
Seth Hillbrand 33bef16376 Simplify the winding calculation
This algorithm is more robust against points and cheaper to execute.
2023-01-25 13:13:38 -08:00
Seth Hillbrand cf52bfcc55 Handle missing Bold/Ital outline fonts
If the font face doesn't include a Bold or Italic version, we still want
to display the font as bold/italic, so we fake it with freetype.

This also prevents recurring error messages where the outline font warns
about "substitutes" within the same font family.

Also allows variants on the weight descriptor to be used without
throwing a substitution warning

Fixes https://gitlab.com/kicad/code/kicad/issues/13654
2023-01-25 13:13:38 -08:00
Jeff Young 51293858b3 Allow empty lib tables.
Fixes https://gitlab.com/kicad/code/kicad/issues/13653
2023-01-24 23:45:55 +00:00
Jon Evans 769afa6fe6 Properties: refactoring 2023-01-24 12:08:37 -05:00
Jon Evans 890103a012 Properties: Fix handling of mixed value selections 2023-01-24 11:51:26 -05:00
Marek Roszko 669d302ccf Revert "Try to handle fetching the player frame slightly safely"
This reverts commit 679a3a6552.
2023-01-24 06:54:10 -05:00
Marek Roszko 679a3a6552 Try to handle fetching the player frame slightly safely
Maybe a fix for KICAD-3A
2023-01-23 22:02:37 -05:00
Jeff Young 220c5a259b Refresh schematic's copy of template fieldnames after preferences.
Fixes https://gitlab.com/kicad/code/kicad/issues/13203
2023-01-24 00:07:40 +00:00
Seth Hillbrand 442ee52905 Add versioning to lib tables
Sets lib table version to allow easier migration between versions
2023-01-23 22:21:12 +00:00
Seth Hillbrand 70a57505de Migrate lib tables to KICAD7 on open
If KiCad does not detect an environmental variable set for the old
library table variables AND the library table being opened references
the unset env var, we will dynamically update the env var to the new
value

Fixes https://gitlab.com/kicad/code/kicad/issues/13464
2023-01-23 22:21:12 +00:00
Seth Hillbrand efe12f2da5 Cleanup variable naming
Also remove ancient/unused code for lazy resolving
2023-01-23 22:21:12 +00:00
Seth Hillbrand a9ed47f06c Update KICAD6->KICAD7 2023-01-23 22:21:12 +00:00
aris-kimi 09b83b95d0 PCB Editor: Locked filter unchecked by default
And some minor code style improvement in one place

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/13246
2023-01-23 11:36:06 +00:00
Graham Keeth 3f3a43ee5a add gkeeth to docs team in about dialog 2023-01-23 11:34:28 +00:00
Jon Evans e76fd128c3 Stop treating OpenProjectFiles failure like a fatal error
There is no need to try to bail out if this call fails,
and the bail-out was wiping out the app settings.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/13427
2023-01-22 22:48:31 -05:00
Jon Evans e419b0bfe8 Support sub-libraries in symbol library browser
Fixes https://gitlab.com/kicad/code/kicad/-/issues/12842
2023-01-22 19:25:15 -05:00
jean-pierre charras 1551477f00 Eeschema: Try to fix printing issues for bitmaps.
These issues are highly dependent on wxWidgets version
Tested on W10 with wx 3.1.5, 3.1.7 and 3.2.1
Fixes #12461
https://gitlab.com/kicad/code/kicad/issues/12461
2023-01-22 20:03:29 +01:00
Jeff Young bf8762c57c Streamline color lookup (and a bit of wxS). 2023-01-22 17:18:03 +00:00
Jon Evans 09cb222252 Change indeterminate checkbox behavior to be more intuitive
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13604
2023-01-22 12:10:45 -05:00
Jon Evans 351f668645 Separate selection change updates from properties updates
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13624
2023-01-22 12:10:45 -05:00
Alex 2628ab3e16 Update About dialog. 2023-01-22 19:09:49 +03:00
Marek Roszko 0ff32d20cd wxS more things 2023-01-22 09:41:42 -05:00
Marek Roszko 323bec4adc Remove hidden undocumented env var for worksheet
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8342
2023-01-22 08:56:28 -05:00
jean-pierre charras e900e472ce Fix compil and Coverity warnings 2023-01-22 09:40:09 +01:00
Jon Evans 3a9ef02fdf Clean up handling of selection changes
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13620
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13609
2023-01-21 17:37:29 -05:00