It can be useful to have similar class messages grouped together so that
error messages in a larger report don't get lost among the
warning/info/action messages.
This patch allows sorting of messages for dialogs that benefit from
organization. Default behavior of reporter messages remains
unchanged by this patch.
Fixes: lp:1772090
* https://bugs.launchpad.net/kicad/+bug/1772090
1) Commit in-progress edits before closing preferences.
2) Handle default fields in Symbol Fields Editor.
3) Save state of checkboxes in Symbol Fields Editor.
The original algorithm picked the value from the last component having
non empty value for a given field, but the processing order was
dependent on the layout of the components in the memory. It means that
for each component, the field values could have been taken from any
unit, randomly.
The patch improves the algorithm, trying to get all values from the unit
with the lowest number and resorts to other units only when there are
field values left empty.
Unifies the different sections of hotkeys so that we are not storing two
[eeschema] or [pcbnew] sections in two different files.
Previous hotkey definitions are loaded at start if they exist but are
overwritten by the new format, if it exists. Changes to hotkeys save
only in the combined format.
Hotkey editor for each application only shows the hotkeys relevant to
that application.
Fixes: lp:1741757
* https://bugs.launchpad.net/kicad/+bug/1741757
Fixes: lp:1668799
* https://bugs.launchpad.net/kicad/+bug/1668799
It was always replaced with space in a graphic text, but it should happens
only in non quoted texts
Now graphic texts containing ' ' or '~' or '"' are always quoted
(work fine with 4.0 version)
Fixes: lp:1771105
https://bugs.launchpad.net/kicad/+bug/1771105
Also fixes a bug where unannotated components would get references
of the form R-1 (because their reference number was -1).
Fixes: lp:1768814
* https://bugs.launchpad.net/kicad/+bug/1768814
Path keeping stack copes well with paths pointing outside the project
directory (e.g. "../path"). The so far used wxFileName::GetDirCount() and
wxFileName::RemoveLastDir() remove too many directories, as ".." is also
counted as a directory.
Fixes: lp:1769746
* https://bugs.launchpad.net/kicad/+bug/1769746
It happens only with option "Reset, but keep order of multi-unit parts, because the algo tried
to propagate the new reference to parts having the same old reference,
without testing if this old reference was duplicated.
Fixes: lp:1769250
https://bugs.launchpad.net/kicad/+bug/1769250
Both "Leave Sheet" and "Library Browser" menu entries were mapped to the
'L' key. Mapped the "Library Browser" entry to the 'B' key.
Fix "Show hidden pins" menu entry capitalization.
Map "Show Hidden Pins" to 'P' key and "Full Window Crosshair" to 'W' key.
Fixes lp:1768671
https://bugs.launchpad.net/kicad/+bug/1768671
This patch prevents fields with long text values from unreasonable
dialog resizing. It is basically commit f4eb63f8 applied to a
corresponding field editor dialog in the Symbol Editor.
Values generated by NETLIST_EXPORTER_PSPICE::GetSpiceFieldDefVal()
and the actual value that was stored in a netlist differed when a
component has multiple units.
Due to that, the Spice model editor dialog incorrectly recognized
"alternate node sequence" value as the default one and cleared it
when the dialog was closed.
Also changes Save Library and Save Library As to work off the
visible selection if there is one.
Also implements enablement for Save All Libraries.
Fixes: lp:1764081
* https://bugs.launchpad.net/kicad/+bug/1764081
This is particularly important when bulk adding (by director, etc.)
as otherwise the user might end up having to click OK to many
many error dialogs.
Fixes: lp:1764057
* https://bugs.launchpad.net/kicad/+bug/1764057
Code fixing Spice device names (prefixing reference with a character
corresponding to the assigned device model type) that was duplicated in
a few places has been moved to a function (NETLIST_EXPORTER_PSPICE::GetSpiceDevice()).
With uninitialized COMPONENT_TREE::m_menuActive there were cases when
application logic erroneously decided to fetch the current library name
from the right click menu selection, even though there was no menu
opened, so an empty string was returned. Empty library name is
equivalent to no library loaded, therefore the save button appeared
disabled.
Fixes: lp:1765937
* https://bugs.launchpad.net/kicad/+bug/1765937
When a relative sheet path was not in the project path or a subfolder
within the project path, the schematic path would be empty. Set the
base path to the project path when the schematic path is no within
the project path hierarchy.
When LIB_ALIAS is renamed, it validates the new name. In case the name
typed in the field edit dialog is invalid, there was a discrepancy
between the name used further in the code and the actual alias name.
Fixes: lp:1765375
* https://bugs.launchpad.net/kicad/+bug/1765375
The main purpose of the patch is to load libngspice from macOS bundle.
There are also some additional paths that could make Windows developers
easier.
Fixes: lp:1630675
* https://bugs.launchpad.net/kicad/+bug/1630675
The messages on sheet duplication are changed to reflect the action
perceived by the user when accepting/rejecting the change.
Annotation is also reset for duplicating sheets where maintaining
existing annotation would conflict with existing sheets.
Also removes parallel implementation in favour of using the
normal one (with a new wxGauge-backed PROGRESS_REPORTER).
Fixes: lp:1764196
* https://bugs.launchpad.net/kicad/+bug/1764196
Because the cache is broken, the rescue library was never created after missing library or change in lib.
This was due to the fact the symbol name inside the cache is broken, since commit a5844c9,
because all illegal chars in symbol name are replaced by '_'.
Unfortunately, in library cache, the ':' (illegal in usual libraries) is used to build the cached symbol name.
so in lib cache, symbol names were broken, making this lib useless.
this fix allows the ':' char in symbol name in lib.
Fixes: lp:1764166
https://bugs.launchpad.net/kicad/+bug/1764166
The hotkey fix committed in 53b1ec81 broke non-us keyboards. Change the
hotkey help hotkey from '?' to Ctrl+F1 to prevent the hotkey list dialog
from being shown when placing a bus wire junction in Eeschema and when
changing the track posture in Pcbnew. This is still broken in the GAL
framework.
When updating toolbars make sure the events are coming from the
toolbar in question (and not the menus which share the same ID).
Fixes: lp:1763563
* https://bugs.launchpad.net/kicad/+bug/1763563
Symbol/footprint library and entry have the same set of forbidden
characters with a single exception, space character. To accommodate for
this difference, LIB_ID validation and fix methods have been extended to
specify the LIB_ID type that is checked (schematic/board).
LIB_ID::HasIllegalChars() and LIB_ID::FixIllegalChars() had two different
sets of characters treated as invalid in LIB_IDs. The set has been
factored out to another function to avoid duplication.
Nets assigned by power pins are weak, meaning they are valid
as long as there is nothing else attached to such pins. This patch
checks whether there are other wires or pins attached to a power pin
before placing a global net label.
Fixes: lp:1755191
* https://bugs.launchpad.net/kicad/+bug/1755191
Each named power input pin in Eagle creates an implicit connection to a
net with the name of the pin (e.g. GND, VCC). It is also done for the
units (gates in Eagle nomenclature) that have not been instantiated in
the schematics.
To emulate this behaviour in KiCad:
- Placed components are checked for power input pins, so they will have
global net labels attached to create the described implicit connections.
- As the components are placed, the remaining units of the symbol are
checked for power inputs to see if they need to be instantiated together
with global net labels.
Fixes: lp:1755191
* https://bugs.launchpad.net/kicad/+bug/1755191
Field Editor dialog calls LIB_EDIT::SetFields() that deletes the old
LIB_FIELD objects and creates new ones. If any of the old LIB_FIELD
objects had been selected before invoking the dialog, then one of the
update UI event handlers will crash trying to access the object.
This is due to the fact the same ID was used for menuitems in menubar,
and tools in toobars.
Especially, some items were not compatible due to different attributes.
Windows does not accept the same ID for 2 items inside the same frame.
It creates issues (items not shown, Asserts, ...)
Renaming a subsheet but keeping the filename should not present a
warning to the user. The was triggered due to comparing a
fully-qualified filename to a relative filename.
Fixes: lp:1744475
* https://bugs.launchpad.net/kicad/+bug/1744475
Eagle support net labels that are naming wires not directly connected to
the labels. In KiCad it is not possible, therefore such detached net
labels need to be moved, so they touch the corresponding wire.
The initial algorithm did not take into account that a moved net label
might be placed on a wire crossing, effectively shorting two nets. This
commit improves the placement algorithm by avoiding the wire crossing
points when placing a label.
Fixes: lp:1748502
* https://bugs.launchpad.net/kicad/+bug/1748502
While we already cache the loaded footprint files, parsing said files
into the list is also time-intensive. Since the FOOTPRINT_LIST is
already hash-stamped against the current timestamps of the files that
make up the list, sharing a single copy of the list is quite
straight-forward.