Commit Graph

1213 Commits

Author SHA1 Message Date
Seth Hillbrand 14f6e32c74 ADDED: Change watcher for libraries
When editing or viewing library symbols, the files are watched for
underlying changes.  If any occur, the user is either prompted to reload
(if reloading would overwrite their current edits) or the file is
silently updated to the current version on disk.

This also sets a custom assertion handler to avoid unneeded crashes when
recieving invalid SAMBA packets and turns off assertions entirely when
running in release (non-debug) mode
2023-05-31 13:46:00 -07:00
Seth Hillbrand 48ecd742eb Maintain file permissions when renaming
Temporary and autosave files do not neccessarily have the correct
permissions set to replace existing project files.  This updates the
permissions to match the existing values where possible

Fixes https://gitlab.com/kicad/code/kicad/-/issues/13574
2023-05-24 17:09:38 -07:00
qu1ck e86937ca2e Use SetLabelText in PANEL_PACKAGE 2023-05-22 19:01:31 +00:00
Marek Roszko 7774b75172 Another set of C5266 warning fixes 2023-05-18 22:46:57 -04:00
Jon Evans 09e8f72196 Don't try to open files multiple times
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14703
2023-05-07 21:46:39 -04:00
Marek Roszko 3dc308464c Replace the exception handler in another spot 2023-04-19 21:21:18 -04:00
Marek Roszko 2f23df8f5f Move 3 more blocks to the common ex handler 2023-04-19 21:17:31 -04:00
jean-pierre charras 1406341d2d Fix a few doxygen errors (no actual code change) 2023-04-19 16:20:24 +02:00
Marek Roszko 460b08c6ca Nix a dialog in kicad_cli.cpp that shouldn't ever fire 2023-04-16 20:09:57 -04:00
Mike Williams 33b2b5b09d STEP Export: Update options to reflect DNP and Unspecified filtering
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/14125
2023-04-13 10:33:03 -04:00
Ian McInerney ea62b145ff Introduce core interface library
This library is meant to move non-EDA items (language extensions,
library extensions, etc.) into the lowest-level of our dependency chain.
This library should never depend on anyother non-thirdparty code in the
kicad codebase.
2023-04-06 15:01:18 +01:00
Mike Williams 9c3d93eb34 BOM Generator: wire up forced exclusion, optional DNP exclusion 2023-04-03 09:07:52 -04:00
Mike Williams 79a829395d BOM Generator: minor bug fixes and string changes 2023-04-03 09:07:52 -04:00
Mike Williams 753ae21fd4 BOM Generator: wire up to kicad-cli 2023-04-03 09:07:52 -04:00
jean-pierre charras e1d47dfac4 fix typo 2023-03-30 13:48:37 +02:00
jean-pierre charras cd90887e06 kicad-cli, layer names: allows using both names used in GUI and in board files
Fixes #14455
https://gitlab.com/kicad/code/kicad/issues/14455
2023-03-30 13:21:18 +02:00
jean-pierre charras e0d983e0d8 kicad-cli, export drill files: re-add -u as short option for --excellon-units.
Was removed by my previous commit b6f5e3d
2023-03-30 10:47:13 +02:00
jean-pierre charras b6f5e3df2b kicad-cli, export drill files: fix duplicate options and fix some others:
- remove --separate-files duplicate option
- change --units to --excellon-units (valid only for Excellon) and default to mm
- Gerber resolution: 5 -> 6 (default must be always the higher resolution)
Fixes #14454
https://gitlab.com/kicad/code/kicad/issues/14454
2023-03-30 09:41:45 +02:00
Marek Roszko 8a8589b9db Fix cli crash due to dialogs buried in the pcb parser...
Fixes sentry KICAD-Q2
2023-03-24 19:52:48 -04:00
Wayne Stambaugh 244c37298f Fix Doxygen commenting issues. 2023-03-24 11:57:52 -04:00
jean-pierre charras 65eb84265b Fix a compil warning issue (mingw specific)
also avoid to include wx/wx.h in kicad_cli.cpp, it is compil time consuming.
2023-03-22 08:49:26 +01:00
Salvador E. Tropea 7e3f1b1a00 Adds the missing plot formats to `kicad-cli sch export` 2023-03-22 02:14:50 +00:00
David Holdeman 79fbde0894 Add option to use drill/place file origin for kicad-cli gerber export 2023-03-21 12:18:14 +00:00
Ian McInerney 016c958021 Always build spice simulator support
The simulator has advanced considerably, and it is seeing lots of active
development, so make it a required part of KiCad. Additionally, the
build without the simulator has actually been broken for a while, so no
one clearly is building without ngspice right now.
2023-03-20 16:54:32 +00:00
Alex 10c4b948cb Support canceling initial global library table setup. 2023-03-19 14:30:53 +03:00
Alex 672c468342 Fix clashing error dialogs when can't load dynamic library. 2023-03-19 13:01:54 +03:00
Simon Richter 08e6458abc Shrink lifetime of variable
In 7.0, this avoids a warning. In this branch, someone implemented the
compiler's suggestion, but there is an easier way.
2023-03-11 15:46:52 +00:00
jean-pierre charras f569cffa8e Step exporter fixes and enhancements:
- fix duplicate code and a few bugs (some are due to changes in code over the years)
- ADDED: option to export tracks and vias on external layers Exporting tracks is *very* time consuming,
and need a bit of optimization.
2023-03-05 12:55:15 +01:00
Marek Roszko 47cf26f047 Don't destroy the DIALOG_PCM_PROGRESS until after the threads actually terminated 2023-02-26 17:46:49 -05:00
jean-pierre charras 72cc2766ed kicad manager, OnOpenFileInTextEditor(): do not quote the filename.
It will be quoted later.
Fixes #14086
https://gitlab.com/kicad/code/kicad/issues/14086
2023-02-26 08:34:38 +01:00
Alex b592017495 Reduce some flickering in PCM. 2023-02-24 20:06:39 +03:00
Ian McInerney bcb93e9aa7 Modernize setting of compiler definitions in CMake
add_compile_definitions was added in 3.12, and our minimum is now
greater than that.
2023-02-22 01:44:06 +00:00
Marek Roszko 6029fae30b Catch parsing exceptions of the local repository.json
Fixes KICAD-B9
2023-02-21 07:14:18 -05:00
Marek Roszko 7d25b6de87 Fix crash deleting project tree items
Fixes sentry KICAD-C2
2023-02-19 10:09:04 -05:00
Marek Roszko 9b708ce6d1 Fix copypasta typo in export pos
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13991
2023-02-19 00:24:05 -05:00
Wayne Stambaugh 2dffaa4d04 Fix GCC compiler warnings. 2023-02-17 15:29:45 -05:00
qu1ck 2975f53647 PCM: auto reload global libs after dialog is run
This adds Reset() method to KIFACE to reload global libs stored in
global static vars.
Also refactors some lib reload code in various frames to have
common MAIL_RELOAD_LIB handler.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/12500
2023-02-17 17:24:32 +00:00
aris-kimi dca1281263 Fix some typos 2023-02-14 23:47:05 +02:00
Marek Roszko 4665823089 Turn on and fix MSVC compliance mode issues
We want /permissive- to enable debug performance improvements in MSVC 17.5+.
This flag is also default under C++20 so we'll have to deal with these compile issues anyway at some point in the future.

