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
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
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
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.
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)
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
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
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
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
Using CopyFile() that can collide with a windows header create hard to
understand errors, including link errors.
Renaming this function avoids these strange errors.
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
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.
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
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
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
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.
Store list of previously open projects only in kicad.json
Keep all management of open projects in SETTINGS_MANAGER
Also add kicadSettings() for convenience
- 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
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.
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
- 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
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
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