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, ...)
Fixes issue where TestSegmentHit falsely skips segments that are
slightly off 45°. Improves speed of function by exiting on non-hits
more quickly. Simplifies function and removes magic numbers.
This is so that tools checking for a selected item won't think
the menu has been cancelled if the selection was in a submenu.
Fixes: lp:1758372
* https://bugs.launchpad.net/kicad/+bug/1758372
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.
Clearing bClError flag in NumericEvaluator::parseOk() made the
expression look valid, even if the flag has been set for a previous
token. Now it is cleared before an expression is parsed and verified
after parser finishes.
Fixes: lp:1756995
* https://bugs.launchpad.net/kicad/+bug/1756995
For some DRC checks, the location of the marker is not the location
of the first item in the resulting DRC_ITEM, so centering the screen
on PointA of the DRC_ITEM can be confusing.
DIALOG_SHIM stores the dialog position, so every time it is shown, it is
displayed in the same location. This caused problems on multidisplay
setups, as dialogs could show up off the screen if the original display
has been detached in the meantime, effectively making them inaccesible
to the user.
Fixes: lp:1756623
* https://bugs.launchpad.net/kicad/+bug/1756623
- changed EAGLE_UNIT enum names from EAGLE_* to EU_*
- renamed ToNanoMeters() to ConvertToNm() and added a comment
- added ToMils() and ToNanoMeters() method
It's too expensive to fetch the timestamps when the github
server is busy. See Dick Hollenbeck's comments at the top of
github_plugin.cpp for more info.
Also adds some safety to the other caching algorithms after
seeing github_plugin's wild-west usage of the kicad_plugin.
Fixes: lp:1753143
* https://bugs.launchpad.net/kicad/+bug/1753143
Normal SetValue() call would temporarily change the displayed
value, but as soon as the text widget receives focus again, the original
expression (not evaluated) is restored.
To avoid this, the original expression is cleared in the associated
NumericEvaluator object.
Since we are going to inspect every item for these calls, we don't
need to use the RTREE search, which is expensive with high item count.
This results in ~50% improvement in layer switching time in GerbView
when working with a set of large Gerber files.
If ',' is used as decimal separator by the current locale a '.' is also accepted.
Also add support for units "mi", "th" and "in" as described in the documentation of pcbnew.
Fixes: lp:1751315
* https://bugs.launchpad.net/kicad/+bug/1751315
Too many external applications fail to touch the parent directory.
Also removes FP_CACHE_ITEM lastMod times and dirty flags as we've
always loaded libraries atomically anyway.
Claws back some of the performance lost by being more efficient
with cache management for sequential calls to Enumerate and then
Load.
Fixes: lp:1750936
* https://bugs.launchpad.net/kicad/+bug/1750936
Add a library selector to the save dialog. Initialize it to the
footprint's library. This way a straigh-up save will do what's
expected.
However, the user can still select the active library (or any
other library) if they really did want to move the footprint.
Fixes: lp:1750918
* https://bugs.launchpad.net/kicad/+bug/1750918
Also adds indicators in layers palette for feedback.
Also generates sized images for all indicators instead of using
scaled bitmaps (which didn't look great).
Also fixes a completely unrelated typo in a UI string.
Includes some dialog changes to go with the menu update.
Includes promoting the Pcbnew graphics mode back to main menu.
Includes renaming Graphics modes to Toolsets.
This should fix a bunch of bugs with run-time generated sizes
that can grow larger than their minimums in other configurations.
Also fixes a related bug in the WX_HTML_REPORT_PANEL where the
min size was set in the wrong place.
Fixes: lp:1692442
* https://bugs.launchpad.net/kicad/+bug/1692442
Move sketch mode stuff from Display Settings to View menu.
Move Icons in Menus from View menu to General Preferences.
Move Icon Scaling from Display Settings to General Preferences.
Regroup some items in both dialogs for better comprehension.
Also fixes:
- forcing the annotation scope to "full schematic" when run
as a prerequisite to Generate Netlist.
- a long-standing bug where displaying extra items in a dialog
would mess up the height of the HTML_REPORT_PANEL (becasue
we were setting the html window's height rather than its
parent flexgrid.
- initializing the annotation radio buttons to safe values
(full schematic and keep existing)
Fixes: lp:1750062
* https://bugs.launchpad.net/kicad/+bug/1750062
All calls to {save,apply}ViewControls() have been replaced with a new
method: setActiveState(). The advantage is that setActiveState() always
saves view controls settings to the tool that set them. As long
as setActiveState() is called every time there is a tool context
switch, the changes are kept up-to-date.
Fixes: lp:1748613
* https://bugs.launchpad.net/kicad/+bug/1748613
Fixes a bunch of errors:
- libedit and libbrowser would zoom to bounding box but centre on canvas
- libedit, libbrowser and gerbview didn’t take the scroll bars into account
- pcbnew didn’t take scroll bars into account or apply the 10% margin
- appending a board file would re-centre, but not re-zoom
Fixes: lp:1504302
* https://bugs.launchpad.net/kicad/+bug/1504302
It affected just started tools that did not have cursor settings
stored, so could not be reverted after the context menu is gone.
Fixes: lp:1748613
* https://bugs.launchpad.net/kicad/+bug/1748613
Smartens the cache freshness checking, and adds checksums of
constituent-directory last-mod-dates to the footprint info
list.
Also inserts the dataPtrs into the list at the same time as
the text to keep wxWidgets from measuring the width of the
text twice (yes, really). And converts the list to default-
column widths in case the wxWidgets patch is present to
greatly speed list creation (by not measuring all that text).
On my machine drops the first-load time from 4s to 2.5s and
the subsequent-load times from 2.5s to < 1s. With the
wxWidgets patch subsequent-loads become near-instantaneous.
Many had already been fixed but weren't working on Mac because
of the DIALOG_SHIM hack (now fixed). Others hadn't been updated
yet. Also includes some cleanup for elipses in buttons and
layout.
Fixes: lp:1748506
* https://bugs.launchpad.net/kicad/+bug/1748506
Apparently calling wxDC::DrawEllipse() with parameters resulting in a
circle with radius equal to 0 lead to printing problems.
Fixes: lp:1746210
* https://bugs.launchpad.net/kicad/+bug/1746210
Launching right click context menu overrides the cursor position, so all
actions executed by the tools will be performed in the right click
position. It created an issue, as the overridden cursor settings were
saved into wrong context if there was another tool activated in the
meantime.
Current implementation saves cursor settings for all tools and restores
them once the right click context menu disappears.
Fixes: lp:1745981
* https://bugs.launchpad.net/kicad/+bug/1745981
Fixes: lp:1746507
* https://bugs.launchpad.net/kicad/+bug/1746507