In particular, MSVC becomes pedantic about ternary types.
See https://learn.microsoft.com/en-us/cpp/build/reference/permissive-standards-conformance?view=msvc-170#ambiguous-conditional-operator-arguments

MSFT cites https://cplusplus.github.io/CWG/issues/1805.html
2023-02-12 16:30:37 -05:00
Mark Roszko 2c8b1a50b0 Add extra dash to the long short args 2023-02-08 13:55:20 +00:00
jean-pierre charras a493a2c822 kicad-cli, pcbnew pàlot: honor the color options when ploting pdf files
--black-and-white and -t were shown in help, but not handled
Fixes #13805
https://gitlab.com/kicad/code/kicad/issues/13805
2023-02-07 20:20:45 +01:00
Marek Roszko 4d811ba975 Enable layer arg for fp export svg 2023-01-27 23:45:42 -05:00
Jon Evans d25b96d72d Squash warnings 2023-01-25 18:01:16 -05:00
qu1ck 7ec2989d30 PCM: progress dialog stay should on top, disable other windows 2023-01-25 22:44:35 +00:00
Jon Evans bd977fffa8 PCM: Make the progress dialog non-modal on other platforms 2023-01-25 13:59:32 -05:00
Jon Evans 9954c18244 PCM: Make the progress dialog modal
I don't know if this was intended to operate modeless, but it doesn't work

Fixes https://gitlab.com/kicad/code/kicad/-/issues/13474
2023-01-25 12:32:13 -05:00
Marek Roszko bc65f3b515 Lazily fix the output arg string for sch svg export
Big brain, just use the string with the colon in it. Sue me.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/13647
2023-01-24 23:36:38 -05:00
qu1ck d9e1763484 PCM: keep pinned state on update 2023-01-24 00:01:51 +00:00
Seth Hillbrand a9ed47f06c Update KICAD6->KICAD7 2023-01-23 22:21:12 +00:00
Mark Roszko 26c6760662 Remove new strings 2023-01-17 17:55:48 +00:00
Marek Roszko ac94995f70 Some more wxS 2023-01-16 19:07:50 -05:00
Marek Roszko ba6c23da00 Add help note for the gerber vs gerbers, and make "pos" obvious
Will add more strings in v8 I guess to avoid too many sneaky string additions :P
2023-01-14 14:33:38 -05:00
Seth Hillbrand a5e6f11682 Fix crash when closing non-modal 2023-01-12 13:21:22 -08:00
Seth Hillbrand fa91d906d0 Fix event blocker on GTK
We block events when a modal window is active.  But detecting when the
modal window is closed is harder on GTK than just counting modal closes
because the modal flag can sometimes be unset before the wxEVT_SHOW
event fires.  Instead, we track the stack of modal windows opened and
close the window and subsequent windows when the object pointer matches

Fixes https://gitlab.com/kicad/code/kicad/issues/13372
2023-01-12 11:53:00 -08:00
Jeff Young 30c9deb9d5 Flat(er) look for paged dialogs. 2023-01-11 01:11:25 +00:00
Marek Roszko 4dad07eef6 Fix typo 2023-01-09 07:03:48 -05:00
Marek Roszko 684941e4b6 Flip the include/exclude of refdes and value in cli 2023-01-08 22:53:08 -05:00
Marek Roszko 9f71e9af03 Add arg to plot hidden symbol pins in cli 2023-01-08 22:39:38 -05:00
Wayne Stambaugh f28ea5e784 Remove standard dialog button static line separators.
For the sake of consistency across all dialogs and window that behave
like dialogs, remove the static line that separates the main part of
the dialog from the standard buttons.  This only applies to windows
that have the standard button on the bottom of the frame.

This covers the 3D viewer, CvPcb, common, GerbView and KiCad dialogs.
2023-01-08 13:15:33 -05:00
Marek Roszko c3a214983d Fix the --version redirection
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13379
2023-01-04 21:39:37 -05:00
Marek Roszko 0c717ec4f2 Add trailing newline to version prints 2023-01-04 21:31:52 -05:00
qu1ck 50582232ea PCM: fix url detection in pkg description 2023-01-04 21:17:38 +00:00
Seth Hillbrand 98d55ce82f Avoid rebuilding with each commit
We shouldn't include the kicad_build_info.h outside of the wrapper
build_info.h.  Also adds an error directive to prevent re-introduction
of define dependencies
2023-01-04 11:32:15 -08:00
Marek Roszko 33b835ceef Add additional version info options for the cli 2023-01-03 21:54:44 -05:00
Marek Roszko 8ab9934143 Use our own cmake module path variable to avoid conflicting with the main ones listy functional 2023-01-03 19:18:16 -05:00
Marek Roszko f2fcd4b8e1 Add a version command to cli and extend out a major.minor.patch string 2023-01-01 22:41:05 -05:00
Marek Roszko e335423cb6 Fix the handling of help in the cli commands
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13293
2023-01-01 12:00:05 -05:00
Marek Roszko 1b15854da5 Implement --help and --version ourselves for kicad-cli
https://gitlab.com/kicad/code/kicad/-/issues/13293
2022-12-31 23:39:05 -05:00
Jeff Young 4c63b4e061 Class name <-> file name sync. 2022-12-29 18:05:57 +00:00
Jon Evans 7e778c9856 KiWay: Make sure to mark closed windows as closed
Also make sure to veto project import if we couldn't close the existing project.

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

Maybe also fixes some other weird crashes, we'll see.
2022-12-27 10:31:45 -05:00
Ian McInerney 2f8cc194c1 Initialize variables inside file dialog customizer classes 2022-12-17 23:37:24 +00:00
Jon Evans 5abf73e3c9 Never call ReCreateMenuBar inside a menu event handler
As of wxWidgets 3.2, the wxWidgets event handler runs code after the
the client event handler that depends on the menu still existing.
Because there are potentially many paths to call ReCreateMenuBar from
within a menu event handler, let's just wrap this action in a CallAfter
to make sure it happens after the wx handler call completes.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/13149
2022-12-16 16:37:51 -05:00
Jeff Young 5984a6dddd Fixup a few more collapsing textEditCtrls on Mac. 2022-12-14 15:13:29 +00:00
Marek Roszko 2f8cc84551 Hotglue footprint to svg export
This needs additional work
2022-12-13 22:50:15 -05:00
Jeff Young c0872364d4 Get rid of bloated bitmap buttons on wxWidgets 3.2. 2022-12-13 20:48:02 +00:00
Jon Evans 1ebe3dc131 Stub out MacOpenFile for kicad-cli
Avoids needing to link in the project manager and is probably not necessary

If it ends up being necessary, someone can write a new implementation.
2022-12-13 12:09:59 -05:00
Marek Roszko 93e313440e Split the srcs for kicad-cli from kicad to shrink the binary a little 2022-12-12 22:53:39 -05:00
Marek Roszko f1f5fff072 Add cli export of symbols from kicad libraries 2022-12-12 22:44:26 -05:00
Marek Roszko 59a6d14242 Remove the cli pcb/sch export cpps that arent needed 2022-12-12 22:44:26 -05:00
Marek Roszko 7e53663d5d Add a bulk gerber export that's a wee bit smarter 2022-12-11 20:13:26 -05:00
Adam Wolf 05fe0e740d Remove bundled BundleUtilities
Previously, we included a newer version of BundleUtilities and
GetPrerequisites for macOS. However, the changes we needed have long been
included in CMake, and we weren't using our BundleUtilities in all the
places it was being used.
2022-12-09 23:48:31 +00:00
Adam Wolf 98775afcba Support Apple Silicon on macOS
As part of supporting Apple Silicon, we've got to upgrade our embedded
Python to a version that comes with an Apple Silicon build. Python 3.9
suffices. This means we ignore python3.9 while fixing up bundles.

Apple requires all code to be signed on Apple Silicon. We've added signing
to the build. This has to be run after anything that adds to or modifies
the installed files. As of Cmake 3.14 (CMP0082), the install rules are run
in the order declared, so we are able to do this just by adding the
signing subdirectory last in the main CMakeLists.txt. By default, the
build will be signed "ad hoc", which does not require a developer to
create keys or get keys from Apple. We added some CMake variables to
control signing, KICAD_OSX_CODESIGN and KICAD_OSX_SIGNING_*.

In order to better support development, we've added some necessary cleanup
steps to KiCad that were performed externally in the release and nightly
build process, like removing any .pyc files and extra Python symlinks
erroneously introduced by fixup_bundle. We also adjusted "refix_rpaths" to
be more accurate. We should not need "wrangle_bundle" when building and
installing a local development copy of KiCad.
2022-12-09 23:48:31 +00:00
Alexander Dewing 91290e8f75 vsrious cleanup, seeing if we dont need to ignore_item for python 2022-12-09 23:48:31 +00:00
Alexander Dewing 02325130fa Initial arm64 work 2022-12-09 23:48:31 +00:00
jean-pierre charras 966f7bfa4c Fix commit 0a881e09, not working on wxWidgets 3.1.5/msys2 2022-12-08 15:39:10 +01:00
Marek Roszko 2fc0cd68ed Avoid crashing due to empty lib tables in cli
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13097
2022-12-07 23:56:03 -05:00
Marek Roszko c0b5fe58c3 Implement output targeting of symlib/fplib upgrade per request 2022-12-06 21:20:27 -05:00
qu1ck 8003e9ab50 Fix segfault in kicad-cli for int arguments
Need to indicate int type to argparse
2022-12-06 02:53:10 +00:00
Marek Roszko bae8cb55c0 Rename the bom cli to pythonbom since we'll have a real bom system later 2022-11-30 19:56:59 -05:00
frutiemax 7d78f0b4d3 Use forward declarations in kicad_manager_frame.h 2022-11-30 03:08:35 +00:00
Marek Roszko 21fed9fc8c Hotglue a symbol upgrade function in cli 2022-11-29 00:00:45 -05:00
Marek Roszko 4a88d2a74d Fix up the top level cli command entries 2022-11-28 20:57:24 -05:00
Marek Roszko 25d5defc10 Add cli for "fp" upgrade 2022-11-28 20:48:14 -05:00
Jon Evans 527da0d18c Reload color settings when changed by PCM 2022-11-24 16:20:52 -05:00
Mike Williams 60d42a7b1e Spelling: fix various suppress misspellings 2022-11-22 13:47:10 -05:00
jean-pierre charras 562676b9f8 Fix missing initialization in PGM_KICAD.
This init was probably removed by mistake.
Fixes #12935
https://gitlab.com/kicad/code/kicad/issues/12935
2022-11-18 09:25:20 +01:00
Alex 53b9baa5ba Some refactoring around Gerber files extension checking.
Fixes a case where most Protel inner layer files couldn't be drag and dropped.
2022-11-18 09:55:34 +05:00
Alex 95b8fe26b4 Fix display and archiving of Protel gerber files in Project manager. 2022-11-18 04:39:18 +05:00
Mark Roszko 0e0e4adf3f Use locale_io since atof is used 2022-11-15 13:30:37 +00:00
Marek Roszko daa6e84d74 Make the cli help translatable 2022-11-14 07:25:47 -05:00