In case the documentation and help files from kicad-doc are not
installed or are located in a folder where KiCad cannot find them, an
info dialog is shown offering the user the option to access the online
help system instead.
Fixes https://gitlab.com/kicad/code/kicad/issues/2142
On Linux, the documentation and help files are potentially installed to
a non-standard location (i.e., outside of /usr/share/doc/kicad/). This
can be the case when, e.g., multiple versions of KiCad are installed in
parallel. Making KICAD_DOCS available at run-time is the only viable
solution to allow the applications to find the help files in this case.
Fixes https://gitlab.com/kicad/code/kicad/issues/7874
Rely on existing code to initialise the list of paths in which the KiCad
documentation might be located, thereby making SearchHelpFileFullPath
platform-agnostic and easier to read.
On MSW, CaptureMouse() was sometimes called event if the GAL panel has
captured the mouse (that was not accepted by wxMSW), although HasCapture()
returns false.
(Perhaps some race condition between events)
The fix add a flag to avoid calling twice CaptureMouse() after only one
wxEVT_MOUSE_CAPTURE_LOST event was received.
Fixes#8239https://gitlab.com/kicad/code/kicad/issues/8239
Keeping them in base_units means that we can't introduce
any dependence on these functions to anything that needs to
compile without one of the unit defines (EESCHEMA, PCBNEW, etc)
This function is used in UNIT_BINDER, that does not accept floating notation
with exponent, that can be generated by parseSetResult().
As a result: values < 0.0001 cannot be entered in a UNIT_BINDER.
Introduce a new advanced config variable `KICAD_LIBRARY_DATA` which can
be used to move templates, symbols, footprints, and 3dmodels out of
`KICAD_DATA`. If not defined, everything is kept as before.
To facilitate this, PATHS::GetStockEDALibraryPath() is added. This
allows to differentiate code paths looking for EDA library data vs. code
paths looking for plugins, demos, and the like.
Thanks to Aimylios for the hints and suggestions with regards to the
stock EDA library data path handling on Windows and MacOS.
VIEW::GetBoundary() returns the entire view area, not the visible area.
Surprisingly, we had no API for this, so I added one.
Also, changed the dragger behavior to toggle between optimizing just the
modified area and optimizing the visible area, i.e. we will now never
optimize off-screen portions of the dragged track.
Use the connecting straight tracks even if not exactly parallel - allow
an error margin configurable in ADVANCED_CFG (default 1 degree). Also
be less strict about end point matching and use the width of the track
as the criteria to determine suitability.
Finally, delete any short lengths of track at the end of the operation
and amend the arc end points to keep connectivity.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7967
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
Before, it was possible for the canvas to steal the
focus if the cursor was only moved over it and not
clicked. Now, the canvas will only take the focus if
the frame is active.
Fixes https://gitlab.com/kicad/code/kicad/issues/7233
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
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).
We don't have a migration handler that can resolve conflicts
and tell the difference between hotkey changes that KiCad made
that we want users to adapt to, and hotkey changes made by the
user.
So, the least-bad option for 6.0 is to just not migrate old
hotkey config files.
See https://gitlab.com/kicad/code/kicad/-/issues/7816
This is hidden behind an advanced configuration setting and is primarily
useful for developers trying to troubleshoot the netlist payload sent
from the board editor to the schematic editor.
Fixes https://gitlab.com/kicad/code/kicad/issues/8051
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.
Before, the layers were always ellipsized if the name was >30
characters, even if the widget was wide enough to display
the full name. Now they are ellipsized when needed (e.g. if
the widget is shrunk small enough).
Fixes https://gitlab.com/kicad/code/kicad/issues/1919
The text areas aren't always redrawn when the window is activated
or deactivated, so we need to force a refresh of the text to ensure
it is the correct font color.
This allows for color changes and scaling of the arrow
when the display needs it (e.g. HiDPI displays).
Also make the arrow and text respond to if the window is
active to mimic native controls.
Fixes https://gitlab.com/kicad/code/kicad/issues/6042
When the window is not active, the status bar uses disabled text,
so the message panel sticks out because it is then using a different
text color. This is most noticable in dark mode.
Action plugin authors can specify alternative icon path for dark theme.
If it's not specified then standard icon will be used for both light and
dark themes. If neither icon is specified then the default puzzle piece
icon is used.
Fixes#7984
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
Use the KICAD_DATA build-time variable to determine the default stock
library search path on Linux instead of relying on DEFAULT_INSTALL_PATH
in combination with hardcoded folder names. The search logic for Windows
and macOS is refactored but remains unchanged.
It is not always useful to distinguish between the cases when KiCad is
run from the build or the installation directory. E.g., the libraries
are generally not available in the same path as the code. Make the
evaluation of KICAD_RUN_FROM_BUILD_DIR conditional to accomodate these
scenarios.
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