Compare commits

...

2102 Commits

Author SHA1 Message Date
Mike Williams 9389a2b7c5 design blocks: cross-editor notification of library actions 2025-02-05 12:20:17 -05:00
Mike Williams 97aa507dd4 design blocks: commonize tool control functionality 2025-02-05 10:28:59 -05:00
Mike Williams eed62789a8 design blocks: check for library existence in table dialog 2025-02-04 09:27:31 -05:00
Mike Williams 17a29794a1 pcb design blocks: add place (repeated, grouped) functionality 2025-02-04 09:27:31 -05:00
Mike Williams c49a9497ff pcb design blocks: PCB save selection as design block 2025-02-04 09:27:31 -05:00
Mike Williams 362366d6f5 pcb design blocks: create from board working-ish and block preview 2025-02-04 09:27:31 -05:00
Mike Williams 372a9c3f51 pcbnew: move extension ensurance up a level 2025-02-04 09:27:31 -05:00
Mike Williams 8c2a6fc818 pcb: don't show informational message on successful save 2025-02-04 09:27:31 -05:00
Mike Williams 7054963d90 PCB editor: add design block panel 2025-02-04 09:27:31 -05:00
Mike Williams b894e7fe91 design blocks: commonize a lot of the code in prep for PCB blocks 2025-02-04 09:27:31 -05:00
Jon Evans 55e5596cda Fix more field fallout
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19832
2025-02-03 21:40:09 -05:00
Jon Evans ec405f02f8 Fix build on linux 2025-02-03 20:48:25 -05:00
Jon Evans 29b2c79f0a API: Clean up orphaned sockets 2025-02-03 18:56:55 -05:00
Jon Evans 0682d319fb API: Don't check for busy when not needed
see https://gitlab.com/kicad/code/kicad-python/-/issues/11
2025-02-03 18:02:46 -05:00
Jeff Young b2de4cf40a Fix typo. 2025-02-03 22:57:49 +00:00
Jeff Young f724dab4b2 Fix build. 2025-02-03 22:15:56 +00:00
Jeff Young bef63fe76b More accurate tooltip for Gerber knockout of solder mask.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19744
2025-02-03 22:04:20 +00:00
Jeff Young ec649593ae Fix layout issues in print dialog controls. 2025-02-03 21:41:03 +00:00
Jeff Young fec6882e0a Fix row shading.
Don't use the wxGrid convenience covers.  They assume
you're doing nothing else with attributes.
2025-02-03 20:06:30 +00:00
Seth Hillbrand 28b2e656e5 Work around (maybe) wx wrapping issue
wx infobar generic will wrap text, changing the stored label data on
instantiation.  Since we might expand the infobar later, this presents
an issue as the newlines are then baked into the string.

We do two things here: keep a copy of the original string to make sure
that we can reset it on update and do a hard calculation of the minimum
height for the infobar to ensure we are displaying the full text string

Fixes https://gitlab.com/kicad/code/kicad/issues/19799
2025-02-03 13:31:24 -06:00
Alex Shvartzkop b46bce8f8f Update translations 2025-02-03 19:59:03 +03:00
Marco Ciampa 8b5cd26dc7 Translated using Weblate (Italian)
Currently translated at 93.1% (9268 of 9948 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/it/
2025-02-03 17:58:10 +01:00
CloverGit 1bf44150b1 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (9948 of 9948 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hans/
2025-02-03 17:58:10 +01:00
CloverGit c7b4da3ef9 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (9948 of 9948 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hans/
2025-02-03 17:58:10 +01:00
김랑기 c24192108d Translated using Weblate (Korean)
Currently translated at 99.1% (9865 of 9948 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ko/
2025-02-03 17:58:10 +01:00
Marco Ciampa c07f83b06b Translated using Weblate (Italian)
Currently translated at 92.6% (9213 of 9948 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/it/
2025-02-03 17:58:10 +01:00
CloverGit 716c899a6b Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (9948 of 9948 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hans/
2025-02-03 17:58:10 +01:00
김랑기 e1810c9835 Translated using Weblate (Korean)
Currently translated at 99.1% (9865 of 9948 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ko/
2025-02-03 17:58:09 +01:00
Elek Zoltán 9f18dc3cbf Translated using Weblate (Hungarian)
Currently translated at 6.1% (607 of 9948 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/hu/
2025-02-03 17:58:09 +01:00
Marco Ciampa f1d69af419 Translated using Weblate (Italian)
Currently translated at 91.9% (9148 of 9948 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/it/
2025-02-03 17:58:09 +01:00
Henrik Kauhanen 708c6cca63 Translated using Weblate (Swedish)
Currently translated at 99.6% (9911 of 9948 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/sv/
2025-02-03 17:58:09 +01:00
co8 j 8d9ae99258 Translated using Weblate (Japanese)
Currently translated at 99.9% (9942 of 9948 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ja/
2025-02-03 17:58:09 +01:00
Henrik Kauhanen 9bc6fde2f6 Translated using Weblate (Finnish)
Currently translated at 99.1% (9859 of 9948 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/fi/
2025-02-03 17:58:09 +01:00
Henrik Kauhanen 1ef0a5e22b Translated using Weblate (German)
Currently translated at 100.0% (9948 of 9948 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/de/
2025-02-03 17:58:09 +01:00
김랑기 6c356aa21c Translated using Weblate (Korean)
Currently translated at 96.9% (9645 of 9948 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ko/
2025-02-03 17:58:09 +01:00
109247019824 69cf4fb6ef Translated using Weblate (Bulgarian)
Currently translated at 8.2% (817 of 9948 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/bg/
2025-02-03 17:58:08 +01:00
김랑기 3adf9f0c82 Translated using Weblate (Korean)
Currently translated at 96.9% (9645 of 9948 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ko/
2025-02-03 17:58:08 +01:00
iamPeter 777860d520 Translated using Weblate (Hungarian)
Currently translated at 5.9% (591 of 9948 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/hu/
2025-02-03 17:58:08 +01:00
109247019824 1a510a297e Translated using Weblate (Bulgarian)
Currently translated at 8.1% (815 of 9948 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/bg/
2025-02-03 17:58:08 +01:00
reimu105 d65d41286f Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 91.3% (9086 of 9948 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hant/
2025-02-03 17:58:08 +01:00
ZbeeGin b40d42696a Translated using Weblate (Polish)
Currently translated at 100.0% (9948 of 9948 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/pl/
2025-02-03 17:58:08 +01:00
109247019824 3e25689be7 Translated using Weblate (Bulgarian)
Currently translated at 7.3% (733 of 9948 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/bg/
2025-02-03 17:58:08 +01:00
Wellington Terumi Uemura cad5a2722c Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (9948 of 9948 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/pt_BR/
2025-02-03 17:58:08 +01:00
Pferd O a673970435 Translated using Weblate (German)
Currently translated at 100.0% (9948 of 9948 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/de/
2025-02-03 17:58:08 +01:00
Mike Williams 45ba00ac22 design blocks: point to new lib table on project change
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/19783
2025-02-03 10:26:30 -05:00
Tomasz Wlostowski 8d858fe998 router: prevent shove endpoint-in-hull fallback code from making non-45 degree tracks
Fixes https://gitlab.com/kicad/code/kicad/issues/19760
2025-02-03 13:24:27 +01:00
Tomasz Wlostowski 232b286793 router: comment out some excessive debug calls
Too much PNS_DBG() calls make the debug tool very sluggish, even in release mode.
2025-02-03 13:24:27 +01:00
Tomasz Wlostowski 60b40579cb router: reenable diff pair placement in shove mode
Fixes https://gitlab.com/kicad/code/kicad/issues/19547
2025-02-03 13:24:27 +01:00
Tomasz Wlostowski 3ba87b9d08 router: fix 'litter' tracks issue
The commit adds missing calls to unwindLineStack() and fixes the logic of the method.
2025-02-03 13:24:27 +01:00
Tomasz Wlostowski 849e3d2f18 qa: fix setting of router mode (single/diff) in pns_log_viewer 2025-02-03 13:24:27 +01:00
Tomasz Wlostowski 9f2eade5f5 router: dump NODE overrides debug method 2025-02-03 13:24:27 +01:00
Jeff Young 857d4f3803 Cleanup. 2025-02-03 11:54:57 +00:00
Jeff Young 5f06f0d863 Indentation fixes for controls in print dialog. 2025-02-03 11:54:57 +00:00
Jeff Young 9b7b923e34 Consistency with library browsers & symbol fields table. 2025-02-03 11:54:57 +00:00
Jeff Young d551b0b949 Formatting. 2025-02-03 11:54:56 +00:00
Ian McInerney 59a4cc2e4b Default to 4 user defined layers 2025-02-02 23:09:08 +00:00
Jeff Young 9ab4fef369 Remove duplicate short-form argument.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19798
2025-02-02 19:58:56 +00:00
Jeff Young 8024555323 Icon spacing. 2025-02-02 18:25:08 +00:00
Jeff Young d209dddcc6 Correctly initialise mandatory fields array.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19819
2025-02-02 18:10:44 +00:00
Jeff Young 96022ee169 Correctly handle mandatory fields when adding/removing.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19819
2025-02-02 17:55:07 +00:00
Seth Hillbrand 4eb0e70ddf Fix issue preventing printing on some platforms
Linux printing for some systems blanked the printouts when the gal
screensize was set here.  Restoring the screensize after clearing
ensures that the view redraw is properly scaled

Fixes https://gitlab.com/kicad/code/kicad/issues/19807
2025-02-02 09:44:10 -06:00
Jeff Young 879e76b28e Make notifications stand out from parent, and fix focus & focus-loss events on Mac. 2025-02-02 15:00:52 +00:00
Jeff Young 72a59c547c Formatting and better use of common code. 2025-02-02 15:00:52 +00:00
Ethan Chien d96479dd34 Windows: Add post-build script for installation and file copying 2025-02-02 07:55:11 +08:00
Jeff Young 8874f137fa Read hotkeys from disk after they change.
(Otherwise we'll write the old versions back out
when closing one app.)

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19612
2025-02-01 20:01:13 +00:00
Jeff Young ada1a9b054 Formatting. 2025-02-01 17:39:24 +00:00
Seth Hillbrand 56ca054c0d Add new table icon
Replace a couple uses of the old spreadsheet
2025-02-01 09:53:12 -06:00
Jeff Young 5dc8e9a5de Formatting. 2025-02-01 11:38:07 +00:00
jean-pierre charras 91d5238f4c DIALOG_XXX_JOB_XXX: fix min size and other minor fix.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19811
2025-02-01 10:44:25 +01:00
jean-pierre charras bc25044e78 Eeschema, advanced_config: enable Cairo to export to clipboard by default. 2025-01-31 19:31:43 +01:00
John Beard 30affcd7a1 QA: side-step wxSize printer not working for some
Not sure what it is that caused it to break (reported by
Seth on Linux, but works for me and on the CI).

Rather than trying to be clever at this point, just do the dumb
thing (and remove the boost_test_print_type for wxSize to prevent
someone using it for the time being).
2025-02-01 00:35:13 +08:00
Mark Roszko a7f5fc45e7 Widths in WX_GRID_AUTOSIZER should account for dpi scaling 2025-01-31 11:14:40 -05:00
Mark Roszko 88a404580a Fix DPI scaling on Configure Paths 2025-01-31 11:10:39 -05:00
Mark Roszko 29311393a5 Set a min size on the layer pair grid or else it bugs out when the first entry is added 2025-01-31 11:04:35 -05:00
Mark Roszko e765ad0c2f Kill unused var warning 2025-01-31 11:00:07 -05:00
Mark Roszko d9809fb816 Partially fix the DIALOG_LAYER_SELECTION_BASE 2025-01-31 10:59:42 -05:00
Mark Roszko 50e2a12e17 Fix palette icon scaling on Windows, also extend KiBitmapBundle because we use bundles wrong
wxBitmapBundle assumes the smallest bitmap added is the intended "original" size for a particular use case.
And generally that is probably true. However, we re-use icons in some places where we intend for them to start at 16
or start at 24. This is problematic when GetPreferredBitmapSizeFor is called for calculations because it'll return the
16*scale number instead of 24*scale number. So let's just allow passing in a min height restriction to KiBitmapBundle
for when we reuse bitmaps.
2025-01-31 10:37:00 -05:00
John Beard 636c6c4efb Eeschema/pcbnew: fix pasted image saving
The m_imageData buffer in the BITMAP_BASE is an
internal implementation - the public API to persist the
data to a stream appears to be SaveImageData - so use that,
which hides the implementation (and generates the image data
"live" when needed).

Remove the public access to the m_imageData buffer as it isn't
needed for public use, and also is misleading.

Also break out the formatting of the data into KICAD_FORMAT,
as it's currently replicated in eeschema/pcb/pagelayout
formatting code.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/19772
2025-01-31 23:01:07 +08:00
Roberto Fernandez Bautista c5120b9090 Add fake-autoroute to context menus (router and edit) 2025-01-31 15:49:27 +01:00
Seth Hillbrand 8955e33e80 Update grid icons
Adds a new grid override icon.  In the process, I noticed that the other
grid icons were not pixel aligned.  So this also updates all of the grid
icons to align the points
2025-01-31 08:44:23 -06:00
Mark Roszko 4037894b99 Complete the hi-dpi fixes, woops 2025-01-31 08:32:13 -05:00
Mark Roszko 74b174e4f0 Add "source" field for jobsets to discern SCH & PCB jobs 2025-01-31 08:16:26 -05:00
Mark Roszko 062a813139 Make EDA_LIST_DIALOG more hi-dpi friendly 2025-01-31 08:15:07 -05:00
Mark Roszko afb61b3b4e Disable C4746 2025-01-31 03:48:29 -05:00
jean-pierre charras 9e510759b8 FP_LIB_TABLE_ROW::LibraryExists(): ensure environment variables are expanded
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19800
2025-01-31 09:14:42 +01:00
Seth Hillbrand d4c9e1f069 Adjust LayerDepthFactor to account for layer size
We need to draw all layers on top of the layer behind us, the factor is
rather arbitrary but needs to ensure that the step is still below 0 when
subtracted using the full layer size

Fixes https://gitlab.com/kicad/code/kicad/issues/19795
2025-01-30 16:35:05 -06:00
Jeff Young ccb39fb775 Formatting. 2025-01-30 18:16:42 +00:00
Jeff Young a5d643cbaa Formatting. 2025-01-30 13:02:07 +00:00
Jeff Young 9083c9e6ab Remove dead code. 2025-01-29 20:54:33 +00:00
Jeff Young 0c4ff6b640 No inheritance for table ruling line styles. 2025-01-29 20:54:33 +00:00
Jeff Young 8bdc7f108b Report errors when library is missing. 2025-01-29 20:54:33 +00:00
Ian McInerney 4cf8274b2b Silence errors from file watchers when adding files
The file watcher can throw errors on Linux that are very cryptic and
actually not very useful to users, so let's hide them since there isn't
really any problem that comes from this.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15717
2025-01-29 19:34:00 +00:00
jean-pierre charras 799ea8317d spread_footprints.cpp, SpreadFootprints(): fix incorrect conversion int to uint64
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19780
2025-01-29 19:43:17 +01:00
Alex Shvartzkop 3baa6cd791 Update translations 2025-01-29 19:59:04 +03:00
John Beard 12dc00b8d8 Translated using Weblate (Portuguese (Brazil))
Currently translated at 99.9% (9974 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/pt_BR/
2025-01-29 17:58:42 +01:00
John Beard 09c8ac2038 Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 91.6% (9142 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hant/
2025-01-29 17:58:42 +01:00
ZbeeGin 36e155ee58 Translated using Weblate (Polish)
Currently translated at 100.0% (9975 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/pl/
2025-01-29 17:58:42 +01:00
Pferd O 4ec8aee7d8 Translated using Weblate (German)
Currently translated at 100.0% (9975 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/de/
2025-01-29 17:58:42 +01:00
109247019824 25a49a64a6 Translated using Weblate (Bulgarian)
Currently translated at 7.3% (737 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/bg/
2025-01-29 17:58:41 +01:00
Seth Hillbrand c436207659 Update new bitmaps
Forgot to commit the bitmap_info previously
Updated the jobset to be usable for new and open forms
Added remaining icon references
2025-01-29 09:33:31 -06:00
Seth Hillbrand 3260aa2213 Utilize libpopcnt
We need to be sure to reference the include when pulling in
dynamic_bitset
2025-01-29 08:18:46 -06:00
Seth Hillbrand 94444adb54 Don't take references to casts
We don't really save cycles and this can lead to unexpected behavior
when the compiler decides that the sizes of the two types are different
2025-01-29 08:17:27 -06:00
Seth Hillbrand 683be91b60 Adding new icons 2025-01-29 05:42:57 -06:00
Jeff Young 3078d82bd5 Don't wait for mouse-move to update screen.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19771
2025-01-29 11:23:56 +00:00
Jeff Young fb87ea6837 Nothing wrong with a NPTH pad with no layers.
Also fixes PTH anchor layer warning to mention "outer".

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19752
2025-01-29 10:32:58 +00:00
Seth Hillbrand 112e8e7ccb Remove a few more crashers
Need to check SYM_LIB_TABLE_ENTRY for null but need to check
FP_LIB_TABLE_ENTRY for throwing
2025-01-29 00:00:11 -06:00
Seth Hillbrand 9beca90185 Ensure that new text objects are "new"
Setting the new object flag ensures that we do not commit changes in the
dialog, before the object is placed on the canvas

Fixes https://gitlab.com/kicad/code/kicad/issues/19778
2025-01-28 23:16:46 -06:00
Damjan 46ada43166 Eeschema: Import sheet pins: sort pin names intelligently 2025-01-29 04:16:35 +00:00
Damjan c6e049df2a Pcbnew: isDrag detection in Table creation tool
Drag breaks the UI when in the create table action

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19767
2025-01-29 01:25:37 +00:00
Ian McInerney 088e0e80a1 Fix layer writing/reading for copper zones
* Always enumerate layers - never use the wildcards
* Keep fills on layers the zone is actually on when loading

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19775
2025-01-29 00:31:28 +00:00
Seth Hillbrand 3f90cfb0ca Fix up git warning 2025-01-28 12:22:39 -08:00
Seth Hillbrand 81fbaacae2 Keep track of user layer mapping for footprints
Footprints in orgs have standard naming.  We need to allow designers to
keep their standard namings outside of boards where they are fixed.
This belongs in the preferences as a set-once for local standards
2025-01-28 12:22:39 -08:00
Seth Hillbrand ff820bd809 Keep AllCuLayers as base for number of copper layers 2025-01-28 12:22:39 -08:00
Seth Hillbrand e316b33a08 Update mask in grid box helper when showing
Masks are not permanent depending on the editor, so make sure that the
value is kept up to date
2025-01-28 12:22:39 -08:00
Seth Hillbrand 7ea6206126 dynamic_bitset requires both sets to be same size 2025-01-28 12:22:39 -08:00
Seth Hillbrand f34f962455 Fix switch branch for rapid change
Was missing a handler for the rapid switch IDs
2025-01-28 12:22:39 -08:00
Seth Hillbrand 919931f0f0 Get embedded files panel working for lib_symbol
The symbol library embedded files were implicit, which made them hard to
work with.  Adding the panel makes it clearer and setting the panel
correctly to the callback ensures that the structure is updated on
close.

Adds some copy/move semantics for EMBEDDED_FILES to take advantage of
how the multiple copies are handled in the library editor

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18935
2025-01-28 12:22:39 -08:00
Seth Hillbrand 0d86b88008 Unify embedded files handling btw editors
Each editor needs the embedded files tab in the
schematic/pcb/symbol/footprint settings.  But the footprint may add an
embedded file from the 3d models tab and symbols/footprints may add
embedded files from the grid.  This should be immediately visible in the
embedded files tab.  Additionally, removing the reference to an embedded
file in the grid or 3d models now removes the embedded file as well.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18934
2025-01-28 12:22:39 -08:00
Seth Hillbrand 1641878af7 Don't create a repository before the dialog
The user might cancel a dialog, leaving a broken repo.  We use a temp
repo to test the connection

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16263
2025-01-28 12:22:39 -08:00
Seth Hillbrand f871255005 Clean and unify pad/fp rotations
IPC2581 classifies pad rotation as clockwise from the top layer looking
down.  Which means that if you have the exact same footprint with
rotated pads on the top layer and bottom layer, then that will need two
different packages because one package will have the pads rotated one
way, the other will have the pads rotated in the opposite direction.
The IPC committee clearly was too smart for its own good here.  So we
hash the footprints based on layer as well and then introduce the
rotation into the pad.  This increases the number of packages but keeps
the code compact

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19703
2025-01-28 12:22:39 -08:00
Seth Hillbrand 6c2a559cbe Set base user layer count
Default colors cycle through repetition for unknown layers.  Allows
importing from complex Altium/CADSTAR boards with more than 10
documentation layers
2025-01-28 12:22:39 -08:00
Alex Shvartzkop 33a8425d3d Update translations 2025-01-28 19:42:48 +03:00
reimu105 17af30d26f Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 91.6% (9143 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hant/
2025-01-28 17:39:42 +01:00
Wellington Terumi Uemura 5aa8f1841f Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (9975 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/pt_BR/
2025-01-28 17:39:42 +01:00
reimu105 c9985f02cf Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 91.5% (9130 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hant/
2025-01-28 17:39:42 +01:00
Marco Ciampa 37e74c9614 Translated using Weblate (Italian)
Currently translated at 92.1% (9195 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/it/
2025-01-28 17:39:42 +01:00
reimu105 23fff95362 Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 91.5% (9130 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hant/
2025-01-28 17:39:42 +01:00
reimu105 5ff079fb3f Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 91.3% (9113 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hant/
2025-01-28 17:39:42 +01:00
co8 j 8220f72db0 Translated using Weblate (Japanese)
Currently translated at 99.9% (9970 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ja/
2025-01-28 17:39:42 +01:00
reimu105 5ab146aa7b Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 90.1% (8990 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hant/
2025-01-28 17:39:42 +01:00
reimu105 90229d0129 Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 90.1% (8989 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hant/
2025-01-28 17:39:42 +01:00
reimu105 05c7900363 Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 90.1% (8988 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hant/
2025-01-28 17:39:42 +01:00
reimu105 1c13ab4dc9 Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 90.0% (8987 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hant/
2025-01-28 17:39:42 +01:00
reimu105 cb6be36969 Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 90.0% (8986 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hant/
2025-01-28 17:39:42 +01:00
reimu105 4b20b9bf92 Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 90.0% (8985 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hant/
2025-01-28 17:39:42 +01:00
reimu105 0786b005b3 Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 90.0% (8984 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hant/
2025-01-28 17:39:41 +01:00
reimu105 22afe8c060 Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 90.0% (8983 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hant/
2025-01-28 17:39:41 +01:00
reimu105 d395091899 Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 90.0% (8982 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hant/
2025-01-28 17:39:41 +01:00
reimu105 001962c8b7 Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 90.0% (8982 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hant/
2025-01-28 17:39:41 +01:00
reimu105 3191ba4d70 Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 90.0% (8982 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hant/
2025-01-28 17:39:41 +01:00
reimu105 da94a9127d Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 90.0% (8981 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hant/
2025-01-28 17:39:41 +01:00
reimu105 8bf308573a Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 90.0% (8981 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hant/
2025-01-28 17:39:41 +01:00
reimu105 5139cbb0ab Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 90.0% (8981 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hant/
2025-01-28 17:39:41 +01:00
reimu105 8a6c9bd395 Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 90.0% (8981 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hant/
2025-01-28 17:39:41 +01:00
reimu105 fe19b02ea3 Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 90.0% (8981 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hant/
2025-01-28 17:39:41 +01:00
reimu105 a51173d017 Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 90.0% (8981 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hant/
2025-01-28 17:39:41 +01:00
reimu105 b6be36f7ef Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 90.0% (8981 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hant/
2025-01-28 17:39:41 +01:00
reimu105 f039378bde Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 90.0% (8981 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hant/
2025-01-28 17:39:41 +01:00
reimu105 493db877c9 Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 90.0% (8981 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hant/
2025-01-28 17:39:41 +01:00
reimu105 04ca6e6d5c Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 90.0% (8981 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hant/
2025-01-28 17:39:41 +01:00
reimu105 dc20d120eb Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 90.0% (8981 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hant/
2025-01-28 17:39:41 +01:00
reimu105 40e8a573f0 Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 90.0% (8981 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hant/
2025-01-28 17:39:41 +01:00
reimu105 342217478b Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 90.0% (8980 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hant/
2025-01-28 17:39:40 +01:00
reimu105 1d928ea1b0 Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 90.0% (8979 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hant/
2025-01-28 17:39:40 +01:00
reimu105 981fb67d57 Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 90.0% (8978 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hant/
2025-01-28 17:39:40 +01:00
reimu105 d49059be91 Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 89.7% (8956 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hant/
2025-01-28 17:39:40 +01:00
reimu105 b00a7e294f Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 89.7% (8956 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hant/
2025-01-28 17:39:40 +01:00
Marco Ciampa 9cb500654b Translated using Weblate (Italian)
Currently translated at 90.5% (9034 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/it/
2025-01-28 17:39:40 +01:00
reimu105 3ce858e88d Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 89.7% (8956 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hant/
2025-01-28 17:39:40 +01:00
Marco Ciampa e23777e826 Translated using Weblate (Italian)
Currently translated at 90.1% (8993 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/it/
2025-01-28 17:39:40 +01:00
CloverGit 1cd9929b15 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (9975 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hans/
2025-01-28 17:39:40 +01:00
CloverGit 39d87c339b Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 99.9% (9969 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hans/
2025-01-28 17:39:40 +01:00
KK0571 dc8cb076c6 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 99.9% (9969 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hans/
2025-01-28 17:39:40 +01:00
ZbeeGin d361e58da9 Translated using Weblate (Polish)
Currently translated at 100.0% (9975 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/pl/
2025-01-28 17:39:39 +01:00
Pferd O bec82d1951 Translated using Weblate (German)
Currently translated at 100.0% (9975 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/de/
2025-01-28 17:39:39 +01:00
John Beard 1a00405a87 Translated using Weblate (Italian)
Currently translated at 89.9% (8977 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/it/
2025-01-28 17:39:39 +01:00
Marco Ciampa 1082aa2861 Translated using Weblate (Italian)
Currently translated at 89.9% (8977 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/it/
2025-01-28 17:39:39 +01:00
John Beard 9f685ddec8 Translated using Weblate (Ukrainian)
Currently translated at 76.0% (7586 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/uk/
2025-01-28 17:39:39 +01:00
John Beard 202833aa8d Translated using Weblate (Spanish (Mexico))
Currently translated at 87.0% (8682 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/es_MX/
2025-01-28 17:39:39 +01:00
John Beard fdb3401ec1 Translated using Weblate (Portuguese (Brazil))
Currently translated at 99.9% (9974 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/pt_BR/
2025-01-28 17:39:39 +01:00
John Beard 812e2983a5 Translated using Weblate (Thai)
Currently translated at 62.1% (6199 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/th/
2025-01-28 17:39:39 +01:00
John Beard bebe0216f9 Translated using Weblate (Danish)
Currently translated at 42.8% (4273 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/da/
2025-01-28 17:39:39 +01:00
John Beard 0a13094913 Translated using Weblate (Vietnamese)
Currently translated at 23.9% (2389 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/vi/
2025-01-28 17:39:39 +01:00
John Beard 1159ff2735 Translated using Weblate (Turkish)
Currently translated at 54.0% (5389 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/tr/
2025-01-28 17:39:39 +01:00
John Beard 37db18b249 Translated using Weblate (Norwegian Bokmål)
Currently translated at 41.8% (4172 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/nb_NO/
2025-01-28 17:39:38 +01:00
John Beard 4b19a6d33a Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 89.0% (8885 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hant/
2025-01-28 17:39:38 +01:00
John Beard 014df49c4f Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 99.9% (9968 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hans/
2025-01-28 17:39:38 +01:00
John Beard 7d532e4502 Translated using Weblate (Swedish)
Currently translated at 99.0% (9885 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/sv/
2025-01-28 17:39:38 +01:00
John Beard 3aca721bb4 Translated using Weblate (Slovenian)
Currently translated at 0.4% (48 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/sl/
2025-01-28 17:39:38 +01:00
John Beard f4e65c54cf Translated using Weblate (Slovak)
Currently translated at 56.5% (5645 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/sk/
2025-01-28 17:39:38 +01:00
John Beard cfaf70c0a4 Translated using Weblate (Russian)
Currently translated at 99.8% (9965 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ru/
2025-01-28 17:39:38 +01:00
John Beard 9399f2ba7d Translated using Weblate (Portuguese)
Currently translated at 93.7% (9348 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/pt/
2025-01-28 17:39:38 +01:00
John Beard 94c3f05bd7 Translated using Weblate (Polish)
Currently translated at 99.9% (9974 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/pl/
2025-01-28 17:39:38 +01:00
John Beard 07d7cddafb Translated using Weblate (Dutch)
Currently translated at 90.2% (9006 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/nl/
2025-01-28 17:39:38 +01:00
John Beard c9a06ca564 Translated using Weblate (Lithuanian)
Currently translated at 43.7% (4364 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/lt/
2025-01-28 17:39:38 +01:00
John Beard ab3d2e4c60 Translated using Weblate (Korean)
Currently translated at 97.3% (9710 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ko/
2025-01-28 17:39:37 +01:00
김랑기 641070db7c Translated using Weblate (Korean)
Currently translated at 97.3% (9710 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ko/
2025-01-28 17:39:37 +01:00
John Beard c71ea22e7d Translated using Weblate (Japanese)
Currently translated at 99.9% (9969 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ja/
2025-01-28 17:39:37 +01:00
John Beard ea6e527063 Translated using Weblate (Finnish)
Currently translated at 99.4% (9923 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/fi/
2025-01-28 17:39:37 +01:00
John Beard 57c9120c20 Translated using Weblate (Spanish)
Currently translated at 85.2% (8507 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/es/
2025-01-28 17:39:37 +01:00
John Beard ee4dd37ad1 Translated using Weblate (Greek)
Currently translated at 87.7% (8758 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/el/
2025-01-28 17:39:37 +01:00
John Beard 9c3b246c36 Translated using Weblate (German)
Currently translated at 99.9% (9974 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/de/
2025-01-28 17:39:37 +01:00
John Beard 6903f6c71c Translated using Weblate (Czech)
Currently translated at 76.6% (7646 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/cs/
2025-01-28 17:39:37 +01:00
John Beard 6077f467ec Translated using Weblate (Catalan)
Currently translated at 41.7% (4164 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ca/
2025-01-28 17:39:37 +01:00
Marco Ciampa 31863bb266 Translated using Weblate (Italian)
Currently translated at 89.1% (8888 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/it/
2025-01-28 17:39:37 +01:00
Wellington Terumi Uemura 5dd563f2db Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (9975 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/pt_BR/
2025-01-28 17:39:37 +01:00
Hanna Breisand 863b460d09 Translated using Weblate (Swedish)
Currently translated at 99.1% (9886 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/sv/
2025-01-28 17:39:36 +01:00
dsa-t 2e1029fc53 Translated using Weblate (Russian)
Currently translated at 99.9% (9966 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ru/
2025-01-28 17:39:36 +01:00
dsa-t 4dccffa153 Translated using Weblate (Ukrainian)
Currently translated at 76.0% (7586 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/uk/
2025-01-28 17:39:36 +01:00
Henrik Kauhanen d5ebe0f6f6 Translated using Weblate (Swedish)
Currently translated at 99.1% (9886 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/sv/
2025-01-28 17:39:36 +01:00
dsa-t 088e2f96ee Translated using Weblate (Polish)
Currently translated at 100.0% (9975 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/pl/
2025-01-28 17:39:36 +01:00
ZbeeGin eca0bf6f0b Translated using Weblate (Polish)
Currently translated at 100.0% (9975 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/pl/
2025-01-28 17:39:36 +01:00
dsa-t 6209b3b23a Translated using Weblate (Japanese)
Currently translated at 99.9% (9970 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ja/
2025-01-28 17:39:36 +01:00
co8 j 7824f1d650 Translated using Weblate (Japanese)
Currently translated at 99.9% (9970 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ja/
2025-01-28 17:39:36 +01:00
dsa-t dfa8bc2adc Translated using Weblate (Finnish)
Currently translated at 99.4% (9924 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/fi/
2025-01-28 17:39:36 +01:00
Henrik Kauhanen 16eda46396 Translated using Weblate (Finnish)
Currently translated at 99.4% (9924 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/fi/
2025-01-28 17:39:36 +01:00
dsa-t 785edc3247 Translated using Weblate (German)
Currently translated at 100.0% (9975 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/de/
2025-01-28 17:39:36 +01:00
Pferd O c912250b0d Translated using Weblate (German)
Currently translated at 100.0% (9975 of 9975 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/de/
2025-01-28 17:39:36 +01:00
Damjan 0ba7f0e766 Eeschema: Default value for line style combo box in Graphic properties dialog window is Combo! 2025-01-28 15:21:27 +00:00
Mike Williams 19708d2a75 design blocks: add error message when necessary 2025-01-28 10:12:10 -05:00
Mike Williams d16c28911e design blocks: move settings save out of destructor 2025-01-28 10:12:09 -05:00
Mike Williams e94052ccb3 sch design block preview: fix order of preview destruction 2025-01-28 10:10:01 -05:00
Jeff Young e8e0b07223 Honour on-the-fly language changes.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19773
2025-01-28 15:09:11 +00:00
Marek Roszko 6652d3eca7 Remove the long path adjustment for now
Some bugs between archive vs backup project
2025-01-28 06:36:29 -05:00
Marek Roszko 76083e507a Revert "Kicad manager: make zip archive working on Windows."
This reverts commit 80303b4caa.
2025-01-27 22:23:03 -05:00
John Beard d90862b444 Pcbnew: fix snapping view update after hover delay
Te update didn't refresh, so the snap extensions sometimes only
appeared after the _next_ mouse move, which was annoying when the
mouse was very still (e.g. when deliberately hovering over an item).

Use a wxTimer to put all the callbacks in the UI thread which is also
much simpler. Also the update function needs to call a canvas refresh
as well as the item update.
2025-01-28 08:50:31 +08:00
Jon Evans 28a4ca2d80 Mark string for translation 2025-01-27 19:04:32 -05:00
Jon Evans 8a7bf78b38 Fix color theme load logic in jobs
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19754
2025-01-27 19:00:35 -05:00
Jon Evans e417b209a0 Don't paint clearance layers as copper
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19764
2025-01-27 18:16:58 -05:00
Alex Shvartzkop 6e54b88fe0 EasyEDA Pro import: set 3D model rotation for other axes as well.
(cherry picked from commit fbad7ae602)
2025-01-28 01:25:43 +03:00
JamesJCode 00e4d72d4b Move ownership of listener cleanup to BOARD itself
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19736
2025-01-27 21:55:11 +00:00
Jeff Young 25379b3094 Honour hover selections. 2025-01-27 20:30:45 +00:00
Jeff Young e530bab396 Don't report "shorting nets" when one pad has no net.
(Fall back to clearance violation instead.)

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19752
2025-01-27 19:08:35 +00:00
Jeff Young a9500de3f8 Ignore invisible copper text in router.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19420
2025-01-27 18:41:36 +00:00
Jeff Young e21ec0558e DEFAULT no longer a legal LINE_STYLE for graphic lines.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19766
2025-01-27 18:25:39 +00:00
jean-pierre charras 32673a0ead Pcbnew, router: fix crash when trying to create a blind via without a track
Using PnS router, when trying to create a blind/buried or micro via with layer
selection with no track in progress, the router crashed because the starting
layer was not defined.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19750
2025-01-27 18:29:54 +01:00
Jeff Young fccb661487 More MANDATORY_FIELDS work.
Also fixes a crasher when Cancelling a FIELDS_GRID
dialog with one of the grid editors currently open.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19762
2025-01-27 17:02:17 +00:00
Ethan Chien c9001cc187 Sync Sheet Pins: Refactor button enable logic to use selected row count for synchronization models
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19738
2025-01-28 00:53:16 +08:00
Wayne Stambaugh 048669eced Compare SCH_SHAPE UUIDs after comparing shape object coordinates.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19716
2025-01-27 10:34:01 -05:00
jean-pierre charras b2ef81808b Pcbnew, DIALOG_PLOT: store B&W/Color option for PDF and SVG formats
Previously, the dialog started withB&W option.
2025-01-27 16:03:17 +01:00
Marek Roszko 68b3f66cd3 Bump vcpkg mainline 2025-01-26 20:55:46 -05:00
Marek Roszko 76728ab748 Bump vcpkg for wxpython ducktape 2025-01-26 20:55:46 -05:00
Jon Evans 8903a82c50 Fix design block panel trampling symbol chooser settings
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19190
2025-01-26 18:32:00 -05:00
jean-pierre charras e487f19260 QA api test: ensure the "C" locale is used in tests.
Fix also a compatibility with current code in drc_proto.cpp
2025-01-26 11:47:18 +01:00
Jon Evans 42b9a9604b Fix several data races triggered by parallel library loading 2025-01-25 11:44:15 -05:00
John Beard 7080d99464 Pcbnew: reduce snap timeout a fraction
This is subjective but 500ms just seems a hair too long.
2025-01-25 23:57:38 +08:00
John Beard c120254aa4 Pcbnew: snap to object faster if no objects activated
Otherwise it's annoying to snap to the first item you get to
if you have to wait every time.
2025-01-25 23:57:38 +08:00
Jeff Young 66df840353 Attempt to fix CLI test. 2025-01-25 15:00:00 +00:00
Jon Evans 9cf4dd05b3 Fixes to build with wxWidgets 3.3 2025-01-24 22:33:00 -05:00
Wayne Stambaugh 4e80c6fdc1 Revert "Do not use schematic object UUID comparisons when UUIDs are mutable."
This reverts commit 1dfe3ebc54.
2025-01-24 15:30:25 -05:00
Wayne Stambaugh 1dfe3ebc54 Do not use schematic object UUID comparisons when UUIDs are mutable.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19716
2025-01-24 14:01:02 -05:00
Jeff Young 60c2469c75 Don't use dynamic_cast across compile boundaries.
(Especially not after we've already tested the
filenames explicitly so that we don't have to.)
2025-01-24 16:54:52 +00:00
John Beard 6f2a3582ae SCH_PIN: defer to lib pin for menu image
Otherwise we try to look up the icon for INHERIT,
which is an assertion.

This can be hit when long-clicking  no-connect on a pin.
2025-01-25 00:35:00 +08:00
John Beard 86394b7598 Eeschema: more useful assert msg on pin type lookup failure 2025-01-25 00:35:00 +08:00
Jeff Young 59f20cdedc Fix Mac build. 2025-01-24 16:06:22 +00:00
John Beard fb6d3c1808 Pcbnew: don't let axes hide construction geometry 2025-01-24 21:47:28 +08:00
Wayne Stambaugh 9eaefa3301 Fix crash when importing Eagle schematics with multiple module levels.
Fix annotation when importing Eagle schematic modules.  Apparently Eagle
uses hard coded module name prefixing scheme to generate module symbol
references by prefixing module name separated by a colon.  Even though
this results in references that are incompatible with KiCad, they are
used so that the board and schematic can be synchronized by references
on import.

https://gitlab.com/kicad/code/kicad/-/issues/19718
2025-01-24 07:35:31 -05:00
John Beard 0011586372 Position relative: don't run with no selection 2025-01-24 20:26:57 +08:00
John Beard 43be371f83 Kimath: don't access aActual unless set
Avoids at least one test failure in qa_pcbnew
due to uninitialised access.
2025-01-24 20:26:31 +08:00
John Beard d9a243d98c QA: Use data-driven tests in a few places
This means that you can run just a single case from the command line,
for example:

   `qa_pcbnew -t DRCCopperSliver/_0`

The case is also automatically printed as context.

This means that when isolating a specific defect in one case,
you can run only that one case, which is useful under debuggers
and also when using slow tools like valgrind.

Not all possibe tests are doing this, but they're easy to do
when needed (i.e. when you want to run just one case)
2025-01-24 20:13:19 +08:00
JamesJCode 09bbaa5813 Attempt to fix broken Windows build 2025-01-24 02:40:21 +00:00
JamesJCode b25cc8eb02 Set new symbol fields to default to hidden
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19727
2025-01-24 02:17:07 +00:00
JamesJCode 38054953d1 Set read-only color swatches on first use 2025-01-24 01:11:08 +00:00
Jeff Young b7592db2b3 Fix latent error in annotator uncovered by tests. 2025-01-23 23:47:30 +00:00
Jon Evans 877e197fec Fix another footprint field fallout
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19729
2025-01-23 18:25:07 -05:00
John Beard de7f735856 Pcbnew: fix extension snaps for initial persistent items
Specifically, do not race the delay against the proposal
cancellation for the initial items, but just accept them
immediately.
2025-01-24 03:46:58 +08:00
John Beard 5b07bb4f6a Pcbnew: fix snapping to reference image anchor points
Otherwise it's impossible to accurately place an image
using a corner or origin.
2025-01-24 03:46:58 +08:00
John Beard 954ef70a8a QA: add a library-mode footprint load/test/save test
This is not only a useful place to hang regression tests,
but also allows to catch defects specific to loading or
saving footprints.

For example, it would catch:

Relates-To: https://gitlab.com/kicad/code/kicad/-/issues/19713
2025-01-24 02:11:06 +08:00
Jeff Young 469d2176dd Use m_numRefStr when converting back to string.
(It main contain leading zeroes.)

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19724
2025-01-23 17:40:40 +00:00
Jeff Young 4c65085fa5 Search within symbols' draw items as well. 2025-01-23 14:54:10 +00:00
Jeff Young 7f307afb04 Adjust layout of Find dialogs. 2025-01-23 11:09:10 +00:00
Jeff Young a9ddcf4287 Fix positions of popup menus when plotting in mirrored mode.
[Resolve conflicts with JP's fix to same.  I'm not sure if we support !m_mirrorIsHorizontal, but
it was in other code, so I left it in just to be
safe....]

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19717
2025-01-23 10:55:11 +00:00
John Beard 48b32f781e Add ellipsis to 'Derive from Existing Symbol' 2025-01-23 17:04:29 +08:00
jean-pierre charras e9269e59f7 Pcbnew, PDF plot: fix property popup locations when plotting mirrored.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19717
2025-01-23 09:48:08 +01:00
Marek Roszko dc5276c1df Add Zc:inline for msvc 2025-01-22 20:23:32 -05:00
Marek Roszko 90465d6261 Add windows runtime copy with install step under msvc 2025-01-22 20:20:46 -05:00
Marek Roszko df1b5dd62c Move 2 warn flags to same place as the rest 2025-01-22 19:43:13 -05:00
Jeff Young 8fe8637297 Fix yet more assumptions about field IDs and order.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19710
2025-01-22 18:17:18 +00:00
Jeff Young d562336760 Always start kicad mgr with the apps page.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19711
2025-01-22 18:01:00 +00:00
jean-pierre charras 0748a1ca34 PANEL_SETUP_LAYERS: fix broken init of copper layer types.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19715
2025-01-22 18:59:15 +01:00
Alex Shvartzkop 88b56413d5 Fix crash when closing project manager during KiCad update check.
Also: allow to terminate the KiCad update check.
Also: update the status label when jobs are removed.
(cherry picked from commit 19890b7f99)
2025-01-22 20:56:03 +03:00
Jeff Young e19bce2f93 Reduce reliance on MANDATORY_FIELDS and their implied order. 2025-01-22 17:51:57 +00:00
jean-pierre charras be38fa5cac Pcbnew: footprint editor: fix crash when saving a footprint in lib
The crash was due to a footprint member (m_board) that is null in some
cases in footprint editor (renaming, saving, duplicate a Fp).

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19713
2025-01-22 17:24:18 +01:00
jean-pierre charras 9a57f7d573 Fix a minor compil warning 2025-01-22 17:18:26 +01:00
John Beard 95a1d17603 Eeschema: init variable in SCH_FIELD 2025-01-22 21:03:42 +08:00
John Beard 84f4f7f724 Lib editors: avoid bogus overwrite prompt when renaming to self
Just accept the dialog and then early-return.
2025-01-22 19:35:54 +08:00
John Beard 78cf47bd00 Eeschema: avoid double entries after renaming to exisiting names
Also handles the case when the overwritten symbol is the current
one (i.e. select symbol Bar, then rename the unselected symbol
Foo to Bar).

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/19709
2025-01-22 19:33:50 +08:00
Alex Shvartzkop 8f60a47a81 Don't wait for background tasks before closing the project manager frame.
Cancels the curl transfer if the reporter was cancelled.
2025-01-22 13:52:28 +03:00
Alex Shvartzkop 0c694de209 Protect against calling curl_easy_cleanup after curl_global_cleanup.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17103
Fixes KICAD-7DP
2025-01-22 13:52:28 +03:00
Alex Shvartzkop 4eaadcae5c Fix PCM logger format string usage. 2025-01-22 13:52:28 +03:00
Alex Shvartzkop 76849b05a7 Make controls of grid cell editors mostly invisible on creation.
The controls were visible momentarily when clicking on cells, at least on MSW.

The wxStyledTextCtrl is still visible, but is not multi-line with scrollbars.
2025-01-22 13:52:28 +03:00
Alex Shvartzkop 2278ee070f Fix warning C4296: '>=': expression is always true. 2025-01-22 13:52:28 +03:00
jean-pierre charras c0e2acc8cb French translation update 2025-01-22 11:01:46 +01:00
Seth Hillbrand 0281bfe05e Fix missing display pads on MacOS
The distance from any point in the negative quadrant to
std::numeric_limits::max will be larger than std::numeric_limits::max,
meaning that if we take the square of this value, we will overflow the
extended_type.  Overflows are undefined behavior when dealing with
signed integers (c.f. C99 §3.4.3/1) so while most compilers retain a
positive value, Apple, in release mode, overflows into the sign bit,
resulting in a negative number for the squared distance.

This prevented us from displaying certain shapes in the negative
quadrant on MacOS, only in release mode builds

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19424
2025-01-21 20:05:25 -08:00
Jon Evans 4118c14d97 API: Add selection handling 2025-01-21 19:53:03 -05:00
Jon Evans 71353b11f1 API: Make sure socket is cleaned up 2025-01-21 19:53:02 -05:00
Seth Hillbrand 988d229bbf Clean up unused var
Turns out we didn't need that one
2025-01-21 16:21:27 -08:00
Jeff Young dac7c9d4d7 Convert cross-references in Table Properties dialogs.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19705
2025-01-22 00:16:44 +00:00
Seth Hillbrand 5a57e5cfd4 Handle SSH keys better
OpenSSH will iterate through a series of keys.  Additionally, there may
be a key specified in the ssh/config file that we need to account for.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18864
2025-01-21 15:59:07 -08:00
Jeff Young 4fe05bfe47 Remove some more usages of MANDATORY_FIELDS. 2025-01-21 23:38:55 +00:00
Jeff Young 27755ac317 Calc mandatoryRows on the fly to prevent initialization order issues. 2025-01-21 17:00:19 +00:00
Jeff Young a0dd0485e9 Pull a little harder on the MANDATORY_FIELDs string.
We still conflate the fieldID, the position in the
array of fields, and whether or not that means the
field is mandatory.  But this attempts to clean up
*some* of that, without introducing too much risk.
2025-01-21 16:48:13 +00:00
Jeff Young d21eeb4249 Nullptr safety when called from test framework. 2025-01-21 14:21:10 +00:00
Jeff Young d50b69f1ae Reconcile divergence of MANDATORY_FIELDS between symbols and footprints.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19697
2025-01-21 13:28:28 +00:00
Seth Hillbrand 427d7d2dad Move git password management to local password control
Don't keep passwords in plain text config files that may be checked into
version control.  Passwords stored in system-specific password managers

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18053
2025-01-20 17:33:55 -08:00
JamesJCode a50d3b5d1b Set default netclass priority explicitly in constructor
This currently only happens for migrated schematics. It's not
currently needed for netclass ordering, but will ensure the
priorities are orderable without special-casing the default
netclass should anybody require that functionality in the future.
2025-01-21 00:23:48 +00:00
Alex Shvartzkop a71b7e14d4 Update translations 2025-01-21 01:58:03 +03:00
dsa-t eb24b18f0a Translated using Weblate (Russian)
Currently translated at 99.8% (9962 of 9972 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ru/
2025-01-20 23:57:47 +01:00
CloverGit 7171713315 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (9972 of 9972 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hans/
2025-01-20 23:57:47 +01:00
Sárkány Lőrinc aa960e661b Translated using Weblate (Hungarian)
Currently translated at 6.0% (601 of 9972 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/hu/
2025-01-20 23:57:46 +01:00
CloverGit 0cd67e3c66 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 99.8% (9961 of 9972 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hans/
2025-01-20 23:57:46 +01:00
Sárkány Lőrinc 56c19a9257 Translated using Weblate (Hungarian)
Currently translated at 5.7% (571 of 9972 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/hu/
2025-01-20 23:57:46 +01:00
Jan Straka f54de9181d Translated using Weblate (Czech)
Currently translated at 76.7% (7654 of 9972 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/cs/
2025-01-20 23:57:46 +01:00
Sárkány Lőrinc 1f90c17f39 Translated using Weblate (Hungarian)
Currently translated at 5.5% (556 of 9972 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/hu/
2025-01-20 23:57:46 +01:00
Toni Laiho 15652dd1a7 Translated using Weblate (Finnish)
Currently translated at 99.5% (9928 of 9972 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/fi/
2025-01-20 23:57:46 +01:00
Ulices e2db63236e Translated using Weblate (Spanish (Mexico))
Currently translated at 87.1% (8688 of 9972 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/es_MX/
2025-01-20 23:57:46 +01:00
Wellington Terumi Uemura 3b943ad079 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (9972 of 9972 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/pt_BR/
2025-01-20 23:57:46 +01:00
Rigo Ligo 56a19c5e1e Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 99.8% (9961 of 9972 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hans/
2025-01-20 23:57:46 +01:00
Дмитрий Михирев 1cbcab4208 Translated using Weblate (Russian)
Currently translated at 99.2% (9897 of 9972 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ru/
2025-01-20 23:57:46 +01:00
Toni Laiho 40c8dc7e8e Translated using Weblate (Finnish)
Currently translated at 99.5% (9925 of 9972 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/fi/
2025-01-20 23:57:46 +01:00
Дмитрий Михирев 2867b28a24 Translated using Weblate (Russian)
Currently translated at 99.2% (9897 of 9972 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ru/
2025-01-20 23:57:46 +01:00
Дмитрий Михирев 0e8c04888d Translated using Weblate (Russian)
Currently translated at 99.2% (9897 of 9972 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ru/
2025-01-20 23:57:46 +01:00
Дмитрий Михирев 6dde23a1d2 Translated using Weblate (Russian)
Currently translated at 99.2% (9897 of 9972 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ru/
2025-01-20 23:57:46 +01:00
Дмитрий Михирев dd14092d5f Translated using Weblate (Russian)
Currently translated at 99.2% (9897 of 9972 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ru/
2025-01-20 23:57:46 +01:00
Дмитрий Михирев 1da00b7d1e Translated using Weblate (Russian)
Currently translated at 99.2% (9897 of 9972 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ru/
2025-01-20 23:57:45 +01:00
Дмитрий Михирев ba1b65cf69 Translated using Weblate (Russian)
Currently translated at 99.2% (9897 of 9972 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ru/
2025-01-20 23:57:45 +01:00
Дмитрий Михирев 058d99f236 Translated using Weblate (Russian)
Currently translated at 99.2% (9897 of 9972 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ru/
2025-01-20 23:57:45 +01:00
Дмитрий Михирев b7ca7163f9 Translated using Weblate (Russian)
Currently translated at 99.2% (9897 of 9972 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ru/
2025-01-20 23:57:45 +01:00
Дмитрий Михирев ed662c3f1f Translated using Weblate (Russian)
Currently translated at 99.2% (9897 of 9972 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ru/
2025-01-20 23:57:45 +01:00
Дмитрий Михирев b2c8c9c302 Translated using Weblate (Russian)
Currently translated at 99.2% (9897 of 9972 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ru/
2025-01-20 23:57:45 +01:00
Дмитрий Михирев 196b3d100b Translated using Weblate (Russian)
Currently translated at 99.2% (9897 of 9972 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ru/
2025-01-20 23:57:45 +01:00
Дмитрий Михирев b891860c25 Translated using Weblate (Russian)
Currently translated at 99.2% (9897 of 9972 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ru/
2025-01-20 23:57:45 +01:00
Дмитрий Михирев 056b8d668a Translated using Weblate (Russian)
Currently translated at 99.2% (9897 of 9972 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ru/
2025-01-20 23:57:45 +01:00
Дмитрий Михирев 9143ab47c1 Translated using Weblate (Russian)
Currently translated at 99.2% (9897 of 9972 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ru/
2025-01-20 23:57:45 +01:00
Marco Ciampa e8adb46e59 Translated using Weblate (Italian)
Currently translated at 88.0% (8780 of 9972 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/it/
2025-01-20 23:57:45 +01:00
Ivan Chuba 910a5d2483 Translated using Weblate (Ukrainian)
Currently translated at 76.1% (7592 of 9972 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/uk/
2025-01-20 23:57:45 +01:00
Ulices 6c794b85fd Translated using Weblate (Spanish (Mexico))
Currently translated at 87.1% (8687 of 9972 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/es_MX/
2025-01-20 23:57:45 +01:00
CloverGit 4efa78abc9 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 99.8% (9961 of 9972 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hans/
2025-01-20 23:57:45 +01:00
Дмитрий Михирев 3702f73de9 Translated using Weblate (Russian)
Currently translated at 99.2% (9897 of 9972 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ru/
2025-01-20 23:57:44 +01:00
ZbeeGin fc54a2615e Translated using Weblate (Polish)
Currently translated at 100.0% (9972 of 9972 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/pl/
2025-01-20 23:57:44 +01:00
2tama3 8c4e2f1577 Translated using Weblate (Japanese)
Currently translated at 100.0% (9972 of 9972 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ja/
2025-01-20 23:57:44 +01:00
Ricky Tigg 239f200b2d Translated using Weblate (Finnish)
Currently translated at 98.5% (9823 of 9972 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/fi/
2025-01-20 23:57:44 +01:00
Pferd O 613be802b9 Translated using Weblate (German)
Currently translated at 100.0% (9972 of 9972 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/de/
2025-01-20 23:57:44 +01:00
JamesJCode 6af44c8ffa Show full component class string in pcb properties panel
Currently, the human-readable component class is shown in the info
bar. For multiple component classes, this means that not all will
be readable. Showing the formal ordered string in the properties
panel mitigates this issue.
2025-01-20 22:56:26 +00:00
Alex Shvartzkop 0216b186aa Disable Bezier and Table tools when no footprint is loaded. 2025-01-21 01:15:22 +03:00
Seth Hillbrand abbdea4412 Correct rotations for flipped parts
Rotation is always seen as clockwise from the top of the board in 2581

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19675
2025-01-20 12:09:56 -08:00
Alex Shvartzkop 689441ebab Fix image size in Layer selector in Properties panel on hidpi.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13105

(cherry picked from commit 8b24496b79)
2025-01-20 22:15:52 +03:00
Jeff Young 062a03c3aa Only test existing layers.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19694
2025-01-20 18:28:33 +00:00
Jeff Young 8a0bff7351 Improved naming. 2025-01-20 18:28:33 +00:00
jean-pierre charras ca5f867957 F3D viewer: fix incorrect code in commit becaba53 2025-01-20 17:47:34 +01:00
jean-pierre charras becaba531b 3D Viewer: fix incorrect render of platted copper of texts.
Previously, with option "Use bare copper color for unplated copper", the
plated area of texts were drawn using their bounding box.
2025-01-20 17:15:49 +01:00
Jeff Young 240a745aa7 Hack-fix for paste into std dialog search box.
It's hard to know how widely this fix needs to be
applied, but this should at least get most of the
cases.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19684
2025-01-20 12:58:00 +00:00
Wayne Stambaugh db877e6a00 Fix Eagle schematic import issue.
Handle duplicate symbol library names with Eagle URN notation.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19666
2025-01-20 07:28:25 -05:00
Jeff Young 5e6795a774 Ellipsis for Edit Table Properties dialog.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19682
2025-01-20 11:39:50 +00:00
Jeff Young 44840c7df2 Don't expose Default Font selection in PCBNew. 2025-01-20 11:30:46 +00:00
Jeff Young 6b6729284c Remove default line styles from all items except eeschema wires and buses. 2025-01-20 11:30:46 +00:00
Jeff Young c50ce416f2 Consistency in panel layout. 2025-01-20 11:30:45 +00:00
Jon Evans dd20d464f3 Turn KICAD_USE_CMAKE_FINDPROTOBUF on for old containers 2025-01-19 23:58:07 -05:00
Seth Hillbrand 867e6858c8 Handle paste special case when converting bitmap
Library export to file requires a library container but when pasting, we
paste into an existing library, so we need to skip the library header.

Long term solution would be to allow pasting library with multiple
symbols into existing library

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19688
2025-01-19 17:46:54 -08:00
Seth Hillbrand 1abfc13755 Get Autoplace tool to skip locks
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19690

(cherry picked from commit 614b327d23)
2025-01-19 17:29:57 -08:00
Seth Hillbrand f226287360 Minor adjustments to autoplace
Don't use FP bbox with text when placing footprints
Don't do unneeded poly calculation when initial work is only with
bounding box

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

(cherry picked from commit e0c57b7f20)
2025-01-19 17:29:57 -08:00
Alex Shvartzkop 775b768833 Fix VRML layer Z positions after v9 layer changes.
https://gitlab.com/kicad/code/kicad/-/issues/19608
2025-01-20 03:30:38 +03:00
Alex Shvartzkop 0118d7fb38 Raytracing: use all lights in preview mode.
It's not significantly slower, but looks much better.

Related: https://gitlab.com/kicad/code/kicad/-/issues/17354
2025-01-19 23:52:02 +03:00
Alex Shvartzkop 6b3396ea2d Raytracing: convert from linear RGB to sRGB in preview mode.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17354
2025-01-19 23:52:02 +03:00
Alex Shvartzkop 87c42db898 Raytracing: fix orthogonal camera frustum normal calculations.
Normal values were very close to 0 in orthogonal camera projection,
causing issues on the arm64/macOS platform.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18207
2025-01-19 23:52:02 +03:00
Jeff Young e85f1bea0c Fix bugs in SyncPinMode.
In particular an errant else, and calling ChangeLength()
after SetPosition().

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18566
2025-01-19 13:07:10 +00:00
Alex Shvartzkop e0c61e6069 Fix error with ARG_LIGHT_SIDE_ELEVATION in CLI. 2025-01-19 02:44:10 +03:00
Jeff Young f0d1052547 Check for missing courtyards in footprint checker.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19678
2025-01-18 20:51:24 +00:00
Wayne Stambaugh d53ed205f2 CvPcb and Eeschema part 1 housekeeping. 2025-01-18 14:31:15 -05:00
Jon Evans 975fe32fa7 Add a mechanism for using a mock config dir for QA tests 2025-01-18 13:40:38 -05:00
Jeff Young b582f178dd nullptr safety 2025-01-18 16:13:32 +00:00
John Beard 6423571349 Account for origin transforms in WX_PT_ENTRY_DIALOG
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/19673
2025-01-19 00:08:20 +08:00
Jon Evans 7993daecf0 Don't use stdout monitor for actions 2025-01-18 10:23:10 -05:00
Jon Evans 6122fca858 Change default for KICAD_USE_CMAKE_FINDPROTOBUF 2025-01-18 10:23:10 -05:00
lucas e6eff2ce27 Simulator: Fix live view (regression)
- Fixes regression from commit 1fc3068d
- Traces were not updated while simulation was running
2025-01-18 15:11:02 +00:00
Jeff Young 24ec25a24c Update layer infrastructure in Image Converter.
(Also cleans up the interface a little.)
2025-01-18 14:33:03 +00:00
Jeff Young 3a3e2fe835 Clear status at start of jobset run. 2025-01-18 14:33:03 +00:00
Jon Evans d74744596e Fix application of component class to memberOfFootprint
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19663
2025-01-18 09:14:28 -05:00
Jon Evans cd403a27a9 SWIG: re-wrap LSET::FmtHex and co
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19546
2025-01-18 09:04:25 -05:00
jean-pierre charras 8557deec54 job export pos Gerber X3: fix incorrect filename of back side.
Fix also a shadowed var.
2025-01-18 10:43:35 +01:00
Seth Hillbrand a1fa0bdb0b Make newly added symbol fields invisible
Also place them coincident with the symbol

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19671
2025-01-17 17:46:44 -08:00
Seth Hillbrand c16d403dd0 Do not iterate over lists you are modifying
The iterator changes when you modify the list, leading to unpredictable
results.  Using the count, working from the back ensures that our list
is stable when removing fields.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19672
2025-01-17 17:40:35 -08:00
Seth Hillbrand 7972ba84fa Be sure to update the ODB++ filename when loading
Otherwise, we get .zip extension but uncompressed file handling
2025-01-17 17:05:12 -08:00
Seth Hillbrand 1259e6057a Correct ODB++ attribute output
System attributes should be prefixed by the . while user-defined
attributes can be freeform ASCII

Adds DNP & Component Type for footprints to ODB++ export
2025-01-17 15:46:55 -08:00
Jeff Young b933d3228f Reduce warnings. 2025-01-17 22:07:07 +00:00
Jeff Young a1fbff35e8 Formatting. 2025-01-17 22:07:07 +00:00
Wayne Stambaugh 8d20cf454b Tag stable version 9.0.0 release candidate 2. 2025-01-17 15:13:54 -05:00
Jeff Young 044fe24293 Remove ability to specify fp sides for position file jobs. 2025-01-17 19:37:12 +00:00
John Beard a8582e9054 Eeschema: when shadows are in fill-shapes mode, also draw the strokes
Otherwise, stright lines have no shadow at all. The alternative is
to special case stright lines, which means that some graphics
get stroke shadows and some don't and it looks inconsistent.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/19662
2025-01-18 00:52:02 +08:00
Jeff Young dd180aabdd Let JOBSET_OUTPUT_REPORTER trim temp paths. 2025-01-17 16:02:57 +00:00
Jeff Young c30f8626d6 Generating footprint positions if one file at a time for jobs.
(The GUI can create separate files for front and
back, or one file for both.  A job always creates
a single file, though it can have front, back, or
both in it.)
2025-01-17 15:58:22 +00:00
Jeff Young 232542f42b Re-work filtering of temp-dir messages in jobset outputs.
(Also rationalises some of the output reporting
for consistency.)
2025-01-17 15:58:21 +00:00
Jeff Young f7295eefdb Jobset output path includes the filename.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19659
2025-01-17 15:58:21 +00:00
Jeff Young 692f19358b Jobset output path includes the filename.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19659
2025-01-17 15:58:21 +00:00
Jeff Young 630da8bed6 Formatting. 2025-01-17 15:58:21 +00:00
jean-pierre charras 7243281756 QA test: ensure qa_common uses the "C" locale to convert doubles to strings. 2025-01-17 15:44:04 +01:00
jean-pierre charras 82414f5e80 French translation update 2025-01-17 14:57:27 +01:00
Marek Roszko d82242a602 Fix target name added earlier 2025-01-17 07:33:07 -05:00
jean-pierre charras 8528151a2b Fix incorrect format for a message 2025-01-17 11:54:14 +01:00
Seth Hillbrand bc12591449 Use proper indexing for board poly
In rare cases the fracture call will reduce the outline count, leading
to crashes when we dereference them.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19664
2025-01-16 20:26:53 -08:00
Marek Roszko e7bb7592a2 Kill the MRU in pcb plot when jobing 2025-01-16 21:31:15 -05:00
Marek Roszko b1eaa52e08 Add missing ensure paths called for gerbers job
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19653
2025-01-16 21:26:55 -05:00
Seth Hillbrand 3a5eeef9df Auto update list of fonts when embedding files
Get the list of currently used fonts to populate the list of embedded
files when the user checks the "embed fonts" checkbox
2025-01-16 18:07:07 -08:00
Marek Roszko 6a92e5f02d Fix drc/erc back to using info severity.
These aren't some sort of critical error, error severity gets sent to stderr in cli.
2025-01-16 19:21:52 -05:00
Seth Hillbrand 6d40bf049e Hold fp data constant
We cache arc data to ensure that we know if it has changed since
loading, however footprints perform transformation (displacement +
rotation) on their internal elements, so we need to provide the same
transformation to the cache in order to assure it matches when writing
to disk, otherwise, the arc midpoint will be recalculated leading to
instability

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19648
2025-01-16 16:05:23 -08:00
Seth Hillbrand 5c0973f980 One more time ... metdata
The local validator is apparently a different process than the CI
validator, so respond to their errors
2025-01-16 14:59:52 -08:00
Seth Hillbrand 8c1f9d0b7e Stick with older information in metadata
Grr... appstream-util will error in strict mode for unknown tags and it
has no way of getting new tag information because there is no DTD
published.  Just a flippin C-lang program that will "validate" your
file.  So awesome that they are using XML!  Definitely the best
representation when you are going to hard-code your requirements, not
version your data
2025-01-16 13:19:43 -08:00
JamesJCode 45bce316ed Prefer static_cast over C style casts 2025-01-16 21:09:24 +00:00
Alex Shvartzkop 216b639279 Update translations 2025-01-16 23:16:16 +03:00
Ricky Tigg 160d5ea74b Translated using Weblate (Finnish)
Currently translated at 98.5% (9837 of 9986 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/fi/
2025-01-16 21:15:10 +01:00
Marco Ciampa b179b2f486 Translated using Weblate (Italian)
Currently translated at 88.0% (8797 of 9986 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/it/
2025-01-16 21:15:10 +01:00
김랑기 e12af67708 Translated using Weblate (Korean)
Currently translated at 95.2% (9508 of 9986 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ko/
2025-01-16 21:15:10 +01:00
Marco Ciampa 3e19c9e8bc Translated using Weblate (Italian)
Currently translated at 87.8% (8769 of 9986 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/it/
2025-01-16 21:15:10 +01:00
Erkan 4c3b738ff2 Translated using Weblate (Turkish)
Currently translated at 54.1% (5404 of 9986 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/tr/
2025-01-16 21:15:10 +01:00
김랑기 a0bada62ca Translated using Weblate (Korean)
Currently translated at 95.2% (9507 of 9986 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ko/
2025-01-16 21:15:10 +01:00
2tama3 e286a86b4d Translated using Weblate (Japanese)
Currently translated at 100.0% (9986 of 9986 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ja/
2025-01-16 21:15:10 +01:00
co8 j 78a1b37ce1 Translated using Weblate (Japanese)
Currently translated at 100.0% (9986 of 9986 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ja/
2025-01-16 21:15:10 +01:00
Pferd O 019e2fb8a4 Translated using Weblate (German)
Currently translated at 100.0% (9986 of 9986 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/de/
2025-01-16 21:15:10 +01:00
Marco Ciampa 3038114034 Translated using Weblate (Italian)
Currently translated at 87.3% (8726 of 9986 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/it/
2025-01-16 21:15:10 +01:00
CloverGit 1ea693d776 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 99.8% (9975 of 9986 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hans/
2025-01-16 21:15:10 +01:00
Tokita, Hiroshi a5a5b227a1 Translated using Weblate (Japanese)
Currently translated at 99.1% (9905 of 9986 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ja/
2025-01-16 21:15:10 +01:00
co8 j ee53f41276 Translated using Weblate (Japanese)
Currently translated at 99.1% (9905 of 9986 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ja/
2025-01-16 21:15:10 +01:00
aris-kimi d2eba72f65 Translated using Weblate (Greek)
Currently translated at 87.8% (8774 of 9986 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/el/
2025-01-16 21:15:09 +01:00
CloverGit 1b27263cbb Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 99.8% (9968 of 9986 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hans/
2025-01-16 21:15:09 +01:00
CloverGit 408ffc277c Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 99.8% (9968 of 9986 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hans/
2025-01-16 21:15:09 +01:00
CloverGit d8c0c5a752 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 99.8% (9969 of 9986 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hans/
2025-01-16 21:15:09 +01:00
CloverGit f4f8fb59ce Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 99.7% (9957 of 9986 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hans/
2025-01-16 21:15:09 +01:00
CloverGit 16049090ae Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 99.7% (9957 of 9986 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hans/
2025-01-16 21:15:09 +01:00
Seth Hillbrand c5256c1781 Update linux metadata
Add some system requirements.

Correct the component type (apparently supposed to be
desktop-application according to freedesktop)

Add some more URLs
2025-01-16 11:17:00 -08:00
Seth Hillbrand 8289923c98 Update metadata
Too many categories is messy on some distros.  We are primarily
electronics or engineering.  Electricity and Science are related but
more of a stretch
2025-01-16 11:01:43 -08:00
Seth Hillbrand 561fc967a3 Add additional stackup information to 2581 output
Some parsers like the stackup def and this gets additional information
about the materials/colors into the output

Also fixes an issue where we could get missing pads in unusual cases.

Also fixes an issue were we generated invalid contours when footprints
had split courtyards

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16665
2025-01-16 10:45:06 -08:00
Jeff Young 0d6a2f1c47 SynchronizeProperties after (potentially) changing text vars.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19658
2025-01-16 18:37:10 +00:00
Jeff Young 6eaeacfe79 Return wxID_OK from plot dialog. 2025-01-16 17:18:14 +00:00
Jeff Young 6f32ecafe5 Include project in output path text resolver.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19659
2025-01-16 17:06:59 +00:00
Wayne Stambaugh e09b095533 Common folder housekeeping part 3. 2025-01-16 11:50:08 -05:00
Jeff Young af38f76f01 Don't double-create new folders in project tree. 2025-01-16 16:47:58 +00:00
Jeff Young 89706aedae Resolve some variables from the project. 2025-01-16 15:59:51 +00:00
Jeff Young 413fe65bd8 Resolve fonts in library symbols.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19641
2025-01-16 15:41:41 +00:00
Jeff Young fdb460441f Give EDA_LIST_DIALOG a larger size for longer lists. 2025-01-16 13:12:25 +00:00
Jeff Young b6d03255f0 Don't report filepath messages for jobs.
(They'll just point to temp files anyway.)

Also moves schematic netlist fetching to
MAIL_SCH_GET_NETLIST.
Eeschema's generateSchematicNetlist() hasn't
worked in some time.

Also suppresses parity error counts when parity
not run due to failure to find or load schematic.

Also writes out ERC/DRC reports even when they're
set to fail the job.

Also improves adding/removing netlist exporters to
select an appropriate tab in the dialog (either
the newly-created one or the one preceeding the
deleted one).
2025-01-16 13:12:25 +00:00
Jeff Young d1411e2c69 Don't report filepath messages for jobs.
(They'll just point to temp files anyway.)

Also moves schematic netlist fetching to
MAIL_SCH_GET_NETLIST.
Eeschema's generateSchematicNetlist() hasn't
worked in some time.

Also suppresses parity error counts when parity
not run due to failure to find or load schematic.

Also writes out ERC/DRC reports even when they're
set to fail the job.
2025-01-16 13:12:25 +00:00
Jeff Young 3b07401912 Formatting. 2025-01-16 13:12:25 +00:00
Jeff Young 5f45c2c0d1 Nullptr fixes. 2025-01-16 13:12:25 +00:00
Jeff Young 2cc39bc2be Remove paths from job-success status messages.
(They only point to the temp directory anyway.)

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19635
2025-01-16 13:12:25 +00:00
Jeff Young 705f8ddd90 Formatting (and avoid dynamic_cast across kiway). 2025-01-16 13:12:25 +00:00
Jeff Young 2af80d2fc8 Refresh project tree after generating outputs. 2025-01-16 13:12:25 +00:00
John Beard a997dab769 Position interactive: add re-entrancy guard 2025-01-16 20:48:04 +08:00
John Beard e392b7b52d Position interactive: don't allow status popup over the dialog 2025-01-16 20:42:13 +08:00
John Beard 040fe379d0 Position interactive: don't leave stale ruler after edits
Any non-mouse action, just clear the ruler.
2025-01-16 20:41:12 +08:00
John Beard ba5bdfaca6 Pcbnew tool: fix inconsistent selection after creation
If the point selection was used for the circualr array, one of the items
would be unselected, which is different to the grid array and annoying
if you want to pick up/edit props for the new items.
2025-01-16 19:43:15 +08:00
John Beard 6e7b22904e Array tool: when changing axis numbering, default to valid numbering
Otherwise, when you change the axis numbering type, and don't update
the start offset string, you get an error on dialog save. Instead,
if the number isn't valid, change it to a valid one.
2025-01-16 19:43:15 +08:00
John Beard d677b84de1 Array dialog: if validation fails, don't close - allow user to fix it 2025-01-16 19:43:15 +08:00
John Beard 7116ed6917 Pcbnew array dialog: adjust padding
Also remove some debug.
2025-01-16 19:43:15 +08:00
jean-pierre charras 2a143a63e5 Build on MSYS2: use shobjidl.h, instead of shobjidl_core.h
shobjidl_core.h is not available on mingw
2025-01-16 09:59:12 +01:00
Marek Roszko 337ec6d862 Add a version_header depend, not ideal 2025-01-15 21:27:08 -05:00
Jon Evans f5339648d2 Don't assume a username for macos ci 2025-01-15 20:40:26 -05:00
Marek Roszko a0b50622dd Implement AppUserModelID for windows 2025-01-15 20:36:15 -05:00
Seth Hillbrand e32815003f Don't depend on the enum ordering for units
They are not always going to line up with the dropdown ordering

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19643
2025-01-15 11:33:32 -08:00
Alex Shvartzkop d9dcd9e854 EasyEDA Pro schematic: import text with null angle.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19640
2025-01-15 22:04:57 +05:00
Alex Shvartzkop 3a0df97dbf Optimize SHAPE_LINE_CHAIN::Segment slightly. 2025-01-15 18:07:57 +05:00
Marek Roszko 41ef767676 Tweak the odb job pathing again 2025-01-14 21:23:25 -05:00
Marek Roszko 9dc0bb2c89 Avoid rebuilding the bitmap tar every single build by cheesing cmake targets 2025-01-14 20:45:22 -05:00
Marek Roszko 5c3004b96e Avoid altering the configured output path during run in case of empty paths 2025-01-14 20:44:51 -05:00
Jeff Young 1d8ed071b8 Respect recursion depth limit.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19633
2025-01-15 00:08:08 +00:00
Seth Hillbrand c7c1748920 Keep the scoped copy of LSET
Attempting to fix an unknown windows crash

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19488
2025-01-14 15:27:42 -08:00
Seth Hillbrand a77c9463e4 Fix memory leak in DRC_TEST_PROVIDER_CLEARANCE_BASE
We really shouldn't be getting the colors here (they need to be when
drawn) but if we do, we shouldn't allocate a whole new palette for each
object.
2025-01-14 15:27:42 -08:00
JamesJCode baa0beec4d Update some pcbnew QA files to remove warning messages 2025-01-14 22:49:21 +00:00
JamesJCode 83f03b10ff Further netclass name method cleanup 2025-01-14 21:16:43 +00:00
Seth Hillbrand 5cd9e319d3 Handle more arc degeneracies 2025-01-14 13:08:45 -08:00
Seth Hillbrand bfb3875a68 Add additional handling for arc collisions
Provides nearest point calculation for circles, segments and rects

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18203
2025-01-14 13:08:45 -08:00
Seth Hillbrand bcebc694b8 Implement MTV for arcs 2025-01-14 13:08:45 -08:00
Seth Hillbrand b73481dd49 Update SHAPE_ARC::IntersectionPoints()
Force it to handle a number of edge cases from Arc-Arc collision test.
Unify and simplify the Collide Arc-Arc.  Add additional arc collision
QA test
2025-01-14 13:08:45 -08:00
Seth Hillbrand 4d40ea2586 Allow Arc conversion to-from tracks-graphics 2025-01-14 13:08:45 -08:00
JamesJCode c80a71f64a Make netclass name methods clearer, and improve doc strings
There are two netclass name methods, which previously were not
obvious in their uses. These have been renamed to now have:

GetName() : Used for internal or tooling (e.g. netlist export) usage
GetHumanReadableName() : Used for display to users (e.g. in infobars)

Fixing the previous unclear naming will result in fewer bugs
when users start using the multiple netclass functionality, as
the incorrect usage had started creeping in to new code. Also this
will help authors of new code select the correct name method.
2025-01-14 20:44:09 +00:00
Wayne Stambaugh f161d94521 Common folder housekeeping part 2. 2025-01-14 15:25:05 -05:00
Jeff Young 7bf0d36057 Store/fetch sheetpath along with symbol UUID.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19623
2025-01-14 18:32:09 +00:00
John Beard 5b1fdbe645 Symbol editor: use a default name when deriving a symbol
A blank field is always an error, and it's quite likely the name
will be somewhat similar to the parent symbol.
2025-01-15 02:29:09 +08:00
Jeff Young 21fb208d52 Fix a bad format stmt argument type. 2025-01-14 17:38:24 +00:00
John Beard 62095306d0 Eeschema: sort parents in symbol properties dialog combobox 2025-01-15 01:17:36 +08:00
John Beard d55877ce27 Increment tool: use parent commit when appropriate, avoid double preview
Cloning the item into the previewe means that if we later increment
it, the preview clone doesn't update. Use the non-owning preview
interface to use the item directly in the preview.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/19433
2025-01-15 00:26:09 +08:00
Jeff Young 799dadeeec Save bom & bom_fmt preset names for jobs.
Also re-fronts Kicad manager frame after editing
job settings.

Also fixes a bug where group-by (but non-shown)
fields didn't get restored.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19627
2025-01-14 14:38:58 +00:00
Jeff Young 77a524fa22 Fix slicing operator.
(Also a minor performance improvement.)
2025-01-14 12:41:16 +00:00
Jeff Young d30f507fd8 Cache bboxes for all lines.
(Otherwise iterating over them makes the cache useless.)

Also fixes two bugs where the cache pos wasn't copied.
2025-01-14 12:24:24 +00:00
Jeff Young 9c757a4417 Naming conventions. 2025-01-14 12:24:24 +00:00
Seth Hillbrand 6769efc807 Contain the unescaped netnames to XML output
Kicad netlists branch off the xml, so keep their output stable.  Only
use XML-based escaping for XML files
2025-01-13 19:48:13 -08:00
Marek Roszko 97787778eb Fix path processing for odb job 2025-01-13 21:42:27 -05:00
Seth Hillbrand 6beeabd5d2 Ensure netlist netnames are readable
We don't need name escaping here because XML has a standard escaping
paradigm (HTML-like) that will be applied to the strings when written to
the file
2025-01-13 16:49:01 -08:00
Seth Hillbrand 7728d5eccf Keep effective netclass data in XML output
Tagging nets allows downstream processors to more effectively handle
KiCad outputs

Fixes https://gitlab.com/kicad/code/kicad/-/issues/13240
2025-01-13 16:39:12 -08:00
Seth Hillbrand 3e8791b88d Fixup multiple issues with DP checks
Handle arcs properly even when not exactly concentric.  Properly check
for interfering elements that would prevent coupling.  Avoiding those
that are directly connected

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17967
2025-01-13 16:11:16 -08:00
Jeff Young ce483c848a Remove previous version of disable-previews-when-menu-open.
(It had been rendered inoperative by the fix for
#16844.)

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19117
2025-01-13 19:45:49 +00:00
Jeff Young c52c41a1d5 Make doubly sure net inspector settings are saved.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19449
2025-01-13 19:28:08 +00:00
Jeff Young 4a3f69e518 Fix dialog layout.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19622
2025-01-13 19:14:25 +00:00
Jeff Young 95b872f074 Formatting. 2025-01-13 19:14:25 +00:00
Seth Hillbrand f24dba97f4 Block preview while menus are shown
When the user is navigating a drop down menu, they don't want the
preview window to pop over their screen.  This glues between the
LIB_TREE and the frame to block these preview events

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19117
2025-01-13 10:22:26 -08:00
Jeff Young 577c1dd332 Also limit the number of search terms (as well as their length)
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19464
2025-01-13 16:22:37 +00:00
Jeff Young e7a79216ab Add non-title-block var resolution to jobset outputs.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19357

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19618
2025-01-13 12:49:15 +00:00
jean-pierre charras af366a78b3 Eeschema: fix correct background area size when plotting a sheet.
If a sheet is bigger than the page size selected in the plotter (PC, PDF , SVG)
(i.a a A3 sheet plotted scaled to A4 page) the background area size actually plotted
was to small.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19611
2025-01-13 11:04:16 +01:00
Seth Hillbrand d7f89c6576 Respect DXF origin on graphics import if possible
We only need to adjust the DXF import box location if the graphics
imported do not fit on our drawing area

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18523
2025-01-12 19:55:47 -08:00
Seth Hillbrand becbf82390 Keep FP Properties dialogs as quasimodal
The dialogs will launch their own quasi modal dialogs, which reparent
themselves to the TLW.  When closing, on GTK, they will focus the TLW,
leading to events being handled while the initial quasi modal dialog is
still showing.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19385
2025-01-12 19:37:05 -08:00
Seth Hillbrand e4d2dbb7a7 Strip extra library data when importing Altium
Altium stores (or can store) full information about the absolute
location of libraries for each footprint in their board files.  Since
KiCad only stores an alias, we have no place to keep the full path.
Just keeping the filename should be enough for most cases and still
allows the user to disambiguate manually after import without crowding
the UI.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15593
2025-01-12 17:07:49 -08:00
Maciej Małecki 82c1118679 pcbnew: disable Zone Manager thermal relief configuration when not needed 2025-01-13 00:43:59 +00:00
Seth Hillbrand 1fc3068de6 Don't ask for data before running
If the sim hasn't run, we don't have data and ngspice will complain.
It's a harmless message but new users don't know this and it sounds
problematic.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19600
2025-01-12 16:14:40 -08:00
Jeff Young a7c130b82d Hook up TITLE_BLOCK resolver to jobs.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19471
2025-01-12 22:31:09 +00:00
Jeff Young 62041fdb69 Naming consistency. 2025-01-12 20:24:33 +00:00
Jeff Young 9322397933 Cleanup. 2025-01-12 20:24:33 +00:00
Wayne Stambaugh 5c8f4697ca Common folder housekeeping part 1. 2025-01-12 12:06:45 -05:00
Seth Hillbrand 4ba1c0130c Use layer numbers in Eagle importer
The layer names may be translated but the numbers are invariant.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19597
2025-01-12 08:53:55 -08:00
Marek Roszko 6ec00f879c Add PROJECTNAME resolution into project's resolver 2025-01-12 11:43:10 -05:00
Maciej Małecki 2c330e07be pcbnew: disable dialog thermal relief configuration when not needed 2025-01-12 16:39:30 +00:00
Marek Roszko 4c97d52f2c Fix typo in last plot fix attempt 2025-01-12 10:21:41 -05:00
Jeff Young 08677d3cb6 Attempt to fix non-clang (or maybe just MSW) builds. 2025-01-12 14:14:35 +00:00
Jeff Young 4049b622f9 Fix writing/parsing of pdf plot params.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19446
2025-01-12 13:43:33 +00:00
Jeff Young e3e7a4c97a More consistent file/class naming. 2025-01-12 12:47:00 +00:00
Jeff Young b7cdbbba9f Front Kicad manager frame after running job(s). 2025-01-12 12:47:00 +00:00
Jeff Young ab571be525 Don't depend on knowing the lifetime of a wxWindow. 2025-01-12 12:47:00 +00:00
Ethan Chien ad48ce1147 Sync Sheet Pins: Refactor SHEET_SYNCHRONIZATION_MODEL to use GetCount() for item count management
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19592
2025-01-12 17:32:03 +08:00
Marek Roszko a12496a04b Fix sch plot output directory creation 2025-01-11 23:27:30 -05:00
Seth Hillbrand 8ab5d95d1b Handle GTK themes that don't use the revealer 2025-01-11 19:56:42 -08:00
Marek Roszko db56d51838 Fix output paths for jobs again 2025-01-11 19:05:45 -05:00
Marek Roszko 4cfd6f71e5 Fix plot job paths not saving 2025-01-11 19:05:44 -05:00
Marek Roszko 47fb4686c3 Add text var expansion in output paths 2025-01-11 19:05:44 -05:00
Jon Evans 37a3c6f8cf Infobar close buttons also need to react to theme changes 2025-01-11 18:53:58 -05:00
Seth Hillbrand 1bce0b733e Make infobar sensitive to color changes 2025-01-11 15:39:06 -08:00
Jeff Young 8c363411e0 Implement fixed pin name/number sizes for Eagle.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16980
2025-01-11 22:32:46 +00:00
Marek Roszko 06a61e773f Fix bg/fg fed to GetInfoBarColours 2025-01-11 16:26:02 -05:00
Seth Hillbrand 8ccf8c1138 Speed up creepage
Make sure of sets where possible
Don't do checks in nested loops -- prune first
Thread when possible
Ensure we are updating the dialog as we go
Fix some coding convention issues

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19488
2025-01-11 13:18:29 -08:00
Seth Hillbrand ae4ef7c062 Allow display of each new phase
KeepRefreshing is gated so if we get a bunch of phases in a row, they
won't be shown until you get past a slower phase.  By yielding here, we
ensure that the dialog is updated and the user knows which phase of DRC
they are on.
2025-01-11 13:18:29 -08:00
JamesJCode 8746313ce3 Fix class-d simulation demo 2025-01-11 20:55:14 +00:00
JamesJCode 65918b8bad Fix up-down-counter simulation demo 2025-01-11 20:53:03 +00:00
lucas b06727d295 Eeschema sim dialog: Fix kicad crash when spice model corrupted 2025-01-11 18:48:00 +00:00
Jon Evans 17c746c00a Make Windows hacks dependent on using KiCad-shipped interpreter 2025-01-11 12:24:44 -05:00
Jon Evans 25e7b29ad1 Fixup 37d0d5f1 to pass env vars correctly 2025-01-11 12:24:44 -05:00
Tomasz Wlostowski b54235262a router: fix assertion in multidragger (link count out of range)
Fixes https://gitlab.com/kicad/code/kicad/issues/19587
2025-01-11 18:11:29 +01:00
Alex Shvartzkop 0748cd03be Update translations 2025-01-11 20:07:34 +03:00
Ivan Chuba a2ceaf2621 Translated using Weblate (Ukrainian)
Currently translated at 75.9% (7586 of 9986 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/uk/
2025-01-11 18:07:12 +01:00
Wellington Terumi Uemura e068ff415f Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (9986 of 9986 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/pt_BR/
2025-01-11 18:07:12 +01:00
CloverGit 8c20154227 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 99.7% (9957 of 9986 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hans/
2025-01-11 18:07:12 +01:00
2tama3 72a654a8fd Translated using Weblate (Japanese)
Currently translated at 98.3% (9826 of 9986 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ja/
2025-01-11 18:07:12 +01:00
aris-kimi fbfddc22bc Translated using Weblate (Greek)
Currently translated at 87.7% (8767 of 9986 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/el/
2025-01-11 18:07:12 +01:00
CloverGit b93137177d Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 99.6% (9953 of 9986 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hans/
2025-01-11 18:07:12 +01:00
ZbeeGin 87ca831fc1 Translated using Weblate (Polish)
Currently translated at 100.0% (9986 of 9986 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/pl/
2025-01-11 18:07:12 +01:00
2tama3 403f2726e3 Translated using Weblate (Japanese)
Currently translated at 98.3% (9826 of 9986 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ja/
2025-01-11 18:07:11 +01:00
Pferd O c0bfa7a833 Translated using Weblate (German)
Currently translated at 99.7% (9961 of 9986 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/de/
2025-01-11 18:07:11 +01:00
109247019824 8697c70f81 Translated using Weblate (Bulgarian)
Currently translated at 7.1% (711 of 9986 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/bg/
2025-01-11 18:07:11 +01:00
Jon Evans 37d0d5f118 Use PYTHON_MANAGER to launch actions and capture trace output 2025-01-11 11:47:08 -05:00
Marek Roszko 92c804b1f3 Bump wxwidgets for trace patch 2025-01-11 11:22:44 -05:00
Jeff Young edd59c6ead Allow normal close action of dialog
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19596
2025-01-11 15:17:28 +00:00
Jeff Young d83a2a90cb Ignore line comments in pin defs and param defs.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19584
2025-01-11 13:30:45 +00:00
Jon Evans 2f96dfd5cb Do not call Select on an empty combobox
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19594
2025-01-11 08:25:04 -05:00
Wayne Stambaugh 42a1d1cf0b Include folder and 3D viewer code housekeeping. 2025-01-11 07:25:14 -05:00
Jon Evans 30d43c30b7 Prefer using pythonw on Windows 2025-01-10 22:41:35 -05:00
Marek Roszko 2123c03fa1 Shift gerber job to lseq instead 2025-01-10 22:24:28 -05:00
Marek Roszko 6692f39d6f Save layer job params using canonical name arrays instead of layer id ints
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19532
2025-01-10 22:23:45 -05:00
Jon Evans 4279672876 Fix incorrect signature 2025-01-10 21:59:51 -05:00
Jon Evans d9e1d3725e Do not try to install source packages in python environments 2025-01-10 21:51:49 -05:00
Jon Evans 54e8233b36 Don't scan for API plugins if server is disabled 2025-01-10 21:46:51 -05:00
Jon Evans eb4220bd29 Use an exception formatting function that works in Python <3.10 2025-01-10 21:46:50 -05:00
Seth Hillbrand e8167f33d7 Grab GTK default colors for infobar
This implements the wxWidgets fix for KiCad.  We can't wait for distros
to update their wx libs so until then, we'll roll our own.

Nicely, this also implements the MacOS setting that was an ifdef
previously

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19506
2025-01-10 17:32:51 -08:00
Alex Shvartzkop 8d25a4c09d Update translations 2025-01-11 03:57:53 +03:00
2tama3 9de733da85 Translated using Weblate (Japanese)
Currently translated at 98.2% (9809 of 9987 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ja/
2025-01-11 01:56:53 +01:00
CloverGit 189f61a42b Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 99.3% (9925 of 9987 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hans/
2025-01-11 01:56:53 +01:00
ZbeeGin 3d425bf40e Translated using Weblate (Polish)
Currently translated at 100.0% (9987 of 9987 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/pl/
2025-01-11 01:56:53 +01:00
Pferd O 9875029557 Translated using Weblate (German)
Currently translated at 99.8% (9977 of 9987 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/de/
2025-01-11 01:56:53 +01:00
Tomasz Wlostowski 4ee52a21d0 router: take overlapping segments/arcs into account when syncing board state to router state
Fixes https://gitlab.com/kicad/code/kicad/issues/19581
2025-01-11 01:36:49 +01:00
JamesJCode 9a63662844 Multichannel: Update UI strings 2025-01-10 23:54:20 +00:00
Seth Hillbrand 7516e3a190 Update docs link
Instead of the hard-coded docs website, we use the redirect container to
keep the links valid and do forward-planning (e.g. 9.99)

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19570
2025-01-10 15:19:21 -08:00
Seth Hillbrand 8e23fcab08 Keep text angles normalized
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19591
2025-01-10 13:53:44 -08:00
Seth Hillbrand 3f2fa3178c Remove Python console button from schematic
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19590
2025-01-10 13:08:47 -08:00
Seth Hillbrand 65d8af4483 Font caches need to account for size
Fonts are rendered from FT into a scaled output before being
triangulated.  If the original scaled output is very small, the cache
ends up being a distorted scaling when expanded to larger font sizes

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18870
2025-01-10 13:03:47 -08:00
Seth Hillbrand 875580fe2c Thou shalt not modify RTree while iterating over it 2025-01-10 10:16:14 -08:00
John Beard 3b490cdd3b Eeschema: yeet wire-with-plus icon
This icon was only used for auto-starting a wire, which was
inconsistent with auto-starting a bus or graphic line.

Also the plus sign is a little confusing as it could also be
interpreted as the origin marker (which is really bottom left),
which is also plus-shaped.
2025-01-11 00:34:48 +08:00
jean-pierre charras c77c921297 Eeschema, BOM exporter dialog: Fix empty fields other than references
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19557
2025-01-10 17:31:21 +01:00
jean-pierre charras 52759d7bfb French translation update 2025-01-10 17:31:20 +01:00
Alex Shvartzkop 129e37f63d Drag footprints only in non-hover selections. 2025-01-10 21:14:13 +05:00
Jeff Young 234e4a2ae3 Rehash sheetpaths when changing sheet uuids.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19583
2025-01-10 16:01:12 +00:00
Jeff Young 40871a6a08 Naming clarity. 2025-01-10 15:12:03 +00:00
Jeff Young 2922d508de Don't ever draw hierarchical label shape in bus colour.
(We do still draw the text in bus colour if it's
connected to a bus.  This makes it consistent
with what we do for global labels.)

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19564
2025-01-10 15:12:03 +00:00
Tomasz Wlostowski bf64e74188 router: fix regression in simplifyNewLine() causing unnecessary segments to be added to board (forming loops)
(note to self: OPTIMIZER now unlinks the in-place-optimized LINEs)
2025-01-10 16:01:19 +01:00
John Beard 3b035c279d Eeschema: fix missing global label dangling indicators 2025-01-10 22:59:06 +08:00
John Beard f4e5f60a63 Eeschema: Allow global lablels to start buses
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/19563
2025-01-10 22:59:06 +08:00
Jon Evans c6d8f4a62e Fix wiping out non-controlled GAL layer visibility
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19544
2025-01-10 08:37:11 -05:00
Jon Evans ab5bdd2882 Fix project settings not actually saving after migration 2025-01-10 08:26:32 -05:00
jean-pierre charras 80303b4caa Kicad manager: make zip archive working on Windows.
curr_fn.MakeRelativeTo(curr_prjdir) works only if curr_fn and curr_prjdir
use the same long path adjustement (no long path of both use long path)

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19577
2025-01-10 13:28:16 +01:00
JamesJCode ccca044a58 Multichannel: Reserve hidden strings, re-order placement options 2025-01-10 11:26:43 +00:00
JamesJCode 5cad4ad8d0 Multichannel: Don't include footprints outside of reference area 2025-01-10 11:23:56 +00:00
Marek Roszko 16d10dc76e Squash the pdf handling for the old path into the new like dxf/svg 2025-01-09 23:43:40 -05:00
Marek Roszko afe7c893d5 Squash dxf job path for single/multi like svg 2025-01-09 23:43:40 -05:00
Jon Evans 0ba869465c API: switch to Distance type for thermal settings 2025-01-09 21:25:15 -05:00
Marek Roszko ecfc868832 Combine/move svg plot job to single path 2025-01-09 21:21:09 -05:00
Jon Evans 4dfcbc6d2a API: make thermal spoke settings optional 2025-01-09 20:55:50 -05:00
JamesJCode 0f6669a68c Improve multichannel UI strings 2025-01-10 00:49:00 +00:00
JamesJCode 35172fe402 Guard against null m_part in erc TextVar checks
Also removes duplication of LIB_SYMBOL dummy() construction methods

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19575
2025-01-10 00:13:53 +00:00
Seth Hillbrand 229507ee43 Cleanup a couple routines in the last MR
Simplify and clean the functions
2025-01-09 15:42:58 -08:00
Dhinesh e02b6be4c9 Fix error-marker highlighting for multiple markers at the same location
Previously, if multiple error markers were placed at the same location,
the selected marker was not visually differentiated from the unselected
ones, even if one was at the top of the stack. To fix this, Need to pass
overlapping markers to the FocusOnItems() function instead of calling
FocusOnItem() with only the selected marker.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/9778
2025-01-09 23:41:02 +00:00
Sam Schweigel 373d9c9281 Disable touch events on OSX only, allowing them on GTK and Windows
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14374
2025-01-09 23:00:53 +00:00
Jon Evans c13af4ed36 Remove warning severity override
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19573
2025-01-09 17:34:57 -05:00
Seth Hillbrand 79419ef2f0 Update QA check for 8883
This actually has a redundant track that was not caught before
2025-01-09 14:28:34 -08:00
Seth Hillbrand 8f9b7ca757 Hide the AUI notebook tabs if we only have 1 2025-01-09 13:39:41 -08:00
Seth Hillbrand 00de67eea8 Properly handle cleanup for multiple collinear tracks
When we have multiple tracks that share a single anchor, they are
technically a node but should still be cleaned as they are collinear.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19574
2025-01-09 12:10:23 -08:00
Jeff Young dd7c076bc9 Use std::optional for pad connection overrides.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19555
2025-01-09 17:32:05 +00:00
Marek Roszko 1ebcd24944 Forward declarations are your friends
Why leak gl headers into most of kicad
2025-01-09 09:03:08 -08:00
Seth Hillbrand 09e30adbb1 Move GL_CONTEXT_MGR into PGM_BASE singleton
This is the second try at 5326c36a5f.  The difference here is that we
have moved GL_CONTEXT_MGR into kicommon first which will hopefully
address some of the Windows linkage issues

The GL context lock needs to be shared across kifaces.  Otherwise, we
can end up blocking the lock from one kiface.  Unfortunately, I can't
find the issue in GitLab right now for where the footprint viewer shows
a blank screen after opening too many contexts.  But that's what this
fixes.
2025-01-09 09:03:08 -08:00
Seth Hillbrand d48c40ba26 Move GL_CONTEXT_MANAGER to kicommon 2025-01-09 09:03:08 -08:00
Seth Hillbrand 452e69de85 Move thread pool into true singleton
Thread pool needs to be stored in a single location for all of KiCad
otherwise each kiface will spin up its own pool of persistent threads
2025-01-09 09:03:08 -08:00
jean-pierre charras 6c0e5508a9 Pcbnew: ensure footprint courtyard caches are rebuilt after rotation or flip
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19561
2025-01-09 17:59:05 +01:00
Alex Shvartzkop 7677c71fdb Initialize some members in PCB_EDIT_FRAME. 2025-01-09 19:16:38 +05:00
Jon Evans 6858561731 Fixes for building against recent wxWidgets 3.3 2025-01-09 08:38:49 -05:00
Wayne Stambaugh af540bbb9a Header folder housekeeping. 2025-01-09 07:44:11 -05:00
Jeff Young 1b5bdbbbf0 Improve rotated text in Eagle import.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18490
2025-01-09 11:43:19 +00:00
Jeff Young fba91a2f6b De-clutter export pos file dialog. 2025-01-09 11:42:58 +00:00
Jeff Young 03c54018e6 De-clutter export pos file dialog. 2025-01-09 11:42:58 +00:00
Jeff Young b0a8cb2678 De-clutter export ODBC dialog. 2025-01-09 11:42:58 +00:00
jean-pierre charras 89e80586cd Gerber export to pcb: handle rect aperture to draw lines on non copper layers
On copper layers, all lines are exported as tracks, so they always use a round
aperture.
Note also rect aperture to draw lines and arcs are deprecated since 2020

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19553
2025-01-09 11:02:15 +01:00
Seth Hillbrand 4a22570e87 Clean layer parsing
NameToLayer will automatically return -1 on unrecognized layer names.
We don't need to gate this on a version
2025-01-08 16:00:46 -08:00
Seth Hillbrand 066380ffeb Clean up a few gerbview export to pcbnew layers
There's a lot of hard coded stuff in gerbview.  This removes a few
duplicated functions and gets the layer export back into working shape

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19552
2025-01-08 16:00:44 -08:00
jean-pierre charras 162d87f271 Gerber export to pcb fixes: update to use recent changes in Pcbnew V9
Use new layers id, arcs in tracks, and some recent changes in Sexpr
2025-01-08 20:32:53 +01:00
Wayne Stambaugh f74d97d2e1 Revert "Header folder housekeeping."
This reverts commit d1898aab47.
2025-01-08 12:27:15 -05:00
Seth Hillbrand 954e194f77 Add default paste special hotkey
Most applications will define paste special as Ctrl-Shift-V
2025-01-08 09:23:34 -08:00
Jon Evans 846f6127fd More fixes to autosaving migrated projects
- Disable jobsets memory when opening migrated project
- Add WasMigrated to project file

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19540
2025-01-08 12:09:47 -05:00
Wayne Stambaugh d1898aab47 Header folder housekeeping. 2025-01-08 11:38:44 -05:00
Jeff Young 0d1fcd2c54 Cleanup. 2025-01-08 15:50:08 +00:00
Jeff Young a797f4ce95 Remove fairy dust from copyfiles. 2025-01-08 15:39:47 +00:00
Jeff Young 5524ff3770 Formatting. 2025-01-08 15:39:47 +00:00
John Beard c19a1718de PNS log viewer: fix loading via relative paths
This means you can run like this:

  ./qa/tools/pns/pns_debug_tool replay ../qa/data/pcbnew/pns_regressions/simple_shove1/pns.log
2025-01-08 22:14:36 +08:00
John Beard ce140faf2d CI: let KICAD_RUN_FROM_BUILD_DIR work from archived CI build environments 2025-01-08 21:58:55 +08:00
Jon Evans 7ce0f55305 Don't auto-save local settings when migrating
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19540
2025-01-08 08:43:28 -05:00
John Beard 302ceeb14e Clang format: remove BreakConstructorInitializersBeforeComma
This was gone by Clang 5, which was released in 2017,
and we already set BreakConstructorInitializers.
2025-01-08 20:23:31 +08:00
John Beard d0d4c4065b Make run from build dir work for debug executables
When using KICAD_RUN_FROM_BUILD_DIR, at least on Linux, not all
executables can assume executable/.. is the build directory - instead
iterate upwards until a CMakeCache.txt file in encountered.

Without this, for example, the PNS log viewer complains about missing
JSON schema files.
2025-01-08 20:23:31 +08:00
John Beard 51606e80d5 Scripting: a little bit more detail when failing to get wxPython version info
Print:

* the returned wx version string
* the Python sys version string, which can be a good pointer if the
  wrong interpreter has been picked up by the PyBind11 Cmake
* Exception output if any
2025-01-08 20:23:31 +08:00
Alex Shvartzkop 4ab9badcf2 Update translations 2025-01-08 14:32:32 +03:00
Wellington Terumi Uemura 4092865146 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (9997 of 9997 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/pt_BR/
2025-01-08 12:30:29 +01:00
co8 j d8aef48dd6 Translated using Weblate (Japanese)
Currently translated at 98.5% (9852 of 9997 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ja/
2025-01-08 12:30:29 +01:00
CloverGit 40fe300144 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 99.5% (9951 of 9997 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hans/
2025-01-08 12:30:29 +01:00
CloverGit af0b257682 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 99.5% (9951 of 9997 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hans/
2025-01-08 12:30:29 +01:00
CloverGit 704c7b2f67 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 99.5% (9950 of 9997 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hans/
2025-01-08 12:30:29 +01:00
CloverGit e3ef1d4292 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 99.5% (9950 of 9997 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hans/
2025-01-08 12:30:28 +01:00
CloverGit 3e23f4ede7 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 99.5% (9950 of 9997 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hans/
2025-01-08 12:30:28 +01:00
CloverGit b87fcd7ed9 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 99.5% (9950 of 9997 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hans/
2025-01-08 12:30:28 +01:00
CloverGit 55467d6af9 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 99.5% (9950 of 9997 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hans/
2025-01-08 12:30:28 +01:00
CloverGit 73d9804f4c Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 99.5% (9948 of 9997 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hans/
2025-01-08 12:30:28 +01:00
Pferd O 296654e258 Translated using Weblate (German)
Currently translated at 100.0% (9997 of 9997 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/de/
2025-01-08 12:30:28 +01:00
CloverGit 2cb0e35105 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 98.3% (9832 of 9997 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hans/
2025-01-08 12:30:28 +01:00
Rigo Ligo 5e7947b0ce Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 98.3% (9832 of 9997 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hans/
2025-01-08 12:30:28 +01:00
2tama3 a16333960c Translated using Weblate (Japanese)
Currently translated at 98.4% (9841 of 9997 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ja/
2025-01-08 12:30:28 +01:00
Pferd O e187b783a8 Translated using Weblate (German)
Currently translated at 99.9% (9994 of 9997 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/de/
2025-01-08 12:30:28 +01:00
தமிழ்நேரம் 49b117b1a5 Translated using Weblate (Tamil)
Currently translated at 98.9% (9889 of 9997 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ta/
2025-01-08 12:30:28 +01:00
ZbeeGin cb5436fb71 Translated using Weblate (Polish)
Currently translated at 98.9% (9893 of 9997 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/pl/
2025-01-08 12:30:28 +01:00
Alex Shvartzkop d3f53db3eb EAGLE import: allow more lines before <eagle> tag.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19528

(cherry picked from commit 603a500bc0)
2025-01-08 16:24:54 +05:00
Alex Shvartzkop 883b615fef Cancel "Fetching repository" job properly when PCM is opened. 2025-01-08 15:29:27 +05:00
Jon Evans 8df29a78e1 Use named render layers in local settings 2025-01-08 00:15:56 -05:00
Jon Evans 96f87b5b83 Move layer presets to use named render layers
Add a migration to account for KiCad 8 render
layer id numbers

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18718
2025-01-08 00:15:56 -05:00
Marek Roszko fdfeda7b72 Ensure mkdir with bom export job
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19520
2025-01-08 00:07:26 -05:00
Jon Evans 018af2b6cd Pad properties: Update props book after changing edit layer
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19529
2025-01-07 21:45:58 -05:00
Marek Roszko c931f2e16a Fix output paths for sch plots again
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19522
2025-01-07 20:29:37 -05:00
Jon Evans 31cce8930a Fix conflict with Windows API 2025-01-07 19:22:10 -05:00
Seth Hillbrand 5e4c5c969a Freeze ERC action before deleting
Each deletion of a marker adjusts the tree model and comes with a
possibility of a repaint, which can trigger a full screen repaint.
Keeping the dialog frozen prevents these updates

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19531
2025-01-07 15:54:21 -08:00
Jeff Young ed12e1ee79 Set grid cursor as well as selection row.
I haven't a clue why this is required.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19509
2025-01-07 23:33:43 +00:00
Jon Evans bd47692bf2 API: Include custom layer names in stackup 2025-01-07 18:28:07 -05:00
Seth Hillbrand 19e5ca3430 Flip schematic paste/paste special behavior
Be default, we want to keep the existing data for a symbol that is cut
when pasting it back into the sheet.  This should keep both the KIID and
the reference designator as this will ensure that the symbol remains
connected to the footprint in the layout

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19301
2025-01-07 14:54:47 -08:00
Jeff Young f665760a8e Don't skip every other jobset when closing. 2025-01-07 18:04:21 +00:00
Jeff Young 83b26cfbd0 Modernize IPC2581 dialog. 2025-01-07 18:04:21 +00:00
Jeff Young 102997d6d8 Slightly less busy layout for embedded files. 2025-01-07 18:04:21 +00:00
Mark Roszko 3fecde47e9 switch back to debug buulds for windows ci 2025-01-07 17:56:24 +00:00
Daniel Treffenstädt 0dd80c2975 Fix thermal spoke template edge case behaviour
For certain custom pads, need need to adjust the overlap between spoke and pad to ensure a connection
2025-01-07 17:51:15 +00:00
Jeff Young 37a948fa69 Make sure we open all outlines before running distance test.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19521
2025-01-07 17:25:39 +00:00
Jeff Young b916dfa03a Cleanup construction vs TransferDataToWindow.
Also fixes capitalization of private member functions.
2025-01-07 17:09:17 +00:00
Seth Hillbrand 6c7c531a5f Add generic op amp sim demo 2025-01-07 08:51:08 -08:00
jean-pierre charras 7a29ed6815 Fix demo simulation/subsheets (add a .kicad_pro file, and fix ERC) 2025-01-07 17:44:13 +01:00
jean-pierre charras 337217ccb2 Demo update 2025-01-07 16:15:00 +01:00
Jeff Young c2818dcb29 Disable pad-hole-not-fully-inside-copper for board-level testing.
Also fixes the error string for it.
2025-01-07 14:50:16 +00:00
Jeff Young a41a9ea51f Simplify testing of multiple pads with same number.
We now test each hole against the combined copper of all pads
with the same number minus the other holes.

Also fixes a bug with "handled" flag not getting reset between
layers of padstacks.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19521
2025-01-07 14:50:16 +00:00
Alex Shvartzkop db601c58cc Don't lose reference designators when importing EasyEDA Pro/Std, LTspice, CADSTAR schematics.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19490

(cherry picked from commit 644c4f8c0a)
2025-01-07 19:15:51 +05:00
John Beard 4765d17d0c Show UUIDs in msg panel with an advanced config
This is useful when confirming matches for items in the
debugger or from a file without having to carefully check
individual parameters.
2025-01-07 20:01:44 +08:00
Jeff Young e94449df81 Modernize board setup formatting panel. 2025-01-07 11:54:48 +00:00
Jeff Young a4754eef5d Modernize drill map dialog. 2025-01-07 11:11:37 +00:00
Alex Shvartzkop 8a059c05cb Slightly reduce row height in LIB_TREE on GTK. 2025-01-07 13:53:28 +03:00
Alex Shvartzkop d989a3ec69 Focus on OK button in update check prompt. 2025-01-07 14:17:33 +05:00
John Beard d072b37dd9 Pcbnew: only get shape lengths for shapes that support it
Avoids asserts when selecting graphical rectangles, circles and
polygons.
2025-01-07 15:45:13 +08:00
Mark Roszko 4ecbbd48da Test out tweaked set of build params for windows CI 2025-01-07 03:44:37 +00:00
Marek Roszko ffdfa09024 Stop setting the default step export path
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19512
2025-01-06 22:41:06 -05:00
JamesJCode 7e1d10a019 Remove ill-formed ki_any test 2025-01-07 00:37:06 +00:00
Jon Evans 08f866fae1 Hide console on Windows when launching actions 2025-01-06 18:13:05 -05:00
JamesJCode 77448f032b Improve placement rule areas UI 2025-01-06 22:24:38 +00:00
Jeff Young 17157b82b0 Blacklist for project file copying.
Also fix it to use the output path, if specified.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19479
2025-01-06 21:28:55 +00:00
Jeff Young d4865899c5 Handle wildcards AND case-insensitivity in pin_type comparisons.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19513
2025-01-06 20:04:28 +00:00
Jeff Young 2f5cbfe57d Formatting. 2025-01-06 19:50:38 +00:00
Jeff Young 2118850bca Add handler for grid cell change.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19509
2025-01-06 19:11:17 +00:00
Wayne Stambaugh 3755b77b92 Dialog string capitalization and layout fixes. 2025-01-06 14:01:00 -05:00
John Beard 29f3637d4d FP editor: add datasheet toolbar icon
As this action is available in the FP editor, make it
discoverable in the same was as in the symbol editor.
2025-01-07 02:42:34 +08:00
Ian McInerney 1dfb7ecbd2 Unify terminology for items to be anchor instead of origin
The "anchor" is the point on items that are their local (0,0), and
origin is on the coordinate system.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19290
2025-01-06 16:59:57 +00:00
Jeff Young 56aacbd661 Go back to row selection mode for jobs list.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19502
2025-01-06 15:36:57 +00:00
Alex Shvartzkop 7afa6a086e Show "Selected 2D Length" for tracks and shapes in message panel.
Useful to verify length-matching.

Also show Length for arc shapes.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19339
2025-01-06 18:45:28 +05:00
Jon Evans baef502f94 Archive schemas from build in CI 2025-01-06 08:19:02 -05:00
Ian McInerney 8a706f204d Make GAL_DISPLAY_OPTIONS have virtual destructor
This is needed to allow proper deletion of derivative objects using this
as a base class.
2025-01-06 12:08:34 +00:00
Jeff Young 8481eb8cf5 Export comma-delimited values instead of "-- mixed values --".
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17912
2025-01-06 11:56:51 +00:00
Jeff Young c2a3bfa477 Formatting. 2025-01-06 11:56:51 +00:00
Ian McInerney ac7ebdd94d Add std::optional<int> support to property validators
The properties using units seem to return std::optional<int> values,
so the validators need to properly handle these to unwrap them.
2025-01-06 11:46:01 +00:00
Ian McInerney 660f5bad21 Attach zone min width validator to correct property 2025-01-06 11:46:01 +00:00
jean-pierre charras 8097b69b1f Kicad manager, jobset: Ensure save changes when closing kicad are made.
After made changes on a jobset, when closing Kicad, the dialog asking for
save changes was not honored when the save changes was accepted after a
yes answer.
Fix also a minor compil warning.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19450
2025-01-06 12:41:46 +01:00
Mark Roszko b92bef8eee Remove quotes in cache key on windows 2025-01-06 04:43:54 +00:00
Ian McInerney fe1c1862d1 Move project archiver to be fully a directory traverser 2025-01-06 02:06:06 +00:00
Jon Evans 4bf852e6b9 Be slightly more restrictive in actions schema 2025-01-05 20:53:00 -05:00
Jon Evans d64226f144 Add some more descriptions to plugin schema 2025-01-05 20:47:40 -05:00
Marek Roszko 5029c2e0e8 Add lost cvpcb addition 2025-01-05 20:43:31 -05:00
Marek Roszko ec261b8472 Add cvpcb path/artifact to qa on linux 2025-01-05 20:34:28 -05:00
Marek Roszko fb81883582 Move windows ci to ltsc2022 2025-01-05 18:23:59 -05:00
Jan Wichmann 473b43994c Fixed severity ERC local and global labels
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18814
2025-01-05 22:10:47 +00:00
Jon Evans 3f7e459d62 API: add a schema for plugin config files
Also flip the dependence between json_schema_validator and kicommon,
and create a shared JSON_SCHEMA_VALIDATOR so that we don't have to
copy/paste the schema loading code as much
2025-01-05 17:08:33 -05:00
Ian McInerney 6be3401b92 Add more global extensions and switch archiver to use them 2025-01-05 21:59:53 +00:00
Ian McInerney 5268217e72 Change project archiver to use case-insensitive file selection
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18815
2025-01-05 21:59:53 +00:00
Wayne Stambaugh 2cac5d29a1 Setup and settings panels layout improvements. 2025-01-05 16:42:53 -05:00
Jeff Young 1cdb54f45e Allow editing of Private flag through Symbol Properties. 2025-01-05 21:23:25 +00:00
Jeff Young 5c80f6c7d8 Honour private flag in Symbol Fields Table. 2025-01-05 20:48:49 +00:00
Jeff Young c7af744bc2 Formatting. 2025-01-05 20:48:49 +00:00
Jeff Young 189e0688be Don't allow a "private" marking on a mandatory field. 2025-01-05 20:48:49 +00:00
Jeff Young 089bf75492 Exclude private fields from Update/Change Symbols dialog.
We currently always update them to keep them from getting out
of sync.  I have no idea if that's the right answer or not.
2025-01-05 20:48:49 +00:00
Jeff Young 3da2c8f9ef Don't open-code copying of SCH_FIELDs.
(It won't get updated when new stuff is added.)
2025-01-05 20:48:48 +00:00
Jeff Young 612b0a09dc Hide private fields from Symbol Properties dialog in schematic editor. 2025-01-05 20:48:48 +00:00
Jeff Young 35b2f36759 Cleanup. 2025-01-05 20:48:48 +00:00
Seth Hillbrand be492af55f Update metadata for v9 2025-01-05 11:33:16 -08:00
Alex Shvartzkop da01fa188f Update translations 2025-01-05 22:18:16 +03:00
Toni Laiho c8fa8c31cb Translated using Weblate (Finnish)
Currently translated at 99.1% (9912 of 9997 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/fi/
2025-01-05 20:11:07 +01:00
dsa-t 612ec4aff9 Translated using Weblate (Russian)
Currently translated at 99.9% (9990 of 9997 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ru/
2025-01-05 20:11:07 +01:00
Toni Laiho 71cf4e6036 Translated using Weblate (Finnish)
Currently translated at 98.8% (9885 of 9997 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/fi/
2025-01-05 20:11:07 +01:00
Pferd O 0c6e076043 Translated using Weblate (German)
Currently translated at 99.2% (9927 of 9997 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/de/
2025-01-05 20:11:07 +01:00
Jan Straka fe9aaecc1d Translated using Weblate (Czech)
Currently translated at 76.7% (7670 of 9997 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/cs/
2025-01-05 20:11:07 +01:00
Alex Shvartzkop d625ce2e63 Specctra SES: support unquoted path with spaces in <session_id> 2025-01-05 23:40:31 +05:00
Marek Roszko 39ab530db3 Fix single pdf plot
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19501
2025-01-05 13:21:19 -05:00
Marek Roszko 82c7736087 Don't save mru for step export https://gitlab.com/kicad/code/kicad/-/issues/19499 2025-01-05 13:14:56 -05:00
jean-pierre charras 45c7dfa857 Pcbnew, zone manager dialog: fix Update Displayed Zones button not working
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19494
2025-01-05 17:36:16 +01:00
jean-pierre charras d0033f91ce French translation update. 2025-01-05 17:36:16 +01:00
Marek Roszko 9e2122d1f2 qa_api bypasses the normal pgm setup, test for gui using wxtheapp 2025-01-05 11:21:27 -05:00
Maciej Małecki b03eff1ec7 cli: add --drill-shape-opt to pcb export dxf
ADDED: add support for specifying drill shape ("drill marks" in the UI)
on the CLI when exporting DXF files of PCBs.

This standarizes on "actual size" for the drill marks, as do PDF and SVG
exporters, while the current, undefined and undocumented default,
appears to be "small marks".

Oddly enough, this option appears to only have effect in `--mode-new`.
I would appreciate guidance on what to do about this fact.
2025-01-05 16:01:35 +00:00
Marek Roszko d03a59de4c Use newer ngspice port to fix arm64 build 2025-01-05 09:53:40 -05:00
Jon Evans 84e90525ed Code style 2025-01-05 08:54:57 -05:00
L0laapk3 2764e23d3e Add specctra import qarc support 2025-01-05 13:46:16 +00:00
Alex Shvartzkop ac0ce1db36 Update translations 2025-01-05 12:46:40 +03:00
தமிழ்நேரம் 8e6722277d Translated using Weblate (Tamil)
Currently translated at 3.4% (342 of 9955 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ta/
2025-01-05 10:38:23 +01:00
Gergo Kamaras 6911171d37 Translated using Weblate (Hungarian)
Currently translated at 3.4% (348 of 9955 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/hu/
2025-01-05 10:38:23 +01:00
Wellington Terumi Uemura 90373fc91d Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (9955 of 9955 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/pt_BR/
2025-01-05 10:38:23 +01:00
CloverGit 28c0fdbf20 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 99.2% (9885 of 9955 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hans/
2025-01-05 10:38:23 +01:00
김랑기 d5f89640a4 Translated using Weblate (Korean)
Currently translated at 96.2% (9579 of 9955 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ko/
2025-01-05 10:38:23 +01:00
Pferd O e10fd589e3 Translated using Weblate (German)
Currently translated at 100.0% (9955 of 9955 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/de/
2025-01-05 10:38:23 +01:00
ZbeeGin 0cd44564f5 Translated using Weblate (Polish)
Currently translated at 100.0% (9955 of 9955 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/pl/
2025-01-05 10:38:23 +01:00
2tama3 c101c358a2 Translated using Weblate (Japanese)
Currently translated at 98.8% (9840 of 9955 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ja/
2025-01-05 10:38:22 +01:00
Pferd O 07c213498e Translated using Weblate (German)
Currently translated at 99.9% (9946 of 9955 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/de/
2025-01-05 10:38:22 +01:00
Ettore Atalan 72551d3564 Translated using Weblate (German)
Currently translated at 99.9% (9946 of 9955 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/de/
2025-01-05 10:38:22 +01:00
Henrik Kauhanen e848b4f4eb Translated using Weblate (Swedish)
Currently translated at 99.3% (9890 of 9955 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/sv/
2025-01-05 10:38:22 +01:00
Pferd O 84e9458f15 Translated using Weblate (German)
Currently translated at 99.5% (9915 of 9955 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/de/
2025-01-05 10:38:22 +01:00
Henrik Kauhanen 085c21ccc9 Translated using Weblate (Swedish)
Currently translated at 98.9% (9847 of 9955 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/sv/
2025-01-05 10:38:22 +01:00
Pferd O 8a974022a6 Translated using Weblate (German)
Currently translated at 99.3% (9895 of 9955 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/de/
2025-01-05 10:38:22 +01:00
109247019824 d87ba203e0 Translated using Weblate (Bulgarian)
Currently translated at 7.1% (711 of 9955 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/bg/
2025-01-05 10:38:22 +01:00
HalfSweet 39f14dc83c Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 98.9% (9852 of 9955 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hans/
2025-01-05 10:38:22 +01:00
dsa-t fd0ad5549d Translated using Weblate (Russian)
Currently translated at 100.0% (9955 of 9955 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ru/
2025-01-05 10:38:22 +01:00
ZbeeGin 770b26067d Translated using Weblate (Polish)
Currently translated at 99.7% (9934 of 9955 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/pl/
2025-01-05 10:38:22 +01:00
Pferd O 360f830451 Translated using Weblate (German)
Currently translated at 99.3% (9889 of 9955 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/de/
2025-01-05 10:38:22 +01:00
Alex Shvartzkop 9a3d7594d9 Add pivot/pan/rotation/lights controls to PCB render dialog. 2025-01-05 11:42:58 +05:00
Ian McInerney 3add0afdff Restore current index counter in plot dialog
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19454
2025-01-05 04:38:05 +00:00
Marek Roszko ae0dc97929 Add qa for cli sch erc 2025-01-04 22:32:53 -05:00
Marek Roszko 02b3d03c23 Fix ctest for windows with env shim that is disabled for non windows, for now.
Also stuff a dummy fontconfig file to silence the dumb error on stdout, which interferes with testing
2025-01-04 22:08:58 -05:00
Marek Roszko cb948302e2 Guard the cwd change for gui only 2025-01-04 19:25:05 -05:00
Marek Roszko 4dfedf4fb4 Set the cwd to the active project path 2025-01-04 19:22:29 -05:00
Marek Roszko adf7c7a456 Show the pcb/sch windows because macOS can't handle keeping them invisible
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19462
2025-01-04 18:18:01 -05:00
Jeff Young 32b7fe7ae9 Pencil -> gear. 2025-01-04 22:56:43 +00:00
Jon Evans 2e6080298e Include footprint fields in undefined layers rescue
See https://gitlab.com/kicad/code/kicad/-/issues/19489
2025-01-04 17:28:51 -05:00
Ian McInerney 43a7868994 Fix reading old plot layer settings into new layer IDs
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19475
2025-01-04 21:38:37 +00:00
Ian McInerney 42a7aa452e Give virtual destructor to the base SEARCH_HANDLER class 2025-01-04 21:37:26 +00:00
Jon Evans 7db75e4f50 API: expand board stackup serialization 2025-01-04 15:15:51 -05:00
Marek Roszko ee7323dc42 Update vcpkg for ngspice 44 2025-01-04 14:45:17 -05:00
Tomasz Wlostowski 8275292032 router: minor cleanup and commenting 2025-01-04 20:06:54 +01:00
Tomasz Wlostowski be48ea216b router: hopefully a fix for the disappearing head segments issue
fixes: https://gitlab.com/kicad/code/kicad/-/issues/19047

(note: it would trigger only in shove mode when the head overlaps exactly an existing trace - removeHeads() would consider the segments already present in the PCB
as belonging to the current head, erasing them for good from subsequent shove iterations)
2025-01-04 20:06:53 +01:00
Tomasz Wlostowski 95df6d8ef2 router: multiple fixes in shove algorithm:
- allow small modifications for LINE's ends as a fallback scenario in case of shove failure
- make sure unwindLineStack() won't remove tadpole vias with pending collisions on layer other than the current head line

fixes: https://gitlab.com/kicad/code/kicad/-/issues/19082
fixes: https://gitlab.com/kicad/code/kicad/-/issues/19045

(note to self: it often happens on boards imported from foreign tools of when the clearance has been subtly changed, the router would fail
if the start/end of a LINE is inside a hull of another LINE).
2025-01-04 20:03:24 +01:00
Tomasz Wlostowski b75245749f router: fix regression in handling NPTH holes
(note to self - was causing intermittent/occasional ignoring of NPTHs depending on the layer of the head track)
2025-01-04 19:57:33 +01:00
Tomasz Wlostowski 3ab59dfa67 router: fix regression in optimization of head lines 2025-01-04 19:57:12 +01:00
Tomasz Wlostowski 58f5e61186 router: pass current routing mode to rhWalkBase() so that it knows what kinds of board primitives to walk around 2025-01-04 19:57:12 +01:00
Jon Evans 722ffa1c66 Update magic_enum to v0.9.7 2025-01-04 13:40:11 -05:00
Jon Evans 5ef9537364 Update {fmt} to 11.1.1 2025-01-04 13:40:11 -05:00
Wayne Stambaugh 34fcda224c Minor dialog layout improvements. 2025-01-04 12:34:32 -05:00
JamesJCode ad07923af1 Supress some false asserts in debug builds 2025-01-04 17:22:26 +00:00
Marek Roszko 9a08519a38 Load color theme correctly for job pdf export
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19455
2025-01-04 12:02:49 -05:00
Andrea Greco ee255fb389 ADDED: Default font option to cli schematic plot exports 2025-01-04 16:51:09 +00:00
Ethan Chien fd34750c4b Zone Manager: Add freeze/thaw around zone selection change to improve UI responsiveness 2025-01-05 00:48:44 +08:00
jean-pierre charras 7f114d737e Fix missing switch to "C" locale before plotting board files. 2025-01-04 17:28:49 +01:00
Jeff Young fcf546516a Copyfiles job needs a cwd (at least on OSX).
Also, don't infinitely recurse when given "*".
2025-01-04 15:41:05 +00:00
Jeff Young ad513345fe Ugh. Once more into the breach to try and get our terminology consistent. 2025-01-04 15:41:05 +00:00
Jon Evans 1fa432b029 API: add GetKiCadBinaryPath 2025-01-04 10:14:17 -05:00
Marek Roszko 154634b1f6 Remove dynamic portions of execute/copyfiles description 2025-01-04 10:06:26 -05:00
Jon Evans a557c23576 API: Add board file management
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16774
2025-01-04 09:47:36 -05:00
Wayne Stambaugh 89db935910 Housekeeping in include path sub-folders. 2025-01-04 09:21:11 -05:00
Alex Shvartzkop feb56ff6b5 Center cell text vertically in jobs panel grid. 2025-01-04 16:55:17 +03:00
Jon Evans 3bebf24015 Add another SWIG wrapper for BOX2I
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19485
2025-01-04 08:42:01 -05:00
Jeff Young 59b99c4b27 Adjust borders (again). 2025-01-04 13:41:31 +00:00
Jeff Young 043fb29589 Don't open a non-existant jobset. 2025-01-04 13:39:36 +00:00
Jeff Young 32a575d3ad Fix vertical alignment of jobset output buttons on GTK. 2025-01-04 13:35:19 +00:00
Jeff Young befacdd113 Fix Generate button alignment and gap between outputs.
Also applies Mark's MSW hack for borders to Simulation Tuners.
2025-01-04 13:29:50 +00:00
Jeff Young 5564f4d316 Fix Generate button alignment and gap between outputs. 2025-01-04 13:29:50 +00:00
Ethan Chien 7c86768f16 Zone Manager: Refactor zone selection logic to streamline activation process 2025-01-04 21:12:42 +08:00
Marek Roszko 1efc4544c9 Show output path in special execute after reopening
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19468
2025-01-04 08:10:20 -05:00
Marek Roszko afd2406adc Fix erc/drc output paths in cli
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19474
2025-01-04 08:10:20 -05:00
Marek Roszko 2ee3ee341a Fix sch plot output path handling
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19483
2025-01-04 08:10:20 -05:00
Jeff Young d31103846f Naming conventions and split some dlgs out of panel_jobs_base.fbp. 2025-01-04 13:07:04 +00:00
Jeff Young 115800b158 Make <return> work in a couple of jobset dialogs. 2025-01-04 13:07:04 +00:00
Ethan Chien ddb91eb387 Zone Manager: Update layer handling to use UIOrder instead of Seq
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19482
2025-01-04 20:53:51 +08:00
Jon Evans 4177cfb93a Remove leftover AC key 2025-01-04 07:28:10 -05:00
Jarrett Rainier d01c939e49 Moved scrollwheel anchor pads to centre-band 2025-01-04 09:44:43 +00:00
Alex Shvartzkop 9cac8725fa Fix build error. 2025-01-04 11:30:33 +05:00
Alex Shvartzkop 1be6ecd972 Fix --background option in kicad-cli pcb render. 2025-01-04 11:21:45 +05:00
Seth Hillbrand 074e6df3bc Revert "Move thread pool to singleton class"
This reverts commit 361f61a023.
2025-01-03 21:22:44 -08:00
Seth Hillbrand d4d0189157 Revert "Add Advanced Config parameter for thread count"
This reverts commit 2e0f688b97.
2025-01-03 21:22:43 -08:00
Seth Hillbrand f38e661a02 Revert "Move GL Context into Singleton class"
This reverts commit 5326c36a5f.
2025-01-03 21:22:37 -08:00
Jon Evans 1d1b4bf60f Use fill, not stroke, for holewall painting
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19473
2025-01-03 20:35:30 -05:00
Seth Hillbrand 5326c36a5f Move GL Context into Singleton class
The GL context lock needs to be shared across kifaces.  Otherwise, we
can end up blocking the lock from one kiface.  Unfortunately, I can't
find the issue in GitLab right now for where the footprint viewer shows
a blank screen after opening too many contexts.  But that's what this
fixes.
2025-01-03 17:26:23 -08:00
Marek Roszko 02d1c12a4b #if platform the border style on panel_job_output 2025-01-03 19:52:55 -05:00
JamesJCode 4b9bdc58c5 Reserve "Tune Skew" before string freeze 2025-01-03 22:42:45 +00:00
Jon Evans 1a1120435f Rework how Python processes are launched
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19465
2025-01-03 17:21:03 -05:00
Seth Hillbrand 2e0f688b97 Add Advanced Config parameter for thread count
Allows us to limit the threading state manually without recompiling
2025-01-03 14:00:07 -08:00
Seth Hillbrand 361f61a023 Move thread pool to singleton class
Having thread pool as its own singleton in the library meant that each
kiface had its own threadpool, leading to many multiples of the threads
being started.  Placing a singleton class in PGM_BASE ensures that all
kifaces use the same thread pool.

The singleton class can be extended to provide single instance
guarantee for any element across kifaces
2025-01-03 13:51:11 -08:00
Jeff Young beda29856d Hide DesignBlock Migrate Libraries button (for now).
There aren't (yet) any legacy libraries to migrate.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19360
2025-01-03 21:28:19 +00:00
Jeff Young 0c54106bfd Tone down output borders a bit. 2025-01-03 18:49:07 +00:00
Jeff Young 21ee64d8f0 (Slightly) better de-bouncing of grid cell editing. 2025-01-03 18:33:39 +00:00
Jeff Young e73bec504e Separate Edit/Delete buttons for jobset outputs. 2025-01-03 18:33:39 +00:00
JamesJCode 0c76b723b4 Add ERC QA for wire bus entry unconnected / off grid 2025-01-03 18:13:30 +00:00
Graham Keeth 6c335b9804 Update Solder Mask/Paste design rule tooltips 2025-01-03 16:28:16 +00:00
Ian McInerney e845db1977 Implement dnagling wire to bus entry ERC
Also, rename the dangling flag/getter to match the flag in SCH_LINE for
consistency.
2025-01-03 14:58:57 +00:00
Ian McInerney d847e2bd92 Add ERC check for off-grid bus entry 2025-01-03 14:32:43 +00:00
Jeff Young 1a456ebcce Default pin electrical types to off for preview. 2025-01-03 13:48:49 +00:00
Jeff Young 40ade0b9f1 Long live jobsets! 2025-01-03 13:36:48 +00:00
Jeff Young 25d794b405 Read old job output specs with no ids. 2025-01-03 13:32:07 +00:00
Jeff Young 8a68bf88d6 Make open jobset paths relative. 2025-01-03 13:15:23 +00:00
Jon Evans 89a50a3dcf Fix some issues calling Python on Windows systems 2025-01-02 22:45:24 -05:00
JamesJCode e13b31fd42 Don't smash the preferences while loading previous job sets 2025-01-03 00:30:45 +00:00
Seth Hillbrand 2eea14ea58 Skip hidden files in backup
We don't need to parse hidden files/directories for backup targets.
This can be very large (in the case of .git directories) and thus
slow when working over NAS.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18341
2025-01-02 16:25:56 -08:00
Ian McInerney ce5f3f642e Use existing string for ohm-meter units 2025-01-02 23:51:38 +00:00
Jeff Young 757a16b4bf Remember open jobsets. 2025-01-02 23:44:09 +00:00
Andrea Greco 49b949cec7 Transmission Line: Add measure unit to Rho constant
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19312
2025-01-02 22:44:15 +00:00
Jon Evans 40929d2482 Undo accidental commenting out of some Python search code 2025-01-02 17:31:42 -05:00
JamesJCode 20def236bf Don't strip last directory name when plotting 2025-01-02 22:12:24 +00:00
JamesJCode 7654c7f6e1 Use correct layer name and page number in single page PDF plots
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19453
2025-01-02 22:03:52 +00:00
JamesJCode bf17300949 Ensure newly added Sim.* fields are not visible
Existing fields will retain their current visibility settings

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19466
2025-01-02 21:13:48 +00:00
JamesJCode 3a85a77289 Simplify if condition for SCH_SHAPE background layers 2025-01-02 20:37:15 +00:00
Jon Evans bdb2c3a025 DbLib: Use case-insensitive lookup for column caching 2025-01-02 12:59:15 -05:00
Jeff Young 48bb6b137c Limit length of search strings to prevent lockups.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19464
2025-01-02 17:04:22 +00:00
John Beard 520a7cf62c GAL: ViewGetLOD should not be able to change the VIEW
Make the VIEW* parameter const. Since PCB_TEXT does a null-check,
it's not very clear if this can ever be null (and if it is,
why don't the other VIEW_ITEMs check?), so don't make them
all references too at this time.

Also dereference a few pointers a bit earlier to make non-null
promises sooner rather than later.
2025-01-02 22:59:31 +08:00
John Beard 527faddbfd GAL: provide constants for LoD HIDE/SHOW and a scale helper
Saves a mishmash of local HIDE/SHOW defs along with various literals.

Also provide a function that computes the scale at which a given
IU size becomes (notionally) a certain size on screen. While this
is a simple division, it's a bit opaque in terms of meaning.

Also it means the divide by zero case can be more universally
defended-against, which has traditionally been a bug opportunity.
2025-01-02 22:59:31 +08:00
Ian McInerney 5705e928e1 Move dialog launch function into tool class
This makes it easier to find.
2025-01-02 14:51:30 +00:00
Ian McInerney a2e115833c Cleanup UI for global edit tracks and pad dialog
* Don't hide the annular rings control - makes confusing UI
* Always show annular rings control - all boards must have >2 layers
  anyway
* Move into single column of choice boxes to be cleaner and take less
  monitor space

https://gitlab.com/kicad/code/kicad/-/issues/19457
2025-01-02 14:51:30 +00:00
Jeff Young ba522e782d Remove AUTOPLACE_AUTOADDED.
Make autoplace in the symbol preview based on the global eeschema
flag instead.  (If they have it off, then they had better specify
field positions in the database library.)

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19247
2025-01-02 14:33:30 +00:00
Jeff Young 9ed3c8eb82 Naming consistency for jobs. 2025-01-02 13:20:31 +00:00
Marek Roszko 6aa25093da Add missing files from last commit 2025-01-02 06:48:28 -05:00
Jeff Young 76d4ef3971 Implement AutoplaceFields() for LIB_SYMBOL.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19247
2025-01-02 11:03:45 +00:00
Marek Roszko 1a0427a375 Add initial but not yet working correctly copy files job 2025-01-01 23:57:46 -05:00
Marek Roszko aed82196f7 Set a default special execute output name if enabled 2025-01-01 23:57:46 -05:00
Seth Hillbrand 9a10d2ff54 Silence SWIG warnings
Expressly state which operator will work in Python (which doesn't really
know integers anyway)
2025-01-01 19:47:13 -08:00
Jon Evans 3364bd0a8b Plotter: Don't restrict via width query to copper layers
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19458
2025-01-01 18:11:27 -05:00
Seth Hillbrand 0b2d4d4879 Revise Copyright statement to align with TLF
Recommendation is to avoid using the year nomenclature as this
information is already encoded in the git repo.  Avoids needing to
repeatly update.

Also updates AUTHORS.txt from current repo with contributor names
2025-01-01 14:12:04 -08:00
Seth Hillbrand d8733b2d4f Happy New Year
For this year's resolution, we will streamline our copyright statements.
These are applied to files in the repository and are not needed
separately as part of the compiled about box
2025-01-01 14:12:04 -08:00
John Beard ea12689e29 Pcbnew: also show clearance outlines in FP editor
Not having these shown makes it easy to accidentally
enable them without noticing.
2025-01-02 05:46:48 +08:00
Jon Evans 06e0e16336 API: Fix GetPadShapeAsPolygon to not re-use a SHAPE_POLY_SET
TransformShapeToPolygon appends instead of assigning
2025-01-01 16:34:30 -05:00
Jon Evans b971ab22e2 Add new SWIG declaration for vector of PCB_FIELD* 2025-01-01 15:37:39 -05:00
Jeff Young 571648937f Probably don't need the no. column wide enough for 999 jobs. 2025-01-01 20:34:30 +00:00
Marek Roszko 5864d705c3 Partially fix running special execute
It was a early implementation that got forgotten about hah
2025-01-01 15:10:35 -05:00
Jeff Young a3c29a1343 Allow resizing of Output Properties dialog.
Also fixes a bug where the GenDrill dialog returned a fixed
result.
2025-01-01 20:10:07 +00:00
Marek Roszko 7881fa68e9 Change output and special execute dialog to OK.
Fix special execute not adding to list
2025-01-01 14:52:53 -05:00
JamesJCode 96082a63a8 Add a new GAL layer for shape backgrounds
Fixes https://gitlab.com/kicad/code/kicad/-/issues/12393
2025-01-01 19:46:33 +00:00
Marek Roszko 65a2d95282 Gate against 0 width and height to the render job
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19443
2025-01-01 14:42:03 -05:00
Jeff Young c5ae32c51c Auto-edit job properties and then description after creation. 2025-01-01 19:17:11 +00:00
Jeff Young 530a66a489 More job-specific option dialog titles. 2025-01-01 19:17:07 +00:00
Marek Roszko 2bc3d39934 Add a default output name for the render job if none is provided
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19448
2025-01-01 14:12:26 -05:00
Marek Roszko 72acbe1de4 Add missing options dialog title
https://gitlab.com/kicad/code/kicad/-/issues/19452
2025-01-01 14:04:33 -05:00
Marek Roszko ea4aa6e277 ADd plot-invisible-text arg for cli plots
Part of https://gitlab.com/kicad/code/kicad/-/issues/13957
2025-01-01 13:53:47 -05:00
Marek Roszko fb32eeb0ea Fix job output path for sch plots and netlist 2025-01-01 12:21:26 -05:00
John Beard e9f8b2ba77 Pcbnew: apply same IPC rule in properties panel as in dialog
This means when you switch a pad to be roundable (round rect or
chamfered-with-round), you get the same behaviour as in the dialog
(and an IPC-compliant pad by default).

Also fixes the radius visibility in the properties panel for
chamfered pads (which can have radii).
2025-01-02 00:42:31 +08:00
John Beard 1f551ea0e4 Pcbnew: allow to set pad rounding size from properties panel
This can be useful when you have a defined rounding maximum
(e.g. for an IPC 0.25/0.25 rule) and makes the panel more
consistent with the properties dialog.
2025-01-02 00:42:31 +08:00
John Beard 84c7a1e82d Fix Python search on Linux 2025-01-02 00:42:31 +08:00
Jeff Young d7eed69831 Job-specific option dialog titles. 2025-01-01 16:33:57 +00:00
Jeff Young 742dd0fc3a Fix selection after delete. 2025-01-01 16:33:57 +00:00
Jeff Young 97fb553c5f Moves output panel to flex-grid layout in an attempt to
fix platform differences in layout.
2025-01-01 16:33:57 +00:00
Jeff Young f4ec6d2eaa Fix layout issues when plot dialog opened from job.
Also removes Open Directory button as in a job the filepath
will be relative to whichever Output it is placed in.

Also removes the Run DRC button when called from a job.
2025-01-01 16:33:57 +00:00
Jon Evans 34dad3aa79 Implement searching for Python on Windows 2025-01-01 11:32:41 -05:00
JamesJCode 3e1fd974dc Reorganise jobset menu entries
They were mixed in with the project open / close / new menu items
2025-01-01 16:10:12 +00:00
Jon Evans feca4176c0 Prefer some built-in paths for Python interpreter 2025-01-01 11:08:27 -05:00
Jon Evans 9086c5694b Fix layout issue in plugin settings page 2025-01-01 10:54:59 -05:00
jean-pierre charras 11f94283ef STEP exporter: export solder mask on tracks having a solder mask option.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18881
2025-01-01 15:14:23 +01:00
jean-pierre charras bbea339279 PANEL_SETUP_MASK_AND_PASTE_BASE: fix swapped widgets
Global textboxes solder paste clearance were swapped versus labels

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19442
2025-01-01 10:18:48 +01:00
Alex Shvartzkop 4d42d6b4fe Remove some hacks from template selector to fix sizing on Windows.
Related: https://gitlab.com/kicad/code/kicad/-/issues/19436
2025-01-01 12:28:24 +05:00
Marek Roszko 6c43c25b4c Move two things to kicommon 2025-01-01 00:14:34 -05:00
Marek Roszko ae1dd1ed20 Fix dxf/svg job status 2024-12-31 23:14:58 -05:00
Marek Roszko 8f750baa79 Deprecate and support using the more normal "plot" logic for dxf and svg. 2024-12-31 23:10:24 -05:00
Marek Roszko cad0e3fc27 Lets move the chunk of plot logic from dialog_plot and share it with the jobs handler
More factoring in V10. This is just because it's getting annoying really lol
2024-12-31 21:15:05 -05:00
Jon Evans d8b8d8aa3c API: Add GetNetClassForNets; handle implicit netclasses 2024-12-31 17:51:19 -05:00
Wayne Stambaugh 151b1141f7 Increase minimum HTML panel height of the template selection dialog.
wxFormbuilder is not DPI aware so the previous height was a bit short on
high DPI displays.  The new height is a compromise which will be a bit tall
on standard DPI displays and a bit short on high DPI displays.
2024-12-31 17:27:26 -05:00
Jeff Young fe06e13091 Don't distort shapes when aligning to grid.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18739
2024-12-31 22:23:00 +00:00
Wayne Stambaugh bf414fede8 Fix template selector dialog on Windows. 2024-12-31 16:34:25 -05:00
Marek Roszko 9fb8de959c Fix windows builds broken by 8aa0b3e16c 2024-12-31 15:41:05 -05:00
Wayne Stambaugh 9ba1e92773 Fix template selector GTK scroll bar issue.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19436
2024-12-31 14:37:44 -05:00
Sven Pauli d070f5ee95 Whoops, mutable. 2024-12-31 19:29:20 +00:00
Sven Pauli 5815998b5b Rolled the caching 2024-12-31 19:29:20 +00:00
Sven Pauli 074edfa056 Invalidate courtyard caches when rotating 2024-12-31 19:29:20 +00:00
Alex Shvartzkop 8a3091c80d Vertically align mask expansion labels in shape properties.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19438
2024-12-31 21:53:56 +03:00
Jeff Young ac28b246f1 A possible improvement to double-click in grids. 2024-12-31 17:48:43 +00:00
jean-pierre charras 3efa700dc6 DIALOG_TEMPLATE_SELECTOR: add title cleared by a side effect of commit e54cf6c8 2024-12-31 18:19:42 +01:00
John Beard 85552c7a4f SVG import: import beziers as beziers
This maintains a little bit more editability and avoid importing
thousands of tiny line segments when not required.
2025-01-01 01:14:41 +08:00
John Beard 3bd3b8073e SVG import: avoid duplicating points in line chains
Every new section duplicated the start/end points.

This saves half the points when importing. They're skipped later
before they end up as real items, but it's confusing to trace
through (and theoretically inefficent, but it'll be tiny).
2025-01-01 01:14:41 +08:00
John Beard 10485848b8 SVG import: import unclosed, filled shapes as a separate fill and stroke object
This means that validly unclosed paths can be imported correctly.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/18477
2025-01-01 01:14:41 +08:00
Jeff Young 8aa0b3e16c Convert output dialog to checkbox list.
Also cleans up the RC options dialog.
2024-12-31 17:13:29 +00:00
Seth Hillbrand 359529d616 Move NL implementation pointers to unique_ptr 2024-12-31 08:57:34 -08:00
Marek Roszko 768a9c89aa Dont forget the gen mode param 2024-12-31 11:37:17 -05:00
Marek Roszko 8988dd11ab Fix json enum declaration 2024-12-31 11:16:48 -05:00
Marek Roszko d6bf87bcaa Add flag to pdf jobs created by gui needed for processing correctly. Fix enum naming 2024-12-31 11:00:19 -05:00
Marek Roszko 33183ad795 Expand pdf plot job to normal pdf plot behavior
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19352
2024-12-31 10:55:09 -05:00
Alex Shvartzkop 8a7cca209e Add --experimental_allow_proto3_optional to support older protoc. 2024-12-31 18:51:03 +03:00
JamesJCode 819a068a60 Only resolve symbol embedded fonts on parsing if parsing successful
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19435
2024-12-31 14:19:02 +00:00
Jeff Young 0a7ed8c9a2 Fix some dialog sizing bugs. 2024-12-31 13:34:06 +00:00
Jeff Young 9dbb9b243c Cleanup. 2024-12-31 13:10:35 +00:00
Marek Roszko 06542d5576 Add deprecation notice on "gerber" cli job 2024-12-31 07:43:48 -05:00
John Beard d73e66c417 Pcbnew: Filter free pads properly in both position-relative tools
This resolves several issues:

* Interative position of a single pad did nothing, now it moves the
  parent footprint (in non-free-pad mode)
* Non-interactive would move the footprint n times if you selected
  n pads, now it just move once.
* Neither tool would prompt for lock overrides

Use the proper free pad collector filter to make this work and keep
behaviour consistent with other tools.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/19430
2024-12-31 18:28:50 +08:00
JamesJCode a45b601e11 Correctly handle zone net updates in multichannel tool
Also fixes some item duplication issues

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19410
2024-12-31 09:59:44 +00:00
JamesJCode 952beb0197 Clear effective netclass caches on bulk updates
This ensures that after bulk updates, netclasses are recomputed
when next accessed.

Also document interface cache contracts in documentation. This
interface will need tidying up in v10
2024-12-31 09:27:12 +00:00
Marek Roszko 17a1706257 ADDED: "Single document" PDF plot option for PCB plots 2024-12-30 23:51:42 -05:00
Marek Roszko d033b7bebb Missing half of last open jobset commit 2024-12-30 23:50:51 -05:00
Jon Evans 2c56e9826a API: Add serialization for netclasses
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18609
2024-12-30 23:29:29 -05:00
Ian McInerney aa2be7dd5a Fix jobset UI for GTK
* Cleanup button borders and spacing
* Allow creating directories in the browser when choosing the jobset
  output location
2024-12-31 03:00:46 +00:00
Marek Roszko 012867faf8 Allow opening arbitrary jobset files 2024-12-30 21:28:04 -05:00
Marek Roszko f7b01d8eb9 Prevent jobset creation when no project is active
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19427
2024-12-30 21:22:13 -05:00
Mark Roszko 4d9bd6ef27 Revert "Cleanup output handler"
This reverts commit 906c2f3d49
2024-12-31 01:37:39 +00:00
Jon Evans 8be61565ca Fix copy/paste error 2024-12-30 20:34:36 -05:00
Jon Evans 2dec1dd598 Implement BOARD::RunOnDescendants
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19397
2024-12-30 20:33:51 -05:00
Jon Evans a4ac22f2d6 SHAPE_POLY_SET: Fix up non-closed outlines when added 2024-12-30 20:33:51 -05:00
Alex Shvartzkop dcf66a675a Fix copy/paste error in track_segment_length help string. 2024-12-31 06:31:49 +05:00
Ian McInerney c0622eaa45 Avoid copies when using auto 2024-12-31 00:18:10 +00:00
Ian McInerney 906c2f3d49 Cleanup output handler 2024-12-31 00:18:10 +00:00
Ian McInerney 3e47ac492e sim: Add missing horizontal action mapping 2024-12-31 00:18:10 +00:00
Ian McInerney 7f8b88221d Initialize variables 2024-12-31 00:18:10 +00:00
Ian McInerney 7677cf831d Cleanup FILTER_COMBOBOX API
The smart pointer was only used to pass the pointer into the function,
and the pointer was being kept in multiple places, so it just made the
API surface a bit convoluted.
2024-12-31 00:18:10 +00:00
Ian McInerney 150f0ee5f9 Cleanup if statement not needed after formatter changes
The differences between these branches were removed in
6686ade45b
2024-12-31 00:18:10 +00:00
Ian McInerney d5c5050d29 Fix initialization order of the events in pcbnew
The TOOL_EVENT constructor searches for ACTONS::cancelInteractive. That
action is global, so we need to ensure it is created before we try to
create these events - so switch to a create on first use paradigm for
the events.
2024-12-31 00:18:10 +00:00
Ian McInerney 2ddcc7a7ad Add error handling to posix function call 2024-12-31 00:18:10 +00:00
Ian McInerney 2aa079d58c Cleanup list index handling 2024-12-31 00:18:10 +00:00
Ian McInerney 808ad4f4a7 Call the proper constructor for UTF8 for conversion
GCC warns that this conversion isn't actually using the UTF8 constructor
when using the casting method, so just call the constructor.
2024-12-31 00:18:10 +00:00
Ian McInerney 033ba7228d Don't leave an empty statement body 2024-12-31 00:18:10 +00:00
Ian McInerney c5d39698f2 Rename local variable to prevent shadow warning
This is probably just a false-positive from GCC, since the outer
variable isn't actually in the capture list of the lambda.
2024-12-31 00:18:10 +00:00
Alex Shvartzkop 04bc819f12 Clarify "Record output" in jobs dialog. 2024-12-31 05:14:17 +05:00
Alex Shvartzkop 5731726644 Use standard "dummy" string in jobs panel. 2024-12-31 05:11:16 +05:00
Alex Shvartzkop eb83b2429a Improve jobs no messages string. 2024-12-31 05:04:21 +05:00
Alex Shvartzkop c4091fc7ad Fix tooltip for Fill all vias. 2024-12-31 05:01:30 +05:00
Seth Hillbrand fbbb642c0c Move all nlnav to unique_ptrs
7daded7c60 moved them to bare pointers but
this was not required to allow forward declarations.  We only need to
place the CTOR/DTOR fully in the cpp file where the nlnav headers are
included
2024-12-30 15:43:15 -08:00
Jarrett Rainier bbde2900e9 ADDED: Capacitive scrollwheel footprint wizard 2024-12-30 23:39:18 +00:00
Alex Shvartzkop fdb9aac988 Shorten footprint defaults string. 2024-12-31 04:20:45 +05:00
Alex Shvartzkop 9a8ac13750 Fix GAL backend switch error string. 2024-12-31 04:14:10 +05:00
Seth Hillbrand df03d86cdb Update translations 2024-12-30 13:30:37 -08:00
CloverGit d6202f3f68 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 99.5% (9861 of 9908 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hans/
2024-12-30 22:16:45 +01:00
Ivan Chuba 03d3dcf972 Translated using Weblate (Ukrainian)
Currently translated at 77.3% (7664 of 9908 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/uk/
2024-12-30 22:16:45 +01:00
CloverGit a06de89566 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 99.5% (9861 of 9908 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hans/
2024-12-30 22:16:45 +01:00
Henrik Kauhanen 9aad05d4d9 Translated using Weblate (Swedish)
Currently translated at 99.5% (9863 of 9908 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/sv/
2024-12-30 22:16:45 +01:00
dsa-t a04306766a Translated using Weblate (Russian)
Currently translated at 99.6% (9873 of 9908 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ru/
2024-12-30 22:16:45 +01:00
2tama3 06a5818d8c Translated using Weblate (Japanese)
Currently translated at 99.5% (9863 of 9908 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ja/
2024-12-30 22:16:45 +01:00
dsa-t 5ecd27ad4d Translated using Weblate (Russian)
Currently translated at 99.6% (9873 of 9908 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ru/
2024-12-30 22:16:44 +01:00
2tama3 89301288e9 Translated using Weblate (Japanese)
Currently translated at 99.4% (9849 of 9908 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ja/
2024-12-30 22:16:44 +01:00
dsa-t c53bde5951 Translated using Weblate (Danish)
Currently translated at 43.6% (4328 of 9908 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/da/
2024-12-30 22:16:44 +01:00
dsa-t 9b03aca123 Translated using Weblate (Russian)
Currently translated at 99.6% (9873 of 9908 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ru/
2024-12-30 22:16:44 +01:00
dsa-t 16ea8c832d Translated using Weblate (Russian)
Currently translated at 99.6% (9873 of 9908 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ru/
2024-12-30 22:16:44 +01:00
2tama3 c79e6a4c7d Translated using Weblate (Japanese)
Currently translated at 99.3% (9847 of 9908 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ja/
2024-12-30 22:16:44 +01:00
Pferd O b9cd05417d Translated using Weblate (German)
Currently translated at 100.0% (9908 of 9908 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/de/
2024-12-30 22:16:44 +01:00
dsa-t f6ddb9baa0 Translated using Weblate (Russian)
Currently translated at 99.6% (9872 of 9908 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ru/
2024-12-30 22:16:44 +01:00
109247019824 867709e148 Translated using Weblate (Bulgarian)
Currently translated at 7.1% (704 of 9908 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/bg/
2024-12-30 22:16:44 +01:00
Wellington Terumi Uemura b559128640 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (9908 of 9908 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/pt_BR/
2024-12-30 22:16:44 +01:00
dsa-t 329ec0fc4d Translated using Weblate (Russian)
Currently translated at 99.6% (9872 of 9908 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ru/
2024-12-30 22:16:44 +01:00
ZbeeGin 0deec0998b Translated using Weblate (Polish)
Currently translated at 100.0% (9908 of 9908 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/pl/
2024-12-30 22:16:44 +01:00
Pferd O 908e1090bc Translated using Weblate (German)
Currently translated at 99.7% (9888 of 9908 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/de/
2024-12-30 22:16:44 +01:00
Arnau Llovet Vidal 204fb72211 Translated using Weblate (Catalan)
Currently translated at 42.4% (4203 of 9908 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ca/
2024-12-30 22:16:44 +01:00
Jeff Young 40115a298b Support double-click for editing job settings. 2024-12-30 21:12:59 +00:00
Seth Hillbrand 8724a7da09 Treat straight arcs as segments
When an arc has a very small curvature, we should not waste time with
the arc collision mode and instead just use the segment collision as it
is effectively the same result

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19422
2024-12-30 12:57:21 -08:00
Seth Hillbrand 06e113c85d Quiet GCC warnings 2024-12-30 12:57:15 -08:00
Seth Hillbrand 8f360f1a69 Avoid lock-up during fp export
We do not need to re-validate the fp cache each fp we export, especially
when we just created the library.  This locks up pcbnew for larger
boards
2024-12-30 12:57:15 -08:00
Marek Roszko d6090367bd Remove the border on the outputs container
It looks awful on Windows
2024-12-30 14:00:55 -05:00
Ethan Chien b03c591a4b Sync Sheet Pins: Synchronizes all selected rows. 2024-12-31 02:58:35 +08:00
Jeff Young b36f67853c Moved jobs to a more direct-editing paradigm.
Uses WX_GRID for in-place editing of job descriptions and
GRID_CELL_TEXT_BUTTON for context-menu-free editing of job
properties.

Also moves buttons down as the Save button (now renamed Save Jobset) also saves the output definitions.
2024-12-30 18:23:47 +00:00
John Beard f7aded00c7 Pcbnew: draw clearance lines on their own GAL layers
This tidies up quite a performance hit on layer change
caused by repainting vias, pads and tracks for their
clearances.

Instead, on a layer change, just disable any old clearance
layer and enable the new one (if any).

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/19404
2024-12-31 00:53:10 +08:00
John Beard 5520b524f6 Pcbnew: handle new layers in PADSTACK::EffectiveLayerFor 2024-12-31 00:53:10 +08:00
Jon Evans 25036cc5cd Set padstack earlier in via properties dialog
Need to override specific padstack properties
after setting the whole thing
2024-12-30 11:36:07 -05:00
Alex Shvartzkop bc6b620b8f gerbview: Sort layer maps after reordering view layers.
Otherwise we get previous freed pointers in m_orderedLayers.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19394
Fixes KICAD-P65
2024-12-30 21:29:35 +05:00
Jon Evans 3bc190e515 Add deprecation notices to SWIG API 2024-12-30 11:25:04 -05:00
jean-pierre charras 2cd28009ef Define MAX_LAYERS_FOR_VIEW to init GAL::Mxx_DEPTH and VIEW_MAX_LAYERS
These values MIN_DEPTH, MAX_DEPTH and VIEW_MAX_LAYERS are coupled, so to
avoid mismatch, it is better to derive these values from an unique value
2024-12-30 16:59:32 +01:00
Alex Shvartzkop b2acddc483 Fix opening zip archives from project manager tree on Win11.
Also removes unused OpenFile function.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19399
2024-12-30 20:51:19 +05:00
Jon Evans ca68ac0076 kinng: use longer lifetime for incoming message string 2024-12-30 09:32:11 -05:00
Jon Evans 1a3e18104a API: Add access to project text variables
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16426
2024-12-30 09:32:11 -05:00
John Beard 3219e87b3a GAL: update depth to avoid overflow with a higher VIEW_MAX_LAYERS 2024-12-30 20:23:16 +08:00
John Beard 858d28b13f Pcbnew: Update via/pad colour at the same time as tracks 2024-12-30 20:23:16 +08:00
John Beard ca5a88dbb4 Pcbnew: minor refactor in pad painter
Break a big loop content to a lambda, so the 'outer' drawing logic is
more compact. And allows to handle the shape by ref since we know it's
not null.
2024-12-30 20:23:16 +08:00
jean-pierre charras f8ae28578f SHAPE_LINE_CHAIN() ctor: ensure arc info exists before trying to add it
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19419
2024-12-30 11:47:30 +01:00
jean-pierre charras cb70079f86 GAL_API::VIEW::VIEW_MAX_LAYERS: increase value from 512 to 1024.
It was needed by the commit 78f83b5a that added GAL layers to the list.
2024-12-30 08:40:45 +01:00
Eric Zhuang 3414706925 Add DIALOG_EXPORT_ODBPP initialization/saving of PCBNEW_SETTING
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19349
2024-12-30 06:21:21 +00:00
Ethan Chien dea53b7b60 Sync Sheet Pins: Add checks for empty sheet paths and display an info message when no sub schematic is found 2024-12-30 13:45:50 +08:00
Jon Evans 19c748048c API: Add some board editor appearance settings
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18269
2024-12-29 22:10:01 -05:00
Ethan Chien c430ba63d1 Sync Sheet Pins: Refactor PANEL_SYNC_SHEET_PINS to streamline model association and column width handling 2024-12-30 11:00:53 +08:00
Marek Roszko 0e1b47427c Add a windows specific hack to make backups work past max length
Since backups are most likely to encounter max path limitations compared to other things we do in kicad
2024-12-29 19:54:11 -05:00
JamesJCode 870b2ec0c5 Revert "Don't allow netclass highlighting to override net highlighting"
This commit had different issues with selected but netclass-highlighted
wires.

This reverts commit a216369d72.
2024-12-30 00:36:26 +00:00
JamesJCode a216369d72 Don't allow netclass highlighting to override net highlighting 2024-12-29 23:31:52 +00:00
Marek Roszko 41d7711f06 Add a function to create long paths on windows 2024-12-29 18:21:49 -05:00
Marek Roszko ccbce7e2ee Move DESIGN_BLOCK into kicommon 2024-12-29 14:45:36 -05:00
jean-pierre charras 82516c6f16 Demos update 2024-12-29 20:01:26 +01:00
Marek Roszko bd202a5fdc Ensure more settings are saved for plotting
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19401
2024-12-29 13:31:56 -05:00
John Beard f26a7c9f9a Icons: make dialog_warning yellow, not red
Red means "error" - warnings are yellow-orange. use the
same colours as ercwarn.
2024-12-30 01:38:09 +08:00
Jeff Young 4556ace032 Improve curved teardrop shapes for roundrect pads.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19405
2024-12-29 17:04:16 +00:00
Eric Zhuang b3259a1c42 ODB++:Support choice compress format and specify output filename. 2024-12-29 17:01:27 +00:00
Marek Roszko 659228de2d Add some closebuttons to pcbnew panes 2024-12-29 08:02:08 -05:00
Marek Roszko 85413e2c9b Enable the close button on aui panes in eeschema
Works fine

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19372
2024-12-29 07:37:25 -05:00
Marek Roszko ddf157c36c Add descriptions for jobsets 2024-12-29 07:16:46 -05:00
JamesJCode 5020b8a950 Fix FOOTPRINT Python QA 2024-12-29 09:16:54 +00:00
Marek Roszko b53a4abb7e Use wxTextEntryDialog directly to handle cancel correctly 2024-12-28 22:53:12 -05:00
Marek Roszko 2d43480af3 Remove the pythonbom job registration 2024-12-28 21:31:58 -05:00
Marek Roszko 09c8cfedd3 Add ability to set custom user descriptions on jobs 2024-12-28 21:28:42 -05:00
Marek Roszko db197b6577 Restore drawing sheet state for sch plot jobs 2024-12-28 19:21:52 -05:00
Marek Roszko 9208c2e6e6 Cleanup a header that should be killed eventually 2024-12-28 18:59:54 -05:00
Marek Roszko d8d84f300f CHANGED: Eliminate the independent SVG plot dialog that only duplicated and half-implemented the functions of the full Plot dialog 2024-12-28 18:55:03 -05:00
Marek Roszko 0f70c7747c Save drill/place origin for plot jobs for pdf/SVG
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19401
2024-12-28 18:49:16 -05:00
Marek Roszko 197c01aa48 Save drill shape for pdf/svg jobs
Partial fix https://gitlab.com/kicad/code/kicad/-/issues/19401
2024-12-28 18:49:16 -05:00
Alex Shvartzkop ceefbea34a Eagle: Make pad drill optional to support some DipTrace-exported boards. 2024-12-29 02:44:35 +03:00
Alex Shvartzkop b078d828df Support Specctra SES import from TopoR.
TopoR export resolution units in upper case for some reason.
2024-12-29 02:44:35 +03:00
Marek Roszko af7764fc92 Wooo typo again 2024-12-28 18:25:17 -05:00
Marek Roszko 9e1df0e3c2 Don't forget to actually init generate map to the job value 2024-12-28 18:23:58 -05:00
Marek Roszko f07e3e5b3b CHANGED: Make drill dialog generate maps a checkbox option rather than explicit button
Wouldn't you want to always consistently generating both drill list and map rather than separately?

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19400
2024-12-28 18:23:07 -05:00
Jeff Young 1cf569b0be Firebomb teardrop curve points.
See 17b0dabec3 for the start.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19403
2024-12-28 22:38:51 +00:00
JamesJCode dfe0d6345b Another go at supressing FOOTPRINT field on FOOTPRINT objects 2024-12-28 21:57:35 +00:00
Alex Shvartzkop 86bcf840c1 Fix compatibility with Allegro PCB Router (Specctra) sessions.
"default_smd" clearance type is not a valid value.
Could have used "wire_smd" but it doesn't seem to matter nowadays.
2024-12-29 00:34:52 +03:00
Alex Shvartzkop 2354ef67d1 Fix Specctra DSN export after layer id changes.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19386
2024-12-29 00:34:52 +03:00
Jon Evans 2c94684f9f API: Add a preferred plugin settings path
Fixes https://gitlab.com/kicad/code/kicad/-/issues/9054
2024-12-28 16:21:05 -05:00
Jeff Young 6e437fe3d6 Adjust spacing for GTK. 2024-12-28 20:38:01 +00:00
Jeff Young 6dfebe4e8a Purge ghost tuning patterns.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18405
2024-12-28 20:38:01 +00:00
Marek Roszko 015a320875 Add controls for width/height in render job 2024-12-28 14:32:26 -05:00
Marek Roszko d8779a6c98 Add initial dialog for pcb render job 2024-12-28 14:16:28 -05:00
John Beard e384628478 Pcbnew: Fix pad/via clearance lines
After 4eb68c2840, we need to check the actual copper
layer represented by aLayer (i..e copperLayer), not
aLayer itself.
2024-12-29 02:43:43 +08:00
Jon Evans c77426cc12 Fix a few issues with via and pad rendering
The refactor of VIEW::SortLayers broke it, but this
was hard to notice until my recent changes.
2024-12-28 12:42:52 -05:00
Marek Roszko eeb77103c9 Don't forget to save format to file for 3d jobs
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19402
2024-12-28 12:12:32 -05:00
Alex Shvartzkop 88a2a41d21 Add rtti_dump.h to make it easier to debug cast issues across library boundaries.
Usage example:

#include <rtti_dump.h>

NESTED_SETTINGS* settings = ...;
rtti_dump::dump_class_hierarchy(rtti_dump::runtime_typeid(settings));

From https://android.googlesource.com/platform/ndk/+/a110575fd3ae10f4e5e1eca8447daa3de86ca1f7/samples/solib_rtti_dump/include/rtti_dump.h
2024-12-28 19:50:49 +03:00
Jon Evans 4eb68c2840 Fix pad and via opacity handling
With new rendering style, these need unique VIEW layers per copper layer
2024-12-28 10:50:58 -05:00
Jon Evans 78f83b5a39 Update PTH/Via rendering
- Add separate hole wall and net name color for vias
- Overemphasize hole wall thickness to make objects more visible
2024-12-28 10:02:11 -05:00
Jon Evans e7e2007acd Fix macOS build after 42b204fc
clang requires the explicit template keyword in this scenario
2024-12-28 08:14:48 -05:00
lucas 4feb7cd9ed API: Don't create zones without an outline 2024-12-28 13:08:42 +00:00
Jon Evans e69a95126a Use correct API in BoardLayerSet
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19395
2024-12-28 08:03:51 -05:00
Marek Roszko a2b6f63801 Fix output paths in drc/erc jobs
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19355
2024-12-28 07:48:44 -05:00
Alex Shvartzkop 6e2e66dc47 Don't flip Y axis when importing graphics to symbol editor.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19393
2024-12-28 15:48:06 +03:00
Marek Roszko 42b204fc74 Hookup the bom dialog to job
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19368
2024-12-27 23:00:08 -05:00
Graham Keeth 9ceaed7201 fix typos in teardrops tooltip 2024-12-27 22:30:30 +00:00
Jeff Young e164c55bf8 Fix layout issues in shape properties dialog.
Also don't show/hide the Net selection; just enable/disable it.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19330
2024-12-27 22:21:48 +00:00
Jeff Young 80885ec774 Abandon the fontTextMap.
It's too fragile due to the way we move things around.  Instead
store the unresolved name in the EDA_TEXT item and then scan the
whole document to resolve the EDA_TEXT items.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19383
2024-12-27 18:59:22 +00:00
Jeff Young 61dc54cae2 Don't run lib checks after renaming (an existing) sheet.
(Particularly as this step always happens when creating a new
sheet from a Design Block.)
2024-12-27 18:59:22 +00:00
Jeff Young bcf810b05c Formatting. 2024-12-27 18:59:22 +00:00
JamesJCode 5ff21f9c2d Add ki::any and ki::any_cast for any_casts across translation units
ki::any is a standards-compliant implementation, based on the GCC
standard library. However, it uses type_info::hash_code() to check
the validitiy of a ki:any_cast, rather than comparing the type_info
objects directly. This comparison, used in the standard
implementations, is fragile across translation unit boundaries when
built with Clang.
2024-12-27 17:28:27 +00:00
Marek Roszko 9636934631 Don't delete directory for folder output, just merge
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19379
2024-12-27 12:06:42 -05:00
Marek Roszko 9dd0d67845 Add a job config dialog for ERC/DRC
Also make the default names for drc/erc unique with a suffix break.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19355
2024-12-27 11:35:09 -05:00
Ethan Chien d1ed9f5f8a Sync Sheet Pins: Adjust column widths in sync sheet pins view for better layout 2024-12-27 15:26:36 +08:00
Alex Shvartzkop 0c60f368fa Fix warning:
left operand of comma operator has no effect [-Wunused-value]
2024-12-27 08:17:47 +03:00
Jon Evans fb8d16439b Tie handler de-registration to window close
The handlers can't accept commands when the window
is closed, which can be (far) earlier than the actual
dtor of the frame

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19375
2024-12-26 18:26:06 -05:00
Jon Evans 6c47f32ccf API: Fixes for creating new zones 2024-12-26 13:34:16 -05:00
Tomasz Wlostowski 7b6a344f45 router: provisional fix for crash when dragging footprints with exactly overlapping pad anchors
Fixes https://gitlab.com/kicad/code/kicad/issues/19382
2024-12-26 19:30:29 +01:00
JamesJCode 3dd048b287 Move the embedded files grid to use GRID_TRICKS 2024-12-26 18:23:47 +00:00
JamesJCode 936e0a590c Don't enable GRID_TRICKS paste menu item if grid is not editable 2024-12-26 18:23:47 +00:00
Marek Roszko 92404b33f0 Save 2 additional params for plotting jobs 2024-12-26 13:18:04 -05:00
Jeff Young 4b5e85c855 Fix logic error with aSkipLibCheck flag.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19373
2024-12-26 17:53:03 +00:00
Jeff Young f40cb8dcb8 Remove a couple of fixed-version-number stragglers.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18809
2024-12-26 17:53:03 +00:00
Marek Roszko 3e2d9354db Partial revert of leaked in changes 2024-12-26 11:29:28 -05:00
Marek Roszko f4e021ef4c Keep run button disabled if no jobs available for output 2024-12-26 11:24:42 -05:00
JamesJCode 6a9e195d19 Enable Copy Embedded File Reference context menu on macOS
Using wxID_COPY checks under the hood whether the item
should be enabled or not; we need to use a custom ID
to avoid this behavior.
2024-12-26 14:08:27 +00:00
Marek Roszko 94108927c7 Fix gerber gbrjob file naming when run from jobset 2024-12-26 08:52:34 -05:00
Ethan Chien 00ac047299 Sync Sheet Pins: Only call GetBestColumnWidth and OnColumnResized on WIndows 2024-12-26 19:54:40 +08:00
Ethan Chien bf2094dd8a Place Sheet Pins: Restore the behavior to match the original Import Sheet Pins tool. 2024-12-26 19:34:59 +08:00
Ethan Chien c4cc2b9c47 Sync Sheet Pins: streamline column setup setting the name col to BestColumnWidth 2024-12-26 17:02:24 +08:00
Marek Roszko bdf28a1c5c Add env var expansion to special execute jobs 2024-12-25 21:41:57 -05:00
Marek Roszko 3d52e14a07 Remove the extra separator above the Panels option in eeschema 2024-12-25 12:15:28 -05:00
Jeff Young f1cbcc83fe Fixup fill versions.
Older versions saved some non-symbol shapes with wrong fill mode.

The property inspector also sets the wrong fill mode.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19254
2024-12-25 15:14:54 +00:00
Jeff Young a7aea56a74 Use correct versioned variable in help strings. 2024-12-25 15:14:54 +00:00
Jeff Young 6eba855fd1 Formatting.
In particular, put setter and getter arguments on their own
lines as their syntax is otherwise very hard to visually parse.
2024-12-25 15:14:54 +00:00
Jeff Young 7211728365 nullptr protection 2024-12-25 15:14:54 +00:00
Marek Roszko 1d063e1420 Actually handle svg plot job failure correctly 2024-12-25 10:05:33 -05:00
Marek Roszko f0408f0814 Allow empty path targets to just return the temp dir for jobset output 2024-12-25 10:05:07 -05:00
Alex Shvartzkop af8ad6651a Project manager: Fix wrong background near left toolbar after changing Preferences on MSW. 2024-12-25 03:58:40 +03:00
Jon Evans bb29d5205a Fix ordering of saving via properties from dialog 2024-12-24 18:01:28 -05:00
Mark Roszko a7147bd22e Fix another iterator exception 2024-12-24 17:50:53 -05:00
Seth Hillbrand 6e09649a70 Fix crash on net highlighting
When navigating to a sheet without the highlighted net, there was a
chance for an uninitialized pointer deref.  This also gathers the
highlighted nets into the navigator as well as their subsuming buses

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18419
2024-12-24 14:46:47 -08:00
Jeff Young eccc5bca3e Use render cache (when available) for 3D viewer.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18672
2024-12-24 21:22:31 +00:00
Mark Roszko 01fb6c80ed Fix exception due to decrementing end() on a list of size 0 2024-12-24 15:24:52 -05:00
Jeff Young 61dac76224 Don't discard render cache when substituting font.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18672
2024-12-24 20:07:06 +00:00
Jeff Young 3d9784ded3 Plot from render cache if fonts aren't embedded.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18672
2024-12-24 20:07:06 +00:00
Marek Roszko d9d927e80c Allow substitution for job output paths
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19357
2024-12-24 11:44:51 -05:00
John Beard a55915726f Eeschema: tiny tweak to DRC rule wording
Relates-To: https://gitlab.com/kicad/code/kicad/-/issues/19118
2024-12-25 00:33:48 +08:00
Wayne Stambaugh 75365e8b71 Schematic hierarchical sheet improvements.
* Ensure hierarchy navigator history iterator is valid before removing
  history list entries.  This fix prevented a crash in the 8.0 branch.

* Purge consecutive duplicate hierarchy navigator history entries.
  Navigating to the same sheet path doesn't make sense.

* Don't rebuild hierarchy navigator tree twice when creating new sheet.

* Remove unused sheet property dialog commit code.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18778
2024-12-24 09:50:10 -05:00
John Beard 5a28b3891f Jobset: avoid assertion when editing plot schematic options
Plot format needs mapping from SCH_PLOT_FORMAT to the option
int and this is already down lower down the initDlg function.
2024-12-24 22:47:46 +08:00
John Beard 4b5f809961 Prefs: fix bug in FP editor prefs resetting
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/19369
2024-12-24 20:38:34 +08:00
John Beard 5572b775d2 Prefs: escape ampersands in panel names 2024-12-24 20:38:34 +08:00
John Beard 9d7d6eae10 FP-edit: split fields and graphics default settings
This prevents the dialog growing too much and going off a
smaller screen. It's also more consistent split to match
Pcbnew, which has the same graphical items settings and
allows more granular resetting and avoids confusing settings
that only apply to new footprints with settings that apply
to items with in a footprint.

Resetting is also then more granular, so you can reset text item
defaults without, say, also resetting your default line widths.
2024-12-24 20:38:34 +08:00
John Beard 0c625e6cec Pcbnew: unify dimension default configurability
This resolves an inconsistency between Pcbnew and FP editor that means
default dimension properties cannot be set in the FP editor, but the
dimension line widths and text sizes _can_, which can lead to mismatches
between different parts of the same dimension that can't be prevented
except retroactively using the properties tools.
2024-12-24 20:38:34 +08:00
John Beard 7fe69c8ac5 Pcbnew: dimension suppress zeros by default
Per ASME-Y14.5-2009 section 2.3, trailing zeroes are not used for metric
dimensions, which are probably most common. Unit suffixes are also not
used in every dimension when specified as a global default, which is
also common (usally in the fab notes).

This appears to be common defaults in other EDA software.  This is also
compatible with ISO 129-1 section 4.3.

In Pcbnew, this is only the default until the user sets it in the board
settings, so existing designs will always keep their set values.
2024-12-24 20:38:34 +08:00
John Beard 2f2f445043 Eeschema: symbol SVG export: don't lower-case
This is inconsistent with how footprints work and adds work for
downstream scripts which need to be aware that they have to process the
symbol name in this way.

Symbols named "syma" and "SYMA" can still collide in the same library on
case-insensitive systems, but this should be avoided by warning/errors
at the library level, rather than by silent overwriting on export.

Relates-To: https://gitlab.com/kicad/code/kicad/-/issues/19370
2024-12-24 20:38:24 +08:00
John Beard e7e59737ad Eeschema: always add _unitN to symbol export names
The scheme of adding _N to the filename only when there are multiple
units has two problem:

* It can alias (e.g. a single-unit HDSP-4830_2 and unit 2
  of a multi-unit HDSP-4830) and silently overwrite some units of
  other symbols.
* When processing the files, you have to account for a possibly
  present suffix, which can be hard to tell apart from parts of the
  axctual symbol name.

Change to always adding _unitN, so aliasing is impossible, and
a simple pattern can be used to match the generated filenames.

Demorgan variants can still have a optional suffix, but this
comes after the unit suffix, so the pattern to find that becomes
easier too.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/18929
2024-12-24 20:19:01 +08:00
jean-pierre charras e848373307 Pcbnew: Fix vias not plotted by some plotters.
It was due to the fact via colors are no longer managed.
2024-12-24 12:40:38 +01:00
JamesJCode 2cfa33a50a Handle simulator plot cell attributes correctly
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17841
2024-12-24 11:23:05 +00:00
Marek Roszko ea1e14b292 Add missing include 2024-12-23 23:07:08 -05:00
Marek Roszko 62ec7e2d6d Add the ability to capture job reporting and display it in the result window 2024-12-23 23:05:37 -05:00
Seth Hillbrand 9c0890302e Migrate DRC Exclusion names
Changing names like was done in
https://gitlab.com/kicad/code/kicad/-/issues/18040 breaks old project
files unless the DRCE names are migrated.
2024-12-23 19:30:44 -08:00
Seth Hillbrand e9bc8cfe9d Give Clipper1 a Viking funeral
Clears out the last spot where we were only using Clipper1 (how'd I
miss that?) and remove all calls to the Clipper1 structures
2024-12-23 17:12:09 -08:00
Graham Keeth fd137279c8 Design block extension fixups
Change design block file ext to kicad_block[s]

Fully include design blocks in project archives

schematic design blocks are a .kicad_blocks folder (library), containing
a .kicad_block folder (block), containing a .kicad_sch file (schematic
fragment) and a .json file (metadata). The .kicad_sch file is already
covered in the archived extension list, but the json needs to be
included.

As a side effect, this will pick up any other json file in the project
directory.

Also archive design block library tables
2024-12-24 00:33:59 +00:00
Alex Shvartzkop 3fa4449322 Wrap wxBusyCursor in unique_ptr to enable/disable as needed.
Assert message:

Assertion failed at C:\vcpkg\buildtrees\wxwidgets\src\v3.2.6-a8837e3f33.clean\src\msw\utilsgui.cpp:72 in wxEndBusyCursor: "gs_wxBusyCursorCount > 0" - no matching wxBeginBusyCursor() for wxEndBusyCursor()

Fixes KICAD-C9V
2024-12-23 21:12:07 +03:00
Alex Shvartzkop 9b40e6b2e3 Fix assert in hotkey list when double-clicking on a section header.
Assert message:

Assertion failed at C:\jenkins\workspace\build-windows-kicad-msvc-8.0-stable\.build\kicad\common\widgets\widget_hotkey_list.cpp:309 in WIDGET_HOTKEY_LIST::getExpectedHkClientData: hkdata != nullptr - No hotkey data found for list item

Fixes KICAD-7NV
2024-12-23 21:12:07 +03:00
JamesJCode 3800bae281 Enforce thread safety in clearance and creepage checks
Previously, these checks injected a custom handler to add graphic
objects to a DRC marker. This was not thread-safe and was causing
non-deterministic crashes. The DRC reporting methods now accept
a customer handler which is called on the newly created
PCB_MARKER within the commit context. This defaults to nullptr
for DRC checks which do not require graphics or other additional
processing.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19282
2024-12-23 18:10:47 +00:00
Jeff Young 1fe2dcc914 Improve accuracy of control label.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19304
2024-12-23 18:09:56 +00:00
JamesJCode 98b204aab1 Fix up DRC QA 2024-12-23 18:06:19 +00:00
Jeff Young 435ed59c82 Make sure to turn cursors off on hidden signals.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19310
2024-12-23 18:04:09 +00:00
jean-pierre charras 7fab4790cc Eeschema, print on clipboard using cairo: ensure title block is printed. 2024-12-23 18:49:21 +01:00
Seth Hillbrand 67c72cbb7a Add SWIG mirroring defs 2024-12-23 08:56:58 -08:00
Jeff Young a6c55ee473 Show design block fields in info instead of documentation.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19359
2024-12-23 16:39:25 +00:00
Seth Hillbrand 78a6640ad6 Fix issue that caused assert failure in parser
Missing `else` when adding optional caused everything to fall through.
2024-12-23 08:38:45 -08:00
Seth Hillbrand 66ee4a1ddd Fix up Annular ring check
- Remove bespoke collide routine.  We should never rewrite these instead
  of using the geometry library
- Optimize check by creating unified geometry before colliding
- Make extra variable that we don't need but makes cherry-picks easier
  (min/maxAnnularWidth)

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

(cherry picked from commit a611c72c27)
2024-12-23 08:38:45 -08:00
Seth Hillbrand 965048ac2f Fix missing check in DRC annular ring
The check was always skipping custom pads because minAnnularWidth is set
to INT_MAX, so it never triggered
2024-12-23 08:38:45 -08:00
Seth Hillbrand f6d4e79c63 Add comment before I forget why 2024-12-23 08:38:45 -08:00
Alex Shvartzkop 537932d417 Project manager: Update more captions/labels when switching languages. 2024-12-23 18:59:48 +03:00
Alex Shvartzkop d69cfe45c6 Project manager: Use font inheritance to avoid two extra SetFont calls.
Speeds up language changing, most noticable on Windows.
2024-12-23 18:58:30 +03:00
Alex Shvartzkop daa8c55e15 Fix reading custom PCB layer names from older versions.
As layer numbering has changed, we can't just get the layer name from
layer number.
2024-12-23 18:06:38 +03:00
Alex Shvartzkop 472192f4b8 Support legacy timestamps with stripped leading zeros.
In old kicad_pcb files, the timestamp can have less than 8 symbols
if leading zeros are stripped.

For example: 0939A342 -> 939A342
2024-12-23 18:06:38 +03:00
Alex Shvartzkop 6920d65af3 Fix Gerber Protel extensions for inner copper layers.
Previously the mapping was incorrect:
In1 -> .g5
In2 -> .g7
2024-12-23 18:06:38 +03:00
Jeff Young eee28aa06a Clean up fields autoplacement control architecture.
Also adds a mode for AUTOADDED fields.

Also fixes a couple of bugs where a manual-level autoplaced
symbol would get reset back to auto-level when autoplaced.
2024-12-23 14:30:17 +00:00
jean-pierre charras 59f6ffc05d pagelayout_editor: Avoid multiple or useless calls to OnAcceptPrms()
These useless calls, have a cost in calculation time.
2024-12-23 11:08:02 +01:00
Jeff Young e04f873765 Honour sheet-level DNP & Exclude from BOM in symbol fields table.
(And also in netlist exporter.)

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18717
2024-12-22 21:22:30 +00:00
Jeff Young 7da8b42206 Push more functionality to SYMBOL.
(This will allow us to run the fields autoplacer on SYMBOLs,
including LIB_SYMBOLs.)

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19247
2024-12-22 20:21:24 +00:00
Jeff Young 0612270f1e Formatting. 2024-12-22 20:21:24 +00:00
Jon Evans 2f6a4214ed Revert "Rename design block file extension constant"
This reverts merge request !2099
2024-12-22 19:49:42 +00:00
Graham Keeth ebfbedf7a7 Rename design block file extension constant
Also add design blocks to the project archiver include list.
2024-12-22 19:30:19 +00:00
jean-pierre charras fc07aa6fb0 Pcbnew, plot pdf & gerber from jobset: ensure using "C" locale for floats. 2024-12-22 18:24:47 +01:00
jean-pierre charras ab85c41028 Demo update 2024-12-22 18:24:46 +01:00
Alex Shvartzkop 1b28ee51dc IPC-2581: Improve dialog layout; Limit precision to 4-10 digits.
To represent KiCad's internal units (1 nm), it's enough to have:
- 6 decimal digits in mm;
- 8 decimal digits in inches.

There's not much point in reducing the precision.
Up to 10 digits allowed just in case.
Also changes precision to 6 decimal digits by default.
2024-12-22 20:19:54 +03:00
Alex Shvartzkop 787d174bec IPC-2581: Fix scale when using Inches. 2024-12-22 20:19:54 +03:00
Jeff Young 9c57d6c84f Update pin table when model changes.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19253
2024-12-22 13:24:43 +00:00
Jeff Young 278c1fee4d Improve comprehensibility of model pin mapping table.
Add quotes to symbol pin names and model pin names.
2024-12-22 13:24:43 +00:00
Alex Shvartzkop 1bae5997fe Disable horizontal scrolling in launcher panel, move paddings to scrollable area. 2024-12-22 16:05:11 +03:00
Alex Shvartzkop 7ef3c6d7df Increase default project manager width to fit more languages. 2024-12-22 16:05:11 +03:00
Alex Shvartzkop 27ee082ab2 Translate "Editors" tab in project manager frame. 2024-12-22 16:05:11 +03:00
Alex Shvartzkop b539d2884d Internationalize jobs panel. 2024-12-22 16:05:11 +03:00
Jeff Young 3a1bc21f8f Attempt to fix <ESC> after double-click in Design Blocks panel.
(Doesn't reproduce on MacOS to start with, so this is a bit
of a shot in the dark.)

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19353
2024-12-22 12:29:30 +00:00
Jeff Young 3c8848e642 Group library and item entries in context menu. 2024-12-22 12:29:30 +00:00
Jeff Young 03e2b60e13 Use STD_BITMAP_BUTTON for correct sizing.
Also provide button names for screen readers.

Also layout dialog to match Symbol Properties.
2024-12-22 12:29:30 +00:00
Graham Keeth c587788430 include kicad_jobset files in project archives
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19350
2024-12-21 23:04:15 +00:00
Alex Shvartzkop 1ea3173175 Center the Project manager frame on screen at first launch. 2024-12-22 00:42:01 +03:00
Alex Shvartzkop 46850aad92 Switch Excellon Drill Units to Millimeters by default.
Having Gerber Plot outputs in mm and drill outputs in inches was
causing tiny misalignments. This change switches Excellon output
units to mm by default.
2024-12-22 00:29:09 +03:00
Marek Roszko a47a186c42 Change output creation flow to open edit dialog before adding 2024-12-21 16:12:20 -05:00
Alex Shvartzkop bfc505503b ODB++: fix scale when exporting in Inches.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19333
2024-12-21 22:52:00 +03:00
Marek Roszko 66b208d547 Don't open the same jobset file twice 2024-12-21 12:02:30 -05:00
Marek Roszko d3eb8b677a Fix extension append check in JSON_SETTINGS::GetFullFilename
Doesn't make sense to return the filename if the filename is "json."
2024-12-21 12:02:30 -05:00
Wayne Stambaugh ca1f51e706 Make settings migration dialog re-sizable.
Also try to improve the initial layout size after changes have been made
to controls outside the base dialog Curt.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19347
2024-12-21 11:55:04 -05:00
Jeff Young bc29c145af Simulation model lib is not sorted, but listbox is.
Don't attempt to use an index from one in the other.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19306
2024-12-21 14:27:52 +00:00
Wayne Stambaugh aaf94ecbad Fix potential crash bug in SCH_PIN::compare(). 2024-12-21 08:12:34 -05:00
Wayne Stambaugh cc4c623bf9 Improve initial size of launcher window.
To avoid clipping the launcher buttons, this size was determined by hand
tweaking on Linux so it may be less than optimal on other platforms.  This
only affects the very first launch of a new version.  Once the frame size
is saved in the configuration file, that is the new size until the user
changes it.
2024-12-21 08:01:18 -05:00
Jeff Young 5b03426e28 Update attributes across units.
It's possible you might want Exclude from Sim to be unit-specific,
but it's pretty hard to imagine how Exclude from Board, BOM,
or DNP could be unit-specific.  (Maybe use a pill cutter on the chip?)

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19029
2024-12-21 12:17:00 +00:00
Seth Hillbrand 5e7b44938f Speed up merge collinear segments routine
Recalculating the update on each change is expensive.  Instead, we can
check to see which tracks might be involved first and then just run the
expensive check on the potentials.  This also allows us to parallelize
the non-changing check

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19340
2024-12-20 23:16:47 -08:00
jean-pierre charras 2df83793e9 French translation update. 2024-12-21 07:56:36 +01:00
Marek Roszko 0396719308 PDF also isn't really text editable 2024-12-20 23:52:19 -05:00
Marek Roszko 8854ba6fcf Remove the edit file option for zip archives in the project tree 2024-12-20 23:46:02 -05:00
Marek Roszko 710ed82a3e Avoid assert with no jobs present 2024-12-20 22:41:12 -05:00
Marek Roszko dcd80ee925 Pass pointer and not copy of struct to avoid job output crash 2024-12-20 22:41:12 -05:00
Wayne Stambaugh c156bdd8af Tag stable version 9.0.0 release candidate 1. 2024-12-20 19:50:33 -05:00
Rob Gilton 89c0664217 kicad-cli: Register --include-excluded-from-bom argument
ea904c9f introduced a new cli argument to `kicad-cli sch export bom`,
but it did not actually register it with the argument parser.  Any
invocation of `kicad-cli sch export bom` currently results in this
error:

  Error: Unhandled exception class: St11logic_error  what: No such
argument: --include-excluded-from-bom

This patch adds the registration.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19335
2024-12-21 00:48:43 +00:00
Marek Roszko b01892943b Fix setting up the ouput type handler instance 2024-12-20 19:36:32 -05:00
Marek Roszko 22d13546fb Some DisplayError -> DisplayErrorMessage 2024-12-20 19:28:30 -05:00
Marek Roszko 4771e573ef Unhide jobsets 2024-12-20 18:49:41 -05:00
Marek Roszko 028afca538 Ensure output path for job output cannot be empty 2024-12-20 18:49:07 -05:00
Jeff Young a048acf9db Don't assume all things with mask layers are in a footprint.
In particular, tracks can now have mask layers.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18878
2024-12-20 22:21:54 +00:00
Jon Evans d83e6326a5 API: Normalize paths to Python interpreter 2024-12-20 17:16:05 -05:00
Jon Evans 3ebe124ae7 API: Add a mechanism to recreate Python environments 2024-12-20 17:07:09 -05:00
Jon Evans 83984dd207 API: pip should prefer binary wheels when available 2024-12-20 16:43:32 -05:00
Wayne Stambaugh 425958d754 Add simple timer profiling to DRC engine.
Remove the PROFILE definitions from the incremental connectivity
profiling so a special build isn't required.  If the starting and
stopping the profile timer is excessive, we can add this back.

(cherry picked from commit 8a09e5f3c3)
2024-12-20 15:57:41 -05:00
Alex Shvartzkop 418c8592aa Allow to control via hole cutting in board body/copper.
- "Fill all vias" option disables the cut in copper layers which is
  important to speed up EM simulations.
- "Cut vias in board body" enables cutting even if copper layer export
  is disabled, which is useful if you're using vias as mounting holes.

Related: https://gitlab.com/kicad/code/kicad/-/issues/18735
2024-12-20 23:28:46 +03:00
Seth Hillbrand 6d99f62c96 Prevent events from firing in the main window during load
Closing the source window while another wx loop is running can lead to
async events being processed, leaving the current stack out of scope

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19341
2024-12-20 11:32:26 -08:00
Seth Hillbrand 2fb8340466 Added Eric's correct name to devs
Move Thomas to former dev status
2024-12-20 10:50:10 -08:00
Jeff Young 756f0c5027 Fix parsing of Altium overbar notation.
Use the AltiumPinNamesToKiCad() algorithm for all conversions,
but don't do any conversions on plain text (RECORD=4).

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19080
2024-12-20 18:32:08 +00:00
Wayne Stambaugh a37d2372cf Fix a wxRecursionGuard crash when library symbol is missing.
The various wxCHECKs in the SCH_PIN object where being raised inside
the SCH_SYMBOL object which would also raise it's own wxCHECK that
would cause a recursion guard failure and segfault.  The offending
wxCHECKs were replaced with null pointer checks.  Missing library
symbol links will be shown with the missing library symbol.

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

Manually cherry picked from cf71e5707e
2024-12-20 11:51:42 -05:00
Wayne Stambaugh 424438ace1 Convert remaining schematic undo/redo calls to commit system.
The schematic commit system currently does not handle renaming symbols
in the symbol library editor or page settings in the schematic editor.
The schematic commit system will have to be modified to support the two
remaining direct calls to the undo/redo code.
2024-12-20 09:54:24 -05:00
Jon Evans eed7222bc3 Fix misplaced continue statement 2024-12-20 09:11:00 -05:00
JamesJCode 3a7aa7b660 Ensure deterministic ordering in cadstar netlist exporter
Also re-enable checking of exporter in qa_cli
2024-12-20 11:50:23 +00:00
Jeff Young a3f69046ba Fix double-click in footprint chooser.
Also fixes the assert when closing the chooser after the 3D
view was shown.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18107
2024-12-20 11:25:31 +00:00
Seth Hillbrand cd40f6046b Update translations 2024-12-19 16:47:59 -08:00
Seth Hillbrand c177c4ccae Translated using Weblate (Danish)
Currently translated at 43.8% (4342 of 9904 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/da/
2024-12-20 01:44:39 +01:00
Seth Hillbrand a5fee4ea44 Translated using Weblate (Norwegian Bokmål)
Currently translated at 42.8% (4243 of 9904 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/nb_NO/
2024-12-20 01:44:39 +01:00
Seth Hillbrand 5ce9c6415e Translated using Weblate (Finnish)
Currently translated at 99.0% (9810 of 9904 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/fi/
2024-12-20 01:44:39 +01:00
Ricky Tigg 0cf6241266 Translated using Weblate (Finnish)
Currently translated at 99.0% (9810 of 9904 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/fi/
2024-12-20 01:44:39 +01:00
Seth Hillbrand ec4249e091 Translated using Weblate (German)
Currently translated at 100.0% (9904 of 9904 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/de/
2024-12-20 01:44:38 +01:00
gfbdrgng 6195ec8319 Translated using Weblate (Russian)
Currently translated at 99.8% (9892 of 9904 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ru/
2024-12-20 01:44:38 +01:00
co8 j 1c21a7c0c0 Translated using Weblate (Japanese)
Currently translated at 99.5% (9862 of 9904 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ja/
2024-12-20 01:44:38 +01:00
gfbdrgng 3baacabb4e Translated using Weblate (Russian)
Currently translated at 98.0% (9714 of 9904 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ru/
2024-12-20 01:44:38 +01:00
ZbeeGin e719b0ed7b Translated using Weblate (Polish)
Currently translated at 100.0% (9904 of 9904 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/pl/
2024-12-20 01:44:38 +01:00
Wellington Terumi Uemura 093922472d Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (9904 of 9904 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/pt_BR/
2024-12-20 01:44:38 +01:00
CloverGit e243076261 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 99.0% (9788 of 9885 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hans/
2024-12-20 01:44:38 +01:00
2tama3 82aea8dcb7 Translated using Weblate (Japanese)
Currently translated at 99.4% (9851 of 9904 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ja/
2024-12-20 01:44:38 +01:00
Pferd O dab6f46b18 Translated using Weblate (German)
Currently translated at 100.0% (9904 of 9904 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/de/
2024-12-20 01:44:38 +01:00
Seth Hillbrand 692c201342 Remove empty msgid
This is a reserved tag in gettext, so if we need an empty string, it
should not be translated
2024-12-19 16:44:14 -08:00
Seth Hillbrand 936f8cf8ec Update compiled header with trace/track fixes 2024-12-19 16:41:09 -08:00
Seth Hillbrand 554d4e8333 Fix missing ; 2024-12-19 16:11:44 -08:00
Seth Hillbrand 527e2e8027 Unify Trace/Track usage
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19329
2024-12-19 15:55:26 -08:00
Seth Hillbrand d166467d64 Update contributors for 2024 2024-12-19 15:34:40 -08:00
JamesJCode c9d74d24f0 Ensure deterministic ordering in orcadpcb2 netlist exporter
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18822
2024-12-19 23:01:32 +00:00
Kliment e3b0b73ae1 About dialog: Update librarian credits with new librarians, update 3d generator URL 2024-12-20 06:18:39 +08:00
Seth Hillbrand c2bfdaa6ae Allow SWIG access to lset
SWIG doesn't like initializer lists because they are compile-time
objects

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19326
2024-12-19 12:13:11 -08:00
Seth Hillbrand ecc83221a1 Update PCM schema to match code
Adds "fab" to type and property "category"
2024-12-19 12:02:05 -08:00
Seth Hillbrand b8a141893b Highlight buses containing net
This closes the tech-debt issue that we did not highlight buses when
their sub nets were highlighted, preventing accurate tracking

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18419
2024-12-19 12:02:05 -08:00
Jeff Young f275509e86 Fix infinite loop. 2024-12-19 18:16:49 +00:00
Wayne Stambaugh c4e2c0d3ec Save schematic symbol field and unit by ordinal sheet instance.
Use the ordinal symbol reference and unit when saving schematics to
prevent file changes instead of the first instance.  The first instance
would change when sheets were moved and the hierarchy order changed.
The ordinal instance is defined as the first sheet instance when the
hierarchy sorted by page number.
2024-12-19 09:19:35 -05:00
Jon Evans d79b736e57 Follow-on fix for 23db5573 2024-12-19 08:46:59 -05:00
Jeff Young b93104f8bb Minor layout fixes. 2024-12-19 12:29:43 +00:00
Jeff Young c12ec3e2ac Cleanup for nullptr hygiene.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19318
2024-12-19 12:29:43 +00:00
Jon Evans 23db557317 Support building with KICAD_IPC_API off
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19321
2024-12-18 21:34:14 -05:00
jean-pierre charras af1a570b17 Eeschema plot: minor fix: use selected color theme to plot DNP marker.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19284
2024-12-18 17:07:15 +01:00
John Beard a20e2b8112 Eeschema: tighten deps of new-symbol dialog
After a refactor in the previous fix, it no longer needed
the access to the lib manager.
2024-12-18 23:54:20 +08:00
John Beard 7223898516 Eeschema: new symbol dialog: allow to set/unset inheritance
This is based around enabling the functionality added by
aris-kimi in https://gitlab.com/kicad/code/kicad/-/merge_requests/1924,
but using the filterable selector widget.
2024-12-18 23:17:43 +08:00
John Beard 50ae2ed825 Eeschema new symbol dialog: update parent symbol infobar when changed
This fixes the bug fixed by aris-kimi in
https://gitlab.com/kicad/code/kicad/-/merge_requests/1924, but adjusts
the logic to work with the new dialog filterable widget.
2024-12-18 23:17:43 +08:00
Wayne Stambaugh 2e7d819b5d Fix thread deadlock when closing the footprint chooser dialog.
Fixing this required disabling the footprint/3D viewer canvas drawing
before destroying the canvas in the dialog dtor.  This in turn required
adding a virtual method to DIALOG_SHIM that can be overridden by the
derived object to allow performing actions during dialog shutdown that
can be problematic when performed in the dialog dtor.  Please note that
this only works for quasi-modal dialogs.  Modal and modeless dialogs
should use close window events.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18107
2024-12-18 08:13:15 -05:00
Marek Roszko 1b05e77fb2 Ensure output path is not empty before trying archive and folder runs 2024-12-18 07:33:36 -05:00
Marek Roszko 4d827a6f20 Overwrite existing fodler for a folder type job output, and add a output precheck for later use 2024-12-18 07:22:11 -05:00
Jeff Young 2ae321084f Collide (and generate violations) based on a well-defined order...
... so that exclusion checking against previously-generated
violations will work.
2024-12-18 12:03:29 +00:00
Jeff Young 0b98706876 Cleanup. 2024-12-18 12:03:29 +00:00
Jon Evans cbbcb5ae32 SWIG: Add Python-native add/sub for VECTOR2
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19308
2024-12-17 23:26:21 -05:00
Jon Evans 801311cf9c PNS: Fix several issues dragging footprints with shapes
Edge cuts, margin, and copper shapes need to be included
in the dragged item set

Shapes on the edge cut layer need to be painted with
their original width, but this has to be done by setting
the width on the router shape, not by re-cloning the
parent shape, because the router may now be moving that
shape.

Footprint drag position calculation needs to act only
on pad SOLIDs, not on any SOLID

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19280
2024-12-17 22:56:15 -05:00
Marek Roszko e6b739776e Let gui jobs actually load the sch/pcb from frame 2024-12-17 10:08:48 -05:00
Marek Roszko cd6d43ee58 Add a simple status for output run 2024-12-17 10:08:47 -05:00
Jon Evans 545c771fd6 API: Search PCM and system paths for plugins too 2024-12-16 23:06:55 -05:00
Jeff Young 8519267c24 Cleanup. 2024-12-16 21:34:24 +00:00
JamesJCode fc23cb1ac8 Remove added-by-not-actually-helpful IDE random include 2024-12-16 21:31:06 +00:00
Jeff Young 36d3cf17eb Table TODOs. 2024-12-16 21:29:31 +00:00
JamesJCode fc932233b1 Warp cursor to origin on single footprint drags
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19100
2024-12-16 19:18:11 +00:00
Jon Evans b432f5d06e ODB++: Fix back-side package mirroring 2024-12-16 13:05:32 -05:00
Jeff Young 2926db778c Bug fixes for rotated tables. 2024-12-16 13:26:48 +00:00
Jeff Young 1e9d9adb09 Remove duplicate-pin-error from severities list.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19293
2024-12-16 13:26:48 +00:00
Jon Evans 6a48e2c35a Use explicit this in capture 2024-12-15 19:48:56 -05:00
Jon Evans 49ffbf5b50 Variant requires explicit include on non-macOS 2024-12-14 19:00:10 -05:00
Jon Evans a91fc0e166 Rename Action Plugins to Plugins in Preferences
The additional word doesn't add any clarity
2024-12-14 18:02:27 -05:00
Jon Evans 9eda526871 API: Show API actions alongside SWIG action plugins in preferences 2024-12-14 18:00:07 -05:00
jean-pierre charras ac73616e7c SCH_PRINTOUT::PrintPage(): update code.
This updated code is not in use. However it is updated just in case.
2024-12-13 10:46:27 +01:00
Alex Shvartzkop add58faa30 Send wxSIGKILL to STEP/OCCT 3D model export process when cancelled.
Also adds a cancel confirmation dialog.

Also fixes an issue where a thread termination error message is shown
when calling Delete(), because the thread has already exited after
Wait().

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19279
2024-12-12 11:57:17 +03:00
Marek Roszko e9e4e7a3ff Actually handle the output config path editing 2024-12-11 22:33:16 -05:00
jean-pierre charras f2cadfae75 French translation update 2024-12-11 16:53:21 +01:00
Marek Roszko 7bbfb1a30a Fix fixing the typo 2024-12-10 19:28:48 -05:00
Seth Hillbrand b47a09c526 Add Croatian language 2024-12-10 16:08:48 -08:00
Seth Hillbrand bf68c92f40 Update translations 2024-12-10 16:05:33 -08:00
Daniel Petrovich 25423edaf4 Translated using Weblate (Serbian)
Currently translated at 9.0% (890 of 9885 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/sr/
2024-12-11 01:03:43 +01:00
HalfSweet 3797302156 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 98.6% (9754 of 9885 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hans/
2024-12-11 01:03:43 +01:00
Pferd O 1cc4b05cd0 Translated using Weblate (German)
Currently translated at 100.0% (9885 of 9885 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/de/
2024-12-11 01:03:43 +01:00
Pferd O 0fbb942991 Translated using Weblate (German)
Currently translated at 99.9% (9884 of 9885 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/de/
2024-12-11 01:03:43 +01:00
Wellington Terumi Uemura a497cf1259 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (9885 of 9885 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/pt_BR/
2024-12-11 01:03:43 +01:00
Henrik Kauhanen 7b56d76d32 Translated using Weblate (Swedish)
Currently translated at 99.4% (9834 of 9885 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/sv/
2024-12-11 01:03:43 +01:00
ZbeeGin b62b43d551 Translated using Weblate (Polish)
Currently translated at 100.0% (9885 of 9885 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/pl/
2024-12-11 01:03:43 +01:00
Ettore Atalan 9ba339cab9 Translated using Weblate (German)
Currently translated at 99.9% (9883 of 9885 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/de/
2024-12-11 01:03:43 +01:00
109247019824 af40493c51 Translated using Weblate (Bulgarian)
Currently translated at 7.0% (699 of 9885 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/bg/
2024-12-11 01:03:42 +01:00
Jon Evans c24103e259 API: logging and logic improvements to Python dep management 2024-12-10 19:02:50 -05:00
Seth Hillbrand 41d4a8caab Adjust DRC clearance for net ties
Items that are part of net ties (pads and copper shapes that connect to
them) should allow connections from any net in the tie.  This prevents
clearance errors from being generated for matched nets

Fixes https://gitlab.com/kicad/code/kicad/-/issues/14008
2024-12-10 15:54:47 -08:00
Seth Hillbrand ad985aff9d Check secondary driver names when merging
If two nets are joined by a global power pin but both have global labels
that override the net name, we still want them to be merged.  This
checks for all net names in the drivers when looking for subgraph
merging candidates

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18092
2024-12-10 15:54:47 -08:00
Seth Hillbrand 937d8c9541 Split out mfg plugins
Mixing user generated plugins with mfg plugins was causing confusion.
2024-12-10 15:54:47 -08:00
Bernhard M. Wiedemann e13df516cb Make tarball creation deterministic
for reproducible builds.

The reproducible code-path assumes GNU tar is used.
If $SOURCE_DATE_EPOCH is not set, it should work the same as before.
2024-12-10 22:42:43 +00:00
Jan Wichmann 68a00c131d kicad: Sort project templates alphabetically by name 2024-12-10 17:43:47 +00:00
jean-pierre charras 5e94d63149 Fix compil warnings (shadowed vars) 2024-12-10 16:07:01 +01:00
Jan Wichmann 6d44d407a7 kicad: Fixed multi-line title in project template selector
Replaces some file extensions with symbols
2024-12-10 14:03:36 +00:00
Jan Wichmann 8d015b2967 pcbnew: Respect options when STEP exporting graphical and text items
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19116
2024-12-10 13:54:47 +00:00
Marek Roszko 02e94d4276 Fix typo breaking svg cli 2024-12-10 07:11:01 -05:00
jean-pierre charras 929b2c06fe Eeschema, export to clipboard: allow using the Cairo printing system.
The Cairo printing system is already used to print to printer, it can be
now used to print to clipboard and fixes the issue with opacity < 1.
However to use it in clipboard, the advanced config needs to set the new
EnableEeschemaExportClipboardCairo = 1 (for now)
The default is false.
2024-12-10 11:40:43 +01:00
JamesJCode 16cbb218c6 Fix another possible property font map crash
Also move this and previous fix to use existing machinery to exchange
the font map entry, rather than repeating the functionality at
multiple call sites
2024-12-09 23:32:58 +00:00
Markus Becker 58feb014fe Fix typo "readabla" in schema 2024-12-09 21:40:39 +00:00
Wayne Stambaugh 0e7c7ba9dd Preserve symbol unit when loading schematic with missing instance data.
This only applies to when there is a single instance of a given schematic.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19073
2024-12-09 15:37:09 -05:00
Jeff Young 1d4945dad5 Implement private flag for SCH_FIELD.
I don't think this was the original intent, but the
GUI for setting the flag leaked out via the
properties inspector so it kind of needs to work.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18760
2024-12-09 20:33:40 +00:00
jean-pierre charras 10cd4582f2 Pcbnew, plot: plot table only on the right layer.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19272
2024-12-09 15:59:55 +01:00
jean-pierre charras 985454fa45 Eeschema: protect against a null pointer (can happen with very old schematics) 2024-12-09 15:57:25 +01:00
Marek Roszko af8f25875b Get the pcb plot dialog hooked up to jobs editing 2024-12-09 07:17:38 -05:00
jean-pierre charras ac00edde48 DIALOG_TEMPLATE_SELECTOR: fix min size of dialog.
finishDialogSettings() must be called after build widgets.
Also always save the last pos/size after closing the dialog.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19270
2024-12-09 10:10:54 +01:00
Jon Evans 96536f380d API: refactor handlers to be slightly less verbose 2024-12-08 20:23:11 -05:00
JamesJCode df872a8af6 Fix segfault when loading symbols with non-default field fonts
We need to update the EDA_TEXT / font map with the new symbol field
address as we delete the transient field used while loading
2024-12-09 00:28:57 +00:00
JamesJCode 0397e7fffe Fix crash loading symbol editor
Crash was because a C-style cast was used to attempt to traverse
a virtual object hierarchy. In this instance, I think we do need
to use a dynamic_cast to get the right type out.
2024-12-09 00:11:01 +00:00
Jeff Young 753d385473 Reduce dependency on dynamic_cast.
Also switches to checking __clang__ instead of __WXMAC__.
2024-12-08 21:46:54 +00:00
Jeff Young 04b5ccbdb2 Reduce dependency on dynamic_cast. 2024-12-08 21:46:54 +00:00
Jeff Young 0bcf6000a4 Formatting. 2024-12-08 21:46:54 +00:00
Jon Evans 78f01b829d Remove library description and keywords from footprint comparator
These properties are not displayed or editable in
the board editor, it makes no sense to report them
as having changed in the library.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19259
2024-12-08 11:18:58 -05:00
Jon Evans 97185ca623 Ratsnest: account for coincident anchors on different layers
When a net happens to have only coincident items on different
layers, the triangulator was not considering the item layers
when optimizing them away.  Add a special case to ensure that
the ratsnest edges will exist in this situation.

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

(cherry picked from commit 724feccdb8)
2024-12-08 11:09:40 -05:00
jean-pierre charras 8f8c9e2605 Move 2 violations about text to a better section in Violation Severity Panel 2024-12-08 16:33:04 +01:00
Jon Evans 8436b80bdd Do not save fields_autoplaced for text with no fields
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19159

(cherry picked from commit 96378dd5bc)
2024-12-08 10:11:49 -05:00
jean-pierre charras 8d83df3264 DIALOG_TRACK_VIA_PROPERTIES: blind/buried vias: fix not working layer sel. 2024-12-08 15:53:13 +01:00
JamesJCode 29798a6400 Allow DRC markers to be selected with area selection
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19258
2024-12-08 14:10:07 +00:00
Jon Evans 603c793f7e Fix off-by-one in LSET::Flip
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19265
2024-12-08 08:26:40 -05:00
jean-pierre charras 619c116a2e Fix a drc issue and a QA test after commit 57127f7d 2024-12-08 09:47:16 +01:00
Dhineshkumar S 57127f7d12 Add DRC warning for incorrectly mirrored text 2024-12-08 05:00:38 +00:00
jean-pierre charras d51c7372b4 Eeschema, *.kicad_pro file: Use for the root sheet the canonical name "Root"
Previously, the translated name was stored in file.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19262
2024-12-07 16:04:35 +01:00
Jeff Young d1b1ae13f1 Fix typo. 2024-12-07 14:11:24 +00:00
Jeff Young f058a4ed26 File update from build. 2024-12-07 13:59:31 +00:00
Jeff Young 0f8538c709 Manual cherry-pick of 1ce594d689.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19260
2024-12-07 13:51:04 +00:00
Jeff Young 672edfdffd Ignore invisible pads in enumeration tool.
Also, draw pad-renumbering-lines based on mouse pos, not
snapped mouse pos.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18750
2024-12-06 22:07:30 +00:00
JamesJCode 1b8df0df36 Remove file added in error in last commit 2024-12-06 22:04:27 +00:00
JamesJCode 669be5378c Allow selection of PCB_MARKERs when not on active layer
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19258
2024-12-06 22:02:06 +00:00
John Beard d168e0139c Eeschema: avoid crash on save if a polyline is empty
This normally should never happen, but could do in limited cases such
as from bad imports or CI/testing inputs. It's probably still a bug
in any real design usage, but assert and continue instead of crash.

Functional cherry-pick of 66b392cdca
2024-12-07 04:05:19 +08:00
Jeff Young 97439d2cf6 Handle group duplicate in footprint editor.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19245
2024-12-06 18:24:26 +00:00
Jeff Young 9c338c12c7 Typos. 2024-12-06 18:24:26 +00:00
Alex Shvartzkop b41198035e Improve P-curves option name in STEP export. 2024-12-06 21:01:20 +03:00
Alex Shvartzkop aafa835d8e Split STEP export dialog options into board/conductor categories.
Also change "copper" to "conductor" in names and tooltips.
2024-12-06 21:01:20 +03:00
jean-pierre charras 776075ee35 Eeschema, fille polygons: fix HitTest inside polygon.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19255
2024-12-06 18:09:17 +01:00
jean-pierre charras 5feeea8310 Fix compil warnings 2024-12-06 18:07:37 +01:00
Jeff Young 7a4b3602b9 Reduce dependency on dynamic_cast.
(3DViewer crosses compile boundaries when run from
CvPCB.)
2024-12-05 18:17:02 +00:00
Jeff Young 9b4c1024c9 Default focus for Enumerate Pads dialog. 2024-12-04 17:49:42 +00:00
Jeff Young a910eaf081 Hit-test pads before computing their anchors.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19238
2024-12-04 17:41:53 +00:00
Jeff Young 6150586f01 Don't change selection after selecting find-next hit.
(It will just wipe out the hit.)

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19233
2024-12-04 14:11:23 +00:00
Jeff Young 38f9b85205 Formatting. 2024-12-04 14:11:23 +00:00
Jon Evans 98ae574c78 API: Add PCB editor visible and active layer setters/getters
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18268
2024-12-03 21:17:48 -05:00
Jon Evans 044643b164 ODB++: Fix handling of polygon outlines
The ODB format only supports the concept of a filled polygon,
not one with a stroke outline.  Use line features for these
instead.
2024-12-03 19:03:55 -05:00
Jon Evans 82fc1408e2 Fix a few issues with recent commits 2024-12-03 18:07:23 -05:00
JamesJCode 23b1ad604b Fix assert when placing power symbols 2024-12-03 22:11:05 +00:00
Seth Hillbrand bf6a255a3e Move more elements from fixed size arrays
Refactor layer data storage from compile-time array sizes to run-time
map storage
2024-12-03 13:25:11 -08:00
Seth Hillbrand d04a20b765 Fix crash in symbol editor GetlibraryNames
GetLibrary is allowed to return null, so we need to check before
dereferencing

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

(cherry picked from commit 5552d63f70)
2024-12-03 11:51:15 -08:00
Jeff Young ce20689caf Use old algorithm when allow-external-fillets is on.
Otherwise we'll trim them off.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19121
2024-12-03 16:55:59 +00:00
John Beard 04d7bcc45e ODB++: don't overrun the bezier point list
This produced a spurious point (at best, a crash at worst)
when exporting bezier curves.

Relates-To: https://gitlab.com/kicad/code/kicad/-/issues/18706
2024-12-03 21:26:59 +08:00
Jeff Young 610d497600 Fix enclosedByArea for footprints.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19137
2024-12-03 12:43:59 +00:00
John Beard fee1d115a6 Fabmaster: unify text settings, adjust rotations.
This is a little tricky, but this seems to be the simplest
way to approximate the right text placement.

There are still some minor offsets and text size adjustments,
which might be possible to compensate for by experimentation.
2024-12-03 20:08:12 +08:00
John Beard 7d2b500a8c Fabmaster: some circles on silkscreen seem to be filled 2024-12-03 20:08:12 +08:00
John Beard 54b223a5be Fabmaster: perform y-flip for back-layer arcs/circles in footprints
I'm not exactly sure where the flip comes in, but it seems to be
universal at least across various files:

* RK3588
* BeagleBone Black
* Some local boards as well

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/19224
2024-12-03 20:08:12 +08:00
John Beard 3521e78a0e Fabmaster: put DISPLAY_TOP/BOTTOM on silkscreen layers
These layers seem to usually be used for silkscreen
elements as well as SILKSCREEN_TOP/BOTTOM
2024-12-03 20:08:12 +08:00
John Beard 1d0ba992da Fabmaster: don't show default refdeses
All the footprints have a ref-des field by default in KiCad, but if the
silkscreen text isn't present in the imported file, we should hide it.
If we see a silkscreen refdes, _then_ show it.
2024-12-03 20:08:12 +08:00
John Beard e2136db5c2 Fabmaster: handle squares, oblongs, and regular polygons.
Fabmaster supports at least triangles, hexagons x and y, octagons
and diamonds.
2024-12-03 20:08:12 +08:00
John Beard 29a66714cd Fabmaster: omit DEVICE TYPE, COMPONENT VALUE, TOLERANCE texts
These seem like footprint fields, but there is no obvious way
to associate them. Dumping them on the the silk/fab layers creates
huge overlapping spam on the board, so for now, just leave them
out.

Allegro has a more "2D" layer system with classes (e.g. DEVICE TYPE)
and subclasses (SILKSCREEN_TOP), which make things difficult to
make map cleanly to KiCad layers.
2024-12-03 20:08:12 +08:00
John Beard 8152ec06d1 Fabmaster: fix some text import and unify item creation
Some texts were left out of the GRAPHIC_ITEM -> BOARD_ITEM
dispatch in some paths. Unify this item creation to avoid
this possibility (and reduce duplication).
2024-12-03 20:08:12 +08:00
John Beard 9a68a9c310 Fabmaster: better detection of closed vs open polygons
This seems to be a lossy export conversion - it's not possible
to tell apart a closed zone and a line that happens to end where
it started.

Look for features that indicate that a sequence of graphics are
"open" and should be rendered as a set of discrete graphics,
or "closed" and should be a single polygon.

At least for objects in the BeagleBone Black export, this seems
to work well.
2024-12-03 20:08:12 +08:00
John Beard c22798ec72 Fabmaster: handle FIG_RECTANGLE 2024-12-03 20:08:12 +08:00
John Beard faae009dba Fabmaster: use User layers for unknown layers
This is a bit of a hack as it will still only allow
9 more layers and drop the rest, but it's a start and
allows testing using the Beaglebone Black board and the
board in issue 19174.
2024-12-03 20:08:12 +08:00
John Beard 6cfcba9b37 Fabmaster: handle circles
Some circles are represented as ARC with start == end, but there
are also CIRCLE elements.

For consistency with the existing code, actually use 360-degree
arcs for circles (which also allows them to be used in polygon
holes if needed)
2024-12-03 20:08:12 +08:00
John Beard bac027881a Fabmaster: skip components with no x, y, or rotation
These appear to be 'unplaced' components, which we don't really
have a good way to represent at the moment. For the time being,
skip them.

Relates-To: https://gitlab.com/kicad/code/kicad/-/issues/19174
2024-12-03 20:08:12 +08:00
John Beard 926ef7677b Fabmaster: never add null holes to polygons
By adding points to holes as we go, we leave ourselves open
to adding invalid (<3 point) holes to the polygons. This causes
crashes if it happens, so we should never allow it to happen.

Instead of building holes in-place, construct them externally
and only add them if they are valid.

This probably wouldn't actually happen for a valid Fabmaster
file, but if it did, it would be bad new, and we shouldn't leave
crashable pathways facing user input.
2024-12-03 20:08:12 +08:00
John Beard 8a56d3e2b9 Fabmaster: handle circular zone cutouts 2024-12-03 20:08:12 +08:00
jean-pierre charras 1942f2f227 PNS: Ensure Pop-up "Track violates DRC" is erased at end of drag command.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19234
2024-12-03 10:56:27 +01:00
Jon Evans ecdc7ee08f Add a null type for libeval / std::optional support
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19158
2024-12-02 21:21:18 -05:00
Jon Evans 81b1200747 Fix computing anchors for dragged duplicated items
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18995
2024-12-02 16:06:49 -05:00
Jon Evans 38c00c5d58 Fix off-by-one in IsCopperLayer
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19211
2024-12-02 15:40:45 -05:00
Jeff Young 4883c27972 Handle ERC/DRC assertions in drawing sheet.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19132
2024-12-02 20:13:43 +00:00
Alex Shvartzkop 55ca13e7cf Revert "Support hidpi in Cairo GAL canvas; performance improvements."
This reverts commit 8e90063258.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19150
2024-12-02 22:44:20 +03:00
Jon Evans e4ac4e1d34 Fix tuning pattern start layer 2024-12-02 13:51:07 -05:00
Jon Evans cd36edd152 PNS: Fix following of locked segments
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19186
2024-12-02 13:45:47 -05:00
Jon Evans 196368eb86 CHANGED: Drawing tools can disable H/V/45 snap with Ctrl key
Also disable 45-degree snapping for rectangle shapes; it is
not very intuitive to be limited to drawing squares when this
setting is on.
2024-12-02 12:04:42 -05:00
Jon Evans bf8a3c8afc CHANGED: Make polygon point editing UX more intuitive
Polygon segment dragging no longer pays attention to the
H/V/45 global setting, and now always enforces a drag normal
to the original segment.  Polygon vertex editing no longer
enforces a H/V/45 constraint, instead relying on the grid and
object snap.
2024-12-02 12:04:42 -05:00
Seth Hillbrand ab3f597871 Fix ReorderLayerData to handle sparse maps
aReorderMap might only have a few layers needing changing, so preserve
existing map if it doesn't exist in the new map

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19185
2024-12-02 09:01:34 -08:00
Jon Evans 49813dabd4 Set a more reasonable default chamfer size for small segments 2024-12-02 11:33:47 -05:00
Jon Evans f504a07556 ODB++: Add to CLI and jobs system 2024-12-02 10:53:01 -05:00
Jeff Young 76fc7d0c24 Set correct default when re-showing ERC dialog.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19120
2024-12-02 13:48:57 +00:00
Wayne Stambaugh 8498889da2 Show save modified dialog on schematic sheet file rename.
Renaming a schematic sheet file can not be undone so it doesn't go
through the commit system.  This meant that the schematic modified
flag was not getting set.  If the only edit performed was renaming
a sheet file, the save modified flag would not get displayed when
closing the schematic editor.
2024-12-02 08:39:08 -05:00
Jeff Young bb533f3f4a Fix multiple-footprint drag.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19101
2024-12-02 12:43:57 +00:00
Jon Evans 4ae7381fcd ODB++: Include footprint fields as properties 2024-12-02 00:11:25 -05:00
Jon Evans b33f207676 ODB++: Set more verbose meta info in SAVE_APP rather than ODB_SOURCE 2024-12-01 23:39:56 -05:00
Jon Evans 4f4a8dec24 Remove OCC version build warning 2024-12-01 23:39:56 -05:00
Jon Evans 9499eda7ef API: Implement saving selection and board as string 2024-12-01 21:37:31 -05:00
Seth Hillbrand b6a872abca Update translations 2024-12-01 17:26:08 -08:00
2tama3 668ecced4a Translated using Weblate (Japanese)
Currently translated at 99.7% (9856 of 9883 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ja/
2024-12-02 02:25:01 +01:00
___davidpr 577718bcb7 Translated using Weblate (Serbian)
Currently translated at 8.9% (889 of 9883 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/sr/
2024-12-02 02:25:01 +01:00
co8 j 44a4c48d08 Translated using Weblate (Japanese)
Currently translated at 99.7% (9856 of 9883 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ja/
2024-12-02 02:25:00 +01:00
2tama3 986d75f33f Translated using Weblate (Japanese)
Currently translated at 99.7% (9856 of 9883 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ja/
2024-12-02 02:25:00 +01:00
co8 j d5b75f3de0 Translated using Weblate (Japanese)
Currently translated at 99.7% (9854 of 9883 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ja/
2024-12-02 02:25:00 +01:00
John Beard 51fdcf687d Translated using Weblate (German)
Currently translated at 100.0% (9883 of 9883 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/de/
2024-12-02 02:25:00 +01:00
G.B b980e05665 Translated using Weblate (Hebrew)
Currently translated at 5.5% (545 of 9883 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/he/
2024-12-02 02:25:00 +01:00
ZbeeGin ed76e51413 Translated using Weblate (Polish)
Currently translated at 100.0% (9883 of 9883 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/pl/
2024-12-02 02:25:00 +01:00
Pferd O 7947dfcdd8 Translated using Weblate (German)
Currently translated at 100.0% (9883 of 9883 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/de/
2024-12-02 02:25:00 +01:00
Henrik Kauhanen b2205d1af1 Translated using Weblate (Swedish)
Currently translated at 99.4% (9832 of 9883 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/sv/
2024-12-02 02:25:00 +01:00
ZbeeGin 6396841abc Translated using Weblate (Polish)
Currently translated at 99.6% (9850 of 9883 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/pl/
2024-12-02 02:25:00 +01:00
co8 j 7e8ca7b8d0 Translated using Weblate (Japanese)
Currently translated at 99.6% (9850 of 9883 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ja/
2024-12-02 02:25:00 +01:00
Pferd O c7fce1fe15 Translated using Weblate (German)
Currently translated at 99.9% (9878 of 9883 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/de/
2024-12-02 02:25:00 +01:00
Wellington Terumi Uemura ea16793b35 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (9883 of 9883 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/pt_BR/
2024-12-02 02:25:00 +01:00
2tama3 0d85427364 Translated using Weblate (Japanese)
Currently translated at 99.3% (9821 of 9883 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ja/
2024-12-02 02:25:00 +01:00
Pferd O f10ab8432c Translated using Weblate (German)
Currently translated at 99.7% (9861 of 9883 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/de/
2024-12-02 02:25:00 +01:00
2tama3 f0204c1501 Translated using Weblate (Japanese)
Currently translated at 98.9% (9784 of 9883 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ja/
2024-12-02 02:24:59 +01:00
Ettore Atalan d084cdf845 Translated using Weblate (German)
Currently translated at 99.7% (9861 of 9883 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/de/
2024-12-02 02:24:59 +01:00
Jon Evans 57aeb8dcd4 Fix 5cdff00e for non-mac 2024-12-01 17:17:34 -05:00
Jon Evans 92ef577aa9 API: Enable strict QA for Footprint
Since 9b1b3187 removed the Footprint field missing from the API,
we can now do full testing.
2024-12-01 16:02:32 -05:00
Jon Evans 499ed2ef93 Fix similar labels ERC to catch all errors
Logic issue with test was causing QA failures on macOS
due to the order of item iteration changing between
the QA test and eeschema standalone, and the test not
checking more than one possible mismatch per normalized name.
2024-12-01 15:50:40 -05:00
Jon Evans 5cdff00e98 Fix qa_cli running on macOS with the KICAD_RUN_FROM_BUILD_DIR flag set 2024-12-01 15:50:40 -05:00
Jon Evans 1198233464 Enable qa_ngspice to run from build dir on macOS 2024-12-01 15:50:40 -05:00
Jon Evans 9b1b318736 REMOVED: Footprint field from footprints
This field was redundant (was generally set to the footprint's LIB_ID)
but also buggy (not guaranteed to contain the footprint's LIB_ID)
and confusing (not a way to change the footprint's LIB_ID).
2024-12-01 15:50:40 -05:00
Jon Evans 719f4eabd9 API: Add message skeleton for sexpr serialization 2024-12-01 15:50:40 -05:00
Jeff Young 5caaf22949 Don't hang when trying to paste image as text.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19079
2024-12-01 19:06:46 +00:00
Wayne Stambaugh 302dfb4623 Fix crash when changing sheet file name and search panel is visible.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19232
2024-12-01 13:09:59 -05:00
Jeff Young ae6171a988 Match filters against full-id and lib-item-name.
Also, filter matching is case-insensitive.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19074
2024-12-01 17:29:16 +00:00
Jeff Young 8e8d2b1dd7 Tables need a PrintBackground() for non-cairo printing. 2024-12-01 17:29:16 +00:00
sam eba74c3c67 Fix crash on schematic sheet file rename.
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/18965
2024-12-01 08:14:48 -05:00
jean-pierre charras d3bcc81d5d libkimath: fix a link issue on mingw/msys2 build.
Remove option "use Clipper1" (now outdated) on all platforms.
Use of advanced config created the issue, so it is just disabled on msys2.
Should not change anything on other platforms.
2024-12-01 09:38:49 +01:00
Jon Evans 13625daeca API: Implement dimension serialization 2024-11-30 17:22:15 -05:00
jean-pierre charras d6df4dc341 EDA_VIEW_SWITCHER: very minor fix: select by default the first in list
This is also the lasted selected option, so no change by default
2024-11-30 19:24:24 +01:00
jean-pierre charras 4c632990ff QA: fix build issue when KICAD_DRC_PROTO is ON (OFF by default) 2024-11-30 18:26:28 +01:00
John Beard c0db57ea93 Pcbnew: fix last row/col table painting
Use the exact same logic as in eeschema, where this already work
perfectly.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/19226
2024-11-30 18:56:02 +08:00
Jon Evans 08b5992f04 Suppress some SWIG warnings we don't care about 2024-11-29 21:25:29 -05:00
Jon Evans 49d5e64428 API: Add initial definitions for dimensions 2024-11-29 21:18:51 -05:00
Jeff Young 410868253a Plot labels in colour.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19040
2024-11-29 17:29:24 +00:00
Marek Roszko 904e0cd87e Silence build warning about int to double cast 2024-11-29 10:55:21 -05:00
Jon Evans c8f1f2e936 api_utils isn't supposed to depend on KICAD_IPC_API 2024-11-29 10:44:45 -05:00
Lucas Gerads ef8f8b837a Eeschema: Only populate spice code in the simulation dialog code field
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18771
2024-11-29 14:27:23 +00:00
John Beard 44ca798925 Pcbnew IO: Use fill yes/no universally
There was a motion towards fill solid/none around
2020 (c.f. b31e97cfed),
but it was only for PCB_SHAPE.

Use yes/no universally (solid/none parsing the same way
as currently). In future if there are other fill modes
for these shapes, they can use the same pattern as ZONEs
do now: (fill yes) (hatch etc ....) or similar.

Relates-To: https://gitlab.com/kicad/code/kicad/-/issues/15232
2024-11-29 20:17:51 +08:00
John Beard ab11317d7b Pcbnew IO: normalise keep_text_aligned properties
Use a proper bool (yes/no) rather than a bare keyword.

Relates-To: https://gitlab.com/kicad/code/kicad/-/issues/15232
2024-11-29 19:28:36 +08:00
John Beard c9164272ab Pcbnew: line polar edit: correct endpoint calculation
The translation vector went missing so it was wrong for lines
not starting at (0, 0).

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/19220
2024-11-29 19:05:40 +08:00
John Beard 7e75fe19de Pcbnew: mid/endpoint was confusing
Technically, any endpoint is equivalent for the
geometry that you get out. But "endpoint" sounds like
it means the point that is not the start point.

So change the tool to explicitly take the start and
midpoint as inputs.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/19221
2024-11-29 19:05:40 +08:00
Jon Evans 8ff3ef5fd5 API: Add ExpandTextVariables 2024-11-28 19:21:18 -05:00
Jon Evans 7168364445 API: Include textbox border in GetTextAsShapes 2024-11-28 18:17:59 -05:00
Jon Evans 0d7588bdfb API: Improve handling of compound shapes 2024-11-28 17:58:23 -05:00
John Beard 7a9cb919dc Use the bds() function in the DRC dialog
It should be the same object either way, but it's easier
to figure out if it's the same.

Also break out a variable.
2024-11-29 04:12:10 +08:00
John Beard 13a60be892 Demos: resave video project 2024-11-29 04:12:10 +08:00
John Beard 07e5aace3d Demo: resave Stickhub project 2024-11-29 04:12:09 +08:00
Jeff Young d5ecb4ab55 Handle degenerate polygons in RTrees.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18600
2024-11-28 18:05:31 +00:00
Jon Evans 32684decbb API: Move locking to the PCB text objects 2024-11-28 11:48:01 -05:00
Jon Evans 523fcc039f API: Move trace macro to utils 2024-11-28 11:28:06 -05:00
Jon Evans 3129e072c4 API: Move graphics and text handling to common
Required moving API_HANDLER_COMMON out of kicommon
2024-11-28 11:28:06 -05:00
John Beard 013f66adb4 Pcbnew: remove accidental logging inclusion 2024-11-28 22:37:24 +08:00
John Beard 0896367753 Pcbnew: only show point editor chamfer where useful
The chamfer corner action is only meaningful for polygons
and zones, so only enable it there.

Also move some static logic out of of the interface
of PCB_POINT_EDITOR and use SELECTION_CONDITIONS
like other similar code.
2024-11-28 20:18:00 +08:00
John Beard dad07f590a Pcbnew: bezier tool fix width on subsequent curves
This got broken by the changed start logic in a3f239ce5e.
2024-11-28 20:18:00 +08:00
Jeff Young 6686ade45b Remove (somewhat atrophied) manual pretty printing.
Also fixes a bug where the pretty printer didn't insert
linebreaks for a forest (it assumed a single tree root).

Also further regularises bool and quote formatting.
2024-11-28 11:08:16 +00:00
Jeff Young dfbbb5afa1 Pretty-print clipboard data. 2024-11-28 11:08:16 +00:00
John Beard f9238f58f4 Pcbnew: rebuild layer preset list on language change
And initialise from the translations in the first place.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/19181
2024-11-28 07:13:13 +08:00
John Beard 37469b00b2 Pcbnew: fix track start property display
The display in the properties manager for arc tracks
was wrong. Implement a set of Get/SetStartX/Y functions
for the traces, to match the End functions.

This is needed because PCB_ARC overrides GetPosition
to return the arc center, not the start position (whereas
PCB_TRACK does return the start for GetPosition)

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/19215
2024-11-28 05:56:40 +08:00
John Beard ed9e66399e Pcbnew: negative layers are not copper layers, even or not
UNDEFINED_LAYER is -2, so simple checking evenness isn't
enough to check if it's copper or not. Notciable when the
FABMASTER import puts things on UNDEFINED_LAYER while it's
processing items.
2024-11-28 04:36:12 +08:00
John Beard a3f239ce5e Bezier: improve double click action
Act more like the line chain tool - a doubleclick finishes
the current curve and resets into non-chained mode
to start again.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/19204
2024-11-28 04:36:12 +08:00
John Beard 6bd69a3f77 Bezier/line: add delete last point to context menu
These tools support this action, so add to the menu to make it
more discoverable that the actions exist.
2024-11-28 04:36:12 +08:00
John Beard f15c5ccfdc Pcbnew: beziers - distinguish cancelled from reset on Esc
When pressing escape, act like the line tool, with two possibilities:

* The current bezier isn't "started", in which case, cancel out of
  tool entirely.
* The current bezier is "started", in which case cancel it, but
  stay in bezier mode to draw another one from a new starting position.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/19206
2024-11-28 04:36:12 +08:00
John Beard 8de99b8077 Cmake: avoid policy warning in newstorke upgrade target 2024-11-27 19:21:36 +08:00
jean-pierre charras 8470229767 Printing system: Honor the Print background color option
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19167
2024-11-27 11:13:20 +01:00
jean-pierre charras e96774bc1f Pcbnew: fix not displayed filled areas of zones when selected. 2024-11-27 09:41:01 +01:00
Jon Evans 07f0b096ba API: Move graphic shapes to common 2024-11-26 18:55:20 -05:00
jean-pierre charras 6ac528d5d8 SCH_IO_KICAD_SEXPR_PARSER::parseSchBezier(): fix missing segment approx build
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19203
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19202
2024-11-26 15:59:08 +01:00
Jon Evans dd8f7901b1 Multichannel: use GRID_TRICKS for grid
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19067
2024-11-25 18:51:54 -05:00
Jeff Young 8246637d69 Make sure descendants get new UUIDs when pasting.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19052
2024-11-25 19:10:13 +00:00
Jeff Young fa52d68268 Fix pretty-printing of UUIDs and bools. 2024-11-25 19:10:13 +00:00
Jon Evans d68fc87308 ODB++: Package names also can't have whitespace 2024-11-25 11:58:50 -05:00
Jeff Young 30a7f537d7 Selection must be uniformly tracks/vias for multi-drag.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19166
2024-11-25 16:20:51 +00:00
aris-kimi 44d19c20b0 Fixes treePane widget reference in Symbol Editor 2024-11-25 12:44:45 +00:00
Jon Evans d8131c53a0 Fix missing assignment of SHORT_REFERENCE value
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19196
2024-11-24 18:41:58 -05:00
Jon Evans babdf43f86 Multichannel: restore temporary RA name if one was set 2024-11-24 18:24:09 -05:00
Jon Evans d64b17050d API: Serialize PCB_TEXTBOX 2024-11-24 17:25:56 -05:00
Jon Evans c0d43c0c0c API: Add serialization of FP_3DMODEL 2024-11-24 15:53:10 -05:00
Alex Shvartzkop 5323c8587a Optimize ConvertImageToLibShapes for EasyEDA/LCEDA schematic import.
Don't sort all symbol draw items after adding each draw item.

-75% CPU usage on typical schematic imports.
2024-11-24 20:53:19 +03:00
Jon Evans d34d2c09f8 Multicahnnel: remove redundant COMMIT
Seems to not be needed anymore, after 69fe1368

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19193
2024-11-24 12:20:55 -05:00
Jon Evans 09c327e02f Multichannel: replicate free tracks and vias
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19097
2024-11-24 12:10:14 -05:00
Jon Evans bf082dec73 Multichannel: pick source area interactively if needed 2024-11-24 12:10:14 -05:00
Jon Evans 69fe1368f1 Multichannel: support free items; fix group handling
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19096
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19095
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19097
2024-11-24 12:10:14 -05:00
Jon Evans d9f5c72877 Multichannel: copy all field text attributes
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19087
2024-11-24 12:10:14 -05:00
Jeff Young 992e6f7bc2 Code style 2024-11-24 12:10:14 -05:00
aris-kimi e917e03a10 Fix some typos 2024-11-24 16:44:01 +00:00
jean-pierre charras 090500789e Simulator: fix crash when deselecting the Probe Tool in some cases.
If a schematic item was selected, when activating the probe tool from the
simulator, and deactivating from the Select Item sch editor tool, a crash
happened.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18547
2024-11-24 10:30:30 +01:00
John Beard 02c4cab224 Fabmaster: map layers in the v9 way
In the layer_order vector, the first is F_Cu, the last is
B_Cu, and everything else increments in steps of two.

The file in #19174's file showed this problem, but it's not
unique to that one, and it's a separate 8.99 issue.

Relates-To: https://gitlab.com/kicad/code/kicad/-/issues/19174
2024-11-24 14:35:46 +08:00
John Beard 4d2d70ce22 Fabmaster: catch illegal parses up front
Parsing an empty string as double/int produces uninitialised data.
That is likely to cause an undefined amout of chaos later on,
so catch it explicitly with a wxCHECK.

It's still something that shouldn't happen, and could still cause
chaos, but it's at least deterministic. It also avoids putting
gigantic numbers into things that don't expect them. For example
normalising an angle of 1e303 is functionally an infinite loop.

This happens at least in files with missing fields in rows,
like in #19174's file, line 4:

S!U2306!IC!!!!!!SOT_23_5!!!!!SGM2576/TT9107!!!

The file is still broken, but now it loads.

Relates-To: https://gitlab.com/kicad/code/kicad/-/issues/19174
2024-11-24 14:03:57 +08:00
Jon Evans 2355f76e36 API: Add zones to item handler 2024-11-24 00:20:28 -05:00
Jon Evans af91519e06 API: Implement Deserialize for ZONE 2024-11-23 12:06:54 -05:00
Jon Evans 4ab8c23851 ZONE: Revert accidental formatting changes 2024-11-23 11:08:30 -05:00
Jon Evans 62df972c2d API: implement serialization for ZONE 2024-11-23 11:04:34 -05:00
Alex Shvartzkop 0efc17ccc0 Show empty field for unconstrained length in length tuning properties.
Because it's confusing when the dialog shows last target value, but it
doesn't apply when you start tuning.

Also the last values are remembered in DRAWING_TOOL::PlaceTuningPattern
now, instead of global variables.

Related: https://gitlab.com/kicad/code/kicad/-/issues/18979
(cherry picked from commit a950d55cb2)
2024-11-23 18:11:53 +03:00
Alex Shvartzkop 78b2e53777 Length tuning workflow improvements:
-Allow changing length tuning settings before tuning has been started
-Do not exit out of the length tuning tool after each placement
-Keep specified settings between pattern placements

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18979
2024-11-23 17:26:14 +03:00
Alex Shvartzkop 74a507249d Try to work around AppleClang 15 compiler bug.
The error message is:
reference to local binding 'pinIt' declared in enclosing function 'ERC_TESTER::TestPinToPin'
2024-11-23 14:52:41 +03:00
Alex Shvartzkop 1997d8410e Fix "CheckMenuItem() failed, item not in the menu?" assert in net inspector on MSW.
Menu items should be added to the menu first and then checked on MSW.
2024-11-23 14:03:02 +03:00
Alex Shvartzkop fee8560079 Don't modify m_selection while iterating over it in PCB editor.
This caused a fatal assert when selecting connected tracks with tuning patterns.
2024-11-23 13:54:03 +03:00
Daniel Treffenstädt 81ecccb21c Fixed: Fewer ERC items for pin connection conflicts in larger set of conflicting pins 2024-11-22 23:26:31 +00:00
Jeff Young 9e7ffc6ff0 Load input-specific project; don't use default (blank) project
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19176
2024-11-22 21:29:05 +00:00
jean-pierre charras a76845d1e6 Eeschema, export to clipboard: fix wxWidgets alerts in Debug mode. 2024-11-22 19:48:11 +01:00
jean-pierre charras ac0113eb57 French translation update 2024-11-22 12:55:15 +01:00
jean-pierre charras 49fffd94d4 EEschema, export to clipboard: fix in correct drawings:
Fix incorrect symbol body color
fix broken arcs.
2024-11-22 12:52:24 +01:00
Jon Evans 61e5b10031 ODB++: Fix net name whitespace and missing HDR line 2024-11-22 00:05:17 -05:00
Jon Evans dd65a44dd6 API: Add initial spec for ZONE serialization 2024-11-21 22:09:14 -05:00
Seth Hillbrand d7137c4a05 Cleanup VIEW class
Ununsed m_dynamic class variable
2024-11-21 18:59:48 -08:00
Jon Evans 10bd1b5c2a API: Fix via layerset handling
PCB_VIA doesn't use its padstack's layerset,
Make the serialization consistent and ensure that the
padstack layerset is always empty.
2024-11-21 21:06:20 -05:00
Seth Hillbrand 76176274cf Improve function naming
Having sortLayers and SortLayers in the same class was confusing.  Also
removed the asserting calls in view updates
2024-11-21 18:04:23 -08:00
Seth Hillbrand 9e72d426db Remove C macro in favor of class template 2024-11-21 18:04:23 -08:00
Jon Evans d90f2842c8 API: Add layerset to via padstack serialization 2024-11-21 19:20:29 -05:00
Seth Hillbrand 9c08354485 More VIEW refactoring
Move m_layers into map, add layer existence checks.  Skip layer sorting
overhead for OpenGL display b/c we use z-level for it anyway
2024-11-21 15:41:56 -08:00
Jon Evans 0e1715c7a0 ODB++: disable some matrix info that is not applicable 2024-11-21 17:02:59 -05:00
Seth Hillbrand 9dfcb6a362 Cleanup ViewGetLayers()
Old style c-array replaced with vector returns
2024-11-21 13:18:36 -08:00
Seth Hillbrand 838c3c2503 Update translations 2024-11-21 09:28:24 -08:00
Pablo Bianchi dcf1b5baeb Translated using Weblate (Spanish)
Currently translated at 87.6% (8646 of 9862 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/es/
2024-11-21 18:27:15 +01:00
CloverGit cab4bca73d Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 99.0% (9771 of 9862 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hans/
2024-11-21 18:27:15 +01:00
Jan Straka 6582108214 Translated using Weblate (Czech)
Currently translated at 77.3% (7632 of 9862 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/cs/
2024-11-21 18:27:15 +01:00
Marco Ciampa 44608e26c8 Translated using Weblate (Italian)
Currently translated at 89.8% (8864 of 9862 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/it/
2024-11-21 18:27:15 +01:00
Toni Laiho 5270ddc840 Translated using Weblate (Finnish)
Currently translated at 99.8% (9845 of 9862 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/fi/
2024-11-21 18:27:15 +01:00
Marco Ciampa 4a63e9451d Translated using Weblate (Italian)
Currently translated at 89.1% (8793 of 9862 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/it/
2024-11-21 18:27:15 +01:00
CloverGit 15691e98a3 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 98.8% (9744 of 9862 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hans/
2024-11-21 18:27:15 +01:00
Toni Laiho da44e9be2c Translated using Weblate (Finnish)
Currently translated at 99.4% (9812 of 9862 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/fi/
2024-11-21 18:27:15 +01:00
Marco Ciampa bb4aaebd38 Translated using Weblate (Italian)
Currently translated at 88.8% (8767 of 9862 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/it/
2024-11-21 18:27:15 +01:00
Pferd O 93e5fcc0c6 Translated using Weblate (German)
Currently translated at 100.0% (9862 of 9862 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/de/
2024-11-21 18:27:15 +01:00
Marco Ciampa a71e94855c Translated using Weblate (Italian)
Currently translated at 88.4% (8726 of 9862 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/it/
2024-11-21 18:27:15 +01:00
Pferd O 9d19edc9de Translated using Weblate (German)
Currently translated at 100.0% (9862 of 9862 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/de/
2024-11-21 18:27:15 +01:00
Marco Ciampa f0ddcfb499 Translated using Weblate (Italian)
Currently translated at 88.1% (8689 of 9862 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/it/
2024-11-21 18:27:15 +01:00
Henrik Kauhanen e162af124e Translated using Weblate (Swedish)
Currently translated at 98.8% (9750 of 9862 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/sv/
2024-11-21 18:27:15 +01:00
co8 j 31741101c8 Translated using Weblate (Japanese)
Currently translated at 99.4% (9806 of 9862 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ja/
2024-11-21 18:27:15 +01:00
Henrik Kauhanen 4d3984a50b Translated using Weblate (Swedish)
Currently translated at 98.6% (9733 of 9862 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/sv/
2024-11-21 18:27:14 +01:00
ZbeeGin 2e051f6b9a Translated using Weblate (Polish)
Currently translated at 98.9% (9763 of 9862 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/pl/
2024-11-21 18:27:14 +01:00
Pferd O b2cf2f059e Translated using Weblate (German)
Currently translated at 99.5% (9813 of 9862 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/de/
2024-11-21 18:27:14 +01:00
Jan Straka 520b21cbee Translated using Weblate (Czech)
Currently translated at 77.3% (7633 of 9862 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/cs/
2024-11-21 18:27:14 +01:00
Marco Ciampa 9c1d8830aa Translated using Weblate (Italian)
Currently translated at 87.6% (8646 of 9862 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/it/
2024-11-21 18:27:14 +01:00
Wellington Terumi Uemura 0cb6ace0e7 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (9862 of 9862 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/pt_BR/
2024-11-21 18:27:14 +01:00
Pferd O 1921ecd01b Translated using Weblate (German)
Currently translated at 99.5% (9813 of 9862 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/de/
2024-11-21 18:27:14 +01:00
Jon Evans 687dc71e1d ODB++: Use more friendly progress phase names 2024-11-20 19:03:15 -05:00
Jon Evans f522232a4c ODB++: Properly handle units property 2024-11-20 18:56:34 -05:00
Jon Evans 387a544da3 Promote ODB++ export out of advanced config
At this point it is more useful to get wider testing
2024-11-20 18:51:24 -05:00
Jon Evans 0045538512 ODB++: file handling improvements
- Use board filename in compressed output
- Don't generate uncompressed output next to compressed
- Make clear that the path in the dialog is a folder, not a file
- Handle existing output files gracefully
2024-11-20 18:40:51 -05:00
Jon Evans 6a83d7bc76 ODB++: Handle existing output directory gracefully 2024-11-20 18:14:18 -05:00
Jon Evans 66b850a4d2 ODB++: comply with requirements for CMP strings
Remove Value from part_name as it isn't really
part of a footprint name.  Guard against empty component
names or strings containing whitespace.
2024-11-20 17:48:19 -05:00
Jon Evans 3b1f6a4f36 Load SMD pad net name colors from appropriate copper layer
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19168
2024-11-20 17:33:35 -05:00
Jan Wichmann 30cebd17e0 Added ERC check for directive labels
Checks to see if directive labels are connected in the same manner that other labels are

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/19075
2024-11-20 18:11:05 +00:00
jean-pierre charras b8548de00d Eeschema, symbol viewer frame: do not allow a block selection.
The symbol viewer frame does not really handle the selection of items of
the viewed symbol, and trying to select a set of items crashes the viewer.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19161
2024-11-20 15:59:42 +01:00
Jon Evans af71ea869e API: Expose title block info 2024-11-19 23:44:29 -05:00
Jon Evans 033fb4fc8f API: Add GetBoundingBox and Box2 2024-11-19 22:09:00 -05:00
Jon Evans f97f79426a API: Add a way to get merged polygon from pad shape 2024-11-19 21:17:22 -05:00
Jon Evans eaa4367694 Make sure custom shape primitives get parents updated 2024-11-19 19:57:05 -05:00
Jon Evans 4ab89c1a07 API: Add pad number to serialization 2024-11-19 19:27:51 -05:00
Jeff Young 81834a023e Don't duplicate tooltips and descriptions, but do use the description if there's no tooltip.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19155
2024-11-19 23:39:41 +00:00
Dhineshkumar S dc5550c875 Fix schematic setup dialog reopens instead of activating if already open
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18757
2024-11-19 21:06:40 +00:00
JamesJCode 120b06f916 Update DRC rules syntax help 2024-11-18 21:50:20 +00:00
Jeff Young ee8d86390e Don't clone items when you want a duplicate.
Clone doesn't handle UUIDs or group membership.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18874
2024-11-18 21:49:36 +00:00
Seth Hillbrand 5eb11f705b Ensure that auimanager has a frame
restoring the last footprint might ask for the infobar, which requires
the auimanger to have a frame

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19103
2024-11-18 12:11:31 -08:00
Mike Williams 325d6ff064 cli: accept multiple gerber layers for single layer plotting
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/19089
2024-11-18 09:46:57 -05:00
jean-pierre charras e9651794d6 View menus: fix show/hide panel inconsistencies in FP and Symbol editors
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19147
2024-11-18 15:37:30 +01:00
Jon Evans 732f03753d Add drill shape to padstack API 2024-11-18 00:12:34 -05:00
Jon Evans b44015e204 Add padstack copper offset to API 2024-11-17 23:56:11 -05:00
Jon Evans cb06d750de Add trapezoid delta to the padstack API definition 2024-11-17 22:32:35 -05:00
Jon Evans 251cbbd287 Handle PCB_SHAPE in GetItems API 2024-11-17 16:22:49 -05:00
Jeff Young 88dbd46538 Remove fixed sizes from Rule Area Properties.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19144
2024-11-17 20:05:38 +00:00
Jeff Young 712caeb00e Autocomplete for ERC/DRCERROR/WARNING.
Also improves autocomplete to select the last substitution
token (if any) in the autocompleted text.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19133
2024-11-17 16:27:31 +00:00
jean-pierre charras 120106c6c6 Fix button labels: "Cancel" button should be "Close" and "Ok" "Apply and Close" 2024-11-17 09:17:40 +01:00
Dhineshkumar S d2e51fdb5f Fix 3D viewer omission of STEP models with relative path assignment
The project was not assigned to the board in the 3D viewer frame,
resulting in a failure to locate the relative path for STEP models.
To fix this, the current project should be assigned to the board in
the 3D viewer frame.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16242
2024-11-17 07:20:48 +00:00
Jan Wichmann 6d9b73237e Add apply button to the dialog 'Edit track and vias'
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/19110
2024-11-17 05:19:26 +00:00
Jon Evans 9ed3474a5b Add more SWIG compatibility shims 2024-11-16 13:04:27 -05:00
Jon Evans 114a76f091 Fix QA build 2024-11-16 12:11:58 -05:00
Jon Evans d7a9e110c5 Fix minor visual artifact in via painting 2024-11-16 11:46:09 -05:00
Jon Evans bc45f1b352 REMOVED: separate color for via net names
Vias can now use track net name color
2024-11-16 11:27:20 -05:00
Jon Evans 71a0a638a0 Remove unused pad layers and simplify pad colors 2024-11-16 11:27:20 -05:00
jean-pierre charras f354eca50e DIALOG_ZONE_MANAGER: fix crash when modifying zones if a zone is selected
Looks like an issue in EDIT_POINT tool (dangling pointers?)

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19131
2024-11-16 16:18:08 +01:00
Jon Evans 4dbe295e80 Migrate legacy layer presets to V9
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18718
2024-11-16 09:27:31 -05:00
Seth Hillbrand 0d9f49ee2e Fix QA with LSET::Flip() 2024-11-15 22:21:31 -06:00
Seth Hillbrand 9fb289b268 Add safety case to prevent arcs in outlines
Boolean ops do not support arcs, so clear during the fill in case they
are included
2024-11-15 22:05:09 -06:00
Seth Hillbrand 661759a2d9 Fix bug in flip calculation
Layer count needs to respect PEMDAS.  Causes oob otherwise
2024-11-15 20:19:05 -06:00
Alex Shvartzkop 1838b2656d Print pad areas for XAO export. 2024-11-15 11:47:25 +08:00
jean-pierre charras 079855af18 DIALOG_GLOBAL_EDIT_TEARDROPS: add Apply button, and fix bad button labels
Especially, "Cancel" button should be "Close" and "Ok" should be "Apply and Close"
2024-11-14 19:48:41 +01:00
Jon Evans c5683ea73d Fix ordering of color settings after layer ID changes 2024-11-13 19:38:02 -05:00
Dhineshkumar S 43b1bc52db Fix switching bold option on and off alters text thickness
Currently, unselecting the bold option resets the thickness to the
standard size instead of reverting to the original thickness.
To address this, the original thickness should be preserved so it
can be restored when bold is turned off.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18975
2024-11-13 02:14:19 +00:00
Jon Evans 9bc5fd534b Support padstacks in library parity check 2024-11-12 19:44:37 -05:00
Mike Williams 508169e335 eeschema: don't crash on new sheet
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/19122
2024-11-12 09:29:06 -05:00
jean-pierre charras e1ba930900 Fix QA build 2024-11-12 15:03:11 +01:00
jean-pierre charras 16d389a488 ERC: fix "label not connected anywhere" ERC does not have configurable severity
Fix also the right message if the label is a global label.
Rename ERCE_GLOBLABEL to a better name ERCE_GLOBLABEL_DANGLING

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19119
2024-11-12 13:35:05 +01:00
Jon Evans 683ce4c904 Support component class in footprint custom rules 2024-11-11 18:34:27 -05:00
aris-kimi 4b1b0982a3 Added generated *.h files and adjust code to translate and combine results 2024-11-11 23:23:05 +00:00
aris-kimi 5340cb3580 Split beloved translatable rule check helper string in more sources
and fully enable creepage drc rule syntax in markdown file.
2024-11-11 23:23:05 +00:00
jean-pierre charras 05e34714fc 3D viewer: Ensure the 3D display view is not modified after left clicking.
After opening a context menu and left clicking on the 3D canvas, the view
was modified because a drag event was generated, probably a wxWidgets bug.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17422
2024-11-11 16:49:46 +01:00
John Beard e24d43178a Pcbnew: fp load: tidy up FOOTPRINT_SELECT_WIDGET::Load
The call to FOOTPRINT_LIST::GetInstance( aKiway ) returns
a null pointer when it fails, rather than throwing. So this
wouldn't actually catch a KiWay failure and avert a segfault.

And no other caller of ReadFootprintFiles is in a try - so either
this function won't throw, or if it does, all callsites need
updating. For now, go with the majority.
2024-11-11 23:44:27 +08:00
John Beard 5acf60ec6c Pcbnew: enable pad clearance again
Now that we have padstacks, pads are no longer drawn on
LAYER_PADS_SMD_FR/SMD_BK/TH layers, but rather the actual copper
layers (c.f. PAD::ViewGetLayers() changes in
56e0811516.

Also enables the clearance display in the FP editor, as normally most
FPs have clearances off, but when you do have them set, you want to be
able to see where they end up.
2024-11-11 23:21:56 +08:00
Wayne Stambaugh 6cc5d89838 Another attempt to fix Windows file URLs for PDF links.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14250
2024-11-10 10:13:56 -05:00
John Beard 3162747d25 Pcbnew: include pad snaps for visible layers when not in high-constrast mode
This the 'activeLayers' is a more restricted set of layers than
all visible layers. When high constrast mode is off, snaps should
be available for all visible layers, not just layers in the
'activeLayers' set.

This is similar to the check done in checkVisibility, but as
pads are multi-layer items, they have this check afterwards as
well.

Note - the All Layer/Active Layer Only filtering is handled elsewhere.
2024-11-10 22:25:53 +08:00
John Beard 39d72a84df Pcbnew: register array tool in FP editor 2024-11-10 19:07:06 +08:00
Marek Roszko 752797dade Use a shared_ptr in the jobset 2024-11-09 22:50:04 -05:00
Jeff Young dee59bd4f5 UNIT_BINDER does it's own eval processing.
Also fixes a related bug where editing a eval'ed control
from "0" to empty doesn't reset the original text.
2024-11-09 21:47:39 +00:00
Jon Evans 5832fa0982 Remove redundant change to padstack mode 2024-11-09 15:02:19 -05:00
Jon Evans 9b8f8e929a Fix crash in pad properties dialog when saving custom padstack 2024-11-09 15:01:48 -05:00
Jon Evans 0a20482359 Remove flag from via stack GUI 2024-11-09 14:48:40 -05:00
Jon Evans 9d1609af71 Add a debug check to catch PNS via hull errors 2024-11-09 14:48:40 -05:00
jean-pierre charras 9495a5bc28 SWIG: disable some warnings 476 (Initialization using std::initializer_list) 2024-11-09 17:38:28 +01:00
Jon Evans f28d4865c2 PNS: Support via stacks in diff pair walkaround 2024-11-09 11:11:02 -05:00
Jon Evans a170e86fbd Support padstacks in annular width and edge clearance DRC 2024-11-09 10:33:23 -05:00
Jon Evans b3fb6bf319 Fix crash saving custom stack in footprint editor 2024-11-09 08:48:11 -05:00
Jon Evans 26247b0d27 Support custom padstacks in footprint checker 2024-11-09 08:47:10 -05:00
Jon Evans 4e04c05cd8 Import complex via stacks from Altium PCBs 2024-11-08 17:17:53 -05:00
John Beard df933df416 Multichannel: split out some geometric routines
Putting them somewhere in the geom utils means they
can be reused, and also tested if needed.
2024-11-08 19:48:03 +08:00
John Beard 6a96c16c2c Multichannel: fix polygon 'rectifying' function
It was choosing the wrong side of the boundary, which
caused it to sometimes self-intersect and omit some components.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/19068
2024-11-08 19:48:03 +08:00
John Beard 03f11eea78 Exclude letter hotkeys from Shift fallback
There is a fallback mechanism here designed to catch cases
where a hotkey is bound to a key that needs Shift to be
input (e.g. ? requires Shift on many non-US keyboards,
but the hotkey for that should be '?', not 'Shift+/'). For any key
where the two options are equally-valid "main" key (e.g. '6' and '^'
or '?' and '/' or ':' amd ';'), this is correct, as it allows
the hotkey to be simply the character in question.

Letters don't require this treatment - using this fallback
in the letter case means that a hotkey bound to 'B' will
also fire when 'Shift+B' is pressed, even when Shift+B is
bound to something else. In fact, it could even preempt the
real Shift+B hotkey.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/19093
2024-11-08 19:48:03 +08:00
Marek Roszko 5885ba7b51 Actually implement the run all jobs button 2024-11-07 20:50:43 -05:00
Marek Roszko 41cdbeb38c Fix up schematic plot job editing 2024-11-07 20:50:43 -05:00
Marek Roszko 258bf8ad82 Add separate desc entries for plot jobs 2024-11-07 20:50:43 -05:00
Marek Roszko 40345a924c Fix dnp not saving in DIALOG_GEN_FOOTPRINT_POSITION for job 2024-11-07 20:50:43 -05:00
jean-pierre charras a1cf21f100 Fix compil issues 2024-11-07 19:54:45 +01:00
Dhineshkumar S 07f96b83b7 Fix copy-paste issue for grids with checkboxes
Handle boolean value parsing during paste operation. The boolean value
was not being handled correctly in grid_tricks, which prevented the
boolean value from being pasted into the target row

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18985
2024-11-07 18:26:08 +00:00
Dhineshkumar S cd40c6bbbf Fix copy and paste issue in bus alias definition
Previously, creating a new member row by pasting text from the clipboard
did not trigger a cell value change which prevented the correct
association of the member value with the alias. To ensure this, we force
the member to be updated with the current alias before closing the dialog,
as well as with the previous alias when adding a new one

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18558
2024-11-07 17:15:13 +00:00
Seth Hillbrand 7916b1ddb8 Fix error in PointInside
If we are checking a point that is inline with multiple segments, we
were counting both the entry and exit as crossings, leading to points
inside a polygon being registered as outside.  Changing the conditional
to only catch one crossing as required.

Adds a QA check to ensure that this remains fixed

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18377
2024-11-07 09:09:00 -08:00
Jan Wichmann 99d5e66370 CHANGED: Clear drill holes table before loading board file 2024-11-07 15:49:36 +00:00
Mike Williams dc1b756846 warnings: remove unused variable 2024-11-07 09:32:46 -05:00
Mike Williams 480dd6f26b swig: ignore std::optional overloads for netclasses 2024-11-07 09:32:45 -05:00
jean-pierre charras 6354f5b6a1 DIALOG_SHAPE_PROPERTIES: fix incorrect display at startup (Windows only)
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19070
2024-11-07 15:10:59 +01:00
John Beard 39528de0a7 Pcbnew: Use RemovePage for shapes properties dialog
Hide() doesn't work on Windows, apparently.

Relates-To: https://gitlab.com/kicad/code/kicad/-/issues/19070
2024-11-07 21:24:06 +08:00
Jon Evans 91db6e8aab Align API for padstacks with the actual implementation 2024-11-06 23:42:02 -05:00
Jon Evans 07bd497d9c Silence override warnings on recent GCC 2024-11-06 22:29:54 -05:00
Jon Evans 5d7942a45f PCB_POINT_EDITOR: support padstacks 2024-11-06 20:38:01 -05:00
Jon Evans f8b193dd9c Teardrops: Improve support for padstacks 2024-11-06 19:49:37 -05:00
Jon Evans 898ea8e13a IPC-D-356 export improvements for padstacks 2024-11-06 18:43:27 -05:00
Tomasz Wlostowski 8b76e64682 router: further investigation (and possible fix) for surplus vias in shove mode 2024-11-06 23:32:10 +01:00
Tomasz Wlostowski 55d5988430 router: fix rare assertion when adding a LINE to a NODE with duplicate segments 2024-11-06 23:23:23 +01:00
Seth Hillbrand 70b97a9028 Add pad snapping in initial placer
Matches expected behavior and move snapping

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18635
2024-11-06 12:14:48 -08:00
Mike Williams f2758bb1b8 design blocks: enable by default 2024-11-06 13:39:38 -05:00
Mike Williams 662e890703 design blocks: create empty global lib rather than prompting 2024-11-06 13:39:38 -05:00
Mike Williams f25c5756dc design blocks: look for correct extension when doing PCM dir traversal 2024-11-06 13:39:38 -05:00
Mike Williams 018d02eb02 design blocks: copy sheet to project dir instead of linking 2024-11-06 13:39:38 -05:00
Mike Williams 074d858631 design blocks: missing metadata shouldn't prevent load 2024-11-06 13:39:38 -05:00
John Beard 4858994a77 Pcbnew: shape props dialog: avoid slightly fragile index enum
If this enum is not in order, it will choose the wrong tabs.
We can get the tab index directly from the sizers by going
to the parent, which makes this process automatic.

The CTRL_IDX orders are still possible to de-sync, but at least
that's all in the file and not split between CPP/FBP files.
2024-11-06 22:24:17 +08:00
John Beard e0c7fd8ce6 Pcbnew: layout shape properties tabs when shown 2024-11-06 22:19:03 +08:00
Jon Evans 420ea9da9d Add some logging to KINNG 2024-11-05 18:38:27 -05:00
Alex Shvartzkop c3fb1445c7 Fix assert failures in 3D renderer after padstack changes.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19069
2024-11-05 19:41:20 +03:00
Jon Evans 83020447b0 Fix build of PNS log viewer 2024-11-05 08:02:07 -05:00
John Beard 28c600edb7 Jobset: correct AC name comment 2024-11-05 20:57:06 +08:00
John Beard 9f579f787b Libgit2: the const git_commit* saga continues
The change wasn't re-reverted in 1.8.3, it was just not
included. It was than _also_ reverted in 1.8.4, as it was for
1.8.2 (those two tags are on different branches - main and maint/v1.8).

Hopefully, this means that we're done here, and v1.8.5 will also be
const-y, whether it is based on main or maint/v1.8.

The current state of play:

* 1.7.0 and older: const
* 1.8.0, 1.8.1:    no const
* 1.8.2:           const
* 1.8.3:           no const
* 1.8.4:           const
Future:
* 1.8.5/1.9.0:     presumably/hopefully, const

This is currently breaking at least Arch and Fedora Rawhide

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/19062
2024-11-05 20:56:16 +08:00
Alex Shvartzkop 2c62c151fc Save 3D export path when changing output format. 2024-11-05 14:54:09 +03:00
Jon Evans 7e1638ed11 Support via stacks in plotter 2024-11-04 22:27:50 -05:00
Jon Evans d0b2334ceb PNS: Support via stacks 2024-11-04 21:30:38 -05:00
Marek Roszko be728f7800 Remove aIsCli which never ended being used 2024-11-04 20:51:15 -05:00
Marek Roszko 796be37c6f Save settings and close step dialog properly when configuring job 2024-11-04 20:30:10 -05:00
Wayne Stambaugh 930407fac8 Fix PDF plotter URI issues.
Add 'file:' URI JavaScript handlers.

Properly convert Windows file paths to valid URI syntax.

Use expanded variables for URI menu names.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/14250
2024-11-04 20:05:42 -05:00
John Beard 1a86982a2a Avoid enum name conflict on MacOS. 2024-11-05 08:20:37 +08:00
Tomasz Wlostowski c258b85e4d router: provisional fix for stray vias in shove mode and related crashes
Fixes https://gitlab.com/kicad/code/kicad/issues/19057

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

Fixes https://gitlab.com/kicad/code/kicad/issues/19044
2024-11-04 21:58:22 +01:00
Tomasz Wlostowski 69210e684a router: move FindViaByHandle to NODE 2024-11-04 21:57:14 +01:00
Tomasz Wlostowski f53823799c router: improved AREA_RESTRICTION in the optimizer and more control over 'optimize entire track being dragged' 2024-11-04 21:57:14 +01:00
jean-pierre charras 0443bd44d4 Pcbnew, PADSTACK::operator=() fix missing copy of m_parent member 2024-11-04 17:16:43 +01:00
Alex Shvartzkop 6951dd39c0 Update 3D model export menu text. 2024-11-04 16:17:53 +03:00
Alex Shvartzkop 3b987776c7 ADDED: STL and PLY (since OCCT 7.7.0) 3D model export. 2024-11-04 16:15:02 +03:00
John Beard dbf68a80b8 GAL: also scope layer depth push/pops
This means that an early return or an exception between
a manual Push/Pop (or an omission of the Pop) cannot
corrupt the layer stack.

It also means the GAL doesn't have to maintain its own
stack (with the in-scope GAL_SCOPED_ATTRS taking that role).

Reomve the Push/PopDepth functions, as they're only ever
used in pairs, and doing it manually needs more care.
2024-11-04 20:41:44 +08:00
John Beard 3549b77530 Ruler: fix colours when not the same as the cursor strings
Implement a simple RAII GAL attribute save/restore
class that handles putting the GAL back the way it was found.

This makes draw methods easier to write, as they don't need
to worry if a called method will upset the attribute context
(as long as the caller saves the context, or the callee does).

Obviously not a good idea to use in tight loops, but when text
is involved, this is negligible!
2024-11-04 20:41:20 +08:00
John Beard 11ac6ea976 Position interactive: use the forward vector value
On reflection, the forward vector makes more sense, because
the value in the edit box is then the same as the vector the
user just drew with the ruler.
2024-11-04 20:41:20 +08:00
John Beard 87cd0a74f2 Point editor: unify segment, circle, bezier and tablecells (partial)
For segment, circle, beziers, these are the same in all editors and only
need access to the EDA_SHAPE nature, so we can remove the duplication
entirely.

For TABLECELLs, while the cells are polymorphic in that PCB and SCH
cells are both EDA_SHAPEs (via the TEXTBOXes), the parent TABLES
are not polymorphic, and thus the implementation can't be trivially
de-duplicated. Rather than do something with templates, just keep
it simple for now and maybe look at unifying tables later on.
2024-11-04 20:41:15 +08:00
John Beard e6e1253fea Pcbnew: allow to copy the ruler co-ordinates 2024-11-04 20:37:14 +08:00
jean-pierre charras 328a2e7d00 Eeschema, fix possible crash when reading a .kicad_sch file (dangling pointer)
SCH_IO_KICAD_SEXPR_PARSER::parseSheet() can create a dangling pointer when reading
a property if the font used by the property text is not the default font: the
initial SCH_FIELD item is a temporary item and leave a dangling pointer in
m_fontTextMap liast when deleted. This pointer is now removed from list.
2024-11-04 10:11:04 +01:00
JamesJCode 231fa952fb Add auto-generation of placement rules areas from component classes 2024-11-03 21:43:55 +00:00
JamesJCode feeb4f3638 Remove whitespace 2024-11-03 18:02:26 +00:00
Jon Evans 250fa52474 Enable IPC API by default 2024-11-03 12:30:18 -05:00
Jon Evans 7bd8cd9721 Disable qa_pns_regressions for now 2024-11-03 12:00:40 -05:00
Alex Shvartzkop 20008b97f3 Fix vector out-of-bounds access in router. 2024-11-03 19:54:22 +03:00
Alex Shvartzkop 9c6a352fa3 Initialize some variables in router. 2024-11-03 19:53:42 +03:00
Jon Evans 2d0e8c73d0 Fix crashes in qa_pns_regressions 2024-11-03 11:22:15 -05:00
Jon Evans ab384477ce Do not crash if passed a null item in AddItemsToSel 2024-11-03 09:05:10 -05:00
Jon Evans bdfeb9068a Change some asserts to wxCHECKs
Make sure that if these are hit, we don't double-add to m_links

See https://gitlab.com/kicad/code/kicad/-/issues/19049
2024-11-03 09:04:58 -05:00
Jon Evans d4053b36f4 Fix some Coverity issues in PNS changes 2024-11-03 08:53:03 -05:00
Mark Hämmerling 55d6a51b6f SWIG: Add typemaps for std::optional<int> and std::optional<double> 2024-11-03 13:46:12 +00:00
jean-pierre charras 7fe28bdc3f Pcbnew: refinement to commit 16c87f49 than fixed a crash:
The first commit fixed for a "old" footprint (from version 7 and older) a
use after free pointer creating a crash. but this first commit lost the font
for texts related to this pointer.
This is now fixed.
2024-11-03 14:39:11 +01:00
John Beard 970d9b3615 Eeschema: point editor: edit polygons as on PCB
This includes edge dragging which is useful for rule areas.
2024-11-03 17:15:18 +08:00
John Beard c3794aee95 Eeschema: point editor: post refactor cleanup
Get rid of lots of empty switches and things now that
the dispatch is done in one place.
2024-11-03 06:00:39 +08:00
John Beard b691ebeba4 Eeschema: point editor: polygons and rule areas as behaviors 2024-11-03 06:00:39 +08:00
John Beard 59725bc0ca Eeschema: point editor: convert rect types to behavior classes
These implementaitons were always very verbose and repetitive.
This doesn't try to be too clever in slimming them down just
yet, in favour of just transplanting first.
2024-11-03 06:00:39 +08:00
John Beard 8313b4ecc6 Eeschema: point editor: arcs, circle, bezierr, bitmaps, tablecells
These are the easier ones. Note that tablecells now
knows to commit the table internally (same as the lines)
2024-11-03 06:00:39 +08:00
John Beard fe57c531e2 Eeschema: point editor: as a behavior class for SCH_LINEs
This adds the concept of editing _other_ items to the one
that informs the POINT_EDIT_BEHAVIOR - in this case connected
lines. This is one of the motivations behind this system,
as it will allow to bring similar logic to Pcbnew.
2024-11-03 06:00:39 +08:00
John Beard cd8ae3afd1 Pcbnew: point editor: minor tidy ups now everything is a behavior 2024-11-03 06:00:39 +08:00
John Beard 1e587b15ae Pcbnew: point editor: use a behavior class for textboxes
Saving the best for last - the one that wound me up enough to
start this process - textboxes, which sometimes, but not always
behave like rectangles.

Rather than some exciting multiple inheritance of
RECTANGLE_POINT_EDIT_BEHAVIOR and a hypothetical rotated
rectangle behavior, delegate the rectangular behavior to
static helpers in the rectangle one.

They still can't be edited when rotated, but at least now there
is some hope that it's tractable!
2024-11-03 06:00:39 +08:00
John Beard c66caf3e11 Pcbnew: point editor: move dimensions to a behavior class
Especially the aligned dims are fiddly, but all the
dimensions need the array size to be carefully kept
controlled, which is now part of the invariant of
each behavior.
2024-11-03 06:00:39 +08:00
John Beard 90e49a42e7 Pcbnew: point editor: use behavior class for generators
This also changes the interface on the GENERATOR classes
to no longer take a shared_ptr - these methods are synchronous
and don't store (shared) ownership of the EDIT_POINTs.
2024-11-03 06:00:39 +08:00
John Beard d12ad6820b Pcbnew: point editor: move pads to a behavior class
Hopefully, this will make the extra logic for padstacks
more localised, rather than splitting it up throughout
PCB_POINT_EDITOR.
2024-11-03 06:00:39 +08:00
John Beard dd7d90089d Pcbnew: point editor: zones use a behavior class
Mostly defers to the same logic as for polygons.
2024-11-03 06:00:39 +08:00
John Beard 268d7854e0 Pcbnew: point editor: tablecells use a behavior class 2024-11-03 06:00:39 +08:00
John Beard 736c955a21 Pcbnew: point editor: move reference image to a behavior class
This is a fiddly one that is good to encapsulate.
2024-11-03 06:00:39 +08:00
John Beard 5a6af05759 Pcbnew: point editor: move bezier to a behavior 2024-11-03 06:00:39 +08:00
John Beard 97e59b773f Pcbnew: point editor: move polygons to a behaviour class
There's a slight flicker when a polygon is edited, but
that was there before.
2024-11-03 06:00:39 +08:00
John Beard 4f840599b5 Pcbnew: point editor: use behavior for circles
This is a pretty straightforward one
(though there was a latent bug here because both CIRCLE
and ARC used CIRC_CENTER for the constrainer. If an ARC
and CIRCLE center were not the same index (and nothing says they
have to be) that could be wrong or crash.
2024-11-03 06:00:39 +08:00
John Beard f1f011e49d Pcbnew: point editor: move arcs to a behaviour class
This is a good example of an edit behaviour that had a lot
of code in PCB_POINT_EDITOR that was only used for a single
item type. Many of these (now static) functions will probably
find use in other places arcs crop up like filleted shapes
and also in eeschema.

But for now, keep it simpler and keep them near where they
are used.
2024-11-03 06:00:39 +08:00
John Beard 57100c9352 Pcbnew: point editor: use a behavior class for rectangles 2024-11-03 06:00:39 +08:00
John Beard 5071541f4b Pcbnew: rework point editor behavior handling
This introduces the POINT_EDITOR_BEHAVIOR class, which
allows a "behavior" to be defined, which covers the creation
of edit points, updating the points on edit, and pushing the
edited points back into the object.

This keeps the logic for a single item "type" (e.g. a SEGMENT
or TEXTBOX, etc) in one place, rather than fragmneted throughout
the POINT_EDITOR class, where the invariants like point count
are difficult to keep track of as the TOOL progresses.

For now, it's implemented as an optional class, just for SEGMENT
and other tpyes work as before. Adding new types is then a
"pin-compatible" drop-in process.
2024-11-03 06:00:39 +08:00
Tomasz Wlostowski 6daa097e1c router: fix spurious segments left by the DRAGGER in shove mode 2024-11-02 22:59:25 +01:00
Alex Shvartzkop bc7d5c821c Fix some warnings. 2024-11-03 00:01:26 +03:00
Alex Shvartzkop 72266f5638 Fix uninitialized variable in router. 2024-11-02 23:57:18 +03:00
Tomasz Wlostowski d776cc1124 router: fix incorrect cast from enum to bool 2024-11-02 20:47:22 +01:00
Alex Shvartzkop cc25470855 Initialize struct variables in multichannel tool header.
Caused an assert in qa_pcbnew on MSVC Debug.
2024-11-02 22:22:02 +03:00
Marek Roszko f67f6d0460 Remove unused shove func that causes build error 2024-11-02 15:19:12 -04:00
Marek Roszko bc1e9bc759 Fix build err on windows due to pns changes 2024-11-02 15:12:40 -04:00
Marek Roszko dee5595bb9 Bump vcpkg and wxwidget port for aui hotfix 2024-11-02 15:02:13 -04:00
Tomasz Wlostowski d97065609d router: remove some loose printfs() 2024-11-02 19:59:09 +01:00
Tomasz Wlostowski e28e614907 ZONE_FILLER: don't crash when vertex list is empty 2024-11-02 19:59:09 +01:00
Tomasz Wlostowski c8e2beeb3a router: fix copyright + minor code formatting for MULTI_DRAGGER 2024-11-02 19:59:09 +01:00
Tomasz Wlostowski e4ef642940 router: NODE::FindJoint() should also compare the matching joint's net/position. Another 'senior' bug in the P&S 2024-11-02 19:59:09 +01:00
Tomasz Wlostowski d1642c59ea PCB_SELECTION_TOOL: fix multidrag start condition 2024-11-02 19:59:09 +01:00
Tomasz Wlostowski 0f75dcb5ed router: fix updating of leader segments set in MULTI_DRAGGER 2024-11-02 19:59:09 +01:00
Tomasz Wlostowski 728e185b81 qa: make PNS test pass again 2024-11-02 19:59:09 +01:00
Tomasz Wlostowski 92f30b18d2 router: revert back to using std::set for OBSTACLES to avoid duplicates... 2024-11-02 19:59:09 +01:00
Tomasz Wlostowski c99478e0fd router: make sure last drag solution does not persist in the case more than one shove algorithm run have failed 2024-11-02 19:59:09 +01:00
Tomasz Wlostowski 244a886415 demos: update file format in the multichannel example 2024-11-02 19:59:09 +01:00
Tomasz Wlostowski dd1046bedd router: a bit of cleanup in MULTI_DRAGGER + restoring of 'leader' segments in all modes 2024-11-02 19:59:09 +01:00
Tomasz Wlostowski 2daabbf6e2 MULTICHANNEL_TOOL: enable the tool by default and remove ADVANCED_CFG option 2024-11-02 19:59:09 +01:00
Tomasz Wlostowski 27f26822dc MULTICHANNEL_TOOL: put the 'group items' option in one unique place 2024-11-02 19:59:09 +01:00
Tomasz Wlostowski 3d20e2ee3d router: provisional fix for 'random sprinkled vias' issue in SHOVE 2024-11-02 19:59:09 +01:00
Tomasz Wlostowski 8033b568dd router: trying to fix remaining issues 2024-11-02 19:59:09 +01:00
Tomasz Wlostowski 8751a62aa6 pcbnew: fix PCB_SELECTION_TOOL multidrag condition 2024-11-02 19:59:09 +01:00
Tomasz Wlostowski c5aaaf1d65 router: ignore items belonging to the net of the head trace when building walkaround clusters 2024-11-02 19:59:09 +01:00
Tomasz Wlostowski 5e77da4902 router: make a 'tadpole' via (via at the end of a LINE) linkable item 2024-11-02 19:59:09 +01:00
Tomasz Wlostowski d9ae8e44c2 router: fix a few more missing translations between pcbnew layers and router layers 2024-11-02 19:59:09 +01:00
Tomasz Wlostowski 4464490ad5 router: don't treat LINEs that exceeded the iteration limit as STUCK 2024-11-02 19:59:09 +01:00
Tomasz Wlostowski 6878d5f9cf router: use const ref instead of raw LINE pointers in SHOVE::AddHeads() 2024-11-02 19:59:09 +01:00
Tomasz Wlostowski 18c17111bc router: prevent bogus collision detection between an ITEM and a HOLE of both the same net 2024-11-02 19:59:09 +01:00
Tomasz Wlostowski 6ef68d99d5 qa: followup changes in the router in the pns_debug_tool (multidrag + some UI rework) 2024-11-02 19:59:09 +01:00
Tomasz Wlostowski 9f3825b003 router: integrate multidrag in ROUTER_TOOL 2024-11-02 19:59:09 +01:00
Tomasz Wlostowski 2cb141b294 router: ROUTER class now invokes the MULTI_DRAGGER with StartDragging() is passed more than one item 2024-11-02 19:59:09 +01:00
Tomasz Wlostowski 6311df377f router: initial support for multidrag (just the algorithm) 2024-11-02 19:59:09 +01:00
Tomasz Wlostowski f7e37bf9f2 kimath: bring back the legacy SHAPE_LINE_CHAIN::Simplify() function
It looks like the new variant (with aMaxError) behaves in a subtly different way, resulting in router hiccups.

This needs more in-depth investigation, but for the moment, the older function does the job.
2024-11-02 19:59:09 +01:00
Tomasz Wlostowski 731cc1eb1a router: const fixes in OPTIMIZER + revert to legacy line simplification function 2024-11-02 19:59:09 +01:00
Tomasz Wlostowski efeae50fba router: migrate drag/place algos to use new WALKAROUND class 2024-11-02 19:59:09 +01:00
Tomasz Wlostowski 07c34702c6 router: major rewrite of the WALKAROUND algorithm
Notes:
- works on clusters, not single items
- can define policies (cw/ccw/shortest) that run in parallel
2024-11-02 19:59:09 +01:00
Tomasz Wlostowski 6507c1ea5c router: use separate object for constructing clusters (+ add area threshold) 2024-11-02 19:59:09 +01:00
Tomasz Wlostowski 0619b37b93 router: update drag/place algorithms to use the new SHOVE class 2024-11-02 19:59:08 +01:00
Tomasz Wlostowski bc2a444805 router: major changes in the SHOVE algorithm
- support for multiple heads (including vias)
- more "shove-o-inistic" behaviour (i.e. increased strength)
- work in progress, but usable enough.
2024-11-02 19:59:08 +01:00
Tomasz Wlostowski 183042cdb7 router: LOGGER now logs the current layer 2024-11-02 19:59:08 +01:00
Tomasz Wlostowski d25b27c328 router: add constructor for VIA_HANDLE 2024-11-02 19:59:08 +01:00
Tomasz Wlostowski 34d1515827 router: fix VIA ownership inside LINE (clone if owned, copy reference if not) 2024-11-02 19:59:08 +01:00
Tomasz Wlostowski 009e31d6df router: follow up with the changes to JOINT::NextSegment() 2024-11-02 19:59:08 +01:00
Tomasz Wlostowski 28927c713d router: when removing a JOINT completely (no links remaining) from a child node, insert a dummy one to prevent fallback to the root node
Private note: another "maladie de naissance", hopefully cured for good.
2024-11-02 19:59:08 +01:00
Tomasz Wlostowski a6e111ec06 router: prevent double removal of a VIA/SOLID and its associated HOLE 2024-11-02 19:59:08 +01:00
Tomasz Wlostowski fe49bad99f router: expose overrides in public API of NODE 2024-11-02 19:59:08 +01:00
Tomasz Wlostowski 76a0260d4a router: QueryColliding filter lambda should be applied in the obstacle visitor 2024-11-02 19:59:08 +01:00
Tomasz Wlostowski 79f679fc9a router: empty LAYER_RANGE cannot overlap with anything 2024-11-02 19:59:08 +01:00
Tomasz Wlostowski 0583b55ba0 router: reimplement JOINT::NextSegment() to correctly handle multilayer joints
Note: as JOINTs are indexed by position and net, we can have a joint with four track segments belonging to two LINEs linked (two on layer A, two on layer B, e.g. two corners of two separate lines going through). The previous version
of the function would stop at such a joint (thinking it's a corner joint). As such situation is pretty common while shoving/moving vias, the algorithm was easily confused.

Private note: just fixed another 11-year-old bug...
2024-11-02 19:59:08 +01:00
Tomasz Wlostowski 663afac3df router: make sure empty (unlinked) JOINTs have also empty layer range
Due to the architecture of the NODE storage (overrides), JOINTs that don't have any items attached are still kept in the child nodes, but with empty link list. So has to be the layer range, otherwise adding new items to a child node might result with JOINTs having mismatched layers vs items.
2024-11-02 19:59:08 +01:00
Tomasz Wlostowski 0192bba053 router: use std::vector for storage of OBSTACLEs (instead of std::set) 2024-11-02 19:59:08 +01:00
Tomasz Wlostowski 3453592fc3 router: introduce ITEM::UNIQ_ID
It's a globally unique identifier for each PNS::ITEM, used as a reliable hash key (pointers are NOT unique)
2024-11-02 19:59:08 +01:00
Tomasz Wlostowski f77f63cf2d router: add PNS_SILENCE_DEBUG macro which allows to squelch PNS_DBG() stuff compile-time 2024-11-02 19:59:08 +01:00
Tomasz Wlostowski fd502efffb router: ensure rebuildJoint() does not leave dangling root node (with incorrect links) joint in case the (overridden) joint has same hash value but different linked items. Probably the oldest bug in P&S, I can't stop wondering how it had worked reasonably well for so many years :D 2024-11-02 19:59:08 +01:00
Tomasz Wlostowski b1c515b98a router: replace the restricted set in COLLISION_SEARCH_OPTION for a generic filter lambda 2024-11-02 19:59:08 +01:00
Tomasz Wlostowski 08324556ff router: LOGGER now supports multiple start/end items 2024-11-02 19:59:08 +01:00
Tomasz Wlostowski ceeceb2266 router: add preferred dragging direction to dragCorner() + FindSegment() method in LINE 2024-11-02 19:59:08 +01:00
Tomasz Wlostowski 56c57ba310 router: added IsTrivialEndpoint() in JOINT 2024-11-02 19:59:08 +01:00
Tomasz Wlostowski b5ec91d1d3 router: added FindVertex() method in ITEMSET 2024-11-02 19:59:08 +01:00
Tomasz Wlostowski fa48a42b8c router: add GetLastCommittedLeaderSegments() API method 2024-11-02 19:59:08 +01:00
Tomasz Wlostowski b7c47e53ed router: allow negative indices to pick (N-index) items in LINK_HOLDER 2024-11-02 19:59:08 +01:00
Jon Evans 09652efec5 Clear unknown keys from environment variable maps on save
Also fix the previous code for clearing unknown keys to use
a JSON pointer so that it functions correctly when the JSON path
is more than one level deep.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18734
2024-11-02 14:53:39 -04:00
jean-pierre charras 6c17f7d706 French translation update 2024-11-02 18:53:22 +01:00
Jon Evans 59f7615fbd Expose padstack settings in via properties dialog
Behind a flag because this feature may not
stabilize before V9
2024-11-02 10:02:29 -04:00
John Beard 88e028bc24 Pcbnew: fix textbox point editing
When in rectangle mode, it still needs to act like a rectangle, but
it doesn't go through the usual PCB_SHAPE handler (even though it is
a PCB_SHAPE too).
2024-11-02 20:21:53 +08:00
jean-pierre charras 49633ec075 Fix a missing include creating a compil issue at least on msys2 2024-11-02 11:36:26 +01:00
Seth Hillbrand 00afc45476 Update translations 2024-11-01 16:28:09 -07:00
김랑기 7013708342 Translated using Weblate (Korean)
Currently translated at 98.3% (9631 of 9792 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ko/
2024-11-02 00:26:49 +01:00
G.B 33f6c78186 Translated using Weblate (Hebrew)
Currently translated at 5.4% (538 of 9792 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/he/
2024-11-02 00:26:49 +01:00
G.B fd40e191a8 Translated using Weblate (Hebrew)
Currently translated at 5.3% (524 of 9792 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/he/
2024-11-02 00:26:49 +01:00
David Chorváth b57c5fb1b1 Translated using Weblate (Slovak)
Currently translated at 58.7% (5754 of 9792 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/sk/
2024-11-02 00:26:49 +01:00
ZbeeGin b40d324851 Translated using Weblate (Polish)
Currently translated at 100.0% (9792 of 9792 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/pl/
2024-11-02 00:26:49 +01:00
Pferd O 4f88399af2 Translated using Weblate (German)
Currently translated at 100.0% (9792 of 9792 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/de/
2024-11-02 00:26:49 +01:00
CloverGit 14e4978e39 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 99.2% (9717 of 9792 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hans/
2024-11-02 00:26:49 +01:00
David Chorváth b89b4469e2 Translated using Weblate (Slovak)
Currently translated at 58.6% (5741 of 9792 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/sk/
2024-11-02 00:26:49 +01:00
ZbeeGin 2a09cb6095 Translated using Weblate (Polish)
Currently translated at 99.6% (9762 of 9792 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/pl/
2024-11-02 00:26:49 +01:00
Pferd O 594d0b05eb Translated using Weblate (German)
Currently translated at 100.0% (9792 of 9792 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/de/
2024-11-02 00:26:49 +01:00
Pferd O 55b3619f0e Translated using Weblate (German)
Currently translated at 99.2% (9722 of 9792 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/de/
2024-11-02 00:26:48 +01:00
G.B ee44f90237 Translated using Weblate (Hebrew)
Currently translated at 5.2% (516 of 9792 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/he/
2024-11-02 00:26:48 +01:00
Pferd O 5c1ccf92dd Translated using Weblate (German)
Currently translated at 99.1% (9713 of 9792 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/de/
2024-11-02 00:26:48 +01:00
G.B 7c27709fac Translated using Weblate (Hebrew)
Currently translated at 4.7% (463 of 9792 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/he/
2024-11-02 00:26:48 +01:00
CloverGit 6221c24e3b Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 99.2% (9716 of 9792 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hans/
2024-11-02 00:26:48 +01:00
Henrik Kauhanen bf55f1d9c4 Translated using Weblate (Swedish)
Currently translated at 99.6% (9753 of 9792 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/sv/
2024-11-02 00:26:48 +01:00
co8 j 4512f8585d Translated using Weblate (Japanese)
Currently translated at 99.8% (9779 of 9792 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ja/
2024-11-02 00:26:48 +01:00
Henrik Kauhanen 99a172a8d0 Translated using Weblate (Swedish)
Currently translated at 98.0% (9599 of 9792 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/sv/
2024-11-02 00:26:48 +01:00
Arnau Llovet Vidal 6ba1c1bbdf Translated using Weblate (Catalan)
Currently translated at 43.0% (4219 of 9792 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ca/
2024-11-02 00:26:48 +01:00
co8 j 437492ab4a Translated using Weblate (Japanese)
Currently translated at 99.8% (9776 of 9792 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ja/
2024-11-02 00:26:48 +01:00
Pferd O d64fa44697 Translated using Weblate (German)
Currently translated at 99.0% (9696 of 9792 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/de/
2024-11-02 00:26:48 +01:00
co8 j e944177a63 Translated using Weblate (Japanese)
Currently translated at 99.6% (9758 of 9792 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ja/
2024-11-02 00:26:48 +01:00
Pferd O 8361e13cc2 Translated using Weblate (German)
Currently translated at 98.9% (9685 of 9792 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/de/
2024-11-02 00:26:48 +01:00
ZbeeGin 767ce4f60d Translated using Weblate (Polish)
Currently translated at 99.4% (9741 of 9792 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/pl/
2024-11-02 00:26:48 +01:00
co8 j bf61335e37 Translated using Weblate (Japanese)
Currently translated at 99.6% (9756 of 9792 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ja/
2024-11-02 00:26:47 +01:00
ZbeeGin 94cbdaf72f Translated using Weblate (Polish)
Currently translated at 98.8% (9679 of 9792 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/pl/
2024-11-02 00:26:47 +01:00
co8 j eb11d91ca1 Translated using Weblate (Japanese)
Currently translated at 98.7% (9673 of 9792 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ja/
2024-11-02 00:26:47 +01:00
Wellington Terumi Uemura df5debd9ae Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (9792 of 9792 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/pt_BR/
2024-11-02 00:26:47 +01:00
sergio 1c7a4da6fb Translated using Weblate (Russian)
Currently translated at 94.5% (9257 of 9792 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ru/
2024-11-02 00:26:47 +01:00
Pferd O 5e8d1bf4db Translated using Weblate (German)
Currently translated at 98.6% (9660 of 9792 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/de/
2024-11-02 00:26:47 +01:00
109247019824 371b9dc739 Translated using Weblate (Bulgarian)
Currently translated at 7.0% (690 of 9792 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/bg/
2024-11-02 00:26:47 +01:00
JamesJCode 816af9562b Fix missed rows when pasting to WX_GRID on macOS
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18916
2024-11-01 23:09:29 +00:00
Seth Hillbrand e54cf6c834 Remember the size/pos of the new proj from template
Stores the new project window position and size in the KiCad prefrences
for use between sessions

Fixes https://gitlab.com/kicad/code/kicad/-/issues/12920
2024-11-01 15:49:52 -07:00
jean-pierre charras 16c87f4914 Pcbnew: fix crash when loading a FP from older Kicad version in some cases:
if a "old" footprint (from version 7 and older) use a non kicad font in ref
or value field, a use after free pointer created a crash. The use after free
is fixed, but the initial font is lost, so this commit needs refinements.
2024-11-01 21:05:17 +01:00
jean-pierre charras 89e281d042 FP editor: fix possible crash when saving a footprint due to a null pointer
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19018
2024-11-01 20:51:22 +01:00
John Beard 277b963fac Search pane: add zoom to fit option in a settings menu button
Includes zoom to selection, and pan to selection (which
centres the result but doesn't change the zoom).

I'm not sure this is the perfect solution to search pane
settings, but it's near to the action, but not taking up
too much space, doesn't need to open a modal to mess
with it, and has room for more options in future.

I haven't made toggling these options into full-blown
TOOL_ACTIONs, but they could be if a hotkey to toggle
these is desirable - it's an ACTION_MENU, so it should
just slot in..

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/16192
2024-11-02 03:11:17 +08:00
John Beard c6f7fa9b6e Add a zoom/pan-to-selection actions
This is useful is some process ends up doing sometihng
offcreen and wants to show you.
2024-11-02 03:09:52 +08:00
Seth Hillbrand 88df35654e Prevent attempt at plotting invalid sheets
If the number does not exist in the schematic, don't attempt plotting

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19039
2024-11-01 10:55:54 -07:00
Alex Shvartzkop 3b0ae838fe Use SCH_SHAPE for bezier symbol shape in EasyEDA/LCEDA Pro parser.
Fixes commit 066461cd1e for master
2024-11-01 20:52:47 +03:00
Alex Shvartzkop 066461cd1e EasyEDA/LCEDA: import bezier curves in symbols.
See https://gitlab.com/kicad/code/kicad/-/issues/19034

(cherry picked from commit 9f196d2e64)
2024-11-01 16:37:19 +03:00
Alex Shvartzkop 314ad398a7 EasyEDA/LCEDA Pro: don't import empty but visible netlabels.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19034

(cherry picked from commit b51fed4118)
2024-11-01 16:10:45 +03:00
John Beard 1450af7d30 Pcbnew: get footprint by name dialog: focus the item in the dropdown on typing
It's not a complete UI for this dialog (especially as the comments
around m_multipleHint->Show( false ) indicate the intent was to
have a multi-selection ability here, but at least there's a way to
confirm what you're about to pick up.
2024-11-01 20:37:18 +08:00
John Beard c39573ace3 Pcbnew: get footprint by name doesn't have to be a member on PCB_BASE_FRAME
This function doesn't access anything private to PCB_BASE_FRAME. So
split it into a static and slim the PCB_BASE_FRAME API just a
smidgen.
2024-11-01 20:35:50 +08:00
John Beard fdd4994bbb Pcbnew: get footprint by name dialog - create .cpp file 2024-11-01 20:09:38 +08:00
John Beard e53281a71b Sym/Fp diff panels: add a quick switch hotkey
Then you can just toggle back and forth with '/'.

One day, these frames should use a tool manager for this
kind of thing (also for the ruler tool, but lots of other
things on top), but for now just bind a char hook.
2024-11-01 18:33:48 +08:00
Fabien Corona 8a6910d96f Enable Creepage check by default 2024-11-01 10:01:19 +01:00
John Beard c55d7d6eb4 Sym edit: Also allow the 'edit in library' action to be a hotkey
Allows the user to easily 'upgrade' into a library edit action if
they choose the wrong one of Ctrl+E or Ctrl+Shift+E.

Increaes consistency with FP editing.
2024-10-31 23:15:48 +08:00
John Beard 3b2f6d9d03 FP editor: string consistency
119eea38c3 changed to using
%s rather than '%s' - follow that convention in the FP editor
strings.
2024-11-01 11:21:18 +08:00
John Beard 78d626d38c FP editor: add call-to-action to open a board footprint in the library
Useful both as a confusion reduction measure when confronted with the
inforbar message, and also useful when you pressed Ctrl+E, not
Ctrl+Shift+E.

Also bind Ctrl+Shift+E in the editor to perform this action
(again, useful when you used the wrong hotkey).
2024-11-01 10:29:59 +08:00
Jon Evans 826794469d Make sure to set modified bit when releasing nested settings 2024-10-31 17:39:10 -04:00
Jon Evans eb6d85bacf Use a persistent flag to track JSON modifications 2024-10-31 17:39:03 -04:00
JamesJCode 6e5aad204c Fix build warnings 2024-10-31 20:37:18 +00:00
Seth Hillbrand 4d25d94076 Fix clang error
ambiguous conversion between VECTOR2I and VECTOR2D breaks clang.
Forcing it into integers seems like the right way to go
2024-10-31 12:06:34 -07:00
John Beard b1125bb0c2 Pcbnew dimension: remove misleading m_isDiamter in RADIAL
Presumably the intention was that the RADIAL dimension could
also be a diameter type of dimension. However, as the recent
inward/outward work showed, this is actually rather fraught,
as a diameter type needs a different prefix (so now you can't
always tell when it's user-set or not) and there are different
numbers of control points.

Possibly, a real "Diameter" type should be a new class - either
a subclass of this one or another one entirely.

In the meantime, remove the m_isDiameter member, as it's never
set to anything other than 'false' and inaccessible.
2024-10-31 23:34:13 +08:00
John Beard f3056d45f0 Pcbnew: handle polygons not having a panel in the new shape dialog 2024-10-31 23:28:59 +08:00
John Beard e373af53f7 Pcbnew: normalise spelling of End/Mid Point
Not sure which is better, but at least they should be the same.
2024-10-31 23:24:18 +08:00
John Beard 47aeb68937 Pcbnew: allow to set line geometry by midpoint and one end
This is especially handy when drawing symmetrical footprints
where you know the endpoint of the line, and you know it's
centred on the x/y axis.
2024-10-31 23:17:07 +08:00
Andrej Valek 20ee4effdc ReparentModal: fix case when parent is not available
In some situations then parent window couldn't be available. Eg, when
eeschema is executed as standalone on macOS and trying to show
the global design block table dialog before the main frame exists.
So replace the assert with return and check the windows pointers bellow.
2024-10-31 14:42:53 +01:00
John Beard 59759b325f Fix scroll events in things not using WX_VIEW_CONTROLS
Make sure not to handle wheel events with 0 or 1 modifiers -
those are for the view handler, not the tool framework. We
can't rely on WX_VIEW_CONTROLS to run first, it's not always
used, for example in the 3D Viewer.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/19026
2024-10-31 19:51:52 +08:00
Jeff Young c4b99eefd4 Remove stale comments; improve other comments/formatting. 2024-10-31 11:20:31 +00:00
Jeff Young 56df6d0bc7 Trim zone apron to the same-net-intersecting-zone envelope. 2024-10-31 11:20:31 +00:00
jean-pierre charras edd7f5e229 BOARD_COMMIT::Revert(): protect against null pointer.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19011
2024-10-30 17:50:23 +01:00
Alex Shvartzkop 925b219c6a EasyEDA/LCEDA Std: fix power ports orientation after 8.99 symbol axis flip. 2024-10-30 19:16:48 +03:00
Alex Shvartzkop 5074829043 EasyEDA/LCEDA Pro import: fix symbols rotation after 8.99 axis flip. 2024-10-30 19:04:49 +03:00
Alex Shvartzkop 37be9dc885 EasyEDA/LCEDA import: take symbol/netport Name from device entry if empty in schematic.
Also fixes netport orientation if it's symbol is non-default.

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

(cherry picked from commit 846b634e0e)
2024-10-30 18:34:33 +03:00
John Beard a59cd7401a Use a yes/no for the suppress_zeroes bool in the format
Roll this into the prior version bump for the dimension arrow
directions.
2024-10-30 21:22:37 +08:00
John Beard d973fd723e Pcbnew: add an arrow change action to the menu when drawing an arrow 2024-10-30 21:22:37 +08:00
Hasan Jaafar 6e9188713b Pcbnew: Add inward/outward dimension arrows
This adds a toggle between outward ( |<--->| ) and inward
( -->|----|<-- ) dimensions.

The original merge request for this feature had more nice
features to it: automatic switching and an 'outward' version of the
radial dimension. However, both of these are very tricky problems, and
need more thought: for example, if the radial dimension is overloaded
into a diameter dimension based on the arrow direction, then you have
implement the fiddly concept of a prefix override, and it also make
the point editor much harder to make seamless.

So, rather then delay the very good and useful upgrade of
the "normal" ortho/aligned dimensions, just sidestep the
issue by not doing the radial lines or auto detection right now.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/5819
2024-10-30 21:22:37 +08:00
John Beard ab6049ec0b Pcbnew: Dimension: break out the knockout function
This avoids some fiddly repeated code, and will be useful in
other dimension types.
2024-10-30 21:22:26 +08:00
Alex Shvartzkop 0581423d50 Show failing strings in HTMLEscape test. 2024-10-30 09:38:18 +03:00
Alex Shvartzkop d2c33e186e Update field order in PCB_TUNING_PATTERN. 2024-10-30 09:12:24 +03:00
Alex Shvartzkop bf54c86d7d Set tuning pattern initial side from cursor position while placing.
It's faster than flipping the amplitude handle after placing.
2024-10-30 09:09:51 +03:00
Alex Shvartzkop 19af37a143 Fix/improve HTML unescape function.
Also adds some tests.

(cherry picked from commit 6ae334a751)
2024-10-30 08:24:43 +03:00
John Beard 58c131efa6 Pcbnew: improve shape edit dialog options
Provides options for editing the shapes though entry of
different modes, such as "centre/start/angle" for arcs.

Several new modes are implemented.

Relates-To: https://gitlab.com/kicad/code/kicad/-/issues/13356
2024-10-30 09:00:14 +08:00
John Beard c956e6761b Pcbnew: add interative relative offset tool 2024-10-30 09:00:14 +08:00
Seth Hillbrand 3f36d7f1dd Avoid negative pad sizes in plot
Clearance can be negative but setting the pad size to negative leads to
invalid output in plotting

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18996
2024-10-29 15:32:18 -07:00
Jeff Young 7074c31374 Must check for implicit min separately from opt/max.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19012
2024-10-29 16:32:34 +00:00
Armin Schoisswohl f1abdfa1aa Modify Circle approximate segment count
Change number of segments of circles to be multiples of 8 and start rotated by delta/2.  This ensures that segments will be aligned to a 45°/90° grid

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18654
2024-10-28 20:40:05 +00:00
JamesJCode 75c2f17b42 Fix libgit integration for version >= 1.8.3
The API continues to change...
2024-10-28 20:25:32 +00:00
Seth Hillbrand a6b25d1ee1 Fix display of broken fonts
TTF fonts are supposed to obey a specific winding.  But sometimes they
don't, especially with garbage windows font editing programs.  If the
outline with hole winding doesn't have an outline, it is probably an
outline itself

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19010
2024-10-28 12:38:03 -07:00
Jeff Young 905eaa79a9 Centralize ref-des error checking. 2024-10-28 18:40:11 +00:00
jean-pierre charras 8874a2cda7 Pcbnew: refinement for commit 8057f7d4: Keep edge.cuts dimmed in hide/dim mode
Because in dim or hide non active layers mode items on these layer are not
selectable, dim items on edge.cuts layer (when non active) are also shown dimmed.
2024-10-28 18:30:17 +01:00
Dhineshkumar S 6e2ed5666d Fix Courtyard layers disappeared
Currently, the used layers passed from parseLayers() do not include
mandatory layers if they are missing in the loaded board file.
To fix this, we can manually add the mandatory layers to ensure they
are always enabled.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18978
2024-10-28 17:09:24 +00:00
Ikoma So 45b68a5059 Rebuilt UI using wxFormBuilder instead of direct edits 2024-10-28 15:54:47 +00:00
Dhineshkumar S cb41f39045 Disable custom color selection when Fill Mode is Body Background Color
Currently, the system allows custom color selection for the Fill Color
property in the Properties toolbar even when Fill Mode is set to Body
Background Color via the Properties window. However, this does not update
the color to match the Body Background color. To fix this, custom color
selection for Fill Color will be disabled when Body Background Color is
chosen.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18919
2024-10-28 15:48:02 +00:00
jean-pierre charras 8057f7d420 Pcbnew: Keep edge.cuts fully visible in hide/dim inactive layers mode
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19006
2024-10-28 15:58:57 +01:00
John Beard 2391e5ecdc Pcbnew array: allow selecting the center point interactively
This involves recasting the array tool from the slightly
eccentric ARRAY_CREATOR class into a full-blown TOOL, which
allows it to usefuly store state asd the dialog hides. This
is modelled on the POSITION_RELATIVE_TOOL strategy.

The by-radius-and-point mechanism is removed entirely,
as it's very fiddly and hard to describe in the UI,
and what you probably really want to do is get your
item onto the circle with tools like "move exact",
and then define the circle origin (now using the picker
tool)

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/16783
2024-10-28 22:01:14 +08:00
John Beard 9c0e4a3f66 Pcbnew: Make point selection more reusable
This moves the interactive pick point/item tool action to
PCB_PICKER_TOOL, and add a parameter to allow it to be useful for other
tools that want to pick a point from the canvas.
2024-10-28 22:00:45 +08:00
Troy Denton 1dfe431c00 Eeschema: enable tunable VDC, IDC sources in sim
ADDED: Eeschema SPICE simulator now supports tuning VDC and IDC
sources.

Adds ability to interactively tune VDC and IDC sources in sim.
This allows users to quickly test bias/supply changes during
transient simulations.
2024-10-28 05:57:21 +00:00
Jon Evans 69ddbeb43f LSET Flip needs copper layer count now 2024-10-27 22:06:50 -04:00
Jon Evans ae045a2eea Restore pad layerset flipping
Required for SMD pads

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19002
2024-10-27 20:00:36 -04:00
Mark Roszko 810036b70f Update vcpkg.json 2024-10-27 23:43:01 +00:00
Troy Denton 0ed48b43f8 common: fix KICADn_3RD_PARTY version expansion
Adding logic to handle KICADn_3RD_PARTY expansion, preventing
backwards-compatible libraries from incorrectly report missing
files

Fixes https://gitlab.com/kicad/code/kicad/issues/17600
2024-10-27 23:37:29 +00:00
IkomaSo f5765bac7f Added a button to open output directory in plot dialog
Shows a bitmap button next to the output location string, allowing the user to quickly view the generated file location

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17659
2024-10-27 23:33:24 +00:00
jean-pierre charras 26094762ee DIALOG_UNUSED_PAD_LAYERS: fix "Restore All Layers" not working.
Fix also a very bad name for a widget in dialog.
2024-10-27 20:32:05 +01:00
John Beard 15ece9f5de Array: iterate backwards, but number forwards 2024-10-28 01:36:37 +08:00
John Beard b931dc5299 Array: add option to centre grid on the original location
Especially for SMD footprint array, it's awkward to have to
offset the pad to the corner first before making the array.

Relates-To: https://gitlab.com/kicad/code/kicad/-/issues/16882
2024-10-28 00:47:01 +08:00
Andrej Valek 3ad92bc8db ShowModal: override method in DIALOG_SHIM
All DIALOG_SHIM dialogues which should be modal, has a problem on OSX
that parent could be lost. So call ReparentModal to fix this before
calling the base ShowModal method. This should fix the problem when
modal window has been hidden when windows were switched.

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

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/17460
2024-10-27 16:37:47 +00:00
Jeff Young 9231516238 Lower case the "to" in infinitives.
(See Chicago Manual of Style.)

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18925
2024-10-27 15:56:40 +00:00
Jon Evans 42b5b604e2 Implement Flip action for PADSTACK
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19002
2024-10-27 11:27:31 -04:00
Fabien Corona 6cd670de6d Creepage: Rewrite non-direct connections
attempt to fix #18997
2024-10-27 14:56:03 +01:00
Fabien Corona 71e0229afa Creepage: fix a coverity warning
A pointer could point to an out of scope variable, resulting in undefined behaviour.
2024-10-27 10:35:02 +01:00
jean-pierre charras 21a2243f40 PADSTACK::operator=(): custom pad shape: add missing copy of primitives
The primitives were not duplicated in the new pad, so creating bugs especially
when trying to edit a flipped custom shaped pad or its footprint parent
(just opening/closing the dialog break the pad).
2024-10-27 09:04:18 +01:00
jean-pierre charras daf910c12b DIALOG_EXPORT_NETLIST: Fix incorrect info message. 2024-10-27 07:53:28 +01:00
Jon Evans 673bb2f152 Fix fallthrough warning 2024-10-26 22:10:50 -04:00
Jon Evans 031c5417a1 Fix build on macOS 2024-10-26 21:48:54 -04:00
Alex Shvartzkop 840b9aebba Fix compatibility with LCEDA/EasyEDA v2.2.32
Now device attributes can contain numbers.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18994
2024-10-27 04:15:59 +03:00
John Beard f09d274a3e Construction geom: thread must be constructed last
If the thread starts before the proposal tag is constructed
as nullopt, the thread can unblock and think it has a proposal.
This isn't true, so it reads junk memory and crashes.

Relates-To: https://gitlab.com/kicad/code/kicad/-/issues/18835
2024-10-27 07:41:16 +08:00
John Beard 4846d07e47 Construction geometry: lighter on the stack
Pass things as unqiue_ptrs. I don't think there's that much
on the stack, but certainly addinig big enough chunks to the batches can
upset the coroutines.

Also reinstate a ClearDrawables which went AWOL.pick

Relates-To: https://gitlab.com/kicad/code/kicad/-/issues/18835
2024-10-27 07:07:25 +08:00
John Beard 5609086819 Filterable combobox use listbox background
They're still wierd in terms of tab traversal (they seem
to be skipped) but at least they don't look like disabled
controls now.
2024-10-27 05:13:32 +08:00
John Beard 3bb0373808 Eeschema: use filterable comboxbox for parent symbols
This list can be very long and quite painful to find
the right item.
2024-10-27 05:13:32 +08:00
John Beard a090b86b87 Separate generic aspects of NET_SELECTOR_COMBOPOPUP
Lots of this class is reusable, and it's a fiddly one
that can be useful elsewhere.
2024-10-27 05:13:32 +08:00
John Beard 5f69a5779f Eeschema: show pin names in net navigator
The pin number is useful, but you get a much better
idea of where the net if going if you can also see the
pin name.
2024-10-27 05:13:32 +08:00
John Beard 974eea8d55 Eeschema: warn if swapping unit to an existing unit 2024-10-27 05:13:32 +08:00
John Beard e9014bc27b Eeschema: show which units are already placed in the context menu
Otherwise it's annoying to fingure out 1) i you're missing any
and 2) if you change one, are you going to stomp on something?
2024-10-27 05:13:32 +08:00
John Beard 1a2c84eb76 Eeschema: add 'place next unit' action
This makes a new symbol with the lowest unplaced
unit number and enters the PlaceSymbol action
(but only places that one unit)

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/18882
2024-10-27 05:13:24 +08:00
John Beard f3e099a5ca Set accelerators for common dialogs 2024-10-26 17:56:32 +08:00
John Beard 5545dfd02b Incrementing: add some types to selection filters 2024-10-26 17:56:32 +08:00
John Beard 0278c13018 Point editors: allow moving rectangles by center 2024-10-26 16:30:22 +08:00
John Beard 2c2ff64911 Allow incrementing different parts of strings with modifiers
Primary increment is the right most bit, secondary is the next
rightmost. So you can increment 'A1' to 'A2' or 'B1' with
Shift-Alt-Scroll and Ctrl-Alt-Scroll respectively.
2024-10-26 16:01:07 +08:00
John Beard 1511f9a43c Symbol editor: focus the pin number input if mouse over on 'E' 2024-10-26 16:01:07 +08:00
John Beard 8b6e82c6e2 Symbol editor: increment action auto-detects the field to increment 2024-10-26 16:01:07 +08:00
John Beard 9c9542deea Bind multiply-modified scroll events to the increment action
Implemented as handling un-consumed scroll events that the
WX_VIEW_CONTROLS doesn't want because it has too many mods
set. Then dispatch these as TA_MOUSE_WHEEL events.

The default action from the selection tools is to run the
'increment' ACTION, which is implemented differently in the
various tools: eeschema can increment labels, symedit
does pin names and numbers, and fpedit does pad numbers.
2024-10-26 16:00:58 +08:00
John Beard 3f602f8177 Add 'Increment' actions
These are context sensitive actions that increment "something"
about the selected item.

A generic 'increment' action can be produced, e.g. by other tools
or UI events, which has in increment step (positive or negative)
and an 'index' which determines what about the item should be
incremented - it's up to the increment action handler to decide
what that means.

And then add a primary and secondary inc/decrement action,
which allows to bind hotkeys to each.

Bind these to:

* Sym edit: increment pin names/number
            increment text items
* Sch edit: increment lables and text
* FP/PCB:   increment pin numbers
            increment text items
2024-10-26 15:46:16 +08:00
John Beard f77d830d79 Break out increment function 2024-10-26 15:31:12 +08:00
John Beard 01133d6150 Eeschema: move all pin text layout to PIN_LAYOUT_CACHE 2024-10-26 15:31:12 +08:00
John Beard ede31b6252 Pin layout: unify bounding box calcs
The logic for this was duplicated, in two very different forms,
between the SCH_PIN bounding box function and the
SCH_PAINTER draw function.

And the SCH_PIN one was slightly wrong, as it didn't take into
account the PIN_TEXT_MARGIN, or the electrical types.

Provide a way for clients of the PIN_LAYOUT_CACHE to access
the name and number boxes.
2024-10-26 15:04:51 +08:00
John Beard f29d1fafe4 Include dangling indicator in SCH_PIN bbox
Delegate computation of the size and location of the pin dangling
indicator to the PIN_LAYOUT_CACHE.

Relates-To: https://gitlab.com/kicad/code/kicad/-/issues/18894
2024-10-26 15:04:51 +08:00
John Beard fe48e51315 SCH_PIN: break out layout calculations
The bounding box calculations of SCH_PINs are pretty complicated.
There is already caching of the name and number texts, but the
SCH_PAINTER (for example) has to repeat this work and sometimes
slightly diverges. For example, dangling indicators and alt
icons are painted, but not included in the bbox.

This commit introduces a more encapsulated 'layout cache' object which will
take care of caching the current extents, but also providing layout
geometry to SCH_PAINTER (and other interested code, like hit testers
on a given field) witohut requiring recomputation or reimplementation.

The extents calculations use exclusively the public API, so it's nice
and easy to split it out.

In this commit, nothing is functionally changed - the name and number
are still cached, and everything else is computed in the exact same way.
This is the groundwork for fixing this issue:

Relates-To: https://gitlab.com/kicad/code/kicad/-/issues/18894
2024-10-26 15:04:51 +08:00
jean-pierre charras d031652d9d DIALOG_GLOBAL_EDIT_TEARDROPS: add option "Remove all teardrops"
"Remove teardrops" remove only teardrops allowed by the filtering/scope options
"Remove all teardrops" remove all existing teardrops
2024-10-25 17:39:47 +02:00
jean-pierre charras 82ff2c0e0f eeschema, DIALOG_SHEET_PROPERTIES: add test for valid sheet filename
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18981
2024-10-25 11:44:29 +02:00
Seth Hillbrand 8dda9b37fa Change zorder to use unsigned
Edge cases can happen where point + clearance is larger than the bbox.
This can cause the zOrder min and max to get switched as max get a high
bit and is negative.  Clamping to limit the input values and using
uint32 for the output solves the corner case
2024-10-24 17:40:25 -07:00
Seth Hillbrand 64ff47c594 Handle edge cases in kissing zones
When zone kisses happen from different polygons, we need to be careful
not to use the different polygons for ear comparisons or prev/next
pointers

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18654
2024-10-24 17:40:25 -07:00
Lucas Dumont bb9a329ee4 Avoid wxWidgets alert when removing bottom to top
Fix assert ./src/generic/grid.cpp(5216): assert "idx >= 0 && idx < m_numRows" failed in GetRowPos(): invalid row index happening when selecting >= 3 row starting from the bottom last row. Even if not all row are selected.

This happen because wxGrid::DeleteRows will try to update the selected row between each call.
2024-10-24 23:11:26 +00:00
Martin Berglund 00c1f471e4 Eeschema: Reduced LoadSymbol calls in PlaceSymbol
Check early if a symbol is not unique - before calling SchGetLibSymbol
and in SchGetLibSymbol checks the cache before calling LoadSymbol.

This speeds up opening the symbol browser significantly when having lots
of symbols in the design that needs to be polled from a database

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18826
2024-10-24 22:59:49 +00:00
Fabien Corona 021514c7f5 Creepage: fix crash when re-starting DRC
markers were added twice ( graphics handler and violation handler ), and then double deleted
2024-10-25 00:12:15 +02:00
Fabien Corona 8e859ef84b Creepage: avoid a copy 2024-10-25 00:12:15 +02:00
Fabien Corona 114ca336ed Fix coverity warnings
copy instead of move
2024-10-25 00:12:15 +02:00
JamesJCode 660b7171f6 Fix display messages for multi netclass DRC QA checks 2024-10-24 22:25:37 +01:00
JamesJCode db072a524c Consolidation of Component Class implementation
- Moves functionality to FOOTPRINT class from BOARD_ITEM
- Renames DRC property from ComponentClass to Component_Class
- Adds DRC checks QA for A.Component_Class and a.hasComponentClass('x')
2024-10-24 20:11:35 +01:00
Wayne Stambaugh 43c3cd57eb Substitute variables in PDF plotter URI links and add file:// URI handler.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14250
2024-10-24 08:06:28 -04:00
jean-pierre charras ae99be3d65 Pcbnew: fix text position when drawing PCB_TEXTs on non paired layers
For these texts, and when the view was "flip board view" option, these text
positions were incorrectly calculated for texts having a text rotation not 0.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18980
2024-10-24 12:59:02 +02:00
Fabien Corona df6f02b15b Creepage: use track instead of zone for dummy items
Zones have a constructor that clears a Rtree cache
2024-10-24 08:19:48 +02:00
Fabien Corona b709245f17 Change graphics handler init 2024-10-24 01:09:25 +02:00
Fabien Corona 5e263c9eec Add a graphics handler to DRC Engine
The handler can be used to set graphical shapes to a DRC marker
2024-10-24 00:49:51 +02:00
Fabien Corona 346e3f4d7c formatting 2024-10-23 19:18:48 +02:00
Fabien Corona b907efed57 formatting 2024-10-23 19:09:32 +02:00
Fabien Corona 28dd61babb Restore GAL layer order 2024-10-23 18:41:20 +02:00
John Beard ba484256c1 Symbol editor: grab by snap anchors
Previously, it always used the top left item's position.
This is inconvenient for lots of reasons in the symbol editor,
for example when moving a line, it will warp your mouse to
the other end if you try to move from the end, not the start
(you don't know which is which!). And if you're moving something
like a whole number of grid spaces, like a rectangle, it's
impossible to place it other than the start position on the grid.

Add SCH_PIN to the get anchor position function, and use the
normal GRID_HELPER logic to detect a grab point. This still
rejects graphics if connectables are selected to preserve
on grid connections.

The code in the area mentioned https://gitlab.com/kicad/code/kicad/-/issues/11151
but I'm pretty sure this only makes that better.
2024-10-23 19:46:58 +08:00
John Beard 884530e699 SCH_RENDER_SETTINGS: Remove duplicate electrical type setting
This class had m_ShowPinsElectricalType and m_ShowPinElectricalTypes.
Nearly everything used the former, only one callsite used the latter,
which would never have been changed.
2024-10-22 22:45:32 +08:00
Marek Roszko bb43a5047e Add execute job config dialog 2024-10-22 22:29:24 -04:00
Alex Shvartzkop 5ef9a8235d Fix link errors in QA. 2024-10-22 19:54:10 +03:00
Fabien Corona 34ac0fc6f7 add drc_test_provider_clearance_base.cpp to qa cmake 2024-10-22 18:49:04 +02:00
Troy Denton 0f33aebe48 Fix URI environment variable expansion issue.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18918
2024-10-22 14:47:25 +00:00
jean-pierre charras 9cc964fb37 pcbnew, cli export pdf: fix incorrect handling of -o option. 2024-10-22 11:05:30 +02:00
Eric Kuzmenko 707a8f6c1b ODB++: Set COLOR=0 in MATRIX and remove MAX_UID from MISC per the standard
Signed-off-by: Eric Kuzmenko <eric.n.kuzmenko@gmail.com>
2024-10-22 08:26:25 +00:00
Fabien Corona f9d571bf7d Creepage: use smart pointers 2024-10-22 08:42:46 +02:00
Fabien Corona 6d85853365 Creepage : add minimum slot width 2024-10-22 08:42:42 +02:00
Seth Hillbrand 6be6680d8c Fix DRC error with arcs
When two arcs only barely overlapped, we cannot predict the actual point
ends as they exist in the error margins.  Since arc tracks have
different radii by definition, rounding errors in calculating the
overlap angle led to some mistaken identification of parallel segments.

This adds an advanced config flag to set the preferred cutoff point
(currently 0.001°) for whether two arcs actually overlap in shared angle
space
2024-10-21 13:37:28 -07:00
Dhineshkumar S 2bee6f2549 Fix Focus Issue in Parent Window After Hiding the Search Panel
Previously, when the search panel was hidden, the focused search control
did not lose focus, causing an inability to focus on any items in the
parent window when using shortcut keys. This forces correct focus back to the edit window

Fixes https://gitlab.com/kicad/code/kicad/-/issues/12613
2024-10-21 20:32:53 +00:00
Fabien Corona 07a0c980f3 DRC : Show paths for clearance and creepage 2024-10-21 15:56:12 +00:00
jean-pierre charras ab1b22d435 Python script: Ensure image handlers are loaded before loading a board,.
because a board can include bitmap images using various formats, all
available image handlers must be loaded.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18959
2024-10-21 17:19:27 +02:00
jean-pierre charras f96c9b2f20 Avoid an wxASSERT when loading a board from a python script outside KiCad.
In this case, a call to Pgm() generates a wxASSERT due to a nullptr.
However this nullptr is not used, so using PgmOrNull() avoid this assert
2024-10-21 16:54:24 +02:00
Jon Evans 62e5663473 Make sure to initialize all members
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18953
2024-10-20 16:02:48 -04:00
Jon Evans edfa57909b Vias: prevent assertion in GetEffectiveShape 2024-10-20 15:08:24 -04:00
Jeff Young 251a6a27aa Escape HTML in messages.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18925
2024-10-20 16:37:01 +01:00
aris-kimi 36bac3f467 Fix non working Esc when init Polyline Properties dialog.
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/18850
2024-10-20 12:00:56 +01:00
Jeff Young dc7fd828f9 Limit fix to MacOS.
GTK definitely doesn't need it.  It's unlikely that
MSW needs it either.
2024-10-20 11:57:11 +01:00
John Beard 247e332343 Pcbnew: minor wording fix on new FP in read-only library
Suggested by Jan Wichmann.

Relates-To: https://gitlab.com/kicad/code/kicad/-/issues/18923
2024-10-20 13:08:58 +08:00
John Beard 385d22aba7 Pcbnew: Avoid creating a footprint in a read-only library
When using "New Footprint" from a selected library in the tree view
(or with an open footprint in such a library) that is read-only,
the new footprint will now be created in a "non-library-assigned" state
so the user has to Save As to save it to a library.

There will also be a warning when this happens to (try to) be less
mysterious about what just happened.

This patch uses a similar logic to that provided by Jan Wichmann in
MR !2034 - thank you!

Relates-To: https://gitlab.com/kicad/code/kicad/-/issues/18923
2024-10-20 02:21:03 +08:00
Jon Evans a802ba1199 Make Git push/pull errors visible 2024-10-19 12:34:06 -04:00
Jon Evans 17e9a55cc8 Fix via bounding box calculation 2024-10-19 11:19:28 -04:00
Marek Roszko 4c9dccaeb8 Fix exports 2024-10-19 07:12:07 -04:00
Marek Roszko 92f82e5173 Add command executor to jobset 2024-10-19 06:56:31 -04:00
jean-pierre charras 90e65ffb34 Fix a few Coverity and compil warnings. 2024-10-19 11:08:07 +02:00
Seth Hillbrand a5ada3230c Initialize m_job explicitly
New flags mean that implicit nulling is no longer available
2024-10-18 15:49:27 -07:00
Seth Hillbrand 433c894658 Prevent soldermask bridge DRC error with mask pad
We checked logical pad matching when looking at pad-based mask but we
should also do the same for aperture masks

(cherry picked from commit 0c8172880f)
2024-10-18 15:26:30 -07:00
Fabien Corona 3127cd2fd4 remove rtree from creepage drc check 2024-10-18 23:49:47 +02:00
JamesJCode 5ac8797475 Fix clang / mac build warnings 2024-10-18 22:07:17 +01:00
Fabien Corona 9b9501e114 Creepage: get shapes before lambda 2024-10-18 23:03:01 +02:00
Seth Hillbrand 74d027bc04 Try to fix MSVC build 2024-10-18 13:39:59 -07:00
Seth Hillbrand 33328fb864 Minor formatting fixes 2024-10-18 13:35:25 -07:00
Fabien Corona 8a14a1d04f Creepage: make sure the shortest path is available in lambda 2024-10-18 22:27:01 +02:00
Fabien Corona 7a3b85862f creepage: avoid priority queue ties 2024-10-18 21:54:22 +02:00
Daniel Treffenstädt 2200eebc06 Added DRC test for minimum/maximum segment length
Checks segment lengths, optionally flagging segments that are minor-size and thus hard to see
2024-10-18 19:48:08 +00:00
Mathieu Pilato 10d23ada48 Fix missing current scale in AC simulation
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18313
2024-10-18 19:41:50 +00:00
Dhineshkumar S 1fc8e65f7a Fixing Paste Issue in Library Table
Previously, when attempting to paste an entire row copied from the global
table into a project table, the value would be pasted from the cell where
the cursor was focused, rather than from the first cell. This issue
occurred because the first cell, a checkbox column, was not selectable.
To resolve this, the checkbox column should be enabled for selection
when the Left Mouse Button event is triggered

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18732
2024-10-18 19:39:54 +00:00
Lucas Dumont 4bd0243a1e Make make PAD always return SHAPE_COMPOUND
According to PAD::GetEffectiveShape, (overriding the BOARD_ITEM one)
`This routine returns a COMPOUND shape` so make it always returning
a SHAPE_COMPOUND.

Another step should be to either differentiate GetEffectiveShape
returning SHAPE and GetEffectiveShape returning SHAPE_COMPOUND.
Or not using static cast but dynamic one in the calling function.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18909
2024-10-18 19:38:05 +00:00
FPiorski 7df0879a44 ADDED: Clickable links on hierarchical sheets, sheet pins and hierarchical labels in PDF exports of schematics.
By default, the new links get generated instead of popup menus for those elements. Can be turned off in the plot dialog or from the cli.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18900
2024-10-18 19:35:02 +00:00
Jan Wichmann 09389a437f Correct error in the tolerance calculation for 3 terminal type voltage regulators
Use Iadj max value for calculating max error
2024-10-18 19:34:47 +00:00
Seth Hillbrand 10e1ba9c6b Fix layer ordering issue in net inspector
B_Cu is always the last layer, so if we are incrementing, we need to
check for matches, not index comparison

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18933
2024-10-18 11:45:07 -07:00
Seth Hillbrand 4077c57d7a Check in compiled help that keeps changing 2024-10-18 10:01:47 -07:00
jean-pierre charras dd9806a320 CONNECTIVITY_DATA::IsConnectedOnLayer() fix incorrect behavior for B_Cu layer test.
It was due to the fact B_Cu layer has different values if one comparison:
CN_ITEM StartLayer() and EndLayer() use INT_MAX to encode B_Cu layer id.
2024-10-18 13:32:48 +02:00
jean-pierre charras d04f30de5d DIALOG_GLOBAL_EDIT_TEARDROPS: a bit of code cleanup. 2024-10-18 13:28:39 +02:00
Jon Evans e50a18d21c Prevent assert when saving vias 2024-10-17 17:33:56 -04:00
Seth Hillbrand 112242bb3b Remove unneeded forward declaration 2024-10-17 12:23:54 -07:00
JamesJCode 3f1a8f0e1d Fix clang build warning 2024-10-17 19:24:30 +01:00
Fabien Corona 5127088c3f Creepage: correct some weights 2024-10-17 17:49:50 +02:00
Fabien Corona 09bd76a2f9 Creepage: avoid invalid pointers when reloading the graph 2024-10-17 17:49:50 +02:00
Fabien Corona 264bce3f35 Creepage: Prevent crash from duplicate deletion 2024-10-17 17:49:50 +02:00
jean-pierre charras 884ae78541 French translation update 2024-10-17 12:48:21 +02:00
jean-pierre charras b60acbb635 pagelayout_editor: lock panel update during widgets rebuild.
The rebuild is much faster.
2024-10-17 12:48:21 +02:00
Fabien Corona 350352332e resistance calculator: don't copy function in addSolution() arguments 2024-10-17 12:45:24 +02:00
Fabien Corona f6af29ea89 calculator: don't copy resistance alias name 2024-10-17 12:45:24 +02:00
Fabien Corona 4c57d748ab calculator: avoid copy of cable names 2024-10-17 12:45:24 +02:00
Jeff Young b342126ff3 DRCEpsilon will appear on *both* sides of a zone neck.
Also don't hide modification of minWidth as a side-effect
of an if-statement.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18921
2024-10-17 10:01:43 +01:00
Jeff Young f1ff75f969 Make sure Paste can't leak through modal dialog.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18912
2024-10-17 10:01:42 +01:00
Fabien Corona 6de2b5115f Creepage: Temporary fix for a crash
Impacts performance, but makes the feature testable by users
2024-10-17 10:20:44 +02:00
Fabien Corona 88efa6b27d creepage: fix coverity warnings + tidy up 2024-10-17 10:12:21 +02:00
Seth Hillbrand 4fb740415b Update translations 2024-10-16 15:33:23 -07:00
G.B dcf1569a1e Translated using Weblate (Hebrew)
Currently translated at 4.7% (459 of 9651 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/he/
2024-10-17 00:31:50 +02:00
G.B 0aad24658d Translated using Weblate (Hebrew)
Currently translated at 4.3% (423 of 9651 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/he/
2024-10-17 00:31:50 +02:00
Ivan Chuba 54565f8b37 Translated using Weblate (Ukrainian)
Currently translated at 79.8% (7703 of 9651 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/uk/
2024-10-17 00:31:50 +02:00
Jan Straka 7aef829661 Translated using Weblate (Czech)
Currently translated at 79.0% (7630 of 9651 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/cs/
2024-10-17 00:31:50 +02:00
Arnau Llovet Vidal 4f01c20d8c Translated using Weblate (Catalan)
Currently translated at 43.6% (4216 of 9651 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ca/
2024-10-17 00:31:50 +02:00
Flórián Fuszkó 8799f69509 Translated using Weblate (Hungarian)
Currently translated at 3.5% (342 of 9651 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/hu/
2024-10-17 00:31:50 +02:00
pominglee 855807f2c8 Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 94.0% (9080 of 9651 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hant/
2024-10-17 00:31:50 +02:00
G.B 1f3dfd9384 Translated using Weblate (Hebrew)
Currently translated at 4.3% (421 of 9651 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/he/
2024-10-17 00:31:50 +02:00
Pferd O 2f78d1a53d Translated using Weblate (German)
Currently translated at 100.0% (9651 of 9651 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/de/
2024-10-17 00:31:50 +02:00
G.B 5d5756b2a4 Translated using Weblate (Hebrew)
Currently translated at 3.6% (355 of 9651 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/he/
2024-10-17 00:31:50 +02:00
G.B fe6e1e7d6f Translated using Weblate (Hebrew)
Currently translated at 3.0% (297 of 9651 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/he/
2024-10-17 00:31:50 +02:00
co8 j fd8deedd9d Translated using Weblate (Japanese)
Currently translated at 99.8% (9635 of 9651 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ja/
2024-10-17 00:31:50 +02:00
G.B bb6a3c9900 Translated using Weblate (Hebrew)
Currently translated at 2.6% (257 of 9651 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/he/
2024-10-17 00:31:50 +02:00
Karl SCHUH 4982b26f94 Translated using Weblate (German)
Currently translated at 100.0% (9651 of 9651 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/de/
2024-10-17 00:31:50 +02:00
G.B f5a8574c0d Translated using Weblate (Hebrew)
Currently translated at 0.3% (29 of 9651 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/he/
2024-10-17 00:31:50 +02:00
co8 j ff4e7f7839 Translated using Weblate (Japanese)
Currently translated at 99.6% (9614 of 9651 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/ja/
2024-10-17 00:31:49 +02:00
CloverGit 74e4b3f1b6 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 99.6% (9613 of 9651 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hans/
2024-10-17 00:31:49 +02:00
Wellington Terumi Uemura a0df134491 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (9651 of 9651 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/pt_BR/
2024-10-17 00:31:49 +02:00
taotieren 38096c21df Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 99.2% (9581 of 9651 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hans/
2024-10-17 00:31:49 +02:00
CloverGit 601c0c14bb Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 99.2% (9581 of 9651 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/zh_Hans/
2024-10-17 00:31:49 +02:00
Pferd O b21520e450 Translated using Weblate (German)
Currently translated at 100.0% (9651 of 9651 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/de/
2024-10-17 00:31:49 +02:00
G.B 2e7d736018 Translated using Weblate (Hebrew)
Currently translated at 0.1% (17 of 9651 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/he/
2024-10-17 00:31:49 +02:00
Pferd O 22c1b62424 Translated using Weblate (German)
Currently translated at 99.0% (9555 of 9651 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/de/
2024-10-17 00:31:49 +02:00
Petr Pazourek 0b2d02e059 Translated using Weblate (Czech)
Currently translated at 78.9% (7615 of 9651 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/cs/
2024-10-17 00:31:49 +02:00
ZbeeGin 94f9cf3462 Translated using Weblate (Polish)
Currently translated at 100.0% (9651 of 9651 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/pl/
2024-10-17 00:31:49 +02:00
Pferd O 14af8d713c Translated using Weblate (German)
Currently translated at 98.9% (9546 of 9651 strings)

Translation: KiCad EDA/master source
Translate-URL: https://hosted.weblate.org/projects/kicad/master-source/de/
2024-10-17 00:31:49 +02:00
Denis Latyshev 260014710a Pcbnew: Add differential and single line length/skew mirroring
ADDED: Added functionality for mirroring differential and single line length, as well as skew adjustment elements.

Fixes https://gitlab.com/kicad/code/kicad/issues/18469
2024-10-16 19:21:03 +00:00
Daniel Treffenstädt 5e3c9334cc ADDED: DRC Checks for connected track angles
This MR adds a new DRC Test provider for the angle between two connected Track segments.

Rule example:

(rule test_track_angle (constraint track_angle (min 135)) (severity error) )
2024-10-16 19:16:42 +00:00
JamesJCode 68b40f1ef3 Clang warning fixes for creepage checks 2024-10-16 18:54:33 +01:00
John Beard 418e81702f FP editor: choose the right conflict resolution... 2024-10-17 00:32:27 +08:00
John Beard 2fd2e1d837 FP editor: a 'new' footprint with no library is 'editable'
When creating a footprint from the main menu, as opposed to from
a library context menu, there is no library set until it's saved
(the user will get a save-as dialog to set the library at that
point). So lack of a library doesn't mean 'read-only'.

So, don't show the 'read only library' warning in that case -
the user will not be able to save the footprint "in place" as there is
no "place" yet, but it's a reasonable and consistent workflow (like
editing a File->New'd file in a text editor).
2024-10-17 00:15:28 +08:00
jean-pierre charras 4631ce6d3e FP_LIB_TABLE::IsFootprintLibWritable( const wxString& aNickname ) fix crash
When aNickname is not found in fp_lib_table, return false instead of crash.
2024-10-16 12:37:57 +02:00
Fabien Corona 70dbe42a90 don't make extra copies 2024-10-16 09:18:41 +02:00
Fabien Corona 7b20d09487 arc: pointer checks 2024-10-16 09:18:36 +02:00
Fabien Corona 3c0ade5c04 pointer initialization 2024-10-16 09:18:25 +02:00
Fabien Corona 6870590d17 remove dead code 2024-10-16 09:18:21 +02:00
Fabien Corona f258cc5164 DRC creepage 2024-10-15 18:04:51 +00:00
JamesJCode 1677288798 Don't flag empty placement source as missing in rule area properties 2024-10-15 18:36:17 +01:00
jean-pierre charras bff4ab5cfe DIALOG_GLOBAL_EDIT_TEARDROPS: save teardrop scope in board design settings.
These parameters were already in board design settings, but never used.
2024-10-15 18:02:22 +02:00
Jeff Young 4089735c28 A neck in a zone fill will be DRCEpsilon smaller on each side.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18921
2024-10-15 15:17:31 +01:00
JamesJCode 1fcc71a5c7 Improve netlist import messages for component class changes
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18917
2024-10-15 14:05:12 +01:00
Jeff Young 119eea38c3 Formatting, consistency, and some string improvements.
Also fixes a bug where the libID wasn't copied.

Also fixes a bug where library tree didn't get shown
when opening symbol from library.
2024-10-15 12:30:33 +01:00
Jeff Young fcdaf494b4 Fix nullptr crash. 2024-10-15 10:01:47 +01:00
jean-pierre charras a4292ea516 Gerber and drl files (& drl filenames): fix issues due to layer renumbering. 2024-10-14 18:46:18 +02:00
John Beard b092675171 FP edit: add 'show datasheet' action that acts on the documentation link
This is already shown in the footprint browser window as a special
item, so allow the 'D' hotkey to access it as well.
2024-10-14 23:20:19 +08:00
John Beard c34ba1a834 Pcbnew: button to save editable copy when in read-only lib
Counterpart to the sym editor change. It will only copy
the FP in question, rather than also offer to to copy the whole
library, as that function isn't obviously available.

Relates-To: https://gitlab.com/kicad/code/kicad/-/issues/18370
2024-10-14 22:21:27 +08:00
John Beard f7b3e05f22 Sym editor: button to save editable copy when in read-only lib
Not a full solution to the following issue, as it won't ofter
to update any symbols used in the current schematic, but it's
a start.

Relates-To: https://gitlab.com/kicad/code/kicad/-/issues/18370
2024-10-14 21:52:35 +08:00
John Beard 1baaf9afd0 Add height get/set to reference image properties
Relates-To: https://gitlab.com/kicad/code/kicad/-/issues/18567
2024-10-14 20:36:26 +08:00
John Beard ffebebefe7 Lib edit tree: add read-only as a suffix
It's not ideal, because it will easily go off the right edge,
but the proper solution proably involves something involved
like little indicator icons in the tree or something.

This should be something of a clue at least some of the time.
2024-10-14 20:36:26 +08:00
John Beard e024621fcc Lib tree: don't throw away the variant if there's a value 2024-10-14 20:36:26 +08:00
John Beard 47aae7d06b Add a link to the lib when editing a schematic symbol 2024-10-14 20:36:26 +08:00
John Beard 047fae0f1f Sym editor: add infobar message in read-only libs 2024-10-14 20:36:26 +08:00
John Beard df2ab5ce8c Sym lib manager: add descriptions to asserts 2024-10-14 20:36:26 +08:00
John Beard 51683915f9 Sym editor: prevent save as into a RO lib
This is probably a mistake, and it's more consistent
with the denial of the new symbol action to just disallow
up front than allow and present a more confusing UI later.
2024-10-14 20:36:26 +08:00
Jeff Young a9f79093be Don't ask about locking twice.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18679
2024-10-14 10:59:14 +01:00
jean-pierre charras 26130af78c Pcbnew, read DIMENSION from file: fix some issues related to the dim style.
Until not, when reading a DIMENSION item, the dim text was read before the style
to apply is read, thus creating some style errors if the style is not the default
Now the dim text is stored after the style data, and for old files, the style used
when reading the text is the minimal text constraints

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18911
2024-10-14 11:41:32 +02:00
Jeff Young f7f86174a0 Make sure symbol editor prefs go in symbol_editor file.
(And same for footprint editor.)

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18905
2024-10-13 20:14:14 +01:00
Jeff Young 99b2a3cef9 Formatting and compiler warning fixes. 2024-10-13 20:14:14 +01:00
jean-pierre charras e8d89b1327 Fix compil warnings 2024-10-13 17:28:44 +02:00
John Beard c799966774 Handle pasting of image data from the clipboard
Also move some clipboard functions out of TOOL_MANAGER,
as they had no dependency on that class, and are just free
functions around wxTheClipboard.
2024-10-13 20:47:45 +08:00
John Beard a367073f20 Pcbnew: handle pasting of raw text
Create a PCB_TEXT and put the text in there.

This mirrors what happens in eeschema.
2024-10-13 20:47:45 +08:00
John Beard b0043587c2 Add 'Copy as Text' action
This is useful when you want to copy text content out to some
external program (or put it in a text item/box).

I'm not sure it's possible to intuit exactly what a user wants,
as you will often want to copy items as the real items, and sometimes
as text. While KiCad might be able to make a smart guess, external
programs will have no chance!
2024-10-13 20:47:45 +08:00
John Beard d9890e38ff Symbol editor: avoid bug in writability check
If the file exists and is not writeable, but the directory
_is_ writable, this check falsely returned true, even
though it will then try to write to a non-writeable file.
2024-10-13 20:47:45 +08:00
jean-pierre charras c3f3725e75 Pcbnew, read dimension from file: fix issue about text rotation.
When parsing the text we do not yet know if the text is kept aligned or not.
But keep aligned was enabled by default, so the text rotation was incorrect
for texts not aligned.
2024-10-13 11:27:30 +02:00
John Beard 201b60c670 Point editor single-corner chamfer tool
Come up with a plausible default chamfer size, rather
than prompting every time with a modal (and then you have
to handle when the chanfer doesn't fit). This could be
changed if it's more annoying this way. But if we had
proper edge-dragging in zones, probably would be better
than setting a chanfer manually.

Also fix the GetNeighbourIndexes which seems to have
always been broken (but is not actually used by anything at
present).

Relates-To: https://gitlab.com/kicad/code/kicad/-/issues/16771
2024-10-13 11:10:49 +08:00
John Beard 4455f2a5ac Symbol editor: disallow saving a symbol into its own inheritance chain
Without complicated and unintuitive juggling of inheritance links,
this produces circular references and crashes.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/18903
2024-10-13 10:27:38 +08:00
John Beard d3530451cf Symbol editor: implement cross-library saving inherited parts.
The choice is given to rename parts with the same names in the
new lib to avoid conflicts, or to just overwrite victims.

Relates-To: https://gitlab.com/kicad/code/kicad/-/issues/18371
2024-10-13 10:13:02 +08:00
John Beard 8abbae9dc2 Sym edit: add copy/paste/cut/etc actions to fp filter table
Implemented as a "TRICKS" class that could wrap any wxListBox
with similar effects.
2024-10-13 08:34:51 +08:00
jean-pierre charras 646d2b26a6 Pcbnew: fix incorrect pos/rot of dimensions living in a fp after loading a file.
Texts items living in a footprints use a relative position, but not dimensions
So we do not move and rotate a dimension living in a fp when loading a kicad_pcb
file: pos/rot is already in board coordinates.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18904
2024-10-12 19:46:46 +02:00
JamesJCode 8c8c38a359 Code formatting 2024-10-12 17:38:24 +01:00
JamesJCode 3152b6750d Rule area properties: persist last source choice when not enabled 2024-10-12 17:15:21 +01:00
JamesJCode 68ae75bd45 Bugfixs to rule area placement UI 2024-10-12 16:27:33 +01:00
John Beard ed8b2b050f Sym editor: add save as (like save copy as, but opens the copy)
This seems quite easy in sym edit, but not so straightforward
to add the reverse case in fp edit.

Relates-To: https://gitlab.com/kicad/code/kicad/-/issues/18371

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/18902
2024-10-12 21:27:57 -06:00
Jeff Young 5f00293744 Simplify placement rule area GUI. 2024-10-12 13:44:29 +01:00
Seth Hillbrand 1a24c99a2a Allow parsing into existing elements
Dimensions are parsed before the text elements embedded in them are.  So
we need to handle the existing pointer without copying to avoid dangling
pointers in the font map later.  Based on suggested patch from
@charrasjp

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18853
2024-10-11 12:42:24 -07:00
Dhinesh 8851cd77ab Fix missing text and graphics in PDFs generated by "Plot to PDF"
The "Plot to PDF" function was producing PDF files that lacked text and
graphic items in viewers like Adobe and Foxit. This issue was caused by
the use of the %g format specifier for floating-point numbers defined in
the PDF specification when writing text and drawing shapes in the PDF.
This incorrect format led to a "Too Few Operands" error during rendering.
To resolve this issue, all floating-point numbers must be specified in
fixed-point format according to the PDF specification wherever the issue
was generated.

Fixes #16465
2024-10-11 18:55:46 +00:00
John Beard ddb9de3ecf Design block: fix uninitialised variables on load
Thse were just omitted from the JSON loader, so they were
uninitialised. Valgrind doesn't like them because they get
compared to things before being set.
2024-10-12 00:57:18 +08:00
jean-pierre charras 6ebd8f46fe Pcbnew, python: handle PCB_TABLE items in graphic items list 2024-10-11 11:03:05 +02:00
JamesJCode 37a3e55bd3 Allow pcb rule areas to handle keepout and placement concurrently
- Implements component classes for placement rule areas and multichannel tool
- Implements property inspector properties for rule areas
- Fixes some zone member default initialisation issues
- Gates all multichannel-related imlpementation with existing adv config flag
- Removes rule area type enum, replaces with inference from keepout and
  placement settings
2024-10-10 23:29:02 +01:00
Wayne Stambaugh 73f31d2d80 Add test for ordinal schematic sheet paths. 2024-10-10 16:09:34 -04:00
jean-pierre charras 2d36a5d4f9 Gerbview: make buffer to read a line of Gerber file bigger.
Currently, the Gerber file is parsed line by line, This is most of time OK.
But warning: in rare cases some files can have *very long* lines (in fact
have only one line),  so the buffer must be very large.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18890
2024-10-10 18:33:33 +02:00
jean-pierre charras f34d60932a Pcbnew: ensure all local settings are saved on close the board editor. 2024-10-10 17:36:06 +02:00
jean-pierre charras 5f56061cd8 PCB_DRAW_PANEL_GAL: Ensure LAYER_CONFLICTS_SHADOW is on top of displayed layers.
From stable branch.
2024-10-10 17:36:06 +02:00
Andrzej.W b49ebaeb16 ADDED: Soldermask layer option for graphic shapes
Allows adding a soldermask opening for shapes on a copper layer.
Soldermask expansion can also be specified.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/2125
2024-10-10 12:46:06 +00:00
Wayne Stambaugh a34c6ecd03 Do not crash after dismissing assert dialog in schematic reference lister.
Using wxASSERT to check for a null pointer will crash after dismissing the
assertion dialog in debug builds and crash in release builds.  Use wxCHECK
to take the correct action to prevent the crash.
2024-10-10 08:20:51 -04:00
Wayne Stambaugh 94bf0a33b0 Fix crash when pasting copied schematic sheet.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18885
2024-10-10 08:13:19 -04:00
jean-pierre charras 91569cf3cf PAD::FlipPrimitives(): ensure primitive parent member is up to date.
Looks like the primitive parent member (the pad handling the primitive) is
not always correct: it should be the pad.cpp.
It can create crash (for instance in DRC)
2024-10-10 08:54:13 +02:00
John Beard bd86a74bcf Pcbnew: initialise ZONE_SETTINGS::m_ruleAreaPlacementSourceType
Fixes a text failure in qa_pcbnew.

If this is not initialised, at least the comparison operator will be
operating on junk member values if either side has not had the
source type set.

Maybe it doesn't even make sense for the source type/source to be
checked if m_isRuleArea is false (they're presumably "do not care" in
that context), but if they're initialised, it doesn't matter either
way.
2024-10-10 12:33:52 +08:00
John Beard a56da89bb8 JSON_SETTINGS constness
The Load and MatchesFile methods never change the aSettings parameter.

They also immediately dereference the pointer unchecked, so make it a
ref so that the client code (single call site) becomes formally
responsible for never passing a nullptr.
2024-10-10 12:33:52 +08:00
John Beard 6ef078e9d8 QA: Provide a common implementation of wxAssertThrower
Saves all the unit test modules having to copy-paste the
(simple) function.
2024-10-10 09:28:29 +08:00
JamesJCode 98da64dce7 Fix multichannel QA 2024-10-10 02:25:29 +01:00
JamesJCode a13bf1a8a6 Temporarily disable multichannel QA while updating file format 2024-10-10 02:12:55 +01:00
JamesJCode bc0c9634b8 Don't store DRC expressions in file format for placement rule areas 2024-10-09 18:47:05 +01:00
Wayne Stambaugh a6923b3de3 Cache full schematic sheet list sorted by sheet page number.
The sheet list is returned as a copy of the cached list rather than a
reference to prevent external code from changing the list.  While not as
performant, it eliminates the risk of the sheet list being altered in
ways that could break the schematic.  The sheet list should only be
updated by calling SCHEMATIC::RefreshHierarchy() when any appropriate
sheet changes are made.

Note to developers: there is something inherently different about how the
QA tests are loading and handling schematics versus the schematic editor.
Using the cached sheet list for the SCHEMATIC object will cause some QA
test to fail.  This is why SCHEMATIC::Hierarchy() has not replaced
SCHEMATIC::BuildSheetListSortedByPageNumbers() everywhere.
2024-10-09 09:58:50 -04:00
John Beard eae84fd5f3 Sym edit: add alt mode icon toggle
Moves the logic into the SCH_RENDER_SETTINGS, rather than
repeating it in EESCHEMA/SYMBOL_EDITOR_SETTINGS (they still
maintain their state there, but the painter looks at the
SCH_RENDER_SETTINGS).

Also turn them off for preview purposes.
2024-10-09 21:27:58 -06:00
John Beard 4bad76825c Standardise clamp function
std::clamp and alg:clamp had different argument orders.
Since std::clamp is constexpr, we might as well just use
that now we have it.
2024-10-09 21:27:58 -06:00
John Beard 58669f2b9f BOX2: Correct a clamp
std::clamp is (v, min, max), but alg::clamp is (min, v, max).

I can't quite get my head round why this only causes test failures
on some platforms.
2024-10-09 11:42:16 +08:00
John Beard 55370e7520 QA: BOOST_CHECK to _TEST in some KiMath tests
This tells you the arguments when it fails.

BOOST_TEST is available in all our Boost.Test version.
Even if you didn't use it, these calls should have been
BOOST_TEST_EQUAL(A, B) which also tells you the
arguments on a test failure.
2024-10-09 11:42:16 +08:00
Mike Williams bd652fd88f symbol editor: fix library pinning 2024-10-08 15:32:00 -04:00
Mike Williams 8f205d4f64 symbol editor: fix polyline segments added with the Enter key
Position would be immediately correctly updated on a mouse event, but
the new line segment would start out wrong when added by a non-mouse
event.
2024-10-08 15:00:19 -04:00
John Beard 00c7abc240 Eeschema: fix wxFB betrayal
Copy-paste doesn't copy the wxLEFT,etc flags.
2024-10-08 23:38:39 +08:00
John Beard 91dca89116 Eeschema: Add indicator icons for pins with alt modes
This makes it easier to see which pins have alt modes
available. There is an option to turn them off.

The icon positions are chosen so they they shouldn't
interfere as far as possible:

* If the text is inside, the icon goes more inside
  the body
* If the text is above/below the pin, it goes away from
  the body

This means it won't collide with a symbol wall in
most cases, but some symbols with alt pins on opposing
sides may need to be widened if the icons are show.

Includes a rather fiddly refactor of the SCH_PIN painter
function, which needs quite a lot of massaging to allow
it to figure out where an icon would go. Quite a bit
of logic is broken out into smaller encapsulations with
less visible state to each chunk.

Icon modes for base-name-selected and alt-selected are
included, but only the former works due to information
being thrown away during the SCH_PAINTER tempPin
process.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/11069
2024-10-08 23:30:50 +08:00
John Beard 7214a108e4 Text alignment: add a flip function
Reduces the need for client code to know it can exploit the
enum -1/+1 properties. ToHAlignment provides an explicit
contract for integral conversion, and also doesn't rely on the
int being exactly -1, 0 or 1 (failure to adhere to which would
be UB).
2024-10-08 23:30:50 +08:00
John Beard e85ababab7 Pcbnew: Disable locking of free-edited pads
This is confusing because the pads don't get a locked item shadow,
so it's hard to see what is inhibiting a footprint move if a pad got
locked.

Rather than implement the shadow, disable pad locking in pcbnew
(no locking exists in FP editor). Pad lock state isn't persisted
to the board file, so it's not a fully supported action, and it's
unlikely to be actively useful.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/18862
2024-10-08 23:30:50 +08:00
Mike Williams 33484a8d1f symbol editor: add Swap command
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/18840
2024-10-08 10:50:29 -04:00
JamesJCode 529799de1e Fix broken build in previous commit 2024-10-08 10:20:04 +01:00
JamesJCode d726097a3f Drag NC markers attached to SCH_SHEET pins when SCH_SHEET is dragged
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18854
2024-10-08 08:44:12 +01:00
Jon Evans a0707285a1 Gate track soldermask properties to outer layers 2024-10-07 23:12:55 -04:00
Andrzej Wolski 537d3ac81a ADDED: Soldermask layer option for tracks
Allows adding a soldermask opening for individual tracks.
Soldermask expansion can also be specified.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/2125
2024-10-08 02:48:33 +00:00
JamesJCode f4e5ae0514 Clean up redundant component classes on netlist update 2024-10-07 22:24:03 +01:00
jean-pierre charras 045c1f347f PCB_TUNING_PATTERN: fix another issue due to mix PCB_LAYER_ID layer and PNS layer id
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18867
2024-10-07 19:02:43 +02:00
jean-pierre charras 807c00c70c Avoid duplicate code. 2024-10-07 18:24:12 +02:00
Mike Williams bfae4a99a4 editors: block paste while in tool in schematic/sym/page layout
PCB and footprint editors were already blocking this. Otherwise we would
get weird issues when pasting while drawing things like sheets or
textboxes that aren't selected while drawing.
2024-10-07 10:50:49 -04:00
jean-pierre charras 4b21e54a61 PCB_TUNING_PATTERN: fix issue due to mix PCB_LAYER_ID layer and PNS layer id
The layer id sent to PNS router was incorrect for any layer but F_Cu.
Tehe result was Tuning tools not working (but for F_Cu)

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18865
2024-10-07 16:44:59 +02:00
Alex Shvartzkop 4c196e1486 Improve libgit2 check formatting. 2024-10-07 17:22:28 +03:00
Alex Shvartzkop 74e15a3fc2 Support libgit 1.8.2+
In v1.8.2-rc1, the type change introduced in v1.8.0 was reverted.

See https://github.com/libgit2/libgit2/commit/49d3fadfca4ce8e7a643525eb301a2d45956641e
2024-10-07 17:11:41 +03:00
Jon Evans 473f19e8fb Remove some no-longer-necessary ifdefs 2024-10-06 21:19:05 -04:00
Jon Evans 2a605e4a4e Infrastructure and file format for via stacks 2024-10-06 18:45:25 -04:00
Alex Shvartzkop fac5f6aa83 Altium PCB: convert small arcs in line chain to segments to avoid overflow issues.
Can be seen on "mb1932-bdp", for example.

(cherry picked from commit e6ce4eb73e)
2024-10-06 13:47:32 +03:00
Alex Shvartzkop d965aadd16 Altium PCB: improve default textbox alignment when isJustificationValid flag is not set.
While there is an example where the default text frame justification is center-center,
in other cases it should be left-bottom, but we don't know what controls this yet.

An example where text frames should be imported with center-center justification:
https://github.com/FpgaDigital/RK3328/blob/830d51b80c77aba6c7570d273521770dfeeee0f9/RK3328.PcbDoc

But in "mb1897-bdp.zip" from https://gitlab.com/kicad/code/kicad/-/issues/18784
text frames should use left-bottom justification.

(cherry picked from commit 86f122416b)
2024-10-06 13:44:09 +03:00
Alex Shvartzkop cd87694f52 Altium PCB: support having 103 remaining bytes in ATEXT6 subrecord.
This improves text justification. For example, in:
https://github.com/peng-zhihui/Project-Quantum/blob/71654ca4e4d309e45997a75821f18d0186a08c00/1.Hardware/Electron-Aduino/Electron.PcbDoc

(cherry picked from commit be91576758)
2024-10-06 13:44:03 +03:00
Alex Shvartzkop b8b1b7f9ae Decode UTF-8 for component field values in backannotation parser.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18406

(cherry picked from commit 784c2cda5a)
2024-10-06 12:30:26 +03:00
Alex Shvartzkop 1b540752d9 OCCT (STEP) export: fuse pad shapes earlier.
Because OCCT doesn't like fusing track segments with 3-part TH pads sometimes.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18799
2024-10-06 12:28:29 +03:00
Alex Shvartzkop 646d10b3c6 Add string encoding checks to version info.
This could help in diagnosing locale issues like:
https://gitlab.com/kicad/code/kicad/-/issues/18816
https://gitlab.com/kicad/code/kicad/-/issues/18406
2024-10-06 11:59:37 +03:00
jean-pierre charras b193249d1c BOARD: add helper function GetCopperLayerStackMaxId() and remove dead code
GetCopperLayerStackMaxId() replaces GetCopperLayerCount()*2 and is more
understandable in code where the max allowed PCB_LAYER_ID value is needed.
Removed also a dead code related to GetCopperLayerCount() < 2, broken and not
allowed in Kicad.
2024-10-06 09:37:04 +02:00
Jon Evans df0de2b059 Expose padstack editing in Pad Properties dialog 2024-10-05 23:23:44 -04:00
John Beard 8f95211bbe Construction mgr: protect batch containers
These are added to from the activation delay thread, but
accessed from the tool thread (e.g. via computeAnchors)
so they should be protected from concurrent access.

Relates-To: https://gitlab.com/kicad/code/kicad/-/issues/18835
2024-10-05 23:53:08 +01:00
John Beard 312996f0a2 Extension snaps: don't accept empty batches
These shouldn't be bad, and probably don't actually happen,
but they will act to clear extant construction lines for no
new shown items, so may as well be clear that they don't
do anything.
2024-10-05 23:08:15 +01:00
John Beard 095e414f12 Pcbnew: add way to re-enable locking prompts
While it's still session-limited, this means you don't have
to restart to get your locking ability back.

Finer-grained locking enablement probably makes better long-term
sense, but this at least prevents "gun shyness" about a setting
you can't turn off again easily.

Also it gets a bool's-worth of application configuration state
out of a dialog (it was a static).
2024-10-05 22:26:18 +01:00
John Beard de5a866295 Fix uninitialised vars in ZONE
ZONE has a huge number of state variables. Some of these
have setters that check m_foo == aNewFoo. This is only
good karma if m_foo is initialised!

This doesn't set all of the members (maybe it should,
or maybe there should be sub-objects with explicit ctors)
but at least it should prevent obvious un-inited reports.
2024-10-05 22:26:18 +01:00
Marek Roszko 04cc05645f Bump kicad-vcpkg for wx 2024-10-05 07:38:36 -04:00
Dhineshkumar S 661ed81e6f Enable Move Action for Table Dragging Instead of Cell Selection
Previously, when executing a left mouse button (LMB) click to drag the
selected table, the cells inside the table were selected instead of moving
or dragging the table. To fix this, the move action should be enabled
instead of cell selection when m_selection contains only PCB_TABLE as
selected item. Otherwise, cell selection should remain enabled.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17380
2024-10-04 23:30:37 +00:00
Seth Hillbrand 934453a340 Fix view checking in PNS
Layers in m_view are board layers and need to be translated when going
through the interface

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18831
2024-10-04 15:51:15 -07:00
John Beard 3d6d8b9946 Strip richio.h from headers that don't need them
Like the DSNLEXER header, this has visibility in over 700
files, whereas well under half actually use any of it
(quite a bit, but not all, of it actually via DSNLEXER)

Many places already forward-declare the OUTPUTFORMATTER type,
by doing that for the others, it still possible to use the
non-IO methods without having to see richio.h.
2024-10-04 18:06:18 +01:00
John Beard df5fe44839 sch_symbol.h doesn't need sch_lib_table.h
It doesn't even use the forward-declared
SYMBOL_LIB_TABLE.

Including this pulls in the whole richio system,
and sch_symbol.h is a very-included header.

Quite a few things do use SYMBOL_LIB_TABLE, but nowhere
near as many as use SYMBOL.
2024-10-04 18:06:18 +01:00
John Beard 9398e0c3d9 Eeschema: use (hide yes) in symbols
These were some stragglers from the boolean changes in
786a4ce675, etc.
2024-10-04 18:06:18 +01:00
Wayne Stambaugh 90ed4bae99 Remove debugging output from last commit. 2024-10-04 11:58:56 -04:00
Wayne Stambaugh 7228321b5d Show schematic parity tab in DRC dialog when parity marker is selected. 2024-10-04 11:42:15 -04:00
John Beard 77f2cce10d NETLIST_PARSER: Put in own header
This one isn't as invasive as the others, but it is still
an implementation class that's not needed for public use
of netlists.

Actually, this could even be local to kicad_netlist_reader.cpp
as it's literally only used there.

Now, dsnlexer.h is exposed to only the files it needs, rather
than nearly 800 files.
2024-10-04 15:01:00 +01:00
John Beard 4582bf85b5 STROKE_PARAMS: Separate parser into own header
Again, the main object doesn't need to drag the lexer
into the header and expose it to all users. It's used only
in the sch/pcb parser files.
2024-10-04 15:01:00 +01:00
John Beard c14e8aea89 TEMPLATE_FIELDNAMES: don't drag in the lexer header
TEMPLATE_FIELDNAMES_LEXER is already forward declared - including the
header too drags DSNLEXER into many files, but it is literally only used
in template_fieldnames.cpp.
2024-10-04 15:01:00 +01:00
John Beard 436671edc3 Embedded files parser in own header
This drags in dsnlexer.h to everything that uses EMBEDDED_FILES, but the
parser is actually only used in two files. It's not the only thing to
drag it in, though.

Currently, touching dsnlexer.h rebuilds nearly 800 files, when it
actually is needed by about 50 at most.
2024-10-04 15:00:58 +01:00
John Beard bc9b908de5 Snaps: prevent tiny snap line inhibiting extension lines 2024-10-04 11:01:46 +01:00
John Beard 9060292cd0 Snapping: call out hover accuracy explicitly
This is a place that could be tuned for usability.
2024-10-04 11:01:46 +01:00
jean-pierre charras 6a62f1df94 symbol editor, context menu for pins: remove "Select on Pcb" action.
It has no meaning in Symbol editor.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18841
2024-10-04 10:45:49 +02:00
jean-pierre charras 6c26497213 PNS router: fix a crash when switching to next/previous copper layer.
When (key + and - ) switching to next/previous layer before any usage of
the PNS router, Pcbnew crashed, likely due to incorrect value (perhaps
missing init) of the PNS_KICAD_IFACE (m_iface) m_board member.
So ensure this member is up to date before using it in ROUTER TOOL events.
2024-10-04 10:12:10 +02:00
jean-pierre charras dba16fc168 PNS router: switch to next or previous copper layer: fix order.
the layer id order is not the UI order. So ensure UI order is used when
switching (keys + and -) to next and previous copper layer.
2024-10-04 09:54:06 +02:00
JamesJCode daa1bc3e78 Remove unneeded static_casts 2024-10-04 00:35:14 +01:00
JamesJCode e2e4b47310 Promote move / drag / properties events on pins to parent symbol 2024-10-03 20:18:23 +01:00
John Beard 7a986b5e55 Break out pin spin function
This is a long routine that's easier to reason about
as a function and also can be useful elsewhere when dealing
with pin text orientation.
2024-10-03 19:59:45 +01:00
JamesJCode 4c5ce1a603 Replace eeschema panel toolbar buttons 2024-10-03 18:55:50 +01:00
jean-pierre charras ef3193fe97 Pcbnew: fix some switch copper layers issues:
- fix PCB_CONTROL::LayerNext() and PCB_CONTROL::LayerPrev() (hotkeys + and -)
- fix PCB_EDIT_FRAME::SwitchLayer( PCB_LAYER_ID layer )
- fix PCB_BASE_FRAME::SwitchLayer( PCB_LAYER_ID layer )

-PNS router SwitchLayer is still broken and can crash.
2024-10-03 18:28:09 +02:00
Wayne Stambaugh 90e2dc78b1 Update hierarchy navigator when sheet schematic file is changed. 2024-10-03 12:07:55 -04:00
jean-pierre charras fddc61d885 String translation: fix a subtle string diff not taken in account in commit 51e50c14 2024-10-03 14:10:16 +02:00
Marek Roszko e61d1c771d Add context menu to jobset list items 2024-10-03 08:03:25 -04:00
John Beard a055d95f0c Add pin direction comments
Handy when having a crisis of confidence about if
PIN_LEFT means the pin goes left from the connection
point, or goes on the left of the symbol (the first one
and now IDE hover popup confirms it).
2024-10-02 23:56:42 +01:00
jean-pierre charras 51e50c1479 Fix some (minor) issues related to string translation
- Avoid not printable chars in strings to translate
- remove a trailing space.
- disambiguate to short strings.
2024-10-03 10:46:59 +02:00
JamesJCode 95bbcaffbf Fix some compiler warnings 2024-10-03 07:11:59 +01:00
Marek Roszko 7abc0b9839 Implement job up/down arrangement 2024-10-02 22:55:02 -04:00
Marek Roszko 3163801019 Add title to output options dialog 2024-10-02 22:55:02 -04:00
Jon Evans 31475203dd Support custom padstacks in ODB++ 2024-10-02 22:39:58 -04:00
Jon Evans 2babeabbea Remove leftover todo marker 2024-10-02 21:54:28 -04:00
Jon Evans ed0a265aa6 Prevent setting negative pad sizes 2024-10-02 21:18:10 -04:00
Jon Evans 751627ec88 Don't include front layer in custom padstack section
The info is already formatted earlier
2024-10-02 21:17:23 -04:00
Jon Evans 752371833b Support custom padstacks in plotter 2024-10-02 18:07:09 -04:00
JamesJCode 6e0f6da2fa Panel menu title simplification 2024-10-02 20:29:54 +01:00
JamesJCode 64c24fc04b UI consistency improvements 2024-10-02 19:44:48 +01:00
Wayne Stambaugh 38db5e13b0 Fix null pointer dereference crash when updating board from schematic. 2024-10-02 13:39:28 -04:00
Wayne Stambaugh a871311b6f Fix schematic hierarchy navigator refresh issues.
The hierarchy navigator was failing to update properly on undo/redo and
when the referenced schematic file of a sheet was changed.
2024-10-02 11:05:54 -04:00
jean-pierre charras c5120cc3a1 Do not translate proper nouns and empty strings. 2024-10-02 15:05:59 +02:00
Jon Evans 12ef2b8a88 Fix typos in GetSolderPasteMargin 2024-10-02 08:56:44 -04:00
Marek Roszko 34b4621cd6 Update our vcpkg ports 2024-10-02 06:50:44 -04:00
jean-pierre charras 56b50e1600 Fix compil warnings and minor Coverity warnings (uninitialized variables). 2024-10-02 09:33:54 +02:00
Jon Evans 37a656fae7 Patch a few blind/buried via rendering issues 2024-10-01 20:59:25 -04:00
Jon Evans 468ebc3174 CHANGED: Render vias using copper layer colors
Update microvia and blind/buried via rendering to remove
dedicated layer colors and only use copper layer colors
2024-10-01 19:55:05 -04:00
Jon Evans 56e0811516 Phase 2 of padstack support
CHANGED: PCB file format now supports saving/loading complex padstacks

CHANGED: PTH pads are now rendered per copper layer in the copper color;
         the PTH pad color is no longer used.

ADDED: support for importing complex pad stacks from Altium PCBs

Enforce padstack-aware access to pad properties across KiCad

Fixes https://gitlab.com/kicad/code/kicad/-/issues/8182
2024-10-01 19:55:03 -04:00
Jon Evans b255816000 Support Altium top-middle-bottom pad stacks 2024-10-01 19:54:00 -04:00
JamesJCode d64a112971 Implement Component Classes
- Adds Component Class field to SCH_DIRECTIVE_LABEL
- Adds SCH_SYMBOLs to SCH_RULE_AREA item lists
- SCH_SYMBOLs resolve Component Class directives
- Netlist exporter / importer handles Component Class names
- Adds DRC expressions and functions
- Adds QA check for component class netlist export
2024-10-01 22:36:18 +01:00
John Beard ae96ac6d2e Sym edit: Add hidden field/pin toggle in settings panel
Actually add a whole new panel for symbol editor appearance control.

Use the SYMBOL_EDITOR_SETTINGS as the source of truth in a
couple more places, but the SCH_PAINTER settings are still
driving quite a bit here and there.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/18830
2024-10-01 21:53:40 +01:00
Mike Williams 0b9984d547 design blocks: convenience: copy fields from sheet to new design block 2024-10-01 16:07:52 -04:00
JamesJCode 73bcda4633 Fix build on MacOS 14 2024-10-01 19:37:40 +01:00
Mike Williams 8695c4afe4 design blocks: allow saving selected sheet as design block 2024-10-01 14:19:07 -04:00
Mike Williams 4fd34142af cli jobs: fix build on clang 18 2024-10-01 14:19:07 -04:00
Seth Hillbrand ea6c53ba5d Re-enable low-translation testing languages
Languages lower on the translation level need to be enabled in the
master branch for testing
2024-10-01 10:59:47 -07:00
John Beard e65221a479 Snapping: extension snaps on by default 2024-10-01 18:06:27 +01:00
John Beard e23b83505e Snapping: delayed activation of snap points.
This makes it easier to control what snap points you are aiming for
without accidentally activating objects just by mousing near them
on the way to somewhere else.
2024-10-01 18:06:27 +01:00
John Beard 1effaf83c3 Sym edit: next/prev unit actions
Trivial small part of making large multi-unit symbol handling possibly a
little bit easier.

Relates-To: https://gitlab.com/kicad/code/kicad/-/issues/9346
2024-10-01 18:06:26 +01:00
John Beard a4cbd0adb4 Sym edit: allow to drag pins with edges
Only applies when dragging an edge by the midpoint handle,
and only in the symbol editor if configured to do so.
2024-10-01 18:06:26 +01:00
John Beard c9a231610a 3DConnexion navlibs need kiplatform
This worked in Pcbnew because pcbcommon happened to include
kiplatform, but gerbview didn't.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/18825
2024-10-01 17:11:01 +01:00
Marek Roszko d1d71f75d6 Fix typo in jobset.h 2024-10-01 06:55:28 -04:00
Marek Roszko d74caace0a Initial jobset creation and running within the CLI and GUI.
Incomplete, just pushing this before feature freeze, much fixing left
2024-09-30 20:04:53 -04:00
4283 changed files with 1091555 additions and 695113 deletions
+2
View File
@@ -44,11 +44,13 @@
- build/linux/common/libkicommon.so*
- build/linux/common/gal/libkigal.so*
- build/linux/eeschema/_eeschema.kiface
- build/linux/cvpcb/_cvpcb.kiface
- build/linux/kicad/kicad-cli
- build/linux/pcbnew/pcbnew.py
- build/linux/pcbnew/_pcbnew.kiface
- build/linux/pcbnew/_pcbnew.so
- build/linux/qa/
- build/linux/schemas/
- build/linux/compilation_log.txt
exclude:
- build/linux/**/*.o
+4 -3
View File
@@ -4,15 +4,15 @@
win64_build:
stage: build
tags:
- kicad-windows-1809
- kicad-windows-ltsc2022
interruptible: false
image: registry.gitlab.com/kicad/kicad-ci/windows-build-image/win1809-msvc:latest
image: registry.gitlab.com/kicad/kicad-ci/windows-build-image/ltsc2022-msvc:latest
variables:
# Switch the compressor to fastzip and reduce the compression level
FF_USE_FASTZIP: "true"
CACHE_COMPRESSION_LEVEL: "fast"
cache:
key: win64-vcpkg-"$CI_COMMIT_REF_SLUG"
key: win64-vcpkg-$CI_COMMIT_REF_SLUG
paths:
- build\windows\vcpkg_installed
- .vcpkgCache
@@ -33,6 +33,7 @@ win64_build:
-DKICAD_USE_OCC=ON `
-DKICAD_BUILD_PNS_DEBUG_TOOL=ON `
-DKICAD_USE_3DCONNEXION=ON `
-DVCPKG_BUILD_TYPE=debug `
../../
- cmake --build . 2>&1 | tee compilation_log.txt
- cd ../../
+2 -1
View File
@@ -65,6 +65,7 @@ Coverity:
-DCMAKE_BUILD_TYPE=RelWithDebInfo
-DKICAD_STDLIB_LIGHT_DEBUG=ON
-DKICAD_SCRIPTING_WXPYTHON=ON
-DKICAD_USE_CMAKE_FINDPROTOBUF=ON
- coverity/bin/cov-build --dir cov-int make -j10
- *coverity_submit
artifacts:
@@ -72,4 +73,4 @@ Coverity:
expose_as: 'Coverity log'
name: "coverity_log.txt"
paths:
- cov-int/build-log.txt
- cov-int/build-log.txt
+1 -1
View File
@@ -15,7 +15,7 @@ macos_build:
- cd build/macos
- cmake
-G Ninja
-DCMAKE_TOOLCHAIN_FILE=/Users/ci/kicad-mac-builder/toolchain/kicad-mac-builder.cmake
-DCMAKE_TOOLCHAIN_FILE=/Users/$USER/kicad-mac-builder/toolchain/kicad-mac-builder.cmake
../../
- cmake --build . 2>&1 | tee compilation_log.txt
- cd ../../
+4 -3
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015-2016 Cirilo Bernardo <cirilo.bernardo@gmail.com>
* Copyright (C) 2018-2022 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
* Copyright (C) 2022 CERN
*
* This program is free software; you can redistribute it and/or
@@ -211,7 +211,8 @@ SCENEGRAPH* S3D_CACHE::load( const wxString& aModelFile, const wxString& aBasePa
}
SCENEGRAPH* S3D_CACHE::Load( const wxString& aModelFile, const wxString& aBasePath, const EMBEDDED_FILES* aEmbeddedFiles )
SCENEGRAPH* S3D_CACHE::Load( const wxString& aModelFile, const wxString& aBasePath,
const EMBEDDED_FILES* aEmbeddedFiles )
{
return load( aModelFile, aBasePath, nullptr, aEmbeddedFiles );
}
@@ -612,4 +613,4 @@ void S3D_CACHE::CleanCacheDir( int aNumDaysOld )
}
}
}
}
}
+10 -8
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015 Cirilo Bernardo <cirilo.bernardo@gmail.com>
* Copyright (C) 2020 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -63,7 +63,7 @@ public:
}
/**
* Sets the configuration directory to be used by the model manager for storing 3D
* Set the configuration directory to be used by the model manager for storing 3D
* model manager configuration data and the model cache.
*
* The config directory may only be set once in the lifetime of the object.
@@ -98,7 +98,8 @@ public:
* @param aEmbeddedFiles is a pointer to the embedded files list.
* @return true if the model was successfully loaded, otherwise false.
*/
SCENEGRAPH* Load( const wxString& aModelFile, const wxString& aBasePath, const EMBEDDED_FILES* aEmbeddedFiles );
SCENEGRAPH* Load( const wxString& aModelFile, const wxString& aBasePath,
const EMBEDDED_FILES* aEmbeddedFiles );
FILENAME_RESOLVER* GetResolver() noexcept;
@@ -130,7 +131,8 @@ public:
* @param aEmbeddedFiles is a pointer to the embedded files list.
* @return is a pointer to the render data or NULL if not available.
*/
S3DMODEL* GetModel( const wxString& aModelFileName, const wxString& aBasePath, const EMBEDDED_FILES* aEmbeddedFiles );
S3DMODEL* GetModel( const wxString& aModelFileName, const wxString& aBasePath,
const EMBEDDED_FILES* aEmbeddedFiles );
/**
* Delete up old cache files in cache directory.
@@ -172,12 +174,12 @@ private:
// the real load function (can supply a cache entry pointer to member functions)
SCENEGRAPH* load( const wxString& aModelFile, const wxString& aBasePath,
S3D_CACHE_ENTRY** aCachePtr = nullptr,
const EMBEDDED_FILES* aEmbeddedFiles = nullptr );
const EMBEDDED_FILES* aEmbeddedFiles = nullptr );
/// cache entries
/// Cache entries.
std::list< S3D_CACHE_ENTRY* > m_CacheList;
/// mapping of file names to cache names and data
/// Mapping of file names to cache names and data.
std::map< wxString, S3D_CACHE_ENTRY*, rsort_wxString > m_CacheMap;
FILENAME_RESOLVER* m_FNResolver;
@@ -186,7 +188,7 @@ private:
PROJECT* m_project;
wxString m_CacheDir;
wxString m_ConfigDir; /// base configuration path for 3D items
wxString m_ConfigDir; ///< base configuration path for 3D items.
};
#endif // CACHE_3D_H
+1 -1
View File
@@ -5,7 +5,7 @@
* Copyright (C) 2015 Mario Luzeiro <mrluzeiro@ua.pt>
* Copyright (C) 2011 Wayne Stambaugh <stambaughw@verizon.net>
* Copyright (C) 2004 Jean-Pierre Charras, jp.charras at wanadoo.fr
* Copyright (C) 1992-2015 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
+4 -4
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015-2016 Cirilo Bernardo <cirilo.bernardo@gmail.com>
* Copyright (C) 2020-2023 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -444,7 +444,8 @@ SCENEGRAPH* S3D_PLUGIN_MANAGER::Load3DModel( const wxString& aFileName, std::str
ext_to_find.MakeLower();
#endif
// .gz files are compressed versions that may have additional information in the previous extension
// .gz files are compressed versions that may have additional information in the previous
// extension.
if( ext_to_find == wxT( "gz" ) )
{
wxFileName second( raw.GetName() );
@@ -518,8 +519,7 @@ bool S3D_PLUGIN_MANAGER::CheckTag( const char* aTag )
ptag.clear();
(*pS)->GetPluginInfo( ptag );
// if the plugin name matches then the version
// must also match
// if the plugin name matches then the version must also match
if( !ptag.compare( 0, pname.size(), pname ) )
{
if( ptag.compare( tname ) )
+1 -1
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2016 Cirilo Bernardo <cirilo.bernardo@gmail.com>
* Copyright (C) 2020 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015-2017 Cirilo Bernardo <cirilo.bernardo@gmail.com>
* Copyright (C) 2020 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015 Cirilo Bernardo <cirilo.bernardo@gmail.com>
* Copyright (C) 2020 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015 Cirilo Bernardo <cirilo.bernardo@gmail.com>
* Copyright (C) 2020 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015 Cirilo Bernardo <cirilo.bernardo@gmail.com>
* Copyright (C) 2020 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015 Cirilo Bernardo <cirilo.bernardo@gmail.com>
* Copyright (C) 2020 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015 Cirilo Bernardo <cirilo.bernardo@gmail.com>
* Copyright (C) 2020 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015 Cirilo Bernardo <cirilo.bernardo@gmail.com>
* Copyright (C) 2020 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015 Cirilo Bernardo <cirilo.bernardo@gmail.com>
* Copyright (C) 2020 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015 Cirilo Bernardo <cirilo.bernardo@gmail.com>
* Copyright (C) 2020 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015 Cirilo Bernardo <cirilo.bernardo@gmail.com>
* Copyright (C) 2020 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015 Cirilo Bernardo <cirilo.bernardo@gmail.com>
* Copyright (C) 2020 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015 Cirilo Bernardo <cirilo.bernardo@gmail.com>
* Copyright (C) 2020 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015 Cirilo Bernardo <cirilo.bernardo@gmail.com>
* Copyright (C) 2020 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015-2017 Cirilo Bernardo <cirilo.bernardo@gmail.com>
* Copyright (C) 2020 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015-2017 Cirilo Bernardo <cirilo.bernardo@gmail.com>
* Copyright (C) 2020 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015 Cirilo Bernardo <cirilo.bernardo@gmail.com>
* Copyright (C) 2020 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015-2017 Cirilo Bernardo <cirilo.bernardo@gmail.com>
* Copyright (C) 2020 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015-2017 Cirilo Bernardo <cirilo.bernardo@gmail.com>
* Copyright (C) 2020 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015 Cirilo Bernardo <cirilo.bernardo@gmail.com>
* Copyright (C) 2020-2021 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015 Cirilo Bernardo <cirilo.bernardo@gmail.com>
* Copyright (C) 2020 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015-2017 Cirilo Bernardo <cirilo.bernardo@gmail.com>
* Copyright (C) 2020 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015-2017 Cirilo Bernardo <cirilo.bernardo@gmail.com>
* Copyright (C) 2020 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015-2017 Cirilo Bernardo <cirilo.bernardo@gmail.com>
* Copyright (C) 2020 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015-2017 Cirilo Bernardo <cirilo.bernardo@gmail.com>
* Copyright (C) 2020 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015-2017 Cirilo Bernardo <cirilo.bernardo@gmail.com>
* Copyright (C) 2020 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015-2017 Cirilo Bernardo <cirilo.bernardo@gmail.com>
* Copyright (C) 2020 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015-2017 Cirilo Bernardo <cirilo.bernardo@gmail.com>
* Copyright (C) 2020 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015-2017 Cirilo Bernardo <cirilo.bernardo@gmail.com>
* Copyright (C) 2020 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015 Cirilo Bernardo <cirilo.bernardo@gmail.com>
* Copyright (C) 2020 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015-2017 Cirilo Bernardo <cirilo.bernardo@gmail.com>
* Copyright (C) 2020 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015-2017 Cirilo Bernardo <cirilo.bernardo@gmail.com>
* Copyright (C) 2020 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015-2017 Cirilo Bernardo <cirilo.bernardo@gmail.com>
* Copyright (C) 2020 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015-2017 Cirilo Bernardo <cirilo.bernardo@gmail.com>
* Copyright (C) 2020 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015-2017 Cirilo Bernardo <cirilo.bernardo@gmail.com>
* Copyright (C) 2020 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
+23 -25
View File
@@ -3,7 +3,7 @@
*
* Copyright (C) 2015-2023 Mario Luzeiro <mrluzeiro@ua.pt>
* Copyright (C) 2023 CERN
* Copyright (C) 1992-2024 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -227,16 +227,8 @@ void BOARD_ADAPTER::ReloadColorSettings() noexcept
{
wxCHECK( PgmOrNull(), /* void */ );
PCBNEW_SETTINGS* cfg = nullptr;
try
{
cfg = Pgm().GetSettingsManager().GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" );
}
catch( const std::runtime_error& e )
{
wxFAIL_MSG( e.what() );
}
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
PCBNEW_SETTINGS* cfg = mgr.GetAppSettings<PCBNEW_SETTINGS>( "pcbnew" );
if( cfg )
{
@@ -382,7 +374,8 @@ void BOARD_ADAPTER::InitSettings( REPORTER* aStatusReporter, REPORTER* aWarningR
m_nonCopperLayerThickness3DU = DEFAULT_TECH_LAYER_THICKNESS * m_biuTo3Dunits;
m_solderPasteLayerThickness3DU = SOLDERPASTE_LAYER_THICKNESS * m_biuTo3Dunits;
g_BevelThickness3DU = pcbIUScale.mmToIU( ADVANCED_CFG::GetCfg().m_3DRT_BevelHeight_um / 1000.0 ) * m_biuTo3Dunits;
g_BevelThickness3DU = pcbIUScale.mmToIU( ADVANCED_CFG::GetCfg().m_3DRT_BevelHeight_um / 1000.0 )
* m_biuTo3Dunits;
if( m_board )
{
@@ -403,9 +396,10 @@ void BOARD_ADAPTER::InitSettings( REPORTER* aStatusReporter, REPORTER* aWarningR
case BS_ITEM_TYPE_COPPER:
{
// The copper thickness must be > 0 to avoid draw issues (divide by 0 for instance)
// We use a minimal arbitrary value = 1 micrometer here:
int copper_thickness = std::max( item->GetThickness(), pcbIUScale.mmToIU( 0.001 ) );
// The copper thickness must be > 0 to avoid draw issues (divide by 0 for
// instance). We use a minimal arbitrary value = 1 micrometer here:
int copper_thickness = std::max( item->GetThickness(),
pcbIUScale.mmToIU( 0.001 ) );
if( item->GetBrdLayerId() == F_Cu )
m_frontCopperThickness3DU = copper_thickness * m_biuTo3Dunits;
@@ -427,8 +421,10 @@ void BOARD_ADAPTER::InitSettings( REPORTER* aStatusReporter, REPORTER* aWarningR
// Init Z position of each layer
// calculate z position for each copper layer
// Zstart = -m_epoxyThickness / 2.0 is the z position of the back (bottom layer) (layer id = B_Cu)
// Zstart = +m_epoxyThickness / 2.0 is the z position of the front (top layer) (layer id = F_Cu)
// Zstart = -m_epoxyThickness / 2.0 is the z position of the back (bottom layer)
// (layer id = B_Cu)
// Zstart = +m_epoxyThickness / 2.0 is the z position of the front (top layer)
// (layer id = F_Cu)
// ____==__________==________==______ <- Bottom = +m_epoxyThickness / 2.0,
// | | Top = Bottom + m_copperThickness
@@ -478,15 +474,17 @@ void BOARD_ADAPTER::InitSettings( REPORTER* aStatusReporter, REPORTER* aWarningR
continue;
m_layerZcoordBottom[(PCB_LAYER_ID)layer_id] = zpos_copperTop_back - 2.0f * zpos_offset;
m_layerZcoordTop[(PCB_LAYER_ID)layer_id] = m_layerZcoordBottom[(PCB_LAYER_ID)layer_id] - m_backCopperThickness3DU;
m_layerZcoordTop[(PCB_LAYER_ID) layer_id] =
m_layerZcoordBottom[(PCB_LAYER_ID) layer_id] - m_backCopperThickness3DU;
}
// calculate z position for each technical layer
// Solder mask and Solder paste have the same Z position
for( PCB_LAYER_ID layer_id : { B_Adhes, B_Mask, B_Paste, F_Adhes, F_Mask, F_Paste, B_SilkS, F_SilkS } )
for( PCB_LAYER_ID layer_id :
{ B_Adhes, B_Mask, B_Paste, F_Adhes, F_Mask, F_Paste, B_SilkS, F_SilkS } )
{
float zposTop;
float zposBottom;
float zposTop = 0.0;
float zposBottom = 0.0;
switch( layer_id )
{
@@ -647,8 +645,10 @@ std::map<int, COLOR4D> BOARD_ADAPTER::GetLayerColors() const
const BOARD_STACKUP& stackup = m_board->GetDesignSettings().GetStackupDescriptor();
KIGFX::COLOR4D bodyColor( 0, 0, 0, 0 );
// Can't do a const KIGFX::COLOR4D& return type here because there are temporary variables
auto findColor =
[]( const wxString& aColorName, const CUSTOM_COLORS_LIST& aColorSet )
[]( const wxString& aColorName,
const CUSTOM_COLORS_LIST& aColorSet ) -> const KIGFX::COLOR4D
{
if( aColorName.StartsWith( wxT( "#" ) ) )
{
@@ -955,9 +955,7 @@ bool BOARD_ADAPTER::createBoardPolygon( wxString* aErrorMsg )
success = BuildFootprintPolygonOutlines( m_board, m_board_poly,
m_board->GetDesignSettings().m_MaxError,
chainingEpsilon );
// Make polygon strictly simple to avoid issues (especially in 3D viewer)
m_board_poly.Simplify( SHAPE_POLY_SET::PM_STRICTLY_SIMPLE );
m_board_poly.Simplify();
if( !success && aErrorMsg )
{
+19 -21
View File
@@ -3,7 +3,7 @@
*
* Copyright (C) 2015-2016 Mario Luzeiro <mrluzeiro@ua.pt>
* Copyright (C) 2023 CERN
* Copyright (C) 1992-2024 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -140,7 +140,7 @@ public:
double BiuTo3dUnits() const noexcept { return m_biuTo3Dunits; }
/**
* Get the board outling bounding box.
* Get the board outline bounding box.
*
* @return the board bounding box in 3D units.
*/
@@ -352,8 +352,16 @@ public:
*/
const MAP_POLY& GetPolyMap() const noexcept { return m_layers_poly; }
const SHAPE_POLY_SET* GetFrontPlatedPadAndGraphicPolys() { return m_frontPlatedPadAndGraphicPolys; }
const SHAPE_POLY_SET* GetBackPlatedPadAndGraphicPolys() { return m_backPlatedPadAndGraphicPolys; }
const SHAPE_POLY_SET* GetFrontPlatedPadAndGraphicPolys()
{
return m_frontPlatedPadAndGraphicPolys;
}
const SHAPE_POLY_SET* GetBackPlatedPadAndGraphicPolys()
{
return m_backPlatedPadAndGraphicPolys;
}
const MAP_POLY& GetHoleIdPolysMap() const noexcept { return m_layerHoleIdPolys; }
const MAP_POLY& GetHoleOdPolysMap() const noexcept { return m_layerHoleOdPolys; }
@@ -368,10 +376,8 @@ private:
void destroyLayers();
// Helper functions to create the board
void createViaWithMargin( const PCB_TRACK* aTrack, CONTAINER_2D_BASE* aDstContainer,
int aMargin );
void createTrack( const PCB_TRACK* aTrack, CONTAINER_2D_BASE* aDstContainer );
void createTrackWithMargin( const PCB_TRACK* aTrack, CONTAINER_2D_BASE* aDstContainer,
PCB_LAYER_ID aLayer, int aMargin = 0 );
void createPadWithMargin( const PAD *aPad, CONTAINER_2D_BASE* aDstContainer,
PCB_LAYER_ID aLayer, const VECTOR2I& aMargin ) const;
@@ -390,7 +396,7 @@ private:
const BOARD_ITEM* aOwner );
void addShape( const PCB_SHAPE* aShape, CONTAINER_2D_BASE* aContainer,
const BOARD_ITEM* aOwner );
const BOARD_ITEM* aOwner, PCB_LAYER_ID aLayer );
void addShape( const PCB_DIMENSION_BASE* aDimension, CONTAINER_2D_BASE* aDstContainer,
const BOARD_ITEM* aOwner );
@@ -405,10 +411,11 @@ private:
PCB_LAYER_ID aLayerId );
void createArcSegments( const VECTOR2I& aCentre, const VECTOR2I& aStart,
const EDA_ANGLE& aArcAngle, int aCircleToSegmentsCount, int aWidth,
CONTAINER_2D_BASE* aContainer, const BOARD_ITEM& aOwner );
const EDA_ANGLE& aArcAngle, int aCircleToSegmentsCount, int aWidth,
CONTAINER_2D_BASE* aContainer, const BOARD_ITEM& aOwner );
void buildPadOutlineAsSegments( const PAD* aPad, CONTAINER_2D_BASE* aDstContainer, int aWidth );
void buildPadOutlineAsSegments( const PAD* aPad, PCB_LAYER_ID aLayer,
CONTAINER_2D_BASE* aDstContainer, int aWidth );
public:
static CUSTOM_COLORS_LIST g_SilkColors;
@@ -527,13 +534,4 @@ private:
};
class EDA_3D_BOARD_HOLDER
{
public:
virtual BOARD_ADAPTER& GetAdapter() = 0;
virtual CAMERA& GetCurrentCamera() = 0;
virtual ~EDA_3D_BOARD_HOLDER() {};
};
#endif // BOARD_ADAPTER_H
@@ -3,7 +3,7 @@
*
* Copyright (C) 2015-2016 Mario Luzeiro <mrluzeiro@ua.pt>
* Copyright (C) 2023 CERN
* Copyright (C) 1992-2024 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -100,6 +100,7 @@ void BOARD_ADAPTER::addText( const EDA_TEXT* aText, CONTAINER_2D_BASE* aContaine
TEXT_ATTRIBUTES attrs = aText->GetAttributes();
float penWidth_3DU = TO_3DU( aText->GetEffectiveTextPenWidth() );
KIFONT::FONT* font = aText->GetFont();
wxString shownText = aText->GetShownText( true );
if( !font )
font = KIFONT::FONT::GetFont( wxEmptyString, aText->IsBold(), aText->IsItalic() );
@@ -134,8 +135,15 @@ void BOARD_ADAPTER::addText( const EDA_TEXT* aText, CONTAINER_2D_BASE* aContaine
attrs.m_Angle = aText->GetDrawRotation();
font->Draw( &callback_gal, aText->GetShownText( true ), aText->GetDrawPos(), attrs,
aOwner->GetFontMetrics() );
if( auto* cache = aText->GetRenderCache( font, shownText ) )
{
callback_gal.DrawGlyphs( *cache );
}
else
{
font->Draw( &callback_gal, shownText, aText->GetDrawPos(), attrs,
aOwner->GetFontMetrics() );
}
}
}
@@ -211,9 +219,11 @@ void BOARD_ADAPTER::addFootprintShapes( const FOOTPRINT* aFootprint, CONTAINER_2
{
if( !aVisibilityFlags.test( LAYER_FP_TEXT ) )
continue;
else if( text->GetText() == wxT( "${REFERENCE}" ) && !aVisibilityFlags.test( LAYER_FP_REFERENCES ) )
else if( text->GetText() == wxT( "${REFERENCE}" )
&& !aVisibilityFlags.test( LAYER_FP_REFERENCES ) )
continue;
else if( text->GetText() == wxT( "${VALUE}" ) && !aVisibilityFlags.test( LAYER_FP_VALUES ) )
else if( text->GetText() == wxT( "${VALUE}" )
&& !aVisibilityFlags.test( LAYER_FP_VALUES ) )
continue;
addText( text, aContainer, text );
@@ -260,8 +270,8 @@ void BOARD_ADAPTER::addFootprintShapes( const FOOTPRINT* aFootprint, CONTAINER_2
{
PCB_SHAPE* shape = static_cast<PCB_SHAPE*>( item );
if( shape->GetLayer() == aLayerId )
addShape( shape, aContainer, aFootprint );
if( shape->IsOnLayer( aLayerId ) )
addShape( shape, aContainer, aFootprint, aLayerId );
break;
}
@@ -273,18 +283,9 @@ void BOARD_ADAPTER::addFootprintShapes( const FOOTPRINT* aFootprint, CONTAINER_2
}
void BOARD_ADAPTER::createViaWithMargin( const PCB_TRACK* aTrack, CONTAINER_2D_BASE* aDstContainer,
int aMargin )
{
SFVEC2F start3DU = TO_SFVEC2F( aTrack->GetStart() );
SFVEC2F end3DU = TO_SFVEC2F( aTrack->GetEnd() );
const float radius3DU = TO_3DU( ( aTrack->GetWidth() / 2.0 ) + aMargin );
addFILLED_CIRCLE_2D( aDstContainer, start3DU, radius3DU, *aTrack );
}
void BOARD_ADAPTER::createTrack( const PCB_TRACK* aTrack, CONTAINER_2D_BASE* aDstContainer )
void BOARD_ADAPTER::createTrackWithMargin( const PCB_TRACK* aTrack,
CONTAINER_2D_BASE* aDstContainer, PCB_LAYER_ID aLayer,
int aMargin )
{
SFVEC2F start3DU = TO_SFVEC2F( aTrack->GetStart() );
SFVEC2F end3DU = TO_SFVEC2F( aTrack->GetEnd() );
@@ -292,8 +293,13 @@ void BOARD_ADAPTER::createTrack( const PCB_TRACK* aTrack, CONTAINER_2D_BASE* aDs
switch( aTrack->Type() )
{
case PCB_VIA_T:
addFILLED_CIRCLE_2D( aDstContainer, start3DU, TO_3DU( aTrack->GetWidth() / 2.0 ), *aTrack );
{
const PCB_VIA* via = static_cast<const PCB_VIA*>( aTrack );
float width3DU = TO_3DU( via->GetWidth( aLayer ) + aMargin * 2 );
addFILLED_CIRCLE_2D( aDstContainer, start3DU, width3DU / 2.0, *aTrack );
break;
}
case PCB_ARC_T:
{
@@ -308,7 +314,7 @@ void BOARD_ADAPTER::createTrack( const PCB_TRACK* aTrack, CONTAINER_2D_BASE* aDs
track.SetWidth( arc->GetWidth() );
track.SetLayer( arc->GetLayer() );
createTrack( &track, aDstContainer );
createTrackWithMargin( &track, aDstContainer, aLayer, aMargin );
return;
}
@@ -331,17 +337,19 @@ void BOARD_ADAPTER::createTrack( const PCB_TRACK* aTrack, CONTAINER_2D_BASE* aDs
else
{
circlesegcount = KiROUND( arcsegcount * 360.0 / std::abs( arc_angle.AsDegrees() ) );
circlesegcount = alg::clamp( 1, circlesegcount, 128 );
circlesegcount = std::clamp( circlesegcount, 1, 128 );
}
createArcSegments( center, arc->GetStart(), arc_angle, circlesegcount, arc->GetWidth(),
createArcSegments( center, arc->GetStart(), arc_angle, circlesegcount,
arc->GetWidth() + aMargin * 2,
aDstContainer, *arc );
break;
}
case PCB_TRACE_T: // Track is a usual straight segment
{
addROUND_SEGMENT_2D( aDstContainer, start3DU, end3DU, TO_3DU( aTrack->GetWidth() ), *aTrack );
float width3DU = TO_3DU( aTrack->GetWidth() + aMargin * 2 );
addROUND_SEGMENT_2D( aDstContainer, start3DU, end3DU, width3DU, *aTrack );
break;
}
@@ -366,22 +374,22 @@ void BOARD_ADAPTER::createPadWithMargin( const PAD* aPad, CONTAINER_2D_BASE* aCo
// is only the size of the anchor), so for those we punt and just use aMargin.x.
if( ( clearance.x < 0 || clearance.x != clearance.y )
&& aPad->GetShape() != PAD_SHAPE::CUSTOM )
&& aPad->GetShape( aLayer ) != PAD_SHAPE::CUSTOM )
{
VECTOR2I dummySize = VECTOR2I( aPad->GetSize() ) + clearance + clearance;
VECTOR2I dummySize = VECTOR2I( aPad->GetSize( aLayer ) ) + clearance + clearance;
if( dummySize.x <= 0 || dummySize.y <= 0 )
return;
PAD dummy( *aPad );
dummy.SetSize( VECTOR2I( dummySize.x, dummySize.y ) );
dummy.SetSize( aLayer, VECTOR2I( dummySize.x, dummySize.y ) );
dummy.TransformShapeToPolygon( poly, aLayer, 0, maxError, ERROR_INSIDE );
clearance = { 0, 0 };
// Remove group membership from dummy item before deleting
dummy.SetParentGroup( nullptr );
}
else if( aPad->GetShape() == PAD_SHAPE::CUSTOM )
else if( aPad->GetShape( aLayer ) == PAD_SHAPE::CUSTOM )
{
// A custom pad can have many complex subshape items. To avoid issues, use its
// final polygon shape, not its basic shape set. One cannot apply the clearance
@@ -390,7 +398,8 @@ void BOARD_ADAPTER::createPadWithMargin( const PAD* aPad, CONTAINER_2D_BASE* aCo
}
else
{
auto padShapes = std::static_pointer_cast<SHAPE_COMPOUND>( aPad->GetEffectiveShape() );
auto padShapes =
std::static_pointer_cast<SHAPE_COMPOUND>( aPad->GetEffectiveShape( aLayer ) );
for( const SHAPE* shape : padShapes->Shapes() )
{
@@ -477,7 +486,7 @@ void BOARD_ADAPTER::createPadWithMargin( const PAD* aPad, CONTAINER_2D_BASE* aCo
void BOARD_ADAPTER::createPadWithHole( const PAD* aPad, CONTAINER_2D_BASE* aDstContainer,
int aInflateValue )
int aInflateValue )
{
if( !aPad->HasHole() )
{
@@ -540,13 +549,13 @@ void BOARD_ADAPTER::addPads( const FOOTPRINT* aFootprint, CONTAINER_2D_BASE* aCo
case F_Mask:
case B_Mask:
margin.x += pad->GetSolderMaskExpansion();
margin.y += pad->GetSolderMaskExpansion();
margin.x += pad->GetSolderMaskExpansion( aLayerId );
margin.y += pad->GetSolderMaskExpansion( aLayerId );
break;
case F_Paste:
case B_Paste:
margin += pad->GetSolderPasteMargin();
margin += pad->GetSolderPasteMargin( aLayerId );
break;
default:
@@ -608,10 +617,22 @@ void BOARD_ADAPTER::createArcSegments( const VECTOR2I& aCentre, const VECTOR2I&
void BOARD_ADAPTER::addShape( const PCB_SHAPE* aShape, CONTAINER_2D_BASE* aContainer,
const BOARD_ITEM* aOwner )
const BOARD_ITEM* aOwner, PCB_LAYER_ID aLayer )
{
// The full width of the lines to create
const float linewidth3DU = TO_3DU( aShape->GetWidth() );
int linewidth = aShape->GetWidth();
int margin = 0;
if( IsSolderMaskLayer( aLayer )
&& aShape->HasSolderMask()
&& IsExternalCopperLayer( aShape->GetLayer() ) )
{
margin = aShape->GetSolderMaskExpansion();
linewidth += margin * 2;
}
float linewidth3DU = TO_3DU( linewidth );
LINE_STYLE lineStyle = aShape->GetStroke().GetLineStyle();
if( lineStyle <= LINE_STYLE::FIRST_TYPE )
@@ -640,7 +661,13 @@ void BOARD_ADAPTER::addShape( const PCB_SHAPE* aShape, CONTAINER_2D_BASE* aConta
aShape->TransformShapeToPolygon( polyList, UNDEFINED_LAYER, 0, ARC_HIGH_DEF,
ERROR_INSIDE );
polyList.Simplify( SHAPE_POLY_SET::PM_FAST );
polyList.Simplify();
if( margin != 0 )
{
polyList.Inflate( margin, CORNER_STRATEGY::ROUND_ALL_CORNERS,
GetBoard()->GetDesignSettings().m_MaxError );
}
ConvertPolygonToTriangles( polyList, *aContainer, m_biuTo3Dunits, *aOwner );
}
@@ -664,7 +691,7 @@ void BOARD_ADAPTER::addShape( const PCB_SHAPE* aShape, CONTAINER_2D_BASE* aConta
unsigned int segCount = GetCircleSegmentCount( aShape->GetBoundingBox().GetSizeMax() );
createArcSegments( aShape->GetCenter(), aShape->GetStart(), aShape->GetArcAngle(),
segCount, aShape->GetWidth(), aContainer, *aOwner );
segCount, linewidth, aContainer, *aOwner );
break;
}
@@ -682,13 +709,21 @@ void BOARD_ADAPTER::addShape( const PCB_SHAPE* aShape, CONTAINER_2D_BASE* aConta
ERROR_INSIDE );
// Some polygons can be a bit complex (especially when coming from a
// picture ot a text converted to a polygon
// picture of a text converted to a polygon
// So call Simplify before calling ConvertPolygonToTriangles, just in case.
polyList.Simplify( SHAPE_POLY_SET::PM_FAST );
polyList.Simplify();
if( polyList.IsEmpty() ) // Just for caution
break;
if( margin != 0 )
{
CORNER_STRATEGY cornerStr = margin >= 0 ? CORNER_STRATEGY::ROUND_ALL_CORNERS
: CORNER_STRATEGY::ALLOW_ACUTE_CORNERS;
polyList.Inflate( margin, cornerStr, GetBoard()->GetDesignSettings().m_MaxError );
}
ConvertPolygonToTriangles( polyList, *aContainer, m_biuTo3Dunits, *aOwner );
break;
}
@@ -741,14 +776,14 @@ void BOARD_ADAPTER::addShape( const PCB_TEXTBOX* aTextBox, CONTAINER_2D_BASE* aC
if( aTextBox->GetShape() == SHAPE_T::RECTANGLE )
{
addShape( static_cast<const PCB_SHAPE*>( aTextBox ), aContainer, aOwner );
addShape( static_cast<const PCB_SHAPE*>( aTextBox ), aContainer, aOwner, UNDEFINED_LAYER );
}
else
{
SHAPE_POLY_SET polyList;
aTextBox->PCB_SHAPE::TransformShapeToPolygon( polyList, UNDEFINED_LAYER, 0,
ARC_HIGH_DEF, ERROR_INSIDE );
aTextBox->PCB_SHAPE::TransformShapeToPolygon( polyList, UNDEFINED_LAYER, 0, ARC_HIGH_DEF,
ERROR_INSIDE );
ConvertPolygonToTriangles( polyList, *aContainer, m_biuTo3Dunits, *aOwner );
}
@@ -775,13 +810,13 @@ void BOARD_ADAPTER::addSolidAreasShapes( const ZONE* aZone, CONTAINER_2D_BASE* a
}
void BOARD_ADAPTER::buildPadOutlineAsSegments( const PAD* aPad, CONTAINER_2D_BASE* aContainer,
int aWidth )
void BOARD_ADAPTER::buildPadOutlineAsSegments( const PAD* aPad, PCB_LAYER_ID aLayer,
CONTAINER_2D_BASE* aContainer, int aWidth )
{
if( aPad->GetShape() == PAD_SHAPE::CIRCLE ) // Draw a ring
if( aPad->GetShape( aLayer ) == PAD_SHAPE::CIRCLE ) // Draw a ring
{
const SFVEC2F center3DU = TO_SFVEC2F( aPad->ShapePos() );
const int radius = aPad->GetSize().x / 2;
const SFVEC2F center3DU = TO_SFVEC2F( aPad->ShapePos( aLayer ) );
const int radius = aPad->GetSize( aLayer ).x / 2;
const float inner_radius3DU = TO_3DU( radius - aWidth / 2.0 );
const float outer_radius3DU = TO_3DU( radius + aWidth / 2.0 );
@@ -790,7 +825,8 @@ void BOARD_ADAPTER::buildPadOutlineAsSegments( const PAD* aPad, CONTAINER_2D_BAS
else
{
// For other shapes, add outlines as thick segments in polygon buffer
const std::shared_ptr<SHAPE_POLY_SET>& corners = aPad->GetEffectivePolygon( ERROR_INSIDE );
const std::shared_ptr<SHAPE_POLY_SET>& corners = aPad->GetEffectivePolygon( aLayer,
ERROR_INSIDE );
const SHAPE_LINE_CHAIN& path = corners->COutline( 0 );
for( int j = 0; j < path.PointCount(); j++ )
+71 -52
View File
@@ -3,7 +3,7 @@
*
* Copyright (C) 2015-2016 Mario Luzeiro <mrluzeiro@ua.pt>
* Copyright (C) 2023 CERN
* Copyright (C) 1992-2024 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -65,18 +65,18 @@
/*
* This is used to draw pad outlines on silk layers.
*/
void buildPadOutlineAsPolygon( const PAD* aPad, SHAPE_POLY_SET& aBuffer, int aWidth, int aMaxError,
ERROR_LOC aErrorLoc )
void buildPadOutlineAsPolygon( const PAD* aPad, PCB_LAYER_ID aLayer, SHAPE_POLY_SET& aBuffer,
int aWidth, int aMaxError, ERROR_LOC aErrorLoc )
{
if( aPad->GetShape() == PAD_SHAPE::CIRCLE ) // Draw a ring
if( aPad->GetShape( aLayer ) == PAD_SHAPE::CIRCLE ) // Draw a ring
{
TransformRingToPolygon( aBuffer, aPad->ShapePos(), aPad->GetSize().x / 2, aWidth,
aMaxError, aErrorLoc );
TransformRingToPolygon( aBuffer, aPad->ShapePos( aLayer ), aPad->GetSize( aLayer ).x / 2,
aWidth, aMaxError, aErrorLoc );
}
else
{
// For other shapes, add outlines as thick segments in polygon buffer
const SHAPE_LINE_CHAIN& path = aPad->GetEffectivePolygon( ERROR_INSIDE )->COutline( 0 );
const SHAPE_LINE_CHAIN& path = aPad->GetEffectivePolygon( aLayer, ERROR_INSIDE )->COutline( 0 );
for( int ii = 0; ii < path.PointCount(); ++ii )
{
@@ -206,9 +206,8 @@ void BOARD_ADAPTER::createLayers( REPORTER* aStatusReporter )
else
{
m_trackCount++;
m_averageTrackWidth += static_cast<float>( track->GetWidth() * m_biuTo3Dunits );
}
m_averageTrackWidth += static_cast<float>( track->GetWidth() * m_biuTo3Dunits );
}
if( m_trackCount )
@@ -280,7 +279,7 @@ void BOARD_ADAPTER::createLayers( REPORTER* aStatusReporter )
}
// Add object item to layer container
createTrack( track, layerContainer );
createTrackWithMargin( track, layerContainer, layer );
}
}
@@ -303,7 +302,7 @@ void BOARD_ADAPTER::createLayers( REPORTER* aStatusReporter )
const PCB_VIA* via = static_cast<const PCB_VIA*>( track );
const VIATYPE viatype = via->GetViaType();
const double holediameter = via->GetDrillValue() * BiuTo3dUnits();
const double viasize = via->GetWidth() * BiuTo3dUnits();
const double viasize = via->GetWidth( layer ) * BiuTo3dUnits();
const double plating = GetHolePlatingThickness() * BiuTo3dUnits();
// holes and layer copper extend half info cylinder wall to hide transition
@@ -428,7 +427,7 @@ void BOARD_ADAPTER::createLayers( REPORTER* aStatusReporter )
{
const int holediameter = via->GetDrillValue();
const int hole_outer_radius = (holediameter / 2) + GetHolePlatingThickness();
const int hole_outer_ring_radius = KiROUND( via->GetWidth() / 2.0 );
const int hole_outer_ring_radius = KiROUND( via->GetWidth( layer ) / 2.0 );
// Add through hole contours
TransformCircleToPolygon( m_TH_ODPolys, via->GetStart(), hole_outer_radius,
@@ -611,7 +610,7 @@ void BOARD_ADAPTER::createLayers( REPORTER* aStatusReporter )
switch( item->Type() )
{
case PCB_SHAPE_T:
addShape( static_cast<PCB_SHAPE*>( item ), layerContainer, item );
addShape( static_cast<PCB_SHAPE*>( item ), layerContainer, item, layer );
break;
case PCB_TEXT_T:
@@ -643,12 +642,33 @@ void BOARD_ADAPTER::createLayers( REPORTER* aStatusReporter )
// add also this shape to the plated copper polygon list if required
if( cfg.DifferentiatePlatedCopper() )
{
if( layer == F_Cu )
item->TransformShapeToPolygon( *m_frontPlatedCopperPolys, F_Cu,
0, maxError, ERROR_INSIDE );
else if( layer == B_Cu )
item->TransformShapeToPolygon( *m_backPlatedCopperPolys, B_Cu,
0, maxError, ERROR_INSIDE );
// Note: for TEXT and TEXTBOX, TransformShapeToPolygon returns the bounding
// box shape, not the exact text shape. So it is not used for these items
if( layer == F_Cu || layer == B_Cu )
{
SHAPE_POLY_SET* platedCopperPolys = layer == F_Cu
? m_frontPlatedCopperPolys
: m_backPlatedCopperPolys;
if( item->Type() == PCB_TEXTBOX_T )
{
PCB_TEXTBOX* text_box = static_cast<PCB_TEXTBOX*>( item );
text_box->TransformTextToPolySet( *platedCopperPolys,
0, maxError, ERROR_INSIDE );
// Add box outlines
text_box->PCB_SHAPE::TransformShapeToPolygon( *platedCopperPolys, layer,
0, maxError, ERROR_INSIDE );
}
else if( item->Type() == PCB_TEXT_T )
{
static_cast<PCB_TEXT*>( item )->TransformTextToPolySet(
*platedCopperPolys,
0, maxError, ERROR_INSIDE );
}
else
item->TransformShapeToPolygon( *platedCopperPolys, layer,
0, maxError, ERROR_INSIDE );
}
}
}
}
@@ -781,10 +801,10 @@ void BOARD_ADAPTER::createLayers( REPORTER* aStatusReporter )
// End Build Copper layers
// This will make a union of all added contours
m_TH_ODPolys.Simplify( SHAPE_POLY_SET::PM_FAST );
m_NPTH_ODPolys.Simplify( SHAPE_POLY_SET::PM_FAST );
m_viaTH_ODPolys.Simplify( SHAPE_POLY_SET::PM_FAST );
m_viaAnnuliPolys.Simplify( SHAPE_POLY_SET::PM_FAST );
m_TH_ODPolys.Simplify();
m_NPTH_ODPolys.Simplify();
m_viaTH_ODPolys.Simplify();
m_viaAnnuliPolys.Simplify();
// Build Tech layers
// Based on:
@@ -844,7 +864,7 @@ void BOARD_ADAPTER::createLayers( REPORTER* aStatusReporter )
switch( item->Type() )
{
case PCB_SHAPE_T:
addShape( static_cast<PCB_SHAPE*>( item ), layerContainer, item );
addShape( static_cast<PCB_SHAPE*>( item ), layerContainer, item, layer );
break;
case PCB_TEXT_T:
@@ -872,22 +892,23 @@ void BOARD_ADAPTER::createLayers( REPORTER* aStatusReporter )
}
}
// Add via tech layers
if( ( layer == F_Mask || layer == B_Mask ) )
// Add track, via and arc tech layers
if( IsSolderMaskLayer( layer ) )
{
int maskExpansion = GetBoard()->GetDesignSettings().m_SolderMaskExpansion;
// Only vias on a external copper layer can have a solder mask
for( PCB_TRACK* track : m_board->Tracks() )
{
if( !track->IsOnLayer( layer ) )
continue;
// Only vias on a external copper layer can have a solder mask
PCB_LAYER_ID copper_layer = layer == F_Mask ? F_Cu : B_Cu;
if( track->Type() == PCB_VIA_T
&& static_cast<const PCB_VIA*>( track )->FlashLayer( copper_layer )
&& !static_cast<const PCB_VIA*>( track )->IsTented( layer ) )
{
createViaWithMargin( track, layerContainer, maskExpansion );
}
&& !static_cast<const PCB_VIA*>( track )->FlashLayer( copper_layer ) )
continue;
int maskExpansion = track->GetSolderMaskExpansion();
createTrackWithMargin( track, layerContainer, layer, maskExpansion );
}
}
@@ -903,7 +924,7 @@ void BOARD_ADAPTER::createLayers( REPORTER* aStatusReporter )
if( !pad->IsOnLayer( layer ) )
continue;
buildPadOutlineAsSegments( pad, layerContainer, linewidth );
buildPadOutlineAsSegments( pad, layer, layerContainer, linewidth );
}
}
else
@@ -995,7 +1016,7 @@ void BOARD_ADAPTER::createLayers( REPORTER* aStatusReporter )
{
if( pad->IsOnLayer( layer ) )
{
buildPadOutlineAsPolygon( pad, *layerPoly, linewidth, maxError,
buildPadOutlineAsPolygon( pad, layer, *layerPoly, linewidth, maxError,
ERROR_INSIDE );
}
}
@@ -1022,7 +1043,7 @@ void BOARD_ADAPTER::createLayers( REPORTER* aStatusReporter )
}
// This will make a union of all added contours
layerPoly->Simplify( SHAPE_POLY_SET::PM_FAST );
layerPoly->Simplify();
}
}
// End Build Tech layers
@@ -1061,14 +1082,12 @@ void BOARD_ADAPTER::createLayers( REPORTER* aStatusReporter )
// TRIM PLATED COPPER TO SOLDERMASK
if( m_layers_poly.find( F_Mask ) != m_layers_poly.end() )
{
m_frontPlatedCopperPolys->BooleanIntersection( *m_layers_poly.at( F_Mask ),
SHAPE_POLY_SET::PM_FAST );
m_frontPlatedCopperPolys->BooleanIntersection( *m_layers_poly.at( F_Mask ) );
}
if( m_layers_poly.find( B_Mask ) != m_layers_poly.end() )
{
m_backPlatedCopperPolys->BooleanIntersection( *m_layers_poly.at( B_Mask ),
SHAPE_POLY_SET::PM_FAST );
m_backPlatedCopperPolys->BooleanIntersection( *m_layers_poly.at( B_Mask ) );
}
// Subtract plated copper from unplated copper
@@ -1077,15 +1096,15 @@ void BOARD_ADAPTER::createLayers( REPORTER* aStatusReporter )
if( m_layers_poly.find( F_Cu ) != m_layers_poly.end() )
{
m_layers_poly[F_Cu]->BooleanSubtract( *m_frontPlatedPadAndGraphicPolys, SHAPE_POLY_SET::PM_FAST );
m_layers_poly[F_Cu]->BooleanSubtract( *m_frontPlatedCopperPolys, SHAPE_POLY_SET::PM_FAST );
m_layers_poly[F_Cu]->BooleanSubtract( *m_frontPlatedPadAndGraphicPolys );
m_layers_poly[F_Cu]->BooleanSubtract( *m_frontPlatedCopperPolys );
hasF_Cu = true;
}
if( m_layers_poly.find( B_Cu ) != m_layers_poly.end() )
{
m_layers_poly[B_Cu]->BooleanSubtract( *m_backPlatedPadAndGraphicPolys, SHAPE_POLY_SET::PM_FAST );
m_layers_poly[B_Cu]->BooleanSubtract( *m_backPlatedCopperPolys, SHAPE_POLY_SET::PM_FAST );
m_layers_poly[B_Cu]->BooleanSubtract( *m_backPlatedPadAndGraphicPolys );
m_layers_poly[B_Cu]->BooleanSubtract( *m_backPlatedCopperPolys );
hasB_Cu = true;
}
@@ -1096,10 +1115,10 @@ void BOARD_ADAPTER::createLayers( REPORTER* aStatusReporter )
if( hasB_Cu && m_backPlatedCopperPolys->OutlineCount() )
m_backPlatedPadAndGraphicPolys->Append( *m_backPlatedCopperPolys );
m_frontPlatedPadAndGraphicPolys->Simplify( SHAPE_POLY_SET::PM_FAST );
m_backPlatedPadAndGraphicPolys->Simplify( SHAPE_POLY_SET::PM_FAST );
m_frontPlatedCopperPolys->Simplify( SHAPE_POLY_SET::PM_FAST );
m_backPlatedCopperPolys->Simplify( SHAPE_POLY_SET::PM_FAST );
m_frontPlatedPadAndGraphicPolys->Simplify();
m_backPlatedPadAndGraphicPolys->Simplify();
m_frontPlatedCopperPolys->Simplify();
m_backPlatedCopperPolys->Simplify();
// ADD PLATED PADS
for( FOOTPRINT* footprint : m_board->Footprints() )
@@ -1168,7 +1187,7 @@ void BOARD_ADAPTER::createLayers( REPORTER* aStatusReporter )
{
// This will make a union of all added contours
layerPoly->second->ClearArcs();
layerPoly->second->Simplify( SHAPE_POLY_SET::PM_FAST );
layerPoly->second->Simplify();
}
}
@@ -1193,12 +1212,12 @@ void BOARD_ADAPTER::createLayers( REPORTER* aStatusReporter )
{
// found
SHAPE_POLY_SET *polyLayer = m_layerHoleOdPolys[layer];
polyLayer->Simplify( SHAPE_POLY_SET::PM_FAST );
polyLayer->Simplify();
wxASSERT( m_layerHoleIdPolys.find( layer ) != m_layerHoleIdPolys.end() );
polyLayer = m_layerHoleIdPolys[layer];
polyLayer->Simplify( SHAPE_POLY_SET::PM_FAST );
polyLayer->Simplify();
}
}
+35 -27
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015-2016 Mario Luzeiro <mrluzeiro@ua.pt>
* Copyright (C) 1992-2024 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -91,7 +91,7 @@ EDA_3D_CANVAS::EDA_3D_CANVAS( wxWindow* aParent, const wxGLAttributes& aGLAttrib
BOARD_ADAPTER& aBoardAdapter, CAMERA& aCamera,
S3D_CACHE* a3DCachePointer ) :
HIDPI_GL_3D_CANVAS( EDA_DRAW_PANEL_GAL::GetVcSettings(), aCamera, aParent, aGLAttribs,
wxID_ANY, wxDefaultPosition,
EDA_3D_CANVAS_ID, wxDefaultPosition,
wxDefaultSize, wxFULL_REPAINT_ON_RESIZE ),
m_eventDispatcher( nullptr ),
m_parentStatusBar( nullptr ),
@@ -149,8 +149,10 @@ EDA_3D_CANVAS::EDA_3D_CANVAS( wxWindow* aParent, const wxGLAttributes& aGLAttrib
wxASSERT( a3DCachePointer != nullptr );
m_boardAdapter.Set3dCacheManager( a3DCachePointer );
#ifdef __WXMSW__
EnableTouchEvents( wxTOUCH_ZOOM_GESTURE | wxTOUCH_PAN_GESTURES | wxTOUCH_ROTATE_GESTURE );
#if defined( __WXMSW__ )
EnableTouchEvents( wxTOUCH_ZOOM_GESTURE | wxTOUCH_ROTATE_GESTURE | wxTOUCH_PAN_GESTURES );
#elif defined( __WXGTK__ )
EnableTouchEvents( wxTOUCH_ZOOM_GESTURE | wxTOUCH_ROTATE_GESTURE );
#endif
const wxEventType events[] =
@@ -187,7 +189,8 @@ void EDA_3D_CANVAS::releaseOpenGL()
{
if( m_glRC )
{
GL_CONTEXT_MANAGER::Get().LockCtx( m_glRC, this );
GL_CONTEXT_MANAGER* gl_mgr = Pgm().GetGLContextManager();
gl_mgr->LockCtx( m_glRC, this );
delete m_3d_render_raytracing;
m_3d_render_raytracing = nullptr;
@@ -198,8 +201,8 @@ void EDA_3D_CANVAS::releaseOpenGL()
// This is just a copy of a pointer, can safely be set to NULL.
m_3d_render = nullptr;
GL_CONTEXT_MANAGER::Get().UnlockCtx( m_glRC );
GL_CONTEXT_MANAGER::Get().DestroyCtx( m_glRC );
gl_mgr->UnlockCtx( m_glRC );
gl_mgr->DestroyCtx( m_glRC );
m_glRC = nullptr;
}
}
@@ -345,7 +348,8 @@ void EDA_3D_CANVAS::DisplayStatus()
m_parentStatusBar->SetStatusText( msg, static_cast<int>( EDA_3D_VIEWER_STATUSBAR::Y_POS ) );
msg.Printf( wxT( "zoom %3.2f" ), 1 / m_camera.GetZoom() );
m_parentStatusBar->SetStatusText( msg, static_cast<int>( EDA_3D_VIEWER_STATUSBAR::ZOOM_LEVEL ) );
m_parentStatusBar->SetStatusText( msg,
static_cast<int>( EDA_3D_VIEWER_STATUSBAR::ZOOM_LEVEL ) );
}
}
@@ -379,10 +383,11 @@ void EDA_3D_CANVAS::DoRePaint()
if( !GetParent()->GetParent()->IsShownOnScreen() )
return; // The parent board editor frame is no more alive
wxString err_messages;
INFOBAR_REPORTER warningReporter( m_parentInfoBar );
STATUSBAR_REPORTER activityReporter( m_parentStatusBar, EDA_3D_VIEWER_STATUSBAR::ACTIVITY );
int64_t start_time = GetRunningMicroSecs();
wxString err_messages;
INFOBAR_REPORTER warningReporter( m_parentInfoBar );
STATUSBAR_REPORTER activityReporter( m_parentStatusBar, EDA_3D_VIEWER_STATUSBAR::ACTIVITY );
int64_t start_time = GetRunningMicroSecs();
GL_CONTEXT_MANAGER* gl_mgr = Pgm().GetGLContextManager();
// "Makes the OpenGL state that is represented by the OpenGL rendering
// context context current, i.e. it will be used by all subsequent OpenGL calls.
@@ -390,7 +395,7 @@ void EDA_3D_CANVAS::DoRePaint()
// Explicitly create a new rendering context instance for this canvas.
if( m_glRC == nullptr )
m_glRC = GL_CONTEXT_MANAGER::Get().CreateCtx( this );
m_glRC = gl_mgr->CreateCtx( this );
// CreateCtx could and does fail per sentry crash events, lets be graceful
if( m_glRC == nullptr )
@@ -401,7 +406,7 @@ void EDA_3D_CANVAS::DoRePaint()
return;
}
GL_CONTEXT_MANAGER::Get().LockCtx( m_glRC, this );
gl_mgr->LockCtx( m_glRC, this );
// Set the OpenGL viewport according to the client size of this canvas.
// This is done here rather than in a wxSizeEvent handler because our
@@ -418,7 +423,7 @@ void EDA_3D_CANVAS::DoRePaint()
{
if( !initializeOpenGL() )
{
GL_CONTEXT_MANAGER::Get().UnlockCtx( m_glRC );
gl_mgr->UnlockCtx( m_glRC );
m_is_currently_painting.clear();
return;
@@ -440,7 +445,7 @@ void EDA_3D_CANVAS::DoRePaint()
SwapBuffers();
GL_CONTEXT_MANAGER::Get().UnlockCtx( m_glRC );
gl_mgr->UnlockCtx( m_glRC );
m_is_currently_painting.clear();
return;
@@ -475,7 +480,7 @@ void EDA_3D_CANVAS::DoRePaint()
if( m_camera_is_moving )
{
const int64_t curtime_delta = GetRunningMicroSecs() - m_strtime_camera_movement;
curtime_delta_s = (curtime_delta / 1e6) * m_camera_moving_speed;
curtime_delta_s = ( curtime_delta / 1e6 ) * m_camera_moving_speed;
m_camera.Interpolate( curtime_delta_s );
if( curtime_delta_s > 1.0f )
@@ -528,7 +533,7 @@ void EDA_3D_CANVAS::DoRePaint()
m_is_opengl_version_supported = false;
m_opengl_supports_raytracing = false;
m_is_opengl_initialized = false;
GL_CONTEXT_MANAGER::Get().UnlockCtx( m_glRC );
gl_mgr->UnlockCtx( m_glRC );
m_is_currently_painting.clear();
return;
}
@@ -553,7 +558,7 @@ void EDA_3D_CANVAS::DoRePaint()
// commands is displayed on the window."
SwapBuffers();
GL_CONTEXT_MANAGER::Get().UnlockCtx( m_glRC );
gl_mgr->UnlockCtx( m_glRC );
if( m_mouse_was_moved || m_camera_is_moving )
{
@@ -733,13 +738,11 @@ void EDA_3D_CANVAS::OnMouseMove( wxMouseEvent& event )
RAY mouseRay = getRayAtCurrentMousePosition();
BOARD_ITEM* rollOverItem = m_3d_render_raytracing->IntersectBoardItem( mouseRay );
auto printNetInfo =
[]( BOARD_CONNECTED_ITEM* aItem )
{
return wxString::Format( _( "Net %s\tNet class %s" ),
aItem->GetNet()->GetNetname(),
aItem->GetNet()->GetNetClass()->GetName() );
};
auto printNetInfo = []( BOARD_CONNECTED_ITEM* aItem )
{
return wxString::Format( _( "Net %s\tNet class %s" ), aItem->GetNet()->GetNetname(),
aItem->GetNet()->GetNetClass()->GetHumanReadableName() );
};
if( rollOverItem )
{
@@ -830,6 +833,11 @@ void EDA_3D_CANVAS::OnLeftDown( wxMouseEvent& event )
SetFocus();
stop_editingTimeOut_Timer();
// Ensure m_camera.m_lastPosition (current mouse position) is up to date for
// future drag events (can be not the case when left clicking after
// opening a context menu)
OnMouseMoveCamera( event );
if( !event.Dragging() && ( m_3d_render_raytracing != nullptr ) )
{
RAY mouseRay = getRayAtCurrentMousePosition();
@@ -1088,7 +1096,7 @@ bool EDA_3D_CANVAS::SetView3D( VIEW3D_TYPE aRequestedView )
void EDA_3D_CANVAS::RenderEngineChanged()
{
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
EDA_3D_VIEWER_SETTINGS* cfg = mgr.GetAppSettings<EDA_3D_VIEWER_SETTINGS>();
EDA_3D_VIEWER_SETTINGS* cfg = mgr.GetAppSettings<EDA_3D_VIEWER_SETTINGS>( "3d_viewer" );
switch( cfg->m_Render.engine )
{
+11 -8
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015-2016 Mario Luzeiro <mrluzeiro@ua.pt>
* Copyright (C) 1992-2024 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -42,6 +42,8 @@ class RENDER_3D_RAYTRACE_GL;
class RENDER_3D_OPENGL;
#define EDA_3D_CANVAS_ID wxID_HIGHEST + 1321
/**
* Implement a canvas based on a wxGLCanvas
*/
@@ -107,16 +109,16 @@ public:
void RenderRaytracingRequest();
/**
* Request a screenshot and output it to the \a aDstImage
* Request a screenshot and output it to the \a aDstImage.
*
* @param aDstImage - Screenshot destination image
* @param aDstImage - Screenshot destination image.
*/
void GetScreenshot( wxImage& aDstImage );
/**
* Select a specific 3D view or operation
* Select a specific 3D view or operation.
*
* @param aRequestedView the view to move to
* @param aRequestedView the view to move to.
* @return true if the view request was handled, false if no command found for this view.
*/
bool SetView3D( VIEW3D_TYPE aRequestedView );
@@ -216,6 +218,8 @@ public:
*/
void DoRePaint();
void OnCloseWindow( wxCloseEvent& event );
private:
// The wxPaintEvent event. mainly calls DoRePaint()
void OnPaint( wxPaintEvent& aEvent );
@@ -226,14 +230,13 @@ private:
void OnMouseWheel( wxMouseEvent& event );
void OnMagnify( wxMouseEvent& event );
void OnMagnify( wxMouseEvent& event );
void OnMouseMove( wxMouseEvent& event );
void OnLeftDown( wxMouseEvent& event );
void OnLeftUp( wxMouseEvent& event );
void OnMiddleUp( wxMouseEvent& event );
void OnMiddleDown( wxMouseEvent& event );
void OnTimerTimeout_Editing( wxTimerEvent& event );
void OnCloseWindow( wxCloseEvent& event );
void OnResize( wxSizeEvent& event );
void OnTimerTimeout_Redraw( wxTimerEvent& event );
@@ -328,7 +331,7 @@ private:
bool m_render3dmousePivot = false; // Render the 3dmouse pivot
SFVEC3F m_3dmousePivotPos; // The position of the 3dmouse pivot
///< Used to track gesture events.
/// Used to track gesture events.
double m_gestureLastZoomFactor = 1.0;
double m_gestureLastAngle = 0.0;
+1 -1
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2016 Mario Luzeiro <mrluzeiro@ua.pt>
* Copyright (C) 1992-2020 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2016 Mario Luzeiro <mrluzeiro@ua.pt>
* Copyright (C) 1992-2016 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015-2016 Mario Luzeiro <mrluzeiro@ua.pt>
* Copyright (C) 1992-2016 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2016 Mario Luzeiro <mrluzeiro@ua.pt>
* Copyright (C) 1992-2016 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015-2016 Mario Luzeiro <mrluzeiro@ua.pt>
* Copyright (C) 1992-2020 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015-2016 Mario Luzeiro <mrluzeiro@ua.pt>
* Copyright (C) 1992-2024 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -44,8 +44,8 @@
#include <macros.h>
/**
* Scale conversion from 3d model units to pcb units
*/
* Scale conversion from 3d model units to pcb units
*/
#define UNITS3D_TO_UNITSPCB ( pcbIUScale.IU_PER_MM )
/**
@@ -109,16 +109,17 @@ EDA_3D_MODEL_VIEWER::EDA_3D_MODEL_VIEWER( wxWindow* aParent, const wxGLAttribute
EDA_3D_MODEL_VIEWER::~EDA_3D_MODEL_VIEWER()
{
wxLogTrace( m_logTrace, wxT( "EDA_3D_MODEL_VIEWER::~EDA_3D_MODEL_VIEWER" ) );
GL_CONTEXT_MANAGER* gl_mgr = Pgm().GetGLContextManager();
if( m_glRC )
{
GL_CONTEXT_MANAGER::Get().LockCtx( m_glRC, this );
gl_mgr->LockCtx( m_glRC, this );
delete m_ogl_3dmodel;
m_ogl_3dmodel = nullptr;
GL_CONTEXT_MANAGER::Get().UnlockCtx( m_glRC );
GL_CONTEXT_MANAGER::Get().DestroyCtx( m_glRC );
gl_mgr->UnlockCtx( m_glRC );
gl_mgr->DestroyCtx( m_glRC );
}
}
@@ -256,7 +257,7 @@ void EDA_3D_MODEL_VIEWER::OnPaint( wxPaintEvent& event )
// context context current, i.e. it will be used by all subsequent OpenGL calls.
// This function may only be called when the window is shown on screen"
if( m_glRC == nullptr )
m_glRC = GL_CONTEXT_MANAGER::Get().CreateCtx( this );
m_glRC = Pgm().GetGLContextManager()->CreateCtx( this );
// CreateCtx could and does fail per sentry crash events, lets be graceful
if( m_glRC == nullptr )
@@ -265,7 +266,7 @@ void EDA_3D_MODEL_VIEWER::OnPaint( wxPaintEvent& event )
return;
}
GL_CONTEXT_MANAGER::Get().LockCtx( m_glRC, this );
Pgm().GetGLContextManager()->LockCtx( m_glRC, this );
// Set the OpenGL viewport according to the client size of this canvas.
// This is done here rather than in a wxSizeEvent handler because our
@@ -383,7 +384,7 @@ void EDA_3D_MODEL_VIEWER::OnPaint( wxPaintEvent& event )
// commands is displayed on the window."
SwapBuffers();
GL_CONTEXT_MANAGER::Get().UnlockCtx( m_glRC );
Pgm().GetGLContextManager()->UnlockCtx( m_glRC );
}
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015-2016 Mario Luzeiro <mrluzeiro@ua.pt>
* Copyright (C) 1992-2021 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2021 3Dconnexion
* Copyright (C) 2021 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
+1 -1
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2021 3Dconnexion
* Copyright (C) 2021 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2024 3Dconnexion
* Copyright (C) 2024 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
@@ -24,7 +24,7 @@
#include <3d-viewer/3d_rendering/track_ball.h>
#include <3d-viewer/3d_canvas/eda_3d_canvas.h>
// KiCAD includes
// KiCad includes
#include <tool/action_manager.h>
#include <tool/tool_manager.h>
#include <tool/tools_holder.h>
@@ -73,7 +73,8 @@ bool equals( glm::mat<L, C, T, Q> const& aFirst, glm::mat<L, C, T, Q> const& aSe
}
NL_3D_VIEWER_PLUGIN_IMPL::NL_3D_VIEWER_PLUGIN_IMPL( EDA_3D_CANVAS* aCanvas, const std::string& aProfileHint ) :
NL_3D_VIEWER_PLUGIN_IMPL::NL_3D_VIEWER_PLUGIN_IMPL( EDA_3D_CANVAS* aCanvas,
const std::string& aProfileHint ) :
NAV_3D( false, false ),
m_canvas( aCanvas ),
m_capIsMoving( false ),
@@ -111,15 +112,7 @@ void NL_3D_VIEWER_PLUGIN_IMPL::Connect()
exportCommandsAndImages();
}
/**
* Add a category to the store.
*
* The function adds category paths of the format "A.B" where B is a sub-category of A.
*
* @param aCategoryPath is the std::string representation of the category.
* @param aCategoryStore is the CATEGORY_STORE instance to add to.
* @return a CATEGORY_STORE::iterator where the category was added.
*/
CATEGORY_STORE::iterator add_category( std::string aCategoryPath, CATEGORY_STORE& aCategoryStore )
{
using TDx::SpaceMouse::CCategory;
@@ -192,7 +185,7 @@ void NL_3D_VIEWER_PLUGIN_IMPL::exportCommandsAndImages()
std::string name = action->GetName();
// Do no export commands for the pcbnew app.
// Do no export commands for the Pcbnew app.
if( name.rfind( "pcbnew.", 0 ) == 0 )
{
continue;
+11 -2
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2024 3Dconnexion
* Copyright (C) 2024 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
@@ -29,7 +29,7 @@
// TDxWare SDK.
#include <SpaceMouse/CNavigation3D.hpp>
// KiCAD
// KiCad
#include <include/plugins/3dapi/xv3d_types.h>
// wx
@@ -45,6 +45,15 @@ class TRACK_BALL;
// temporary store for the categories
typedef std::map<std::string, TDx::CCommandTreeNode*> CATEGORY_STORE;
/**
* Add a category to the store.
*
* The function adds category paths of the format "A.B" where B is a sub-category of A.
*
* @param aCategoryPath is the std::string representation of the category.
* @param aCategoryStore is the CATEGORY_STORE instance to add to.
* @return a CATEGORY_STORE::iterator where the category was added.
*/
CATEGORY_STORE::iterator add_category( std::string aCategoryPath, CATEGORY_STORE& aCategoryStore );
// Convenience typedef.
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2024 3Dconnexion
* Copyright (C) 2024 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2024 3Dconnexion
* Copyright (C) 2024 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2024 3Dconnexion
* Copyright (C) 2024 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2024 3Dconnexion
* Copyright (C) 2024 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
@@ -31,13 +31,14 @@
#include <SpaceMouse/CNavigation3D.hpp>
/**
* The class that adjusts NL_3D_VIEWER_PLUGIN_IMPL implementation for 3D Model preview in footprint properties dialog.
* The class that adjusts NL_3D_VIEWER_PLUGIN_IMPL implementation for 3D Model preview in
* footprint properties dialog.
*/
class NL_FOOTPRINT_PROPERTIES_PLUGIN_IMPL : public NL_3D_VIEWER_PLUGIN_IMPL
{
public:
/**
* Initializes a new instance of the NL_FOOTPRINT_PROPERTIES_PLUGIN.
* Initialize a new instance of the NL_FOOTPRINT_PROPERTIES_PLUGIN.
*
* @param aCanvas is the viewport to be navigated.
*/
@@ -60,8 +61,8 @@ private:
/**
* Trace mask used to enable or disable the trace output of this class.
* The debug output can be turned on by setting the WXTRACE environment variable to
* "KI_TRACE_NL_FOOTPRINT_PROPERTIES_PLUGIN". See the wxWidgets documentation on wxLogTrace for
* more information.
* "KI_TRACE_NL_FOOTPRINT_PROPERTIES_PLUGIN". See the wxWidgets documentation on
* wxLogTrace for more information.
*/
static const wxChar* m_logTrace;
};
+1 -1
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2016 Mario Luzeiro <mrluzeiro@ua.pt>
* Copyright (C) 2016-2024 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2016 Mario Luzeiro <mrluzeiro@ua.pt>
* Copyright (C) 2016-2024 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
+7 -1
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015-2016 Mario Luzeiro <mrluzeiro@ua.pt>
* Copyright (C) 2015-2024 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -48,6 +48,12 @@ COLOR_RGBA::COLOR_RGBA( const SFVEC4F& aColor )
}
COLOR_RGBA::operator SFVEC4F() const
{
return SFVEC4F( r / 255.0f, g / 255.0f, b / 255.0f, a / 255.0f );
}
COLOR_RGBA BlendColor( const COLOR_RGBA& aC1, const COLOR_RGBA& aC2 )
{
const unsigned int r = aC1.r + aC2.r;
+3 -1
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015-2016 Mario Luzeiro <mrluzeiro@ua.pt>
* Copyright (C) 2015-2024 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -60,6 +60,8 @@ union COLOR_RGBA
b = aB;
a = aA;
}
operator SFVEC4F() const;
};
+1 -1
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015-2016 Mario Luzeiro <mrluzeiro@ua.pt>
* Copyright (C) 2015-2020 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015-2016 Mario Luzeiro <mrluzeiro@ua.pt>
* Copyright (C) 2015-2020 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
+10 -8
View File
@@ -3,7 +3,7 @@
*
* Copyright (C) 2020 Oleg Endo <olegendo@gcc.gnu.org>
* Copyright (C) 2015-2020 Mario Luzeiro <mrluzeiro@ua.pt>
* Copyright (C) 2015-2020 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -98,8 +98,8 @@ MODEL_3D::MODEL_3D( const S3DMODEL& a3DModel, MATERIAL_MODE aMaterialMode )
/**
* WARNING: Horrible hack here!
* Somehow, buffer values are being shared between pcbnew and the 3d viewer, which then frees
* the buffer, resulting in errors in pcbnew. To resolve this temporarily, we generate
* Somehow, buffer values are being shared between Pcbnew and the 3d viewer, which then frees
* the buffer, resulting in errors in Pcbnew. To resolve this temporarily, we generate
* extra buffers in 3dviewer and use the higher numbers. These are freed on close.
* todo: Correctly separate the OpenGL contexts to prevent overlapping buffer vals
*/
@@ -332,7 +332,8 @@ MODEL_3D::MODEL_3D( const S3DMODEL& a3DModel, MATERIAL_MODE aMaterialMode )
// temporary index buffer which will contain either GLushort or GLuint
// type indices. allocate with a bit of meadow at the end.
auto tmp_idx = std::make_unique<GLuint[]>( ( idx_size * total_index_count + 8 ) / sizeof( GLuint ) );
auto tmp_idx =
std::make_unique<GLuint[]>( ( idx_size * total_index_count + 8 ) / sizeof( GLuint ) );
unsigned int prev_vtx_count = 0;
unsigned int idx_offset = 0;
@@ -507,9 +508,9 @@ void MODEL_3D::Draw( bool aTransparent, float aOpacity, bool aUseSelectedMateria
{
for( const MODEL_3D::MATERIAL& mat : m_materials )
{
// There is at least one default material created in case a mesh has no declared materials.
// Most meshes have a material, so usually the first material will have nothing to render and is skip.
// See S3D::GetModel for more details.
// There is at least one default material created in case a mesh has no declared
// materials. Most meshes have a material, so usually the first material will have
// nothing to render and is skip. See S3D::GetModel for more details.
if( mat.m_render_idx_count == 0 )
{
continue;
@@ -535,7 +536,8 @@ void MODEL_3D::Draw( bool aTransparent, float aOpacity, bool aUseSelectedMateria
break;
case MATERIAL_MODE::DIFFUSE_ONLY:
OglSetDiffuseMaterial( mat->m_Diffuse, aOpacity, aUseSelectedMaterial, aSelectionColor );
OglSetDiffuseMaterial( mat->m_Diffuse, aOpacity, aUseSelectedMaterial,
aSelectionColor );
break;
case MATERIAL_MODE::CAD_MODE:
+3 -2
View File
@@ -3,7 +3,7 @@
*
* Copyright (C) 2020 Oleg Endo <olegendo@gcc.gnu.org>
* Copyright (C) 2015-2016 Mario Luzeiro <mrluzeiro@ua.pt>
* Copyright (C) 2015-2024 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -146,7 +146,8 @@ private:
unsigned int m_render_idx_buffer_offset = 0;
unsigned int m_render_idx_count = 0;
BBOX_3D m_bbox; ///< bounding box for this material group, used for transparent material ordering
BBOX_3D m_bbox; ///< bounding box for this material group, used for transparent
///< material ordering.
MATERIAL( const SMATERIAL& aOther ) : SMATERIAL( aOther ) { }
bool IsTransparent() const { return m_Transparency > FLT_EPSILON; }
+28 -32
View File
@@ -3,7 +3,7 @@
*
* Copyright (C) 2015-2016 Mario Luzeiro <mrluzeiro@ua.pt>
* Copyright (C) 2023 CERN
* Copyright (C) 2015-2023 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -476,13 +476,12 @@ void RENDER_3D_OPENGL::reload( REPORTER* aStatusReporter, REPORTER* aWarningRepo
m_antiBoardPolys.Append( VECTOR2I( -INT_MAX/2, INT_MAX/2 ) );
m_antiBoardPolys.Outline( 0 ).SetClosed( true );
m_antiBoardPolys.BooleanSubtract( m_boardAdapter.GetBoardPoly(),
SHAPE_POLY_SET::PM_STRICTLY_SIMPLE );
m_antiBoardPolys.BooleanSubtract( m_boardAdapter.GetBoardPoly() );
m_antiBoard = createBoard( m_antiBoardPolys );
SHAPE_POLY_SET board_poly_with_holes = m_boardAdapter.GetBoardPoly().CloneDropTriangulation();
board_poly_with_holes.BooleanSubtract( m_boardAdapter.GetTH_ODPolys(), SHAPE_POLY_SET::PM_FAST );
board_poly_with_holes.BooleanSubtract( m_boardAdapter.GetNPTH_ODPolys(), SHAPE_POLY_SET::PM_FAST );
board_poly_with_holes.BooleanSubtract( m_boardAdapter.GetTH_ODPolys() );
board_poly_with_holes.BooleanSubtract( m_boardAdapter.GetNPTH_ODPolys() );
m_boardWithHoles = createBoard( board_poly_with_holes );
@@ -495,8 +494,7 @@ void RENDER_3D_OPENGL::reload( REPORTER* aStatusReporter, REPORTER* aWarningRepo
SHAPE_POLY_SET outerPolyTHT = m_boardAdapter.GetTH_ODPolys().CloneDropTriangulation();
outerPolyTHT.BooleanIntersection( m_boardAdapter.GetBoardPoly(),
SHAPE_POLY_SET::PM_STRICTLY_SIMPLE );
outerPolyTHT.BooleanIntersection( m_boardAdapter.GetBoardPoly() );
m_outerThroughHoles = generateHoles( m_boardAdapter.GetTH_ODs().GetList(), outerPolyTHT,
1.0f, 0.0f, false, &m_boardAdapter.GetTH_IDs() );
@@ -575,29 +573,24 @@ void RENDER_3D_OPENGL::reload( REPORTER* aStatusReporter, REPORTER* aWarningRepo
if( LSET::PhysicalLayersMask().test( layer ) )
{
polyListSubtracted.BooleanIntersection( m_boardAdapter.GetBoardPoly(),
SHAPE_POLY_SET::PM_FAST );
polyListSubtracted.BooleanIntersection( m_boardAdapter.GetBoardPoly() );
}
if( layer != B_Mask && layer != F_Mask )
{
polyListSubtracted.BooleanSubtract( m_boardAdapter.GetTH_ODPolys(),
SHAPE_POLY_SET::PM_FAST );
polyListSubtracted.BooleanSubtract( m_boardAdapter.GetNPTH_ODPolys(),
SHAPE_POLY_SET::PM_FAST );
polyListSubtracted.BooleanSubtract( m_boardAdapter.GetTH_ODPolys() );
polyListSubtracted.BooleanSubtract( m_boardAdapter.GetNPTH_ODPolys() );
}
if( m_boardAdapter.m_Cfg->m_Render.subtract_mask_from_silk )
{
if( layer == B_SilkS && map_poly.find( B_Mask ) != map_poly.end() )
{
polyListSubtracted.BooleanSubtract( *map_poly.at( B_Mask ),
SHAPE_POLY_SET::PM_FAST );
polyListSubtracted.BooleanSubtract( *map_poly.at( B_Mask ) );
}
else if( layer == F_SilkS && map_poly.find( F_Mask ) != map_poly.end() )
{
polyListSubtracted.BooleanSubtract( *map_poly.at( F_Mask ),
SHAPE_POLY_SET::PM_FAST );
polyListSubtracted.BooleanSubtract( *map_poly.at( F_Mask ) );
}
}
@@ -614,17 +607,20 @@ void RENDER_3D_OPENGL::reload( REPORTER* aStatusReporter, REPORTER* aWarningRepo
if( m_boardAdapter.m_Cfg->m_Render.DifferentiatePlatedCopper() )
{
const SHAPE_POLY_SET* frontPlatedPadAndGraphicPolys = m_boardAdapter.GetFrontPlatedPadAndGraphicPolys();
const SHAPE_POLY_SET* backPlatedPadAndGraphicPolys = m_boardAdapter.GetBackPlatedPadAndGraphicPolys();
const SHAPE_POLY_SET* frontPlatedPadAndGraphicPolys =
m_boardAdapter.GetFrontPlatedPadAndGraphicPolys();
const SHAPE_POLY_SET* backPlatedPadAndGraphicPolys =
m_boardAdapter.GetBackPlatedPadAndGraphicPolys();
if( frontPlatedPadAndGraphicPolys )
{
SHAPE_POLY_SET poly = frontPlatedPadAndGraphicPolys->CloneDropTriangulation();
poly.BooleanIntersection( m_boardAdapter.GetBoardPoly(), SHAPE_POLY_SET::PM_FAST );
poly.BooleanSubtract( m_boardAdapter.GetTH_ODPolys(), SHAPE_POLY_SET::PM_FAST );
poly.BooleanSubtract( m_boardAdapter.GetNPTH_ODPolys(), SHAPE_POLY_SET::PM_FAST );
poly.BooleanIntersection( m_boardAdapter.GetBoardPoly() );
poly.BooleanSubtract( m_boardAdapter.GetTH_ODPolys() );
poly.BooleanSubtract( m_boardAdapter.GetNPTH_ODPolys() );
m_platedPadsFront = generateLayerList( m_boardAdapter.GetPlatedPadsFront(), &poly, F_Cu );
m_platedPadsFront = generateLayerList( m_boardAdapter.GetPlatedPadsFront(), &poly,
F_Cu );
// An entry for F_Cu must exist in m_layers or we'll never look at m_platedPadsFront
if( m_layers.count( F_Cu ) == 0 )
@@ -634,9 +630,9 @@ void RENDER_3D_OPENGL::reload( REPORTER* aStatusReporter, REPORTER* aWarningRepo
if( backPlatedPadAndGraphicPolys )
{
SHAPE_POLY_SET poly = backPlatedPadAndGraphicPolys->CloneDropTriangulation();
poly.BooleanIntersection( m_boardAdapter.GetBoardPoly(), SHAPE_POLY_SET::PM_FAST );
poly.BooleanSubtract( m_boardAdapter.GetTH_ODPolys(), SHAPE_POLY_SET::PM_FAST );
poly.BooleanSubtract( m_boardAdapter.GetNPTH_ODPolys(), SHAPE_POLY_SET::PM_FAST );
poly.BooleanIntersection( m_boardAdapter.GetBoardPoly() );
poly.BooleanSubtract( m_boardAdapter.GetTH_ODPolys() );
poly.BooleanSubtract( m_boardAdapter.GetNPTH_ODPolys() );
m_platedPadsBack = generateLayerList( m_boardAdapter.GetPlatedPadsBack(), &poly, B_Cu );
@@ -839,9 +835,9 @@ void RENDER_3D_OPENGL::generateViasAndPads()
}
// Subtract the holes
tht_outer_holes_poly.BooleanSubtract( tht_inner_holes_poly, SHAPE_POLY_SET::PM_FAST );
tht_outer_holes_poly.BooleanSubtract( tht_inner_holes_poly );
tht_outer_holes_poly.BooleanSubtract( m_antiBoardPolys, SHAPE_POLY_SET::PM_FAST );
tht_outer_holes_poly.BooleanSubtract( m_antiBoardPolys );
CONTAINER_2D holesContainer;
@@ -898,9 +894,7 @@ void RENDER_3D_OPENGL::Load3dModelsIfNeeded()
if( m_3dModelMap.size() > 0 )
return;
wxFrame* frame = dynamic_cast<EDA_3D_VIEWER_FRAME*>( m_canvas->GetParent() );
if( frame )
if( wxFrame* frame = dynamic_cast<wxFrame*>( m_canvas->GetParent() ) )
{
STATUSBAR_REPORTER activityReporter( frame->GetStatusBar(),
(int) EDA_3D_VIEWER_STATUSBAR::ACTIVITY );
@@ -974,7 +968,9 @@ void RENDER_3D_OPENGL::load3dModels( REPORTER* aStatusReporter )
{
// It is not present, try get it from cache
const S3DMODEL* modelPtr =
m_boardAdapter.Get3dCacheManager()->GetModel( fp_model.m_Filename, footprintBasePath, footprint );
m_boardAdapter.Get3dCacheManager()->GetModel( fp_model.m_Filename,
footprintBasePath,
footprint );
// only add it if the return is not NULL
if( modelPtr )
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015-2016 Mario Luzeiro <mrluzeiro@ua.pt>
* Copyright (C) 1992-2021 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -129,7 +129,7 @@ void TRIANGLE_DISPLAY_LIST::AddToMiddleContourns( const std::vector< SFVEC2F >&
{
if( aContournPoints.size() >= 4 )
{
// Calculate normals of each segment of the contourn
// Calculate normals of each segment of the contour
std::vector< SFVEC2F > contournNormals;
contournNormals.clear();
@@ -245,7 +245,7 @@ void TRIANGLE_DISPLAY_LIST::AddToMiddleContourns( const SHAPE_LINE_CHAIN& outlin
}
}
// Add first position fo the list to close the path
// Add first position of the list to close the path.
if( lastV != contournPoints[0] )
contournPoints.push_back( contournPoints[0] );
@@ -472,10 +472,10 @@ void OPENGL_RENDER_LIST::DrawAll( bool aDrawMiddle ) const
void OPENGL_RENDER_LIST::DrawCulled( bool aDrawMiddle,
const OPENGL_RENDER_LIST* aSubtractList,
const OPENGL_RENDER_LIST* bSubtractList,
const OPENGL_RENDER_LIST* cSubtractList,
const OPENGL_RENDER_LIST* dSubtractList ) const
const OPENGL_RENDER_LIST* aSubtractList,
const OPENGL_RENDER_LIST* bSubtractList,
const OPENGL_RENDER_LIST* cSubtractList,
const OPENGL_RENDER_LIST* dSubtractList ) const
{
glClearStencil( 0x00 );
glClear( GL_STENCIL_BUFFER_BIT );
@@ -502,8 +502,8 @@ void OPENGL_RENDER_LIST::DrawCulled( bool aDrawMiddle,
if( dSubtractList )
dSubtractList->DrawBot();
glEnable(GL_DEPTH_TEST);
glDepthMask(GL_TRUE);
glEnable( GL_DEPTH_TEST );
glDepthMask( GL_TRUE );
glColorMask( GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE );
glStencilFunc( GL_EQUAL, 0, 1 );
@@ -529,8 +529,8 @@ void OPENGL_RENDER_LIST::DrawCulled( bool aDrawMiddle,
if( dSubtractList )
dSubtractList->DrawTop();
glEnable(GL_DEPTH_TEST);
glDepthMask(GL_TRUE);
glEnable( GL_DEPTH_TEST );
glDepthMask( GL_TRUE );
glColorMask( GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE );
glStencilFunc( GL_NOTEQUAL, 2, 0x03 );
glStencilOp( GL_KEEP, GL_KEEP, GL_INCR );
@@ -584,11 +584,11 @@ void OPENGL_RENDER_LIST::SetItIsTransparent( bool aSetTransparent )
GLuint OPENGL_RENDER_LIST::generate_top_or_bot_seg_ends(
const TRIANGLE_LIST* aTriangleContainer, bool aIsNormalUp, GLuint aTextureId ) const
{
wxASSERT( aTriangleContainer != nullptr );
wxCHECK( aTriangleContainer != nullptr, 0 );
wxASSERT( ( aTriangleContainer->GetVertexSize() % 3 ) == 0 );
// Top and Bot dont have normals array stored in container
// Top and Bot don't have normals array stored in container
wxASSERT( aTriangleContainer->GetNormalsSize() == 0 );
if( ( aTriangleContainer->GetVertexSize() > 0 )
@@ -651,11 +651,11 @@ GLuint OPENGL_RENDER_LIST::generate_top_or_bot_seg_ends(
GLuint OPENGL_RENDER_LIST::generate_top_or_bot_triangles( const TRIANGLE_LIST* aTriangleContainer,
bool aIsNormalUp ) const
{
wxASSERT( aTriangleContainer != nullptr );
wxCHECK( aTriangleContainer != nullptr, 0 );
wxASSERT( ( aTriangleContainer->GetVertexSize() % 3 ) == 0 );
// Top and Bot dont have normals array stored in container
// Top and Bot dint have normals array stored in container
wxASSERT( aTriangleContainer->GetNormalsSize() == 0 );
if( ( aTriangleContainer->GetVertexSize() > 0 )
@@ -695,7 +695,7 @@ GLuint OPENGL_RENDER_LIST::generate_top_or_bot_triangles( const TRIANGLE_LIST* a
GLuint OPENGL_RENDER_LIST::generate_middle_triangles(
const TRIANGLE_LIST* aTriangleContainer ) const
{
wxASSERT( aTriangleContainer != nullptr );
wxCHECK( aTriangleContainer != nullptr, 0 );
// We expect that it is a multiple of 3 vertex
wxASSERT( ( aTriangleContainer->GetVertexSize() % 3 ) == 0 );
@@ -767,3 +767,5 @@ void OPENGL_RENDER_LIST::beginTransformation() const
glScalef( 1.0f, 1.0f, m_zScaleTransformation );
}
}
// LocalWords: EDA Luzeiro txt MERCHANTABILITY wxASSERT normals fo
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015-2016 Mario Luzeiro <mrluzeiro@ua.pt>
* Copyright (C) 1992-2021 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015-2016 Mario Luzeiro <mrluzeiro@ua.pt>
* Copyright (C) 1992-2022 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015-2016 Mario Luzeiro <mrluzeiro@ua.pt>
* Copyright (C) 1992-2021 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -3,7 +3,7 @@
*
* Copyright (C) 2015-2020 Mario Luzeiro <mrluzeiro@ua.pt>
* Copyright (C) 2023 CERN
* Copyright (C) 2015-2024 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -36,6 +36,7 @@
#include <3d_math.h>
#include <glm/geometric.hpp>
#include <lset.h>
#include <pgm_base.h>
#include <math/util.h> // for KiROUND
#include <utility>
#include <vector>
@@ -490,7 +491,7 @@ bool RENDER_3D_OPENGL::Redraw( bool aIsMoving, REPORTER* aStatusReporter,
// Careful here!
// We are in the middle of rendering and the reload method may show
// a dialog box that requires the opengl context for a redraw
GL_CONTEXT_MANAGER::Get().RunWithoutCtxLock( [this, aStatusReporter, aWarningReporter]()
Pgm().GetGLContextManager()->RunWithoutCtxLock( [this, aStatusReporter, aWarningReporter]()
{
reload( aStatusReporter, aWarningReporter );
} );
@@ -604,7 +605,7 @@ bool RENDER_3D_OPENGL::Redraw( bool aIsMoving, REPORTER* aStatusReporter,
if( layerFlags.test( LAYER_3D_BOARD ) && m_boardAdapter.m_BoardBodyColor.a > opacity_min )
{
// generating internal copper layers is time consumming. so skip them
// generating internal copper layers is time consuming. so skip them
// if the board body is masking them (i.e. if the opacity is near 1.0)
// B_Cu is layer 2 and all inner layers are higher values
if( layer > B_Cu && IsCopperLayer( layer ) )
@@ -715,7 +716,8 @@ bool RENDER_3D_OPENGL::Redraw( bool aIsMoving, REPORTER* aStatusReporter,
renderBoardBody( skipRenderHoles );
// Display transparent mask layers
if( layerFlags.test( LAYER_3D_SOLDERMASK_TOP ) || layerFlags.test( LAYER_3D_SOLDERMASK_BOTTOM ) )
if( layerFlags.test( LAYER_3D_SOLDERMASK_TOP )
|| layerFlags.test( LAYER_3D_SOLDERMASK_BOTTOM ) )
{
// add a depth buffer offset, it will help to hide some artifacts
// on silkscreen where the SolderMask is removed
@@ -765,7 +767,9 @@ bool RENDER_3D_OPENGL::Redraw( bool aIsMoving, REPORTER* aStatusReporter,
// Enables Texture Env so it can combine model transparency with each footprint opacity
glEnable( GL_TEXTURE_2D );
glActiveTexture( GL_TEXTURE0 );
glBindTexture( GL_TEXTURE_2D, m_circleTexture ); // Uses an existent texture so the glTexEnv operations will work
// Uses an existent texture so the glTexEnv operations will work.
glBindTexture( GL_TEXTURE_2D, m_circleTexture );
glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE );
glTexEnvf( GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_INTERPOLATE );
@@ -984,7 +988,8 @@ void RENDER_3D_OPENGL::get3dModelsSelected( std::list<MODELTORENDER> &aDstRender
const bool isFlipped = fp->IsFlipped();
if( aGetTop == !isFlipped || aGetBot == isFlipped )
get3dModelsFromFootprint( aDstRenderList, fp, aRenderTransparentOnly, highlight );
get3dModelsFromFootprint( aDstRenderList, fp, aRenderTransparentOnly,
highlight );
}
}
}
@@ -1045,7 +1050,8 @@ void RENDER_3D_OPENGL::get3dModelsFromFootprint( std::list<MODELTORENDER> &aDstR
glm::mat4 modelworldMatrix = fpMatrix;
const SFVEC3F offset = SFVEC3F( sM.m_Offset.x, sM.m_Offset.y, sM.m_Offset.z );
const SFVEC3F rotation = SFVEC3F( sM.m_Rotation.x, sM.m_Rotation.y, sM.m_Rotation.z );
const SFVEC3F rotation = SFVEC3F( sM.m_Rotation.x, sM.m_Rotation.y,
sM.m_Rotation.z );
const SFVEC3F scale = SFVEC3F( sM.m_Scale.x, sM.m_Scale.y, sM.m_Scale.z );
std::vector<float> key = { offset.x, offset.y, offset.z,
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015-2016 Mario Luzeiro <mrluzeiro@ua.pt>
* Copyright (C) 2015-2024 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015-2016 Mario Luzeiro <mrluzeiro@ua.pt>
* Copyright (C) 2015-2024 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015-2016 Mario Luzeiro <mrluzeiro@ua.pt>
* Copyright (C) 2015-2024 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015-2016 Mario Luzeiro <mrluzeiro@ua.pt>
* Copyright (C) 2015-2024 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015-2016 Mario Luzeiro <mrluzeiro@ua.pt>
* Copyright (C) 2015-2024 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2016 Mario Luzeiro <mrluzeiro@ua.pt>
* Copyright (C) 2016-2021 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2016 Mario Luzeiro <mrluzeiro@ua.pt>
* Copyright (C) 2016-2021 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015-2016 Mario Luzeiro <mrluzeiro@ua.pt>
* Copyright (C) 1992-2020 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015-2016 Mario Luzeiro <mrluzeiro@ua.pt>
* Copyright (C) 2020-2020 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015-2016 Mario Luzeiro <mrluzeiro@ua.pt>
* Copyright (C) 2015-2020 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015-2016 Mario Luzeiro <mrluzeiro@ua.pt>
* Copyright (C) 2015-2020 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -848,7 +848,7 @@ BVHBuildNode *BVH_PBRT::emitLBVH( BVHBuildNode* &buildNodes,
while( searchStart + 1 != searchEnd )
{
wxASSERT(searchStart != searchEnd);
wxASSERT( searchStart != searchEnd );
const int mid = ( searchStart + searchEnd ) / 2;
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015-2016 Mario Luzeiro <mrluzeiro@ua.pt>
* Copyright (C) 2015-2020 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015-2016 Mario Luzeiro <mrluzeiro@ua.pt>
* Copyright (C) 2015-2020 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015-2020 Mario Luzeiro <mrluzeiro@ua.pt>
* Copyright (C) 2015-2020 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015-2016 Mario Luzeiro <mrluzeiro@ua.pt>
* Copyright (C) 1992-2016 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015-2016 Mario Luzeiro <mrluzeiro@ua.pt>
* Copyright (C) 2015-2020 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -3,7 +3,7 @@
*
* Copyright (C) 2015-2022 Mario Luzeiro <mrluzeiro@ua.pt>
* Copyright (C) 2023 CERN
* Copyright (C) 2015-2024 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -67,18 +67,22 @@ static float TransparencyControl( float aGrayColorValue, float aTransparency )
}
/**
* Scale conversion from 3d model units to pcb units
*/
* Scale conversion from 3d model units to pcb units
*/
#define UNITS3D_TO_UNITSPCB ( pcbIUScale.IU_PER_MM )
void RENDER_3D_RAYTRACE_BASE::setupMaterials()
{
MATERIAL::SetDefaultRefractionRayCount( m_boardAdapter.m_Cfg->m_Render.raytrace_nrsamples_refractions );
MATERIAL::SetDefaultReflectionRayCount( m_boardAdapter.m_Cfg->m_Render.raytrace_nrsamples_reflections );
MATERIAL::SetDefaultRefractionRayCount(
m_boardAdapter.m_Cfg->m_Render.raytrace_nrsamples_refractions );
MATERIAL::SetDefaultReflectionRayCount(
m_boardAdapter.m_Cfg->m_Render.raytrace_nrsamples_reflections );
MATERIAL::SetDefaultRefractionRecursionCount( m_boardAdapter.m_Cfg->m_Render.raytrace_recursivelevel_refractions );
MATERIAL::SetDefaultReflectionRecursionCount( m_boardAdapter.m_Cfg->m_Render.raytrace_recursivelevel_reflections );
MATERIAL::SetDefaultRefractionRecursionCount(
m_boardAdapter.m_Cfg->m_Render.raytrace_recursivelevel_refractions );
MATERIAL::SetDefaultReflectionRecursionCount(
m_boardAdapter.m_Cfg->m_Render.raytrace_recursivelevel_reflections );
double mmTo3Dunits = pcbIUScale.IU_PER_MM * m_boardAdapter.BiuTo3dUnits();
@@ -177,8 +181,8 @@ void RENDER_3D_RAYTRACE_BASE::setupMaterials()
void RENDER_3D_RAYTRACE_BASE::createObject( CONTAINER_3D& aDstContainer, const OBJECT_2D* aObject2D,
float aZMin, float aZMax, const MATERIAL* aMaterial,
const SFVEC3F& aObjColor )
float aZMin, float aZMax, const MATERIAL* aMaterial,
const SFVEC3F& aObjColor )
{
switch( aObject2D->GetObjectType() )
{
@@ -415,8 +419,8 @@ void RENDER_3D_RAYTRACE_BASE::Reload( REPORTER* aStatusReporter, REPORTER* aWarn
buildBoardBoundingBoxPoly( m_boardAdapter.GetBoard(), antiboardPoly );
antiboardPoly.BooleanSubtract( boardPolyCopy, SHAPE_POLY_SET::PM_FAST );
antiboardPoly.Fracture( SHAPE_POLY_SET::PM_FAST );
antiboardPoly.BooleanSubtract( boardPolyCopy );
antiboardPoly.Fracture();
for( int ii = 0; ii < antiboardPoly.OutlineCount(); ii++ )
{
@@ -427,9 +431,9 @@ void RENDER_3D_RAYTRACE_BASE::Reload( REPORTER* aStatusReporter, REPORTER* aWarn
m_antioutlineBoard2dObjects->BuildBVH();
boardPolyCopy.Fracture( SHAPE_POLY_SET::PM_FAST );
boardPolyCopy.Fracture();
for( int ii = 0; ii < outlineCount; ii++ )
for( int ii = 0; ii < boardPolyCopy.OutlineCount(); ii++ )
{
ConvertPolygonToBlocks( boardPolyCopy, *m_outlineBoard2dObjects,
m_boardAdapter.BiuTo3dUnits(), divFactor,
@@ -541,7 +545,8 @@ void RENDER_3D_RAYTRACE_BASE::Reload( REPORTER* aStatusReporter, REPORTER* aWarn
radius );
objPtr->SetMaterial( &m_materials.m_EpoxyBoard );
objPtr->SetColor( ConvertSRGBToLinear( m_boardAdapter.m_BoardBodyColor ) );
objPtr->SetColor(
ConvertSRGBToLinear( m_boardAdapter.m_BoardBodyColor ) );
m_objectContainer.Add( objPtr );
}
@@ -560,7 +565,8 @@ void RENDER_3D_RAYTRACE_BASE::Reload( REPORTER* aStatusReporter, REPORTER* aWarn
aStatusReporter->Report( _( "Load Raytracing: layers" ) );
// Add layers maps (except B_Mask and F_Mask)
for( const std::pair<const PCB_LAYER_ID, BVH_CONTAINER_2D*>& entry : m_boardAdapter.GetLayerMap() )
for( const std::pair<const PCB_LAYER_ID, BVH_CONTAINER_2D*>& entry :
m_boardAdapter.GetLayerMap() )
{
const PCB_LAYER_ID layer_id = entry.first;
const BVH_CONTAINER_2D* container2d = entry.second;
@@ -667,7 +673,8 @@ void RENDER_3D_RAYTRACE_BASE::Reload( REPORTER* aStatusReporter, REPORTER* aWarn
{
const MATERIAL* materialLayer = &m_materials.m_SolderMask;
for( const std::pair<const PCB_LAYER_ID, BVH_CONTAINER_2D*>& entry : m_boardAdapter.GetLayerMap() )
for( const std::pair<const PCB_LAYER_ID, BVH_CONTAINER_2D*>& entry :
m_boardAdapter.GetLayerMap() )
{
const PCB_LAYER_ID layer_id = entry.first;
const BVH_CONTAINER_2D* container2d = entry.second;
@@ -1193,7 +1200,8 @@ void RENDER_3D_RAYTRACE_BASE::addPadsAndVias()
}
void RENDER_3D_RAYTRACE_BASE::load3DModels( CONTAINER_3D& aDstContainer, bool aSkipMaterialInformation )
void RENDER_3D_RAYTRACE_BASE::load3DModels( CONTAINER_3D& aDstContainer,
bool aSkipMaterialInformation )
{
if( !m_boardAdapter.GetBoard() )
return;
@@ -1249,6 +1257,7 @@ void RENDER_3D_RAYTRACE_BASE::load3DModels( CONTAINER_3D& aDstContainer, bool aS
wxString libraryName = fp->GetFPID().GetLibNickname();
wxString footprintBasePath = wxEmptyString;
if( m_boardAdapter.GetBoard()->GetProject() )
{
try
@@ -1409,8 +1418,8 @@ MODEL_MATERIALS* RENDER_3D_RAYTRACE_BASE::getModelMaterial( const S3DMODEL* a3DM
void RENDER_3D_RAYTRACE_BASE::addModels( CONTAINER_3D& aDstContainer, const S3DMODEL* a3DModel,
const glm::mat4& aModelMatrix, float aFPOpacity,
bool aSkipMaterialInformation, BOARD_ITEM* aBoardItem )
const glm::mat4& aModelMatrix, float aFPOpacity,
bool aSkipMaterialInformation, BOARD_ITEM* aBoardItem )
{
// Validate a3DModel pointers
wxASSERT( a3DModel != nullptr );
+10 -5
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015-2017 Mario Luzeiro <mrluzeiro@ua.pt>
* Copyright (C) 1992-2021 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -42,10 +42,15 @@ void FRUSTUM::GenerateFrustum( const RAY& topLeft, const RAY& topRight, const RA
m_point[2] = bottomLeft.m_Origin;
m_point[3] = topLeft.m_Origin;
m_normals[0] = glm::cross( topRight.m_Dir, topLeft.m_Dir ); // TOP
m_normals[1] = glm::cross( bottomRight.m_Dir, topRight.m_Dir ); // RIGHT
m_normals[2] = glm::cross( bottomLeft.m_Dir, bottomRight.m_Dir ); // BOTTOM
m_normals[3] = glm::cross( topLeft.m_Dir, bottomLeft.m_Dir ); // LEFT
SFVEC3F tl_tr = topRight.m_Origin - topLeft.m_Origin;
SFVEC3F tr_br = bottomRight.m_Origin - topRight.m_Origin;
SFVEC3F br_bl = bottomLeft.m_Origin - bottomRight.m_Origin;
SFVEC3F bl_tl = topLeft.m_Origin - bottomLeft.m_Origin;
m_normals[0] = glm::cross( tl_tr, topLeft.m_Dir ); // TOP
m_normals[1] = glm::cross( tr_br, topRight.m_Dir ); // RIGHT
m_normals[2] = glm::cross( br_bl, bottomRight.m_Dir ); // BOTTOM
m_normals[3] = glm::cross( bl_tl, bottomLeft.m_Dir ); // LEFT
}
+1 -1
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015-2016 Mario Luzeiro <mrluzeiro@ua.pt>
* Copyright (C) 1992-2021 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015-2016 Mario Luzeiro <mrluzeiro@ua.pt>
* Copyright (C) 1992-2021 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
+1 -1
View File
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015-2016 Mario Luzeiro <mrluzeiro@ua.pt>
* Copyright (C) 2015-2021 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015-2022 Mario Luzeiro <mrluzeiro@ua.pt>
* Copyright (C) 2015-2022 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License

Some files were not shown because too many files have changed in this diff Show More