100 Commits

Author SHA1 Message Date
Damjan Prerad 1aa2d1494e DRC Rule Editor: add courtyard clearance bitmap 2026-03-19 17:04:02 +01:00
Damjan Prerad 700df8720d DRC Rule Editor: Fix soldermask 'silver' typo to 'sliver' in DRC Rule Editor 2026-03-05 14:30:48 +01:00
Seth Hillbrand 314429373c pcbnew: Update zone manager
Update zone manager to improve usability. Filter zones based on layers,
provide move to top/move to bottom actions, global arrow key navigation,
zoom preservation across zone switches, right-click zoom-to-fit on the
preview canvas, and pixel-aligned icons for top/bottom move buttons.
2026-03-01 22:07:19 -08:00
Damjan Prerad c753d6cd34 DRC Rule Editor: Add skew field to matched length diff pair constr.
The matched length diff pair panel had skew data in the constraint class
but no UI field to display or edit it. Added a dedicated overlay panel
with min/opt/max length plus max skew fields, a new bitmap showing a
diff pair with length arrows and skew indicator.
2026-03-01 12:14:16 +01:00
Seth Hillbrand 930dc9933c Update bitmaps 2026-02-24 10:28:11 -08:00
Damjan Prerad ea06a64cdd DRC Rule Editor: Remove duplicate hole-to-hole clearance constraint
Remove HOLE_TO_HOLE_CLEARANCE from the rule editor as it generates the same
DRC rule as HOLE_TO_HOLE_DISTANCE.
2026-02-24 17:26:37 +01:00
Damjan Prerad 7cd08db76b DRC Rule Editor: Consolidate uVia constraints into Via Style panel
Merge Minimum uVia Hole and Minimum uVia Diameter constraints
into the existing Via Style panel. Remove unused optimum/preferred
diameter and hole size fields.

Add a via type dropdown (Any/Through/Micro/Blind/Buried) used to
generate the appropriate A.Via_Type condition clause in the DRC.
Strip the via type condition on rule load to prevent duplication
on save cycles.
2026-02-24 15:46:49 +01:00
Damjan Prerad e46f56f120 DRC Rule Editor: Rename 'Minimum through hole' to 'Minimum drill size' and update constraint bitmaps
Update constraint SVG source files to use the standard KiCad color
palette, reposition textboxes, and add missing eda_text.h include
in toolbars_pcb_editor.cpp
2026-02-22 23:45:18 +01:00
Damjan Prerad 0d924b5bdd Remove redundant DRC rule editor panels and rename silk clearance bitmap
Remove MINIMUM_TRACK_WIDTH, BASIC_CLEARANCE, BOARD_OUTLINE_CLEARANCE,
and MINIMUM_ITEM_CLEARANCE panels from the DRC rule editor. These were
redundant with ROUTING_WIDTH, MINIMUM_CLEARANCE, COPPER_TO_EDGE_CLEARANCE,
and SILK_TO_SILK_CLEARANCE respectively. Rename the minimum_item_clearance
bitmap to silk_to_silk_clearance and assign it to the silk clearance panel.
Revert matcher claim changes for HOLE_SIZE and MINIMUM_VIA_DIAMETER.
2026-02-20 20:00:47 +01:00
Seth Hillbrand 8da6e447cd Remove orphaned constraint bitmap enum values
Remove 15 BITMAPS enum values that have no registered image data
in bitmap_info.cpp and no remaining code references. These were
placeholders for constraint types that either never got SVG artwork
or used different naming than the generated bitmaps.

Removed: constraint_net_antenna, constraint_short_circuit,
constraint_unrouted, constraint_allow_fillet_outside_zone_outline,
constraint_silk_to_silk_clearance, constraint_minimum_acute_angle,
constraint_matched_length_all_traces_in_group,
constraint_absolute_length, constraint_parallel_limit,
constraint_daisy_chain_stub, constraint_daisy_chain_stub_2,
constraint_corner_style, constraint_smd_corner,
constraint_smd_entry, constraint_smd_to_plane_plus
2026-02-19 07:59:39 -08:00
Seth Hillbrand 7bfd1ecf80 Update themed svgs 2026-02-15 14:01:18 -08:00
Seth Hillbrand 7f1c286312 Add CSV file type icon to project tree
CSV files now display with a dedicated icon in the project tree
instead of the generic unknown file icon. The icon shows a file
shape with a grid pattern representing tabular data.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/21250
2026-01-28 18:30:31 -08:00
jean-pierre charras d966622050 Fix compil issues on MINGW/msys2 (missing include and a struct redefinition) 2026-01-24 09:22:48 +01:00
Alex Shvartzkop 744b3c3c49 Improve BITMAP_INFO memory layout. 2026-01-24 07:25:46 +03:00
Seth Hillbrand a3a12399f2 Add graphical editor for custom design rules 2026-01-12 21:42:45 -08:00
Alex Shvartzkop 3e255a2d48 More improvements in toolbar icon handling.
Also makes WX_AUI_TOOLBAR_ART more in-line with wx implementation.
2026-01-07 15:31:40 +05:00
Alex Shvartzkop c4556d6595 Use newer SetImages API for tree icons instead of wxImageList. 2026-01-01 20:15:44 +03:00
Seth Hillbrand 4a74153315 Updating barcode support
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4393
2025-09-26 11:35:36 -07:00
John Beard e016dc52fd Pcbnew: Add concept of a 'point'
This is a zero-dimensional object that can be used for snapping
and documentation of useful, but non-physical features on a
board or footprint. They do not correspond to any physical
output in exports or plots.

Points do have a "size", but this is a graphical property only
and determines how large they are drawn on the board.

They also have a layer, which allows them to be selected and
made visible according to layer filters.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/4691
2025-09-01 23:44:21 +08:00
Seth Hillbrand 26f0c03e61 ADDED: support for 45 degree crosshairs
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6047
2025-08-23 06:20:00 -07:00
Seth Hillbrand 065748213e Update lasso icon 2025-08-06 16:07:43 -07:00
aris-kimi 0cf866d4fb Inline static bool Fp/3Dmode members to remember panel layout
Layout is remembered for Schematic/Symbol Editors and Footprint Chooser frames until KiCad restarts

Also Added a new button toggle to show/hide the description panel with some new images too


Fixes: https://gitlab.com/kicad/code/kicad/-/issues/17610
2025-05-20 16:16:01 -07:00
JamesJCode aac9731852 Refactor PCB calcs to common library, and add coupled stripline
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16863
2025-04-25 23:27:52 +01:00
jean-pierre charras b5a913e582 Fix a non-existing bitmap issue.
the bitmap BITMAPS::calculator, although in bitmaps_list.h, does not exists.
A suitable bitmap can be BITMAPS::icon_pcbcalculator_24.
So it is now used in ACTIONS::showCalculatorTool()
2025-04-19 16:52:33 +02:00
Seth Hillbrand 56ca054c0d Add new table icon
Replace a couple uses of the old spreadsheet
2025-02-01 09:53:12 -06:00
Mark Roszko 50e2a12e17 Fix palette icon scaling on Windows, also extend KiBitmapBundle because we use bundles wrong
wxBitmapBundle assumes the smallest bitmap added is the intended "original" size for a particular use case.
And generally that is probably true. However, we re-use icons in some places where we intend for them to start at 16
or start at 24. This is problematic when GetPreferredBitmapSizeFor is called for calculations because it'll return the
16*scale number instead of 24*scale number. So let's just allow passing in a min height restriction to KiBitmapBundle
for when we reuse bitmaps.
2025-01-31 10:37:00 -05:00
Seth Hillbrand c436207659 Update new bitmaps
Forgot to commit the bitmap_info previously
Updated the jobset to be usable for new and open forms
Added remaining icon references
2025-01-29 09:33:31 -06:00
Seth Hillbrand 683be91b60 Adding new icons 2025-01-29 05:42:57 -06:00
Seth Hillbrand 0b2d4d4879 Revise Copyright statement to align with TLF
Recommendation is to avoid using the year nomenclature as this
information is already encoded in the git repo.  Avoids needing to
repeatly update.

Also updates AUTHORS.txt from current repo with contributor names
2025-01-01 14:12:04 -08:00
IkomaSo f5765bac7f Added a button to open output directory in plot dialog
Shows a bitmap button next to the output location string, allowing the user to quickly view the generated file location

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17659
2024-10-27 23:33:24 +00:00
jean-pierre charras 4a0f111fd6 Eeschema: add bitmap to tool Increment Annotations From... 2024-09-30 11:00:43 +02:00
jean-pierre charras e2282a4af8 Minor cosmetic enhancement: add icon to Revert and Generate Legacy BOM tools 2024-09-27 13:34:20 +02:00
jean-pierre charras 51d615d30d Minor cosmetic enhancement: add icon to "Create Outsets from Selection" tool 2024-09-26 20:13:43 +02:00
Eric 1506beecbc Implement ODB++ export
ADDED: Add support in Pcbnew for exporting ODB++ files under Fabrication
       Outputs, base on ODB++Design Format Specification (Release v8.1
       Update 3 February 2021).

Note: There is still a lot of work to do if we will make the feature as
      complete as the ODB++ spec.  However, the current functionality's
      completeness is already sufficient to cover general production
      scenarios. I have compared the output results with Gerber files by
      DFM tool and the accuracy at the graphic level should be able to
      cover most usage scenarios.  Additionally, I am very grateful to
      the great open-source project Horizon EDA for giving me a lot of
      inspiration in terms of ideas.

The feature can be enabled by adding "EnableODB=1" to the kicad_advanced
configuration file.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/2019
2024-09-14 15:34:51 +00:00
James J 7ce00e511b Multi-netclass support 2024-07-26 20:49:29 +00:00
jean-pierre charras b20a32f2fd bitmap_info.xxx: add comments to try to avoid issues like 8b1e971f
No actual code change
2024-06-08 20:18:11 +02:00
John Beard fa7e842c8c Rework item distribution
This splits the tool into two separate tools: by center and
by even gaps. Previously, this was automatically decided, based on
if the items could have any gaps between them. This was unintuitive
as it would appear to arrange by centre point sometimes but not others.
When items aren't all the same width, the results can then be very
different, based only on the starting positions.

The new behaviour is to have a dedicated tool for each, which echos
how graphical programs like Inkscape manage this.

The by-gaps method is then extended to work for overlapping items
(when items overlap, the overlaps are made equal). The logic is
centralised in kimath/geometry, and some QA is added. This should
make it easier to extend to eeschema, for example.

This also (attempts to) address some rounding issues which could
cause minor, but compounding, errors to build up along the list
of items.

Also, fix bugs in the collection filtering - previously items
like markers were filtered out only after the selection size
was used to compute the gaps between items.
2024-05-05 03:35:09 +08:00
Marek Roszko 83ef5fd7d6 Move PGM_BASE to kicommon 2024-03-20 23:29:42 -04:00
ecorm 16de0a666c Horizontal/vertical zoom for Simulator plots
ADDED: Horizontal/vertical zoom for simulator plots, via mouse wheel,
toolbar buttons, menu commands, and hotkeys.

ADDED: Simulator preferences panel, populated with mouse wheel
and trackpad settings that control pan and zoom of simulator plots.

ADDED: Zoom In/Out Horizontally/Vertically commands that can be bound
to hotkeys.

CHANGED: Simulator plot scroll wheel gestures are no longer hard-coded
and can now be configured via the new Simulator preferences panel.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16597

Other unreported bugs that were fixed:

- Fixed wierd, jumpy simulator plot view limiting behavior.

- Fixed Zoom In Center and Zoom Out Center commands not preserving
  the simulator plot center point.

- Fixed simulator plot nudging when exported as PNGs.

- Fixed rectangular selection zoom being able to exceed simulator plot
  view limits.

Notes:

- Provided new SIM_PREFERENCES struct to be used for future
  simulator preferences set via the simulator preferences dialog.

- Bundled pre-existing EESCHEMA_SETTINGS::SIMULATOR settings into
  EESCHEMA_SETTINGS::SIMULATOR::VIEW.

- Replaced mpWindow::EnableMouseWheelPan with more general
  SetMouseWheelActions.

- Refactored and tidied up wxMathPlot's mpWindow code involved with
  fitting, zooming, and panning.

- Consolidated long lists of duplicated member variable initializers to
  a new mpWindow private delegated constructor.

- Provided provisional Zoom In/Out Horizontally/Vertically toolbar
  icons that need improvement by a graphics designer.

- Provided gitignore entries for the Qt Creator IDE
2024-03-10 12:43:18 +00:00
Seth Hillbrand 0775d1364a Add bezier icon
Fixes https://gitlab.com/kicad/code/kicad/issues/16830
2024-02-14 02:01:01 +01:00
Seth Hillbrand f303996f9c Add new icons for tools
Align elements to grid
Cleanup graphics
Cleanup tracks/vias
Drag

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16206

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16205
2024-02-09 15:55:57 -08:00
Seth Hillbrand cabbab9a5f Move pcbnew drag to move specific icon 2024-02-09 15:55:57 -08:00
Seth Hillbrand 92ed389ad2 Add cir file icon to treeview
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15777
2024-01-22 15:24:00 -08:00
Seth Hillbrand 75c6b0ab28 Added IPC2581 support
IPC2581 is a modern production file exchange system.  It provides
single-file data output for an entire board including BOM and netlist
information.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/1954
2023-11-26 15:30:58 -08:00
Jon Evans eb5b3db063 Add bitmap bundle support to BITMAP_SCALE
Change a bunch of buttons and toolbars to use it

Fixes https://gitlab.com/kicad/code/kicad/-/issues/14119
2023-10-22 14:02:06 -04:00
Seth Hillbrand d99641be40 ADDED: Git integration support
Adds support for project-based git integration, branch support, commit,
revert and updates

Fixes https://gitlab.com/kicad/code/kicad/issues/10441
2023-10-20 12:51:47 +00:00
Alex Shvartzkop be1008cbd8 ADDED: Heal Shapes; Fix discontinuities in gfx import and Cleanup dialog. 2023-10-17 10:29:43 +03:00
Marek Roszko 63ba3b8ea7 Remove BITMAP_OPAQUE just like the TODO said :D 2023-10-16 20:16:30 -04:00
Marek Roszko ba83e84b91 Move SaveCanvasImageToFile to EDA_DRAW_FRAME rather than leaking things to bitmaps 2023-10-16 18:33:11 -04:00
John Beard 311f041421 ADDED: Polygon boolean operations in PCB editor
This allows common operations like merging a pin courtyard
into the body courtyard in the fooprint editor, taking a
"bite" out of a polygon and so on,

For now, this only supports polygons made of straight lines.

There are some wierd cases when the operations result in nothing
(e.g. wen a big polygon is substracted from a smaller one that
it contains entirely). I have tried to do something senisble in
these cases, but there may be more optimal ways to handle it.

Relates-To: https://gitlab.com/kicad/code/kicad/-/issues/13025
2023-10-01 00:10:10 +01:00