Sheet file names can have ':', '\', and '/' characters depending on the
platform so don't exclude them. Warn the user when any platform specific
paths are used about the platform capability issues rather than outright
prevent them from being used which prevents absolute paths from being used
even when they are desired by the user.
Fix broken validator behavior when excluded characters are not white space
characters only.
The only subtle difference is that Duplicate() does not modify the
clipboard contents so we need to keep a local variable in which to
store the result of a Copy()
This makes it easier to find all of the dialog code, has less files to
compile, and makes it easier to see the redundant code that could be
refactored.
Use justification instead of orientation relative to the anchor point when
describing text direction and alignment. This seems to be the preferred
method by most users so hopefully this will eliminate some confusion.
Fix a bug in the s-expression schematic parser that failed to take into
account how graphical text alignment is defined for graphic text objects
compared to label text objects.
Fixes https://gitlab.com/kicad/code/kicad/issues/6489
Don't assume all identical references should have the same value.
Filter by checking that only symbol units having the same reference
also have the same library identifier before updating the value and
footprint fields.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8313
- Wait for end of simulation before return from "C" locale to current locale
(to avoid data files created by ngspice using curr locale instead of "C" locale)
- Do not allow changing signal list to plot during simulation calculation
(avoid crashes)
ngspice updated their function signatures, requiring us to test. They
also don't provide an indicator that the signature is changed, so we
need to test based on the existence of a new version define.
Fixes https://gitlab.com/kicad/code/kicad/issues/8358
* 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.
ADDED Paste Special... action in pcbnew
CHANGED Additional options for Paste Special... in eeschema, including
"Assign unique reference designators to pasted instance"
Duplicates are reannotated on paste in the same way in pcbnew and
eeschema such that when copying and pasting the same block in the
pcb and schematic, the reference designators will match.
Save sheet and symbol instance information to the clipboard on copy
Load sheet and symbol instance information from the clipboard on paste
and renumber page numbers after loading.
Correctly handle pasting in a multiple hierarchy by ensuring symbol and
sheet instances are updated for all instances of the destination sheet.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8207
Avoid code duplication by moving all common code to a new function
SCH_SEXPR_PLUGIN::saveInstances
Also fixes a bug that was resulting in footprint and value information
not being saved for subsheets that were root sheets in a different
project.
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
The default art provider was a gradient tab. This does not match the
system elsewhere and is particularly bad for dark themes.
The simple art provide matches the background colors correctly.
Although the tab background is still white, this is quite a bit better
than before.
Fixes https://gitlab.com/kicad/code/kicad/issues/8280
REMOVED: Update schematic option from geographical annotation dialog due
to potential issues with incomplete and/or broken updates. Use "Update
Schematic from PCB" tool to update reference designation changes.
Forcing the footprint reference designator changes back to the schematic
without checking any other board changes in the schematic could leave the
schematic in a undefined state. The update schematic from board tool is
the correct method to sync any changes from the board.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8042
Given a symbol U12A, some parts of the code were assuming the prefix was
'U' while others were assuming 'U12'. Further complication arose when
there were '?' in the library version.
Fixes https://gitlab.com/kicad/code/kicad/issues/8223
When activate the new symbol placement, the mouse cursor is outside the canvas.
Therefore a autopan was started and not so easy to stop.
Now the mouse cursor (and the graphic cursor) are moved to a better location inside the canvas.
Fixes#8156https://gitlab.com/kicad/code/kicad/issues/8156
1) Don't reset value when name changes
2) Don't fire events when initialising dialog
3) Make sure when symbol is saved back to schematic that only current
instance has its ref updated, but that all instances have their other
fields updated.
4) When saving symbol back to board always use the fields from the
editor and not the (alias-specific) ones from the library.
Fixes https://gitlab.com/kicad/code/kicad/issues/8159
We've been doing this for some time to wires that are attached to
the moving block (and therefore have the other end anchored). However
we also need to apply it when dragging a single end of a wire.
Fixes https://gitlab.com/kicad/code/kicad/issues/7807
This change is a bit more invasive than the description above would
suggest. UUIDs have been added to all schematics. For now, it's only
useful to the root schematic so that the UUID in the project file does
not change every time the project file is save. In the future, it may
be useful to store and check the schematic UUIDs against the one's saved
in the project file.
Fixes https://gitlab.com/kicad/code/kicad/issues/7763
The native cursor must be set on the GAL canvas wx object,
not its frame (otherwise on GTK the cursor is only set
when we get a request for it from the WM and not immediately).
Fixes https://gitlab.com/kicad/code/kicad/issues/6421
This is under the supposition that we can't set the column widths
on some Mac instances because the host controls haven't yet been
created. This is primarily conjecture based on looking at things
that have the *possibility* of going wrong. Why this only happens
in some installs is beyond me.
Fixes https://gitlab.com/kicad/code/kicad/issues/5479
If a field name is already in use, try to rename the new field name
(adding the suffix "_1" or "_2" or ... )
This is especially critical when a non mandatory field has the same name as
a mandatory field (was crashing before)
Fixes#8081https://gitlab.com/kicad/code/kicad/issues/8081
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).
The new s-expression format embeds the library within the file
so there should be no connectivity issues (unless they were present
in the original design).
This fixes a potential issue with EAGLE imported schematics.
The previous assumption was that a part definition would always hold
the information about the symbol. However some designs have symbol
instances that refer to a different symbol definition than that
specified in the part.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7808
The ACTION_MENU constructor now takes the tool as an argument,
so the call to SetTool() immediately following it can be removed
and the tool just passed into the constructor.
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.
Always add a label at bus terminals to ensure connectivity. The original
design might already have a bus terminal with a given location.
If the original design does not have a label, just make it very small
to keep connectivity but make the design look visually similar to
the original.
SHIFT, CTRL, ALT modifier keys were handled in 2 different codes, one for
the selection tool and another to modify the mouse cursor shape, with 2
different configs.
Now the modifiers are managed from only one function.
Pcbnew: group also SHIFT, CTRL, ALT modifier keys management to a specific function.
Fixes#8021https://gitlab.com/kicad/code/kicad/issues/8021
For some reason, the footprint UUID was being prefixed to the sheet path
which caused the symbol look up by sheet path to fail. An option was
added to not do this when the geographical back annotation to the schematic
is performed.
We kept having various issues of the pointer list going stale. This
will prevent all permutations of that.
Also while I was in there I fixed the double-move thing (see bug
number).
Fixes https://gitlab.com/kicad/code/kicad/issues/7910
Prevents creating unnecessary project files when importing
Non KiCad schematics.
Also clarified that empty.kicad_wks is required for all importers
(not just EAGLE).
Create a new project when running eeschema standalone and importing
a non-KiCad Project.
If we have the project manager open, then we instead use the existing
project and load everything there.
The dialog can now be closed even if it is not on a simulation type tab
which is an improvement but it still doesn't flow very well. Maybe a
drop down list control to select the desired simulation type would make
for a better user experience.
1) Accept <enter> as OK if the multiline textbox isn't shown.
2) Focus and select all in first control if multiline textbox isn't shown.
3) Make title be title caps ("Edit Sheet name Field" looked dorky).
Fixes https://gitlab.com/kicad/code/kicad/issues/7940