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.
The zeroth index is reserved especially for the <no net> tag, so we need
to keep the current net at 1 or greater to keep it connected.
Fixes: lp:1758488
* https://bugs.launchpad.net/kicad/+bug/1758488
- vias were always left selected, include vias in tracks filter - as in legacy
- make text filtering work
- cleanup drawings filtering code
- hide checkbox "Include items on invisible layers" because it does not work in GAL
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.
Dispatches a TA_MODEL_CHANGE event when the design rules dialog is
closed, the intention being to cause the router tool to re-sync its
design rule information
Fixes: lp:1462929
* https://bugs.launchpad.net/kicad/+bug/1462929
Frame, dialog and config file couldn't agree on whether to use
internal units or not.
Frame now stores internal units, and they're now mapped on the
way in/out of the config file. Dialog was already assuming they
were stored in internal units (though they were previuosly not).
Fixes: lp:1751435
* https://bugs.launchpad.net/kicad/+bug/1751435
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.
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
Footprint properties dialogs: add test for negative net clearance, similar to the Pad properties dialog test.
Add also a info message in dialogs, to avoid mistakes when setting the local clearances.
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
Make refilling zones during DRC optional to prevent the board from being
changed by changes in the polygon filling. Default to off to prevent
changes by default.
Fixes lp:1721547
https://bugs.launchpad.net/kicad/+bug/1721547
* Cleanup .fbp file, and remove fixed sizes in a few widgets.
* use wxID_CANCEL in close button ID, to allow closing the dialog by the ESC key
Fixes: lp:1748626
https://bugs.launchpad.net/kicad/+bug/1748626
* Specctra exported polygons are now closed (as required)
* export custom shape is provided in code, but not activated, because i have no way to text it
* fix Specctra export dialog (replace OK and Cancel buttons by only one Close button)
This commit also adds a no-selection-mode, which allows the user
to specify what gets update (through the various match modes).
The no-selection-mode is accessed via the Edit menu, although
it could also be applied to the context menu.
Fixes: lp:1466857
* https://bugs.launchpad.net/kicad/+bug/1466857
Rename GetPolyPoint() to BuildPolyPointsList(), because GetPolyPoint() looks like an accessor, but it is not an accessor.
(Using it as accessor can creates a *very long calculation time* for very basic access to polygon vertices)
Fixes: lp:1745050
https://bugs.launchpad.net/kicad/+bug/1745050
This fixes the layer comboboxes, the copper zones properties
dialog, and the differental-pair icon in the htoolbar.
Fixes: lp:1741049
* https://bugs.launchpad.net/kicad/+bug/1741049
Gal mode: graphic cross-air cursor moved on items when clicking on & DRC error, like in legacy mode.
Make popup menu shown when right clicking on a DRC error item working.
The 3D viewer panel had a default size that was causing sizing issue
with the footprint properties dialog. Set the default size to -1;-1
and set the proportion setting to 1 when adding the panel to the sizer
which allows the panel to file in the correct size.
Fixed some minor control spacing issues in the footprint properties
dialog properties tab.
Please note that is only a partial fix for this issue. There is still
too much vertical space which is partially due to the use of wxSpinCtrl
instead of wxDoubleSpinCtrl.
Fixes lp:1742701
https://bugs.launchpad.net/kicad/+bug/1742701
This is meant as a stopgap for 5.0, with plans to add proper scaled
icons in the 6.0 cycle. A function KiScaledBitmap() is added, which
works like KiBitmap() except it scales the bitmap according to the
calling window's font size. Controls have been added to all the main
applications to let the user select scaling manually (these were omitted
from smaller apps that didn't already have a place to put them).
In addition, in eeschema only, the pixel height of the system font is
shown in the options dialog for diagnostics. This is only for collecting
feedback before 5.0 release from users with different displays and will
be removed.
Also, remove a wxPanel border as it makes device-independent sizing
nearly impossible. For some reason wxPanel::GetClientSize() is returning
garbage here and breaks centering text without fudge factors. I think it
still looks good without the border, maybe better.
- Add helper methods for DPI-independent sizes
- Make splitter sashes visible on macOS
- Remove SetSizeInChars() - wx has a built-in way that I missed
- DIALOG_CHOOSE_COMPONENT: DPI-indep splitter sizes
- DIALOG_RESCUE_EACH: DPI-indep default size and sensible HTML window
size
- COMPONENT_TREE: DPI-indep sizing
- DIALOG_FP_LIB_TABLE, DIALOG_SYMBOL_LIB_TABLE
Passing an empty path to the 3D model select dialog results in the file
select control displaying the root path which requires the user to drill
down to get to the 3D models. Use the KISYS3DMOD path as the default
and fall back to the project path as required for the initial file
select control path.
Clean up some coding policy violations.
Fixes lp:1737094
https://bugs.launchpad.net/kicad/+bug/1737094
Improve dialog layout and fix UI policy issues with all of the dialog
boxes in the Gerbview and Pcbnew code paths.
Updated the use of component to footprint where appropriate.
Replace all instances of "component" and "part" with "symbol" when
referring to schematic and library symbols.
Replace all instances of "component" with "footprint" when referring to
board and library footprints.
Minor dialog layout fixes to some of the dialogs impacted by the UI
string changes.
This patch enables math expression evaluation for most of the text input
controls in pcbnew.
NEW: pcbnew text input controls are able to evaluate simple
mathematical expressions, including distance units (e.g. 5.0+(2*1.2mm)).
- renamed connectivity.[h|cpp] to connectivity_data [.h|.cpp] so that the file name matches the main class name.
- GetNetItems() now returns a vector instead of a list
The GTK+ file dialog is case sensitive however it does support regular
expressions. Most of the file dialog wildcards are lower case so only
files with the lower case extensions will show up in the file dialog.
This code adds a method to convert file extensions of any case to the
appropriate (sch -> [sS][cC][hH]) regular expression on GTK+ builds so
all file extension case combinations will show up in the file dialog.
A note to developers: make sure to add a file extension when setting
when setting the default file argument. If you do don't set an
extension, the GTK+ file dialog will happily append the regular
expression as the file extension which is surely not what you want.
There are still a few known places (mostly gerbview) where there are
some complex wildcard code that has not been converted.
Fixes lp:1720542
https://bugs.launchpad.net/kicad/+bug/1720542
Added 180 degrees to list of selection angles and entry of angles
from -180 to 180 in Footprint Text Properties dialog.
Fixes lp:613616
https://bugs.launchpad.net/kicad/+bug/613616
Added an option to the exporter dialog allowing the user to choose
either the absolute or the auxiliary origin. Also, the ORIGIN field in
the exported file can be set to contain the information about the origin
point or set to (0, 0) for compatibility with other CAD tools.
- Also makes the project and file import functions filetype dependent.
- The change from IO_MGR::KICAD to IO_MGR::KICAD_SEXP removes a conflict from a compile definition for KICAD when compiling kicad/import_project.cpp
This fixes potential DRC false positive bugs that occur when inner layers
are removed from the board but the actual objects on contained on those
layers remain in the board.
Since Pcbnew does not handle odd number layers, this is not a perfect fix.
When the user chooses the front or back layer only options from the layer
setup dialog, objects on the copper layers will not be removed. This will
not cause the false positive issue described above.
Get rid of dialog OK and cancel button event handlers and use the proper
TranferData(To/From)Window for handling control data.
Add PCB_LAYER_COLLECTOR for collecting board objects by layer. Factor out
redundant [] operators into base PCB_COLLECTOR object.
Fixes lp:893950
https://bugs.launchpad.net/kicad/+bug/893950
- pad names are stored as wxString instead of a char[4] & integer union
- removed pad name to string conversion functions
- fixed pad & pin properties dialog restrictions regarding the name
length
Fix the alignment of the unit static text control for uVia diameter and
drill size to match the rest of the units static text controls on the
global design rules tab.
Loading a design with micro vias enabled did check the box for enabling
micro vias in pcbnew. The value input fields for diameter and drill
size were not enabled.
This patch moves the functionality into an new function and calls that
from the onclick event of the checkbox and the init function of the
dialog.
The file filter wild card was defined incorrectly causing the file picker
to not display *.stp and *.step file extensions. Change the wildcard per
wxFileDialog documentation.
Prevent the file extension from being forced to .stp even when the user
defined a different extension in the file picker.
Override TransferDataFromWindow to test for file existence and warn user
only once if a file overwrite can occur.
Minor STEP export dialog string and layout improvements.
Make kicad2step honor user's file extension rather than always setting it
to .stp.
Fixes lp:1709636
https://bugs.launchpad.net/kicad/+bug/1709636
This was due to a missing initialization of the dummy board color settings (used to draw the footprint in the 3D view).
Fixes: lp:1708712
https://bugs.launchpad.net/kicad/+bug/1708712
- support for background color setting
- removed several global config settings (such as g_Drc_On)
- wrapped most of global config settings in PCB_GENERAL_SETTINGS class
- reorganized PCB general options dialog to clearly mark which options concern only the legacy canvas
- new GAL feature for legacy users: double-click (or E) to change track width available as an option.
Fixes: lp:1530543
* https://bugs.launchpad.net/kicad/+bug/1530543
Fixes: lp:1707145
* https://bugs.launchpad.net/kicad/+bug/1707145
Fix the Specttra, VRML, and IDF export dialogs to prompt the user when they
are about to overwrite and existing file and/or folders.
Fixes lp:1706235
https://bugs.launchpad.net/kicad/+bug/1706235
This commit was too broad and not cognizant of the purpose of the class
UTF8.
Add MAYBE_VERIFY_UTF8() macro, which can trap non-UTF8 encoded strings in
debug builds.
Use that macro conditionally in class UTF8 to trap non-UTF8 encoded strings
being put into UTF8 instances.