Commit Graph

1090 Commits

Author SHA1 Message Date
Seth Hillbrand ad8acd328c Expunge some remaining references to kicad-pcb 2021-07-30 20:27:45 -07:00
Wayne Stambaugh f233f4a0a9 Expunge EDA_FILE_SELECTOR.
EDA_FILE_SELECTOR was just an obfuscation of wxFileSelector().
2021-07-28 14:12:51 -04:00
Wayne Stambaugh 37b200cb3e Pass wxString objects by reference instead of on the stack. 2021-07-27 08:41:27 -04:00
Marek Roszko ea73da8a27 Ensure the demos folder exists before adding the menu item 2021-07-26 18:12:49 -04:00
Marek Roszko 8921eef0be Add a "Open Demos Project" shortcut to the kicad launcher
Small UX improvement for the new user....
2021-07-25 21:58:57 -04:00
Marek Roszko c794a6ce7a Add pdb install option for msvc 2021-07-14 23:42:45 -04:00
Jon Evans ae55db77c5 Allow hiding version from manager title bar with advanced config 2021-07-14 18:24:21 -04:00
Wayne Stambaugh 01515680b3 Code cleaning. 2021-07-14 15:47:32 -04:00
Jeff Young 6810912f09 Refuse to load schematics from the future.
Also fixes a bug where an empty window would get left when loading
a file from the KiCad manager window errored out.

Also fixes a bug where we were getting the wrong exception because
we were rethrowing the type-casted one (rather than just calling
throw).

Fixes https://gitlab.com/kicad/code/kicad/issues/8604
2021-06-30 18:32:07 +01:00
Jeff Young 4aa8318dc2 More error message regularization. 2021-06-27 14:24:02 +01:00
Jeff Young 5fa5a73c6d File open/import progress dialogs.
Fixes https://gitlab.com/kicad/code/kicad/issues/6864

Fixes https://gitlab.com/kicad/code/kicad/issues/2166
2021-06-23 23:55:54 +01:00
Jeff Young 685ee31c35 Workaround a few more OSX printf problems.
Also regularizes the frame title processing.

Also fixes a type where the library name wasn't processed for
variable expansion.

Fixes https://gitlab.com/kicad/code/kicad/issues/7742
2021-06-20 22:48:19 +01:00
jean-pierre charras c35cceca62 fix compil warnings ( "multi-line comment" ) and missing override 2021-06-18 09:38:19 +02:00
Jeff Young 1722bc03b0 Consistent terminology and punctuation. 2021-06-17 00:05:17 +01:00
Wayne Stambaugh fb46cd8bc5 Expunge the use of the word component from Eeschema code.
The only exception to this is the SPICE simulator's use of component
when referring to physical component (R, L, C, etc.) values.
2021-06-14 14:00:21 -04:00
david-beinder da833ad7dd Separate focus from hover state in BITMAP_BUTTON, trigger after mouse down+up
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8556
Adds AcceptDragInAsClick() to maintain support for use in toolbar palettes
2021-06-13 17:00:41 +00:00
luz paz f968fc8719 Fix source comment / documentation typos 2021-06-09 19:32:58 +00:00
Jeff Young b00d01dcc4 Don't infer two projects when we find both .kicad_pro and .pro.
Also makes the terminology around folder/directory consistent in
the error messages and dialogs.

Fixes https://gitlab.com/kicad/code/kicad/issues/8481
2021-06-08 14:52:23 +01:00
Jeff Young 3ff670d2a4 Disable ACTIONS::openPreferences for now.
wxWidgets needs to move the item to the KiCad menu on Mac, and it
can only find it if it has the id wxID_PREFERENCES.
2021-06-07 20:51:45 +01:00
Marek Roszko 33bbf85a3e Use the parent frame GetSettings helper rather than including for Pgm() 2021-06-06 19:05:12 -04:00
Ian McInerney dc27079b71 cleanup tool event and tool action includes 2021-06-06 18:26:26 +01:00
Jeff Young adea5842da Use platform terminology (and heuristics) for Delete.
(Platforms no longer ask for confirmation when using the Trash.)

Fixes https://gitlab.com/kicad/code/kicad/issues/8513
2021-06-05 15:04:11 +01:00
Marek Roszko 7faee5eda5 Stop salt the eart with wxhtml.h 2021-06-03 07:49:49 -04:00
Ian McInerney 3ab69939f9 Remove wx.h from many files 2021-06-03 02:19:20 +01:00
Seth Hillbrand 81d58bcea9 Working python window 2021-06-01 20:18:24 +00:00
Jeff Young c4cabb38d5 More worksheet -> drawing sheet cleanup.
Fixes https://gitlab.com/kicad/code/kicad/issues/8516
2021-05-31 12:26:44 +01:00
Adam Wolf 3100cd3599 Fix Python loading on macOS without wrangle_bundle.
The goal of this work is to let developers run Python things
on macOS on their builds without generating a full
relocatable and redistributable build.

This is a WIP.
2021-05-31 02:09:43 +00:00
jean-pierre charras 81c7fb61f8 Sub-menu "Preferences..." in main menu "Preferences": fix not working accelerator key.
Accelerator keys are disable in our WX_MENUBAR. A common ACTION_MENU is used and
"Preferences..." is now shown in Hotkeys list.
2021-05-29 18:09:49 +02:00
Seth Hillbrand 4bb4606811 Handle files that are kept in prj footprint folder
The project footprint folder gets renamed to the new project name.  We
need to handle non-footprint files that may be stored there by updating
this path manually when copying extra files.

Fixes https://gitlab.com/kicad/code/kicad/issues/8503
2021-05-28 16:24:15 -07:00
Jeff Young e8102d85dc Shut down fileWatcher more aggresively.
While I haven't been able to reproduce the crash, my theory is that
those that do are running into situations where wxWidgets defers
destructing the window.

Fixes https://gitlab.com/kicad/code/kicad/issues/8458
2021-05-20 16:54:24 +01:00
Wayne Stambaugh 412df9dbbf KiCad: don't set minimum window size after sizer fitting.
The current sizing behavior leaves a lot of padding to the right side
of the window so don't set the minimum window size to the best size
calculated by the sizers.  This will allow the user to resize as desired.
2021-05-20 08:29:24 -04:00
Wayne Stambaugh 1bf5642228 KiCad: fix initial window size on windows platform.
Fixes https://gitlab.com/kicad/code/kicad/issues/8333
2021-05-18 10:40:09 +00:00
Wayne Stambaugh 4a60da42d1 KiCad: don't rename page description file on new project from template.
Doing so will break the link in the schematic and/or board file so copy
page description file(s) verbatim to the new project folder.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/6524
2021-05-05 07:00:13 -04:00
jean-pierre charras 56058314be Fix minor Coverity warnings and minor compil warnings.
(uninitialized or shadowed vars)
2021-05-05 08:58:55 +02:00
Wayne Stambaugh d2a7f81b10 Debugging improvements and clean up.
* Remove unused wxLogDebug calls.
* Add add application level character tracing to detect unhandled key
  events.
* Catch unhandled exceptions in KiCad main event loop like single top
  applications.
2021-05-03 18:08:15 -04:00
jean-pierre charras 0427bda768 Remove useless wx/wx.h include, that create sometimes compil warnings on msys.
wx/wx.h includes all wxWidgets .h files, and sometimes creates collision
names in #define between kicad and windows headers
Moreover, blindly including a lot of useless files is compil time consuming
2021-05-01 19:32:15 +02:00
Jeff Young 2e15de97e0 Defensive code for processing fileWatcher event during shutdown.
Fixes https://gitlab.com/kicad/code/kicad/issues/8101
2021-04-22 18:51:14 +01:00
Adam Wolf a06f0ca908 Clean up macOS Python3 paths 2021-04-21 12:50:31 +00:00
Adam Wolf 7357424efc Update macOS to Python 3, wx 3.1, and Phoenix.
This is a work-in-progress.  It could use testing while I continue to fix
the remaining pieces.

There are some changes that will be needed for signing and notarization.

This currently relies on a Python tool I wrote (dyldstyle) to fixup
KiCad.app correctly. I would like any bundle fixing necessary to use a
built KiCad on macOS to live inside KiCad, rather than in
kicad-mac-builder or elsewhere.  While I was experimenting, I found this
worked, however, and I would love to get extra hands testing.

I added a CMake argument, MACOS_EXTRA_BUNDLE_FIX_DIRS, for devs and
packagers who have extra directories they need to add to
fixup_bundle on KiCad.app.

There's an issue about differing behavior when KiCad is opened via
the command line or via Finder/launchd.
2021-04-21 12:50:31 +00:00
Marek Roszko ce3a84f579 Consolidate wx aui dock art color setting 2021-04-19 21:12:02 -04:00
Jon Evans eac2700af6 Launcher: use unscaled bitmaps
This is not really a toolbar so we should not scale here
2021-04-19 17:18:17 -04:00
jean-pierre charras ba3f0d5d07 Fix a wxWidget assert and a minor wxWidgets alert 2021-04-19 15:01:00 +02:00
Ian McInerney 0a0935e0f3 Remove ACTIONS::TranslateLegacyId and TOOL_DISPATCHER::DispatchWxCommand
After commit 9535153f9e there were no more IDs inside the legacy ID
system. Therefore the entire system for dispatching and looking up
the legacy ideas and handling those events can now be removed and
the tool dispatcher simplified (it no longer needs to know about
the ACTIONS class).
2021-03-30 23:20:22 +00:00
Ian McInerney 7bfa8575fa Remove redundant information from import/export menu item labels
Saying "Import/Export" on the labels when the submenu has "Import"
or "Export" in it is redundant.

Note that we can't just update the action text with the new name,
because that is used in the hotkey list and would become too confusing
without the "Import"/"Export" text.
2021-03-27 18:50:35 +00:00
Ian McInerney 41f88dbabc Refactor platform-specific init into two phases
The first phase is for the environment before the OS
apps are created, and the second phase is for after
the OS app is created but before all of our processing.

Fixes https://gitlab.com/kicad/code/kicad/issues/7992
2021-03-23 19:11:08 +00:00
Jeff Young 9f8127afcf Disable click processing on launcher titles.
Fixes https://gitlab.com/kicad/code/kicad/issues/7946

Fixes https://gitlab.com/kicad/code/kicad/issues/7946
2021-03-22 17:21:25 +00:00
jean-pierre charras 3bf5c814e1 Fix missing header on Windows 2021-03-20 19:57:26 +01:00
Jon Evans c04e19f9ac Include optimization: move some things from common.h to point-of-use 2021-03-20 12:09:18 -04:00
Jon Evans 298dda8fcd Don't proceed with opening project if players didn't close
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7974
2021-03-20 09:06:38 -04:00
Ian McInerney 3036683a2c Move platform-specific init tasks into KIPLATFORM 2021-03-19 21:26:07 +00:00
Jeff Young 52ea9bb75f No lines in tree controls on Mac or GTK. 2021-03-13 11:43:07 +00:00
Jon Evans 18037e2f65 Rework bitmap system to load from archived PNGs
Bitmaps are now identified by an enum class instead of by pointers.
Bitmap loading and caching is now handled by a class in common, and
we no longer compile most bitmaps into the binary, so there is no
longer a bitmaps static library.

Instead, bitmaps are archived to a .tar.gz file which is installed
in ${KICAD_DATA}/resources/images.tar.gz

The source PNGs are checked in to Git as the original CPP files were,
so that people can build without the required dependencies to convert
SVGs to PNGs.

Initial support is also added for dark theme icons, although this
is not yet exposed in the GUI.

Stubs are present for multi-resolution image resources, but this is
not fully-baked yet and could use some refinement.
2021-03-11 08:37:35 -05:00
Marek Roszko 3d4ac9af03 Relocate win32 resource files to the central folder for further consolidation 2021-03-09 21:48:14 -05:00
Jeff Young b47453a93b Fix app names in Quit menu items on Mac. 2021-03-09 16:45:33 +00:00
Jon Evans 720147d272 Remove transitive inclusion of bitmaps.h 2021-03-07 16:08:57 -05:00
Marek Roszko 8831c5567c Add win32 version manifest block 2021-03-04 00:34:48 -05:00
Ian McInerney 908de37e7c Don't hardcode the file extensions where possible 2021-03-03 01:13:59 +00:00
Jon Evans 4f4b95456d Fix order of user template search paths
Make sure that documents path overrides the system path
set by KICAD6_TEMPLATE_DIR if that var exists.
2021-02-28 11:02:25 -05:00
Jon Evans a70106a3bd Fix search paths for default project template 2021-02-27 20:30:18 -05:00
Jeff Young 1f109ac6aa Try again to find compromise cross-platform/theme spacing.
Fixes https://gitlab.com/kicad/code/kicad/issues/7728
2021-02-27 11:45:04 +00:00
Roberto Fernandez Bautista e03bca3563 Non-KiCad Project Importers: Fix broken project import
Fixes bug introduced in b4741c97b6
2021-02-26 19:32:44 +00:00
Wayne Stambaugh b4741c97b6 Attempt to fix Coverity issue 316502.
This changes the third party project importer to fail if either the
schematic or board files cannot be copied to the project folder.
2021-02-25 12:24:57 -05:00
Jeff Young cad5198ab7 Worksheet -> (industry standard) Drawing Sheet. 2021-02-22 17:35:46 +00:00
Jeff Young ad46330399 Try and fix GTK font bestSize issue.
Fixes https://gitlab.com/kicad/code/kicad/issues/7631
2021-02-20 19:48:36 +00:00
Jeff Young a1730d51ff Try out nouns in the Kicad Launcher. 2021-02-17 20:12:04 +00:00
Jeff Young 0d2ee266a1 Make sure auimgr panels can handle dark mode.
Fixes https://gitlab.com/kicad/code/kicad/issues/7560
2021-02-16 21:11:36 +00:00
Jeff Young f3449452db Special case kicad manager default frame sizes.
Fixes https://gitlab.com/kicad/code/kicad/issues/7559
2021-02-16 16:24:36 +00:00
Jon Evans 32308c7fef Use middle ellipsization for kicad manager status bar 2021-02-14 16:04:36 -05:00
Jon Evans bd71a6e496 Launcher: pull in cell margins a little on non-Mac 2021-02-14 15:04:42 -05:00
Jeff Young 339864f843 Conditional compilation for launcher icon spacing. 2021-02-14 18:40:28 +00:00
Jeff Young ff61ca5fed Try a different spacing method.... 2021-02-14 16:59:27 +00:00
Jeff Young bbe315bcb8 Add title to project file view and help strings to launcher icons. 2021-02-14 13:28:20 +00:00
Jon Evans 838a70129d Project manager tweaks 2021-02-13 18:58:02 -05:00
Jon Evans 97465e8260 Revert "Don't overwrite project path in status"
This reverts commit 7018b5e6a2.
2021-02-13 18:37:39 -05:00
Jon Evans 7018b5e6a2 Don't overwrite project path in status 2021-02-13 17:21:42 -05:00
Jon Evans 08922e01aa Tweaks to kicad manager layout 2021-02-13 09:53:08 -05:00
Jon Evans e06aa32780 Launcher tweaks 2021-02-13 08:59:33 -05:00
Jon Evans 1bb3135888 Let's try a new layout for kicad manager 2021-02-12 22:39:37 -05:00
Wayne Stambaugh 286a364ad4 KiCad: do not attempt to load non-project files.
Fixes https://gitlab.com/kicad/code/kicad/issues/7456
2021-02-10 15:10:44 -05:00
Marek Roszko 872184fe8b Revert "Bump minimum required CMake version to 3.10"
This reverts commit a475f45753.
2021-02-09 18:46:13 -05:00
Simon Richter a475f45753 Bump minimum required CMake version to 3.10
This allows us to remove even more workarounds
2021-02-08 12:23:08 +00:00
Ian McInerney c93b012627 Fix writing out of dummy files in the project manager
Fixes https://gitlab.com/kicad/code/kicad/issues/7453
2021-02-07 22:41:21 +00:00
Michael Kavanagh 54cd66d778 Icons: make menubar and launcher consistent 2021-02-06 22:51:56 +00:00
Michael Kavanagh 69484c8800 Icons: increase contrast of project icons 2021-02-06 22:51:56 +00:00
Jon Evans 7a55dff566 Archiver: reduce set of archived files for auto-backup
Keep around only source files that are modified by KiCad;
other files can be re-generated.
2021-02-04 17:24:13 -05:00
Jeff Young 1394c1f4d4 Retire disabled buttons in favour of info boxes.
Fixes https://gitlab.com/kicad/code/kicad/issues/7229
2021-02-01 22:56:55 +00:00
Jon Evans 73b8ae18f4 Use text file icon for design rules
I'm not sure we need a custom icon for this as we don't
have an editor action that happens when you double-click
one of these files.  Someone's welcome to revisit this
later, though.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/7314
2021-01-28 21:08:51 -05:00
Marek Roszko e6dd95e83a Create a default user projects folder 2021-01-27 19:12:18 -05:00
Wayne Stambaugh 6a39b81647 Fix the last of broken Doxygen comment specifiers. 2021-01-27 17:39:44 -05:00
jean-pierre charras a28326fb26 Fix stupid code. 2021-01-23 21:17:56 +01:00
jean-pierre charras af5825bd36 kicad: fix incorrect dummy .kicad_pcb file created when creating a new project.
Fixes #7242
https://gitlab.com/kicad/code/kicad/issues/7242
2021-01-23 17:00:30 +01:00
Marek Roszko b1d394258f Fix grammar 2021-01-22 21:25:23 -05:00
Marek Roszko 320ca5a0d0 Prevent KiCad launch on Windows 7 if python 3.8 or newer is bundled
Soon to be a permanent check regardless of python on Windows
2021-01-21 21:58:53 -05:00
Michael Kavanagh d32c12b4b9 Banish new project from template to the menubar
+ remove inappropriate icon from Eeschema ctx menu
2021-01-19 22:57:25 +00:00
Michael Kavanagh dc83cb7a41 Icons: general tweaks and pixel alignment
+ remove some unused icons
2021-01-11 23:31:25 +00:00
Mikolaj Wielgus fc7f1d1d86 Project manager: Restore possibility of opening multiple dirs at once
Fixes https://gitlab.com/kicad/code/kicad/issues/5896
2021-01-10 19:36:59 +00:00
Michael Kavanagh 9546ad88b5 Packaging: more human-friendly names on macOS...
At least it appears that way (just the symlinks are renamed).
2021-01-09 16:23:49 +00:00
jean-pierre charras f5b4bc5bfe Kicad, project_tree_pane.cpp: fix regression, round 2.
(directories visible in project tree were not populated).
2021-01-08 17:40:29 +01:00
jean-pierre charras 2055151b9d Kicad, project_tree_pane.cpp: revert the fix "directories visible in project
tree were not populated" because it creates wxWidgets alerts.
2021-01-08 11:45:43 +01:00
jean-pierre charras 5441da9a47 Kicad, project_tree_pane.cpp: fix some issues:
- regression: directories visible in project tree were not populated.
- issue on Linux, with wxWidgets 3.1.4 trying to open a directory shown in
project tree (right clicking ) did not work.
2021-01-08 11:32:56 +01:00
Jeff Young af2745af26 Make sure we have list of projects when responding to filewatcher.
Fixes https://gitlab.com/kicad/code/kicad/issues/6583
2021-01-07 21:56:03 +00:00
Michael Kavanagh bce1e9cfa5 Icons: rename directory_close to project_close
Since it is only used for the "Close Project" action
2021-01-04 01:44:01 +00:00
Michael Kavanagh 154e19b6e7 Icons: use common prefix for small 16x16 2021-01-02 23:16:33 +00:00
Michael Kavanagh 6d3c1c7716 Icons: remove unused sources/duplicates + rename 2021-01-02 23:16:33 +00:00
Seth Hillbrand a69a4be853 Fix build error with icon names 2021-01-01 13:13:33 -08:00
Seth Hillbrand f06b912cfd Fix a few missing icons 2021-01-01 13:06:22 -08:00
Seth Hillbrand 5a0c3bf4bc Icons updates
- Remove 22px bitmaps
- Move 24px icons to icon_XXX_24 filenames
- Update convert icon thanks to MisterHW

Fixes https://gitlab.com/kicad/code/kicad/issues/6088
2021-01-01 11:00:15 -08:00
Seth Hillbrand 8de9cff4e0 Change environmental variables to human-readable
Versions specific variables that may point to objects that change
through versions, allowing multiple KiCad versions to operate correctly
(even on MSW) on the same machine.
2021-01-01 16:20:35 +00:00
Wayne Stambaugh f6a1d703ec Fix some build warnings in the importer code. 2020-12-30 18:19:43 -05:00
Roberto Fernandez Bautista 3eec5f32ef Non-KiCad Project Importers: Check files/directories exist before deleting/creating them
- Need to check that the path we are calling an "empty" directory doesn't exist before we start
- Need to check that the location where we are storing the resultant imported design isn't the same as the source location. If it is the same, do not make a copy of the files as it will fail.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6838
2020-12-30 18:53:43 +00:00
Roberto Fernandez Bautista 6af4e57853 Non-KiCad Project importers: Make a temporary copy of the files to project folder before importing
Delete thee temporary files after import.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6596
2020-12-30 18:53:43 +00:00
jean-pierre charras e6cbbf3661 Kicad manager: Shows the Pcb frame or the Eeschema frame as soon as possible.
Previously, they were displayed after only reading the board or the schematic
files, that can take a few seconds delay for complex boards.
2020-12-24 17:37:02 +01:00
Seth Hillbrand 61ac9c8d90 Add multiple size icons for programs
In theory, the WM should now choose the closest size icon for its
purpose, making it easier to distinguish in space-constrained settings

Fixes https://gitlab.com/kicad/code/kicad/issues/6798
2020-12-22 15:37:26 -08:00
Seth Hillbrand 54ca087999 Update icon resource sets
Updates the .icns, .ico and .png files used by various distros to show
KiCad and KiCad files.
2020-12-22 15:16:33 -08:00
Jeff Young c73c20d083 Exclude some files from project view.
1) schematic sheets which don't match a project name (ie: aren't a
root sheet)
2) legacy schematic sheets when a current-format sheet is also present
witht the same name

Fixes https://gitlab.com/kicad/code/kicad/issues/6801
2020-12-22 13:52:36 +00:00
Michael Kavanagh 23cd1bb81e Icons: pixel align pagelayout_*
- Standardise light grey background (#F3F3F3)
 - Minor rename
2020-12-21 17:22:43 +00:00
Jeff Young d0cba4b096 Refresh tree when adding new folder.
The fileWatcher works on some platforms, but not on others.

Also modifies it so that it just asks for the directory name rather
than starting with the existing path (which provided unnecessary
flexibility at the expense of ease-of-understanding and ease-of-use).
If you want the directory somewhere else, select where you want it
before doing "New Directory...".

Also updates naming conventions and file order.

Fixes https://gitlab.com/kicad/code/kicad/issues/6592
2020-12-18 15:09:54 +00:00
Marek Roszko af17b6c709 Disable the wxFileSystemWatcher on Windows and network paths
SAMBA sends invalid change event IDs and wxWidgets crashes on rather than ignores the invalid IDs.
This punishes Windows Server users but its not easy to discern SAMBA from it.

Fix #5740
2020-12-15 19:36:12 -05:00
Seth Hillbrand b7875e4d41 Setup file_* icons
Don't use the same "post_*" icon in the treeview.  The badge gives an
action that doesn't apply in the treeview.

Also renames different file blobs to the "file_*" prefix.
2020-12-15 14:48:09 -08:00
Marek Roszko 7565f60a03 Swap wxFileInputStream/wxFileOutputStream for the buffered kind 2020-12-12 18:52:02 -05:00
Marek Roszko d67cf2f9af Replace wxFile usage with wxFFile
Buffered libc wxFFile is better thinking about syscall wxFile going wrong.
2020-12-12 13:16:23 -05:00
Michael Kavanagh cf6f0b9b92 Use trash icon where appropriate 2020-12-11 17:05:11 -08:00
Seth Hillbrand 4bed8bd57a Fix folder/directory icons 2020-12-08 15:30:48 -08:00
Seth Hillbrand 5ee8f2ee0b Icons: Add generic project icon
Differentiates between "New Project", old KiCad format project and new
KiCad format project
2020-12-07 13:17:06 -08:00
Marek Roszko 535dbc1a06 Block off potential errant double activation of tree project items
Additional fix for #6606
2020-12-03 21:06:10 -05:00
Seth Hillbrand 0f9b01ee1d Fix locking scheme for double-clicks
In some cases, the events may be driven in the same thread, which can
lead to a deadlock.  Instead of waiting for the lock, simply refuse to
run if a loading system in in progress.

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

(cherry picked from commit d7a6a2cc71)
2020-12-03 14:39:05 -08:00
Jeff Young d8fa37d5c2 Remove old root-schematic hacks. They don't work anymore anyway.
Fixes https://gitlab.com/kicad/code/kicad/issues/6583
2020-12-02 14:27:43 +00:00
Jeff Young 4a0543c099 Formatting and naming conventions. 2020-12-02 14:27:43 +00:00
Jeff Young fc2bdc49de Once more into the depths of hell... er, I mean fix a focus issue.
So the new steals-focus protection stuff works well when there's a
focused control, but not as well when there's a modal dialog up which
happens not to have a focused control (or worse, a focusable control).

This adds a second mechanism for also checking to see if a modal dialog
is up (something that wxWidgets, true to form, makes very difficult).

Fixes https://gitlab.com/kicad/code/kicad/issues/6520
2020-11-26 16:47:40 +00:00
Jeff Young 9c7c05c161 Mostly formatting cleanup but a few type-casting cleanups too. 2020-11-24 22:16:41 +00:00
Jeff Young e5ddfe13f2 Add recursion guard to project Save As.
This keeps us from copying files that have just been copied when
a project is Saved As inside itself (which is a useful thing to do
when versioning backups or the like).

Fixes https://gitlab.com/kicad/code/kicad/issues/6388
2020-11-22 11:48:02 +00:00
Jeff Young a207bd97bb Naming conventions. 2020-11-17 16:05:49 +00:00
Ian McInerney 3d47eb0d49 Fix localization of the menu strings with accelerator strings
The accelerator strings really shouldn't be part of the translation,
and some translations have cause the accelerator keys to be incorrectly
handled. It is simpler to make it separate and just join them to the
translated string.

Make all accelerator modifiers use lowercased Ctrl instead of CTRL
to be the same as the other modifiers.

Fixes https://gitlab.com/kicad/code/kicad/issues/5992
2020-11-04 01:31:52 +00:00
Jeff Young bddc97df30 LibEdit -> SymbolEditor 2020-10-31 10:28:21 +00:00
Marek Roszko e928b2d8fd Split EDA_UNITS out from common. 2020-10-25 00:02:52 -04:00
Seth Hillbrand 2a43b88115 Standardize PostScript capitalizaiton 2020-10-20 13:09:13 -07:00
Seth Hillbrand 4085757aeb Remove beginning/ending spaces in translations
Adding space padding makes translations more difficult by increasing
string counts
2020-10-20 12:08:04 -07:00
Marek Roszko da96c9959d Undo last commit and fix include. Woops 2020-10-18 12:43:38 -04:00
jean-pierre charras f6b4b66a86 Avoid include wx/wx.h in many files that do not actually use this include.
Including wx.h includes the full set of wxWidgets include files, that is not good,
and can create some conflicts with some Windows headers on msys2.
2020-10-18 18:21:34 +02:00
Marek Roszko a754bf6a48 Launch tools from Idle in the kicad manager.
Launching on a control event can allow that control to steal focus from the new windows as more events may exist intended for the control.

Fix #4479
2020-10-16 23:40:27 -04:00
Marek Roszko a1c75748a0 Remove GetChars(), a wxWidgets 2.9 compatibility hack 2020-10-15 20:53:25 -04:00
Ian McInerney 147d58728f Ensure the renamed file actually exists on disk
Moving a file on Linux can sometimes result in the same path
being returned as the old and new path inside the rename event
because the file watcher doesn't see the new file.

Fixes https://gitlab.com/kicad/code/kicad/issues/5981
2020-10-13 16:05:52 +01:00
Marek Roszko 763da6b3bb Add forward declaration in kicad/kicad_manager_frame.h 2020-10-12 23:29:08 -04:00
Ian McInerney 9641eb792a Fix build error caused by refactor in kicad manager tree 2020-10-13 01:23:04 +01:00
Marek Roszko 9db12be714 Cleanup some includes and enum in kicad 2020-10-12 19:38:40 -04:00
Mark Roszko a8bd0a9b84 Handle Windows manifests ourselves and add dpi awareness option 2020-10-10 19:08:23 +00:00
Marek Roszko acce757df7 Suppress leak reports in kicad.exe as well 2020-10-08 17:08:01 +00:00
Jeff Young 0bc7bbbadb Report silk/edge collisions.
Fixes https://gitlab.com/kicad/code/kicad/issues/5854

Fixes https://gitlab.com/kicad/code/kicad/issues/4892
2020-10-06 14:21:18 +01:00
jean-pierre charras b38cef409b Rename CopyFile() to KiCopyFile() to avoid name colliding with a windows header.
Using CopyFile() that can collide with a windows header create hard to
understand errors, including link errors.

Renaming this function avoids these strange errors.
2020-10-03 10:08:21 +02:00
Roberto Fernandez Bautista 72b904a978 ADDED: CADSTAR Archive project importer 2020-09-27 23:50:20 +00:00
Ian McInerney fc565edb33 Add a palette to the toolbars to display groups of actions
This adds a palette to toolbar items that displays groups
of actions when long-pressed on a button.
2020-09-27 01:00:44 +01:00
Jon Evans 0783669633 CHANGED: Design rules files now use .kicad_dru extension
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5763
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5444
2020-09-24 21:26:23 -04:00
Ian McInerney c40470ed0b Initialize more variables 2020-09-22 12:29:13 +01:00
Ian McInerney c399d489ba Remove project condition from the symbol and footprint editors 2020-09-15 21:18:56 +01:00
qu1ck e5828d5817 Improve exception handling in KIWAY::Player()
And avoid crashing in kicad_manager_control
2020-09-07 11:12:30 -07:00
Michael Kavanagh de03d3d427 Application title bar: app name after filename
Fixes https://gitlab.com/kicad/code/kicad/issues/2096
2020-09-03 06:35:48 -07:00
Jeff Young 34d069ffd8 Bubble cancel up from app to kicad manager when closing.
Fixes https://gitlab.com/kicad/code/kicad/issues/5402
2020-08-31 11:49:29 +01:00
Ian McInerney a0d84e94fd Use move to trash to the project manager instead of immediate delete
CHANGED: Delete in the project manager now moves files to the trash can

Fixes https://gitlab.com/kicad/code/kicad/-/issues/2499
2020-08-28 23:00:43 +00:00
Jon Evans cd54ba7b01 Fix project unloading in LoadProject
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5380
2020-08-26 20:46:20 -04:00
Jon Evans dc7e1783b3 Make sure a project is loaded at all times
For now, much of KiCad depends on Prj() working, so when we
are asked to unload a project, immediately load the null project
so that nothing breaks.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/5374
2020-08-26 18:37:34 -04:00
Jon Evans 3673c23696 Code style 2020-08-23 22:10:05 -04:00
Mark Roszko 89e74140eb Save file / window states for kicad project locally 2020-08-24 02:01:14 +00:00
Seth Hillbrand 1e315bc3fe pcbnew: Add "Select All" Action to pcbnew and fpedit
Fixes https://gitlab.com/kicad/code/kicad/issues/2497
2020-08-20 16:07:10 -07:00
Jeff Young 9e40db9faf Sort footprint position files with rest of project items. 2020-08-20 13:41:50 +01:00
Ian McInerney 4491f24d5e Ripout the old SyncToolbars infrastructure reminants
The tool framework no longer needs to request updates of the UI
state for the controls, wxWidgets will do it for us.
2020-08-16 19:10:26 +00:00
Ian McInerney 45fb030b9b Rename and shorten the names in ACTION_CONDITIONS 2020-08-16 19:10:25 +00:00
Ian McInerney 72a1c71e07 Implement a framework to handle wxUpdateUIEvents for tool actions
This allows for the tool framework to keep track of a universal
set of conditions for the UI state (enabled/checked/shown) for
controls of actions. It removes the need for the main menubar
menus to be CONDITIONAL_MENUs and be rebuilt on each open,
and instead makes the updates of the check and enabling of
items handled in the native wxWidgets way.

This commit switchs the 3d viewer and kicad project manager window
over to this system.
2020-08-16 19:10:25 +00:00
Ian McInerney 0975f3817a Fix project handling in eagle project import and ensure the titlebar is correct
Previously it didn't properly close or create a new project for the
Eagle project.

Also, update the titlebar text whenever the project changes (so it is
cleared properly when a project is unloaded).

Fixes https://gitlab.com/kicad/code/kicad/issues/5152
2020-08-16 12:37:51 +01:00
Marek Roszko c36080a250 Immediate fix to prevent crashing, don't call ClosePlayers twice
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5164
2020-08-12 18:35:18 -04:00
Ian McInerney c458b50fd9 Ensure the environment variables are synchronized between KiCad and Python
Before this, the environment variables inside Python wouldn't reflect
the updates to them made after the interpreter was started in Pcbnew.
This will call into Python and set the variables when they are changed,
since Python can't synchronize itself when running in an embedded
interpreter.

Fixes https://gitlab.com/kicad/code/kicad/issues/5071
2020-08-09 19:56:12 +01:00
Jon Evans 43ab43ec9e Fix a few issues with Close Project
A new empty project needs to be reopened for now
Footprint info cache write only works with a project for now
2020-08-09 11:13:50 -04:00
Jeff Young c992570427 Add Open Python directory to menus.
Fixes https://gitlab.com/kicad/code/kicad/issues/5115
2020-08-09 15:39:51 +01:00
Jon Evans e4c20e0ac9 Fix leftover modification of file history 2020-08-09 10:16:22 -04:00
Ian McInerney 30d42ca95a Save the open projects into the settings before closing the project
Saving in the frame destructor is too late, because all projects
have been closed so the list being saved is empty.
2020-08-08 23:41:48 +01:00
Ian McInerney 226e5205c4 Load the previous project if an empty string is the argument
Previously it would just not open any project at all. This
was a problem for some launchers, which would pass an empty string
when no file is passed by the user.

Fixes https://gitlab.com/kicad/code/kicad/issues/5055
2020-08-08 23:41:48 +01:00
Jon Evans 32a7d00256 Make sure projects are cleaned up nicely when frames close
PROJECT objects will be deleted by SETTINGS_MANAGER::UnloadProject
so we need to make sure that this is called at an early enough point
in the closing process that anything needed by the PROJECT dtor
is still around.

Also fix an issue where the schematic worksheet was depending on
the project existing after the schematic had been reset.
2020-08-08 16:52:57 -04:00
Jon Evans 79e40cf765 Fix a few issues with Close Projects MR
Store list of previously open projects only in kicad.json
Keep all management of open projects in SETTINGS_MANAGER

Also add kicadSettings() for convenience
2020-08-08 16:00:49 -04:00
Fabien Corona bc357dff8a Add "Close project"
Allow the user to close a project from the project manager.
Distinguish the open project from the file history.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/4964
2020-08-08 18:52:14 +00:00
Jon Evans dcc484e114 CHANGED: Library editors are now usable with no project loaded
Fixes https://gitlab.com/kicad/code/kicad/-/issues/3688
2020-08-07 18:02:34 -04:00
Jeff Young dd7d8218f0 Handle multiple-selections for kicad manager context menu.
Fixes https://gitlab.com/kicad/code/kicad/issues/5080
2020-08-06 19:38:06 +01:00
Jeff Young c3f8f57cd5 Remove folder menu items from sub-projects in Kicad manager frame.
Fixes https://gitlab.com/kicad/code/kicad/issues/5080
2020-08-05 23:06:42 +01:00
Marek Roszko 9278660b10 Add support for the windows application restart api 2020-07-28 14:32:39 -04:00
jean-pierre charras 5ef50ab27a Kicad manager: cosmetic fixes: fix incorrect bitmaps in Kicad manager tree file.
Use the right bitmap for .gbr and .gbrjob files.
2020-07-23 14:07:26 +02:00
Jon Evans a107f7ce5b Fix a few issues with legacy project loading
- Prevent crash on project tree for "Empty project" item
- Correctly handle loading of legacy projects in tree view
- Fix an issue where legacy projects would not get saved

Fixes https://gitlab.com/kicad/code/kicad/-/issues/4944
2020-07-20 19:39:59 -04:00
Ian McInerney 8d73be7d30 Delete tool dispatcher in KICAD_MANAGER_FRAME
Not deleting this is a memory leak.
2020-07-20 11:31:34 +01:00
Jeff Young 3fd0a3f842 Update text variables even when they're changed from other binary.
For instance, you might have PCBNew open but change the variable
value through EEschema > Schematic Setup.

Fixes https://gitlab.com/kicad/code/kicad/issues/4918
2020-07-17 21:05:11 +01:00
jean-pierre charras 6296b4e20b Kicad manager: create a minimal .kicad_pro file when creating a project from scratch.
Fixes #4889
https://gitlab.com/kicad/code/kicad/issues/4889
2020-07-16 11:31:39 +02:00
Seth Hillbrand e19a7910f8 Revert "Revert "Set DoubleBuffering to reduce flicker""
This reverts commit c18cab6154.
2020-07-13 20:19:10 -07:00
Jeff Young 9b92b275de Remove vestiages of old open-PCB-for-settings hack.
We used to have to open a PCB_EDIT_FRAME to get the settings for
the footprint editor and footprint viewer.  This necessitated some
special processing when opening a PCB_EDIT_FRAME to actually edit
a board as it might already be open but unloaded.

Since the new settings architecture allows the footprint editor and
footprint viewer to init themselves we no longer need the special-
case code.
2020-07-11 21:19:49 +01:00
Jon Evans 570cc61b3f Give kicad manager frame a tool dispatcher
Without this, tool hotkeys don't work. Also need to make sure
that the log text field doesn't get initial focus.

I am a bit confused about how this was working on other
platforms besides Windows...

Fixes https://gitlab.com/kicad/code/kicad/-/issues/4801
2020-07-11 16:18:54 -04:00
Seth Hillbrand c18cab6154 Revert "Set DoubleBuffering to reduce flicker"
This reverts commit 106259f6e6.

In its place, we set double buffering to only menubars in an attempt to
find a soluton to #4785

Fixes https://gitlab.com/kicad/code/kicad/issues/4863
2020-07-11 09:43:30 -07:00
Jon Evans b1b9cef5fb Full-project automatic backup system
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4763
2020-07-09 13:55:19 +00:00
Ian McInerney f3e44fb029 Fix showing new formats in project tree
* Differentiate between new JSON and old project files
* Show both old and new schematic files in the tree
2020-07-07 23:12:17 +01:00
Jon Evans 6eca886292 Fix some UTF8 issues with project settings
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4808
2020-07-05 12:26:14 -04:00
Jon Evans 860e58432b Add new project files to archiver 2020-07-03 08:31:41 -04:00
Jon Evans 96b91e65ea Use updated extension for file history 2020-07-02 22:32:56 -04:00
Jon Evans 4dbbe1cf68 Project settings fixes from review
- Fix file extension for new project
- Fixes for exceptions on MSW
- Fix some ASAN issues
- Allow SETTINGS_MANAGER to run headless
- Don't flag schematic as modified after schematic setup is closed
- Don't automatically unload projects when LoadProject is called
- Don't unload project if it's the same as the current one
- Make sure to properly init/de-init template field names
2020-07-02 22:08:54 -04:00
Jon Evans b592a4169f Update project template system for new format 2020-07-02 22:08:54 -04:00
Jon Evans 12b4a55ae8 Port Eeschema to new project settings
DRC/ERC error serialization changed to use explicit tokens
Old stored severities and ignored errors are discarded
2020-07-02 22:08:54 -04:00
Jon Evans c0aa6965de Migrate PcbNew project settings to new framework
Various architecture upgrades to support this.
Creating a BOARD now requires a valid PROJECT, which caused
some (mostly transparent) changes to the Python API internals.

ADDED: Project local settings file
CHANGED: Board design settings are no longer stored in PCB file
CHANGED: Net classes are no longer stored in PCB file
CHANGED: Importing board settings now reads boards, not just projects

Fixes https://gitlab.com/kicad/code/kicad/-/issues/2578
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4070
2020-07-02 22:08:54 -04:00
Jon Evans 0e2f9cb1bd Migrate CvPcb project parameters 2020-07-02 22:08:54 -04:00
Jon Evans a4fadfcdf2 Begin moving project file load to new system 2020-07-02 22:08:54 -04:00
Jon Evans a7708fa6dc Add PROJECT_FILE and basic load/unload methods 2020-07-02 22:08:54 -04:00
Ian McInerney fb10406e67 Add right-click context menus for toolbar items 2020-06-26 21:29:03 +00:00
Ian McInerney 52856a8ce4 Move scaled toolbar separator into ACTION_TOOLBAR
* Ensure all separators are scaled separators
* Clean up toolbar creation functions
2020-06-26 21:29:03 +00:00
Ian McInerney 0bfe4130f5 Include the ngspice library in the bundle fixup command
This is a patch that has been carried in the kicad-mac-builder
repository that is being upstreamed into the main codebase.
2020-06-15 21:45:33 +00:00
Jeff Young ad12c42e8b Push grid settings dialogs down into common.
This also gives support for fast grid switching and a user grid
to eeschema.

Fixes https://gitlab.com/kicad/code/kicad/issues/2200
2020-06-14 19:26:37 +01:00
Jeff Young fc44506fe1 Give up on enforcing non-defined-internal-units.
It results in trade-offs in packaging and/or conidtional compilation
which are worse than the disease.
2020-06-13 22:44:16 +01:00
Jeff Young f84406009b Push a couple of layers of indirection out of grid settings. 2020-06-13 11:35:56 +01:00
Ian McInerney 9d0ea66a96 Don't use the accelerator table in the menubars
It seems that the accelerator table causes issues with
keyboard events on MSW.

Fixes https://gitlab.com/kicad/code/kicad/issues/1941
2020-06-06 22:50:35 +00:00
Seth Hillbrand 916d06c1e6 Prevent multiple kiway from loading simultaneously
Each KIWAY_PLAYER has some initialization elements that may take time
before the frame is raised.  If handling is returned to the UI during
that load, we can cause reentrant issues for players.

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

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

(cherry picked from commit 5b47d1a910)
2020-06-04 16:47:49 -07:00
Wayne Stambaugh 616ac50cfb KiCad: add support for missing file format extensions.
Don't rename symbol libraries when performing a project "Save As.."
except for the legacy cache library.  Changing library file names
breaks the symbol library table.  This was the less painful  option
than updating the symbol library table.

Fixes https://gitlab.com/kicad/code/kicad/issues/4605
2020-06-03 16:13:42 -04:00
jean-pierre charras 788e29a630 Kicad, archive project: add new file ext (.kicad_sch and .kicad_sym) to file list to save.
Fixes #4575
https://gitlab.com/kicad/code/kicad/issues/4575
2020-05-29 19:49:28 +02:00
Wayne Stambaugh b624c7090a Deprecate saving legacy schematic and symbol library file formats.
REMOVED: The ability to save schematics in the legacy file format.
2020-05-29 12:43:00 +00:00
Ian McInerney e662e33104 Store the current filename in the history on close 2020-05-17 00:12:49 +01:00
Ian McInerney 0e54128146 Remove old code from KICAD_MANAGER_FRAME OnCloseWindow
The size is saved inside EDA_BASE_FRAME, and is done before
this function is called, so this code had no effect.
2020-05-17 00:12:49 +01:00
Ian McInerney 613c020920 Move the file history into the frames 2020-05-17 00:12:49 +01:00
jean-pierre charras fca3fb0e11 Kicad, unzip archive: allows directory creation in dir dialog.
Fixes #4461
https://gitlab.com/kicad/code/kicad/issues/4461
2020-05-16 18:30:35 +02:00
jean-pierre charras 44ea281210 tree_project_frame: in the wxFileSystemWatcherEvent event avoid adding the project
filename in tree list, because it is always the root item.
(The previous code was not taking into account the tree list root item)

Fixes #4460
https://gitlab.com/kicad/code/kicad/issues/4460
2020-05-16 13:14:41 +02:00
Jeff Young 06dea92bcb Fix issues with Kicad Manager frame and new kicad_sch files.
Fixes https://gitlab.com/kicad/code/kicad/issues/4410
2020-05-12 15:20:17 +01:00
jean-pierre charras ba1a2aceaa kicad manager: fix some issues related to new filenames extensions.
(in new project creation and save project as)

Fixes #4380
https://gitlab.com/kicad/code/kicad/issues/4380
2020-05-09 13:02:16 +02:00
Ian McInerney e4b6487fca Overhaul compiler warnings infrastructure
* Track our warnings separate from normal flags
* Remove all warnings from the SWIG code
* Add more GCC warnings
2020-05-06 01:47:20 +01:00
Wayne Stambaugh 7183e9f97e Make the new schematic and symbol library file formats the default.
This is a very large and potentially disruptive change so this will be an
unusually long and detailed commit message.

The new file formats are now the default in both the schematic and symbol
library editors.  Existing symbol libraries will be saved in their current
format until new features are added to library symbols.  Once this happens,
both the legacy schematic and symbol file formats will be no longer be
savable and existing libraries will have to be converted.  Saving to the
legacy file formats is still available for round robin testing and should
not be used for normal editing.

When loading the legacy schematic file, it is imperative that the schematic
library symbols are rescued and/or remapped to valid library identifiers.
Otherwise, there will be no way to link to the original library symbol and
the user will be required manually set the library identifier.  The cached
symbol will be saved in the schematic file so the last library symbol in
the cache will still be used but there will be no way to update it from the
original library.

The next save after loading a legacy schematic file will be converted to
the s-expression file format.  Schematics with hierarchical sheets will
automatically have all sheet file name extensions changed to .kicad_sym
and saved to the new format as well.

Appending schematics requires that the schematic to append has already been
converted to the new file format.  This is required to ensure that library
symbols are guaranteed to be valid for the appended schematic.

The schematic symbol library symbol link resolution has been moved out of
the SCH_COMPONENT object and move into the SCH_SCREEN object that owns the
symbol.  This was done to ensure that there is a single place where the
library symbol links get resolved rather than the dozen or so different
code paths that previously existed.  It also removes the necessity of the
SCH_COMPONENT object of requiring any knowledge of the symbol library table
and/or the cache library.

When opening an s-expression schematic, the legacy cache library is not
loaded so any library symbols not rescued cannot be loaded.  Broken library
symbol links will have to be manually resolved by adding the cache library
to the symbol library table and changing the links in the schematic symbol.

Now that the library symbols are embedded in the schematic file, the
SCH_SCREEN object maintains the list of library symbols for the schematic
automatically.  No external manipulation of this library cache should ever
occur.

ADDED: S-expression schematic and symbol library file formats.
2020-05-04 12:40:03 +00:00
Ian McInerney 3b67e3d0a4 Rewrite window positioning logic
Now only reposition a window if it is completely on a
disconnected display or if only one corner is on screen
and it is within a region close to the screen border.

CHANGED: Window position on startup should be preserved more
2020-04-18 00:47:38 +01:00
Mikołaj Wielgus 6a8ace55c4 Re-add mistakenly removed empty line in 'kicad.cpp' 2020-04-14 23:41:27 +00:00
Mikołaj Wielgus 59c971e1e1 Confirm only once when multi-deleting files
Also do not open empty popup window.
2020-04-14 23:41:27 +00:00
Jeff Young 122b1ddaae Unwrap an unnecessary layer now that we have new config stuff. 2020-04-13 20:58:12 +01:00
Jeff Young 317e98b344 Simplify user model for editing color themes. 2020-04-08 22:34:56 +01:00
Jeff Young 0248abed6e Enable new s-expr Eeschema files in Kicad Manager window. 2020-04-07 17:29:58 +01:00
jean-pierre charras 9d2712a824 Fix a few Coverity warnings.
It also fix:

Fixes #4082
https://gitlab.com/kicad/code/kicad/issues/4082
2020-03-29 18:42:24 +02:00
jean-pierre charras 69dcee9450 Kicad manager: fix an issue on Windows when killing Kicad.
For some obscure reason, on Windows, when killing Kicad from the Windows
task manager if a editor frame (schematic, library, board editor, fp editor)
is open and has some edition to save, OnCloseWindow is run twice
*at the same time*, creating race conditions between OnCloseWindow() code.

Fixes #4072
https://gitlab.com/kicad/code/kicad/issues/4072
2020-03-25 09:26:47 +01:00
Jeff Young d69ebfae49 Push tool framework base down into TOOL_HOLDER.
This allows us to use it outside of EDA_BASE_FRAMEs (in this case, in
PANEL_PREVIEW_3D.)
2020-03-24 19:00:25 +00:00
jean-pierre charras 8245398a3e Add comments. 2020-03-22 08:16:53 +01:00
jean-pierre charras e0e4ea6223 Kicad: unzip project: fix issues:
- files with no extension were skipped.
- subdirs were ignored.
2020-03-21 14:02:54 +01:00
Wayne Stambaugh 7dc64f08b7 Eeschema: implement s-expression schematic file formatter.
Please note that the symbol cache is not embedded in the schematic file
to allow for round robin testing with the existing file format.  Once
the parser round robin testing is complete, the symbol cache will be
embedded in the schematic file.
2020-03-16 09:05:16 -04:00
Adam Wolf ac20428b82 Add macOS KICAD_BUNDLE_LIBS search path for bundle fixup. 2020-02-26 22:10:00 -06:00
Ian McInerney 879a8f4efb Rework the file history menus to not need references to the file history
Keeping a pointer to the actual file history inside a special
file history menu led to many cases of use after free crashes,
so instead rework the actual file history to add the menu
items.

Fixes https://gitlab.com/kicad/code/kicad/issues/3741
2020-02-25 16:18:10 +00:00
Jon Evans dc75c2b800 Factor out utility to launch a given file or folder 2020-02-20 22:07:17 -05:00
Jon Evans e59a3d981e Implement a new settings framework across all of KiCad
CHANGED: Settings are now stored in versioned sub-directories
ADDED: First-run dialog for migrating settings from a previous version
CHANGED: Settings are now stored as JSON files instead of wxConfig-style INI files
CHANGED: Color settings are now all stored in a separate settings file
CHANGED: The symbol editor and footprint editor now have their own settings files
CHANGED: Color settings are no longer exposed through BOARD object
CHANGED: Page layout editor now uses Eeschema's color scheme

Settings are now managed through a central SETTINGS_MANAGER held by PGM_BASE.
Existing settings will be migrated from the wxConfig format on first run of each application.
Per-application settings are now stored in one class for each application.
2020-02-19 23:44:56 -05:00
Ian McInerney b1240b5b1e Gracefully shutdown tools when frames are closed
If the tools are not gracefully exited, then the stack variables are
never destroyed, so variable lifetime issues can occur.

Fixes https://gitlab.com/kicad/code/kicad/issues/1753
2020-02-05 22:23:24 +00:00
Jeff Young a04fdf64da Improve directory handling for Project Save As.
1) don't change directory names that we don't recognize
2) when we do, make sure the child files get copied to the
changed name.

Fixes https://gitlab.com/kicad/code/kicad/issues/3834
2020-02-03 15:08:01 +00:00
Ian McInerney 06c979dfaa Convert all CMake paths to absolute instead of relative
It is cleaner and safer to handle the include and source paths
as absolute from the source directory instead of relative to every
path.
2020-01-22 23:27:20 +00:00
Jeff Young 836c1ea56e Fix a bunch of un-caught boost::bad_pointer exceptions.
This also removes vector cover types which do nothing except obfuscate
the underlying implementation.

Mainly changes SCH_SHEET_PINS and CONFIG_PARAM_ARRAY (which will soon
be replaced by Jon's new stuff).
2020-01-12 19:55:00 +00:00
Mikołaj Wielgus c3df984c0b Project manager: fix files in nested dir not being added to hierarchy
Fixes #1945 | https://gitlab.com/kicad/code/kicad/issues/1945
2020-01-11 16:03:26 +00:00
Seth Hillbrand 7c28c3838a Comment-only changes
Makes class comments conform to coding standards
2020-01-10 16:43:01 -08:00
Simon Richter 270aaec443 Rewrite FBP files generated with unreleased wxFB
These use a few features that are too new, causing errors when trying to
edit with a released version of wxFormBuilder.
2020-01-07 13:32:33 +00:00
Ian McInerney 25a302758e Fix macos plist version string generation
Generate these resource files similar to how it is done one Linux.

Fixes mac-builder issue https://gitlab.com/kicad/packaging/kicad-mac-builder/issues/275
2019-12-26 12:42:25 +00:00
Wayne Stambaugh 18ff60fbb9 Fix build error on non-macos builds. 2019-12-22 07:38:50 -05:00
Ian McInerney 5ed074b5c5 Add missing override specifier to fix warning 2019-12-22 11:21:54 +00:00
jean-pierre charras ad32c0e5e4 Kicad, tree project: refinement in multiple selection.
When editing files, the editor is called once to open multiple files.
2019-12-06 10:16:08 +01:00
Mikolaj Wielgus 350a991f26 Allow multiple selections in Kicad project manager (starting point) 2019-12-06 09:10:20 +01:00
Seth Hillbrand b5f021ff9f Cleanup: Replace push_back with emplace_back
In cases where we create a new item and immediately push into a
container, the emplace idiom is faster and more efficient.
2019-12-05 13:41:21 -08:00
Ian McInerney 99b9354a51 Add clear recent files action to the menus
ADDED: Menu item to allow the recent file lists in each program to be
cleared

Fixes: lp:1821685
* https://bugs.launchpad.net/kicad/+bug/1821685
2019-11-23 23:35:21 +00:00
M.Scholz dbb9b5f64f Corrects IsDirWritable check
The check for IsDirWritable needs to reference the absolute path to
return correct values.

Fixes: lp:1853421
* https://bugs.launchpad.net/kicad/+bug/1853421
2019-11-21 17:23:44 -08:00
jean-pierre charras 767d7f2009 Fix bug (typo?) in gestfich.cpp.
Minor enhancement in treeproject_item.cpp
2019-11-19 16:11:56 +01:00
Ian McInerney 9114709039 project manager: Clear rename flag in the rename event handling 2019-11-17 01:51:54 +00:00
Ian McInerney c31ac6c154 Clean up code inside the project manager tree 2019-11-17 01:01:12 +00:00
Ian McInerney 7b13eb46d8 After renaming a file, select the new one 2019-11-17 00:52:43 +00:00
Ian McInerney 2fc5e6c79f Fix renaming of files in the project tree
We must add the new node for the new file in the new directory,
not in the original root directory. The file watcher will also
delete the old node, so there is no point in renaming the file.

Fixes: lp:1852357
* https://bugs.launchpad.net/kicad/+bug/1852357
2019-11-17 00:17:08 +00:00
Ian McInerney 64e094f211 Revert changes in the project manager file tree for rename handling
Revert "Be a bit smarter about moving files through a rename."
Revert "Check for file moving directory and refresh entire tree if so."

This reverts commit f8aea249df.
This reverts commit 8ce04d3362.
2019-11-17 00:17:03 +00:00
Jeff Young f8aea249df Be a bit smarter about moving files through a rename.
Don't rely on rebuilding the tree as it collapses all open
directories.  Try and follow the file instead.

Fixes: lp:1852431
* https://bugs.launchpad.net/kicad/+bug/1852431
2019-11-16 00:00:16 +00:00
Ian McInerney 88e55bbf2d Recursively delete directories in the project tree
Ensure we iterate over all the sub directories and files inside of them
when deleting a directory from the project tree.

Fixes: lp:1852357
* https://bugs.launchpad.net/kicad/+bug/1852357
2019-11-15 00:26:52 +00:00
Jeff Young 8ce04d3362 Check for file moving directory and refresh entire tree if so.
Fixes: lp:1852431
* https://bugs.launchpad.net/kicad/+bug/1852431
2019-11-13 18:14:34 +00:00
Jeff Young 04b0feb365 Fix a couple of issues in new Save As command.
Handle symbols as well as strings in the "source" lists of
netlist files.

Handle Protex gerber file extensions.

Check for project_name-whatever pattern for files that we
don't recognize (such as project_name-NPTH-drl_map.ps)
2019-11-11 20:36:48 +00:00
jean-pierre charras 4de6ed6206 Fix issues created by Adds Save As... to the Kicad manger.
Mainly replacing std::string by wxString to manage filenames.
On Windows, a sdt::string cannot manage a filename, unless using
in many places TO_UTF8 and FROM_UTF8.
So the best way is to use a wxString for filenames and error messages.
2019-11-10 09:37:39 +01:00
Jeff Young b5904b0401 Installment one of project Save As... feature.
ADD: Adds Save As... to the File menu for the project window.

Fixes: lp:594051
* https://bugs.launchpad.net/kicad/+bug/594051
2019-11-09 20:22:44 +00:00
Jeff Young 114ea1f406 Cleanup. 2019-11-09 20:22:44 +00:00
Jeff Young 10c25a2290 Update frame type enum to match current class names. 2019-09-06 23:38:20 +01:00
Seth Hillbrand c0b4e10f87 Fix undef subdir macro in tree_project 2019-09-05 09:58:03 -07:00
Seth Hillbrand e7c07501c5 Minor compile warning cleanup 2019-09-05 09:47:52 -07:00
Jeff Young 2274895acf Add print preflight so the menu item is only shown when we can print.
Fixes: lp:1836473
* https://bugs.launchpad.net/kicad/+bug/1836473
2019-08-29 23:56:16 +01:00
Jeff Young 360a52399a Add printing to RMB project items.
Fixes: lp:1836473
* https://bugs.launchpad.net/kicad/+bug/1836473
2019-08-28 17:32:08 +01:00
Jeff Young a25368cc6b Improve spelling.
The groundwork here is thanks to kunda1.

Fixes: lp:1831510
* https://bugs.launchpad.net/kicad/+bug/1831510
2019-08-20 19:14:05 +01:00
jean-pierre charras 551eb56da0 Fix a minor I18n issue. 2019-08-18 18:38:42 +02:00
Jeff Young 3cdf88f2c6 CERN copyrights for work packages. 2019-08-14 09:35:15 +01:00
Ian McInerney 8493daf9ff Unify menu item creation for closing a window
* Push a function into CONDITIONAL_MENU that adds the item
* Modify the tooltip for close and exit items to have the
  program name

Fixes: lp:1835454
* https://bugs.launchpad.net/kicad/+bug/1835454
2019-08-14 09:35:15 +01:00
Ian McInerney d170243d61 Fix some memory leaks
Some elements of modules and boards were not deleted, so memory
was being leaked on some library loads and single-instance
pcbnew usage.
2019-08-12 15:03:25 -04:00
Wayne Stambaugh c7fc54b348 KiCad: fix new project from template bug.
Do no rename symbol library files to the new project name.  Only rename
the cache library.  This prevents breaking symbol library links in the
schematic due to the project symbol library table pointing to the wrong
library file name.

Fixes lp:1837667

https://bugs.launchpad.net/kicad/+bug/1837667
2019-08-07 15:37:46 -04:00
Jeff Young cc82e59003 Push the Quit/Close menu logic down into common. 2019-08-02 14:32:49 -06:00
jean-pierre charras 9e90cb9572 Kicad manager: fix incorrect handling of disabled state of tools in launcher toolbar 2019-07-24 18:04:04 +02:00
Seth Hillbrand 3514473a5a Project Templates: Allow multiple line titles
This fixes two display issues in the project template selector.  The
first captured HTML tags in the template title display and the second
prevented more than one line for showing (at least on GTK) in the
preview.  This prevented disambiguation between the various templates.

(cherry picked from commit 24b032ce5b)
2019-07-23 16:15:04 -07:00
jean-pierre charras 1402087562 Kicad manager: cosmetic fix: use small (26x26) icons in tool menu and big (48x48) icons in main frame. 2019-07-17 19:59:42 +02:00
Jeff Young 243a8b6843 Fix open in browser on Mac, and use correct terminology.
(Mac uses "Reveal in Finder").

Fixes: lp:1836837
* https://bugs.launchpad.net/kicad/+bug/1836837
2019-07-17 11:57:41 +01:00
Jeff Young adf06791eb Add tooltips for Kicad Manager launch bar.
Fixes: lp:1835105
* https://bugs.launchpad.net/kicad/+bug/1835105
2019-07-02 22:26:34 +01:00
Jeff Young f088d4d762 Add env-var setting to CommonSettingsChanged().
Fixes: lp:1804925
* https://bugs.launchpad.net/kicad/+bug/1804925
2019-06-25 11:34:28 +01:00
Seth Hillbrand 98124e68c7 Update exit strategy to match UI guidelines
In singletop mode, all frames show the "Quit" option in the file menu
and will quit on Ctrl-Q.  When launched from the main KiCad interface,
sub-programs show the "Close" option instead and will close with Ctrl-W.
In this mode, Ctrl-Q will instruct the main program to exit.

Fixes: lp:1779938
* https://bugs.launchpad.net/kicad/+bug/1779938
2019-06-24 21:46:42 -07:00
Wayne Stambaugh 57a60a32f5 KiCad: fix project tree open in system path bug.
Don't pass relative paths to the system file manager.  The current working
directory may not be the current project path which may end up opening the
system file manager in an unexpected folder.

Fallback to the user's document folder when a valid project path is not
found.
2019-06-20 15:18:43 -04:00
Jeff Young 7dd247f1dc Make better use of TOOL_EVENT parameters. 2019-06-18 20:24:15 +01:00
jean-pierre charras aba58e3e48 Kicad manager fix a not very well working left window size of the tree project files:
This size should be the last size saved when closing the manager.
However it was frequently clamped to a smaller size by the aui manager that set a "best" size, not the asked size.
2019-06-18 18:23:12 +02:00
Seth Hillbrand 21030fdfb2 Allow opening selected directory in the file system
Fixes: lp:1833052
* https://bugs.launchpad.net/kicad/+bug/1833052
2019-06-17 06:26:37 -07:00
Jeff Young e6d5110ccf Implement I18N for ACTIONs.
It's a bit of a hack because they're statically initialized and
so we can't make use of the _() macro.  We do still want it in the
code, however, because the string harvesting is based off of it.

Fixes: lp:1833000
* https://bugs.launchpad.net/kicad/+bug/1833000
2019-06-17 10:45:23 +01:00
Jeff Young b2ee2a4d88 Add checking to languages menu.
This also required having KICAD_MANAGER_CONTROL handle UpdateMenu
since there's no seletion tool for the Kicad Manager frame.
2019-06-16 20:26:43 +01:00
jean-pierre charras 66d2060942 Partial fix for missing language selection menu.
The fix is partial because in the list of languages the menuitem corresponding to the selected language is not checked.
2019-06-16 20:35:57 +02:00
Jeff Young 5610261dce Immediate-action hotkeys (and context menu actions) for eeschema. 2019-06-15 20:43:51 +01:00
Jeff Young b429dbfb88 Fix bugs with ACTIONs not being "honest" singletons.
Delete the copy ctor and assignment operator to start with, but
even then the separate apps each have their own statically allocated
copy of the common actions.  So we need to update all of them, which
also means having the kicad manager frame's set of actions on hand).

This changelist also adds a Clear Hotkey Assignment function since
the hotkeys set is now likely to be sparse with respect to the
actions.
2019-06-14 16:54:46 +01:00
Jeff Young 36f09cb29b Allow Kicad Manager frame to particapate in Preferences architecture. 2019-06-12 13:44:16 +01:00
Seppe Stas 455ee4c08c Set KiCad version in MacOS apps
Uses CMake's configure_file function [1] to automaticaly set the
CFBundleShortVersionString [2] value in every app's Info.plist file.

Also updates the CFBundleLongVersionString and CFBundleVersion with the
extended KiCad Version

[1]: https://cmake.org/cmake/help/latest/command/configure_file.html
[2]: https://developer.apple.com/documentation/bundleresources/information_property_list/cfbundleshortversionstring
2019-06-12 04:40:03 -07:00
jean-pierre charras 0359ffb6c7 * Fix a link issue issues on Windows, probably related toircular gal<->common dependency.
The fix used in commit 1e4abac57 to build kicad binary does not work for pcb_calculator.
So I used a ugly but basic trick to force linking some undefined functions found in gal lib.
This issue could be msys2 specific.
2019-06-11 16:20:28 +02:00
John Beard 1e4abac579 Fix multiple compilation issues on Linux
* Circular gal<->common dependency bites again. Add 'common'
  again to the 'kicad' target's link libraries. libgal.a depends
  on SHAPE_POLY_SET in common, but common depends on gal. This is
  not a real fix, but it unsticks Linux compilations. Fixing the
  circular dep is an existing bug: https://bugs.launchpad.net/kicad/+bug/1832229

* Missing LEGACY_HK_NAME for ACT_EndTuning: this was probably accidentally
  allowed on some other platform due to different wxString constructors.
  On Linux/GCC, it breaks.

* Unused include from /kicad in export_vrml.cpp. This is not findable
  on Linux, as pcbnew does not include the right dirs for this to be
  found. But it's not used, so just remove it.
2019-06-11 13:58:38 +01:00
Jeff Young b0e8443383 Sync-ing of menu has been done in CONDITIONAL_MENU for some time now. 2019-06-10 23:46:01 +01:00