Jeff Young
7f3ed1479e
Back out fromOtherCommand handling.
...
It's only needed in PlaceModule() and creates problems here. Also
adds a comment regarding the encapsulation leak that makes all this
hard to maintain.
Fixes https://gitlab.com/kicad/code/kicad/issues/5932
2020-10-09 23:41:30 +01:00
Marek Roszko
bd30a4a406
Add selection lasso and window cursors
2020-10-08 21:25:21 -04:00
Jeff Young
298d5b6a11
Report units in clearance/width/etc. resolution reports.
2020-10-09 00:16:30 +01:00
Jeff Young
ce7794d9b6
Refresh after a Select All (without having to wait for mouse move).
2020-10-08 23:59:07 +01:00
Jeff Young
6550e01318
Sort synthetic netclass rules by min clearance.
...
This way when 'A' and 'B' have different netclasses the largest will
fire (rather than just a random one of the two).
Fixes https://gitlab.com/kicad/code/kicad/issues/5926
2020-10-08 23:41:27 +01:00
Jeff Young
ea387f2f28
Don't segfault after doing a cutout which removes entire zone.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5532
2020-10-08 20:33:54 +01:00
Jeff Young
80ba02caf5
Fix iterator bug in group selection filtering.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5804
2020-10-08 14:15:10 +01:00
Jeff Young
9c6977a994
Remember mirror setting in print dialog.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5909
2020-10-08 14:15:10 +01:00
Marek Roszko
f820dc990e
Make the delete tool use KICURSOR
2020-10-08 07:40:14 -04:00
Jeff Young
a534f24fb6
Repair deleting of groups in modedit.
2020-10-08 11:33:32 +01:00
Jeff Young
6752fdd58b
Fix bug with adding items to group in modedit.
2020-10-08 11:33:32 +01:00
Jeff Young
2f49db49bf
Fix fly-off arc handles and move Arc Properties to start/end/angle.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5791
2020-10-08 11:33:32 +01:00
Marek Roszko
f5e0754f65
Use the setCursor lambda pattern and fix up the initial cursor states
2020-10-07 23:26:14 -04:00
Mark Roszko
d9485129c8
Implement more context specific cursors using both stock and custom cursors.
2020-10-08 00:50:28 +00:00
Ian McInerney
50405b558e
Make the gerbview ruler tool more like the pcb ruler tool
...
* Allow the ruler to persist after clicking once on the canvas
2020-10-08 00:45:47 +01:00
Jon Evans
c3da54b741
Allow editing properties of locked pads
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5861
2020-10-06 17:54:50 -04:00
Jeff Young
305fe54971
Drawing tool needs to pass resetLocalCoords event after recording it.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5879
2020-10-06 12:08:31 +01:00
Jeff Young
37906511f5
Class renaming.
...
DRAWSEGMENT -> PCB_SHAPE
EDGE_MODULE -> FP_SHAPE
TEXTE_PCB -> PCB_TEXT
TEXTE_MODULE -> FP_TEXT
2020-10-05 11:55:33 +01:00
Ian McInerney
3a570c27f0
Update unit handling in the preview ruler
...
* Make the ruler able to switch to mils after creation
* Cleanup an unused flag in Pcbnew dimensions
* Move unit changed notification into EDA_DRAW_FRAME so more
frames to use it.
* Allow switching units when GerbView ruler tool is active
2020-10-04 17:53:55 +01:00
Jeff Young
7a4900b8dc
PCB_LINE_T -> PCB_SHAPE_T and PCB_MODULE_EDGE_T -> PCB_FP_SHAPE_T
...
Also updated footprint text and zone types for consistencey.
2020-10-04 16:49:04 +01:00
Seth Hillbrand
8e515d0069
Standardize default hotkey refresh
2020-10-04 05:48:26 -07:00
Jeff Young
bb753aaadf
Clean up terminology around active & high contrast layers.
2020-10-03 22:55:34 +01:00
Mikolaj Wielgus
400c15b8eb
Add mils to units, remove useMils variables
2020-10-03 20:06:56 +00:00
Jeff Young
81154c9270
Back out check-for-mouse-in-selection-bbox for PCBNew.
...
Unlike eeschema, PCBNew has had a selection model for two major
releases so folks have gotten used to RMB acting on the selection
rather than what's under the mouse.
Plus it makes RMB after a drag-select nearly useless as your mouse
by definition ends up outside the selection bbox.
Fixes https://gitlab.com/kicad/code/kicad/issues/5857
2020-10-03 18:50:49 +01:00
jean-pierre charras
0b23cb7dbb
more cleanup about removing useless include
2020-10-03 15:26:03 +02:00
Jeff Young
ba26e056ec
Implement groups for modedit.
...
This uncovered a memory corruption bug in MODULE's move operator,
several bugs in MODULE's move and copy constructors, and a bug in
BOARD's GetItem() call.
It also bumps the file format for saving/restoring groups inside
footprints.
2020-10-03 12:19:50 +01:00
Jon Evans
a25d091b6c
Add Convert Shapes tool to footprint editor
2020-10-02 18:42:41 -04:00
Jeff Young
732f588d83
Don't hit-test groups; allow only selection promotions from members.
...
Also fixes some bugs were the selection filters weren't getting
applied correctly on drag-selects.
Fixes https://gitlab.com/kicad/code/kicad/issues/5668
Fixes https://gitlab.com/kicad/code/kicad/issues/5804
2020-10-02 13:50:16 +01:00
Jon Evans
71ed7ee707
Revert "Drag preselected items even when "prefer selection to dragging" enabled"
...
This reverts commit d530e2c2cd
.
2020-10-01 18:23:30 -04:00
Ian McInerney
481026e901
Move microwave tools into a group on the main drawing toolbar
...
ADDED: Drawing group for microwave tools on main drawing toolbar
REMVOED: Microwave toolbar no longer exists
2020-10-01 19:47:55 +01:00
Jon Evans
d530e2c2cd
Drag preselected items even when "prefer selection to dragging" enabled
...
Not being able to drag an already-selected item feels broken
2020-09-30 20:10:13 -07:00
Jeff Young
6abe68fff0
Cleanup. No changes to execution.
2020-09-30 23:07:12 +01:00
Seth Hillbrand
bf3cb0b1d0
Standardize pad type enums
2020-09-30 08:38:35 -07:00
Jon Evans
31549cdc10
Clean up some things about pad locking
...
Allow selecting pads on a locked footprint (but not editing)
Don't create point editor for pads that should be locked
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5829
2020-09-29 18:53:49 -04:00
Jon Evans
4bb3e9dd98
Better handling of rounded pad shapes in GRID_HELPER
2020-09-28 23:59:44 -04:00
Jon Evans
30663c293c
GRID_HELPER: allow snapping to collinear points
2020-09-28 21:38:08 -04:00
Jon Evans
fe0f6b5ac7
ADDED: snapping to pad shape endpoints and midpoints
...
ADDED: snapping to rectangle midpoints
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4749
2020-09-28 21:38:08 -04:00
Jon Evans
e4ca4a2a47
REMOVED: "Delete twice to delete locked" action
...
Now that it is possible to disable selection of locked
items, it is better to just prevent accidental editing
of locked items
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5793
2020-09-28 21:38:08 -04:00
Jon Evans
74b0e1fa47
Break apart locked items from the rest of the selection filter
...
Disable selection of locked items by default
See discussion in https://gitlab.com/kicad/code/kicad/-/issues/5793
2020-09-28 21:38:08 -04:00
jean-pierre charras
c21883c8c9
fix minor I18n issues.
2020-09-28 20:52:55 +02:00
Mario Luzeiro
456112de03
Request redraw of 3D-Viewer when moving a footprint
2020-09-28 02:26:25 +00:00
Mario Luzeiro
5a362dfeeb
Request redraw of 3D-Viewer when a selection from Schematic is made
2020-09-28 02:26:25 +00:00
Mario Luzeiro
a1e94c2583
3D-Viewer: request a redraw when a footprint is selected in pcbnew
2020-09-28 02:26:25 +00:00
Jeff Young
23938356b9
Move "selection copied" to the status bar.
2020-09-27 00:26:18 +01:00
Jeff Young
7f33c229d8
Allow selection of nested items (ie: pads) inside an entered group.
...
Also moves some group-related functionality from BOARD to PCB_GROUP.
2020-09-26 20:35:52 +01:00
Jon Evans
b6e4b7bf7d
Fix order of initializing tools when loading board
...
Also add a few safeguards against invalid situations
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5801
2020-09-26 14:45:16 -04:00
Jeff Young
7300640da0
Reload DRC rules on MODEL_RELOAD.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5794
2020-09-26 16:49:09 +01:00
Jeff Young
f8875bc5a6
Move std::contains to alg::contains.
2020-09-26 14:42:40 +01:00
Jeff Young
035abe960c
Fix copy/paste of groups.
...
We can't check for selected on parent groups because the order isn't
defined (and the parent may not yet have been selected). Check for
inclusion instead.
2020-09-26 12:40:48 +01:00
Jeff Young
d7e80f8008
Add std::contains() to simplify a lot of code.
2020-09-26 12:40:32 +01:00
Jeff Young
44af3978af
Re-implement undo/redo of group ops in a pointer-safe way.
2020-09-26 10:03:13 +01:00
Jon Evans
f4a8275f3e
Allow selecting pads of locked footprints when filter allows
...
Before the selection filter, this heuristic made sense, but
now there is an explicit toggle to disable selection of locked
items, so we want to be able to select pads when that toggle
is enabled.
2020-09-25 21:28:04 -04:00
Jeff Young
ba0bed7a45
Groups don't go in the view, but they do go in an overlay when entered.
2020-09-25 22:51:16 +01:00
Jeff Young
2ae4fecaea
Paste items into group when group has been "entered".
2020-09-25 22:48:40 +01:00
Jeff Young
6fde9ea8a5
Don't leave stale pointers in groups when exchanging modules.
...
Also simplifies groups so that other areas of code that have to know
about them at least don't have to know as much. One of the simplifications
is to not worry so much about empty groups until save time; others are in
the access logic to parent groups.
Also simplifies user model slightly by removing Merge and Flatten
(which are just ungroup/group and ungroup/ungroup/.../group).
Also allows multiple groups to have the same name. This is useful when
using groups for a classification system.
Fixes https://gitlab.com/kicad/code/kicad/issues/5788
2020-09-25 18:43:19 +01:00
PJM
d1322e7d1d
Refactor GetDocumentExtents()
...
CHANGED: GetDocumentExtents() in 'eda_draw_frame.h' now has a bool
parameter "aIncludeAllVisible" with a default value "true" which makes
it behave as it did before adding parameter. If "aIncludeAllVisible"
is false, the returned bbox ignores some items depending on which
program it is running in.
CHANGED: Made "Zoom to Objects" use only PCB edge in Pcbnew. This
allows text, notes, etc outside the PCB edge to be excluded in the
zoom calculation.
CHANGED: Added "Zoom to Objects" to Pcbnew main menu, and to RMB context
menus for Eeschema and Pcbnew.
Fixes https://gitlab.com/kicad/code/kicad/issues/5787
2020-09-25 00:31:56 -07:00
Jon Evans
0783669633
CHANGED: Design rules files now use .kicad_dru extension
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5763
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5444
2020-09-24 21:26:23 -04:00
Jeff Young
5ad76a237e
Moving checking the rules up a level so we can properly exit DRC dialog.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5778
2020-09-24 15:17:46 +01:00
Jeff Young
dba42ebed0
ADDED Properties Dialog for groups.
...
ADDED memberOf() function for DRC rule expressions.
Also fixes a bug in several of the pickers where the event wasn't
being correctly passed.
Fixes https://gitlab.com/kicad/code/kicad/issues/5647
2020-09-24 14:41:02 +01:00
Jon Evans
690575e2b6
Improve edit point legibility with a hover state
2020-09-23 21:27:23 -04:00
Jeff Young
6dae769944
Progress reporting for connectivity tests.
...
Also makes via annulus terminology more consistent.
2020-09-23 16:28:00 +01:00
Jeff Young
167ae374fd
Don't allow two DRC runs at the same time.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5745
2020-09-23 14:10:07 +01:00
Jeff Young
6d18f20093
ADDED constraints reporter for diagnosing constraints.
...
Also fixes an issue with via type property and makes property
comparisons in rule case-insensitive.
Fixes https://gitlab.com/kicad/code/kicad/issues/5754
2020-09-23 01:14:35 +01:00
PJM
e77b7e3360
Make MMB double click perform 'Zoom to Fit'
...
ADDED: Make middle mouse button double click do a 'Zoom to Fit'
in Eeschema, Pcbnew, and Gerbview. Ctrl-MMB does a 'Zoom to Objects'
in Eeschema.
Fixes https://gitlab.com/kicad/code/kicad/issues/1988
2020-09-22 23:21:44 +00:00
Jon Evans
acf13a1869
ADDED: Orthogonal dimension object
2020-09-21 23:55:02 -04:00
Jon Evans
18e17abd6a
Rename "Keepout" to "Rule Area"
...
These objects can now be used in advanced DRC rules and
not just for keeping things out. Also remove the restriction
that at least one of the "basic" keepout rules must be set,
so that these areas can be used for more advanced rules.
2020-09-21 23:55:02 -04:00
Seth Hillbrand
ffa1947056
pcbnew: Simplify copy routine
...
Choose a decent copy reference from the mouse position when copying.
Don't break UX standards by requiring mouse action when activating copy.
2020-09-21 13:28:21 -07:00
Jeff Young
4badcba4c2
Zone fill performance improvements
...
1) better load-balancing for deferred zones
2) sort zones by priority before filling
3) retire BOARD::GetZoneList() which had a horrible performance profile
4) implement a zone bounding box cache
5) better checks for IsCancelled() so long fills can be exited
Fixes https://gitlab.com/kicad/code/kicad/issues/5738
2020-09-21 21:09:58 +01:00
Ian McInerney
d3dd1c45b6
Disable editing tools on the canvas when DRC is running
2020-09-21 20:39:46 +01:00
jean-pierre charras
492a634413
Fp editor: Fix bug when moving fp anchor: pad shapes where not updated on screen.
2020-09-21 14:43:26 +02:00
Ian McInerney
542f447daa
DRC tool: Ensure all calls to the dialog are guarded by null checks
2020-09-21 12:04:41 +01:00
Jeff Young
d9a94dc538
Don't allow selection of PCB_NETINFO_T.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5729
2020-09-20 16:41:39 +01:00
Ian McInerney
89dcc46898
Coverity cleanup and remove unused variables
2020-09-20 02:20:41 +01:00
Jeff Young
67b5d24995
Support ESC & Cancel for DRC.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5698
2020-09-18 22:14:00 +01:00
Jeff Young
53297c78a6
Don't eat commands we don't need in move tool.
...
This also fixes the dynamic ratsnest issue.
Fixes https://gitlab.com/kicad/code/kicad/issues/5692
2020-09-18 13:14:08 +01:00
Ian McInerney
a53f3899d4
Initialize variables properly
2020-09-18 11:17:37 +01:00
PJM
5feb4d3a7a
Pcbnew: Check if user wants to warp mouse to origin of moved object
...
CHANGED: When moving a footprint, Pcbnew was always warping the mouse
to the origin of the moved object regardless of the state of the "Warp
mouse to origin of moved object" checkbox. This MR now honors the
state of the checkbox when moving footprints.
Fixes https://gitlab.com/kicad/code/kicad/issues/5279
2020-09-18 02:47:59 +00:00
Jeff Young
8dd725469f
Process properties command locally within drawing tools.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5612
Fixes https://gitlab.com/kicad/code/kicad/issues/5615
2020-09-17 22:32:22 +01:00
Jon Evans
e9b627bfd8
ADDED: Center marker dimension type
2020-09-16 20:55:11 -04:00
Jon Evans
5109857883
Disable deselect net from main context menu
...
Right now we can't track the intended item to deselect
when there's an active selection already.
Having this feature available just from the appearance panel
should be fine.
2020-09-16 20:55:11 -04:00
Jon Evans
4a25db599e
ADDED: Deselect net action
...
You can now deselect nets and netclasses (i.e. remove them from the
active selection) via the context menus in the appearance panel
2020-09-16 19:10:12 -04:00
Jeff Young
2b43ffd12d
Better error reporting; better nullptr safety.
...
Also clears the marker lists before running a DRC, and sets
the drcRun flags afterwards so that the notebook tab counts
get updated.
Fixes https://gitlab.com/kicad/code/kicad/issues/5659
2020-09-16 22:14:41 +01:00
Jon Evans
db40e0c595
Fix dimension point editor ordering
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5656
2020-09-16 12:05:30 -04:00
Jeff Young
ce3819abf8
Remove redundant clearances from DRC dialog. Fold progress bar in.
2020-09-16 16:06:29 +01:00
Jon Evans
75ffce1a0b
ADDED: Leader dimension object
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5555
2020-09-15 23:37:38 -04:00
Jeff Young
e2e229da96
Finish exorcising the old DRC system.
...
This moves the various BOARD_ITEM calls to the new system, and make
the DRC_ENGINE long-lived so that it can field those queries.
2020-09-15 20:15:46 +01:00
Seth Hillbrand
67a7aa8ba4
Make snapping size grid-dependent
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5638
Fixes https://gitlab.com/kicad/code/kicad/issues/5588
2020-09-15 12:07:34 -07:00
Seth Hillbrand
08bf5f4b4e
ADDED: 45° snapping for rectangles aka Squares
...
The snap obeys only the Ctrl key and not the global preference setting
for drawsegments because rectangles are _always_ on H/V lines when drawn
Fixes https://gitlab.com/kicad/code/kicad/issues/5607
2020-09-15 11:22:26 -07:00
Jeff Young
514da2f886
Move DRC dialog to new DRC engine.
2020-09-14 22:39:36 +01:00
Jon Evans
d7e9411049
Filter out footprints that are larger than the viewport in either direction
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/2448
2020-09-12 13:16:10 -04:00
Jon Evans
3940e20fcb
Expose extension offset and zero suppression settings
2020-09-12 11:52:59 -04:00
Seth Hillbrand
1703657fb5
Decrease default snap range
...
The snap range needs tuning to preference and monitor resolution. This
shifts the default range down for users until the customization bits are
implemented.
2020-09-12 08:34:21 -07:00
Jon Evans
e40287d327
Fix auto units to work when drawing new dimensions
2020-09-12 10:30:33 -04:00
Jon Evans
0e9997d9ca
Add new dimension features to board design defaults
2020-09-11 21:12:36 -04:00
Jon Evans
76c4c959e6
Implement new dimension properties
...
- Automatic units mode (follow UI units)
- New text and number formatting options
- Automatic/manual text orientation control
- New text positioning options (inline and manual)
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4280
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4497
2020-09-11 21:12:36 -04:00
Jon Evans
b11e315d10
Refactor DIMENSION to hide internal details; add some new properties
...
This is a board file format change to account for the new properties.
Also, we now only store the critical information about the dimension's
geometry in the board, rather than storing every drawn line.
The DIMENSION object is now an abstract base, and ALIGNED_DIMENSION
is the implementation that exists today (we will add more dimension
types in the future)
2020-09-11 21:12:36 -04:00
Jeff Young
5be887a60f
Iron out some wrinkles in the DRC migration.
2020-09-12 01:57:37 +01:00
Jeff Young
8ac7288696
Fix a crash bug loading DRC rules.
...
Also moves the clearance report to the new DRC engine.
2020-09-12 00:46:55 +01:00
Seth Hillbrand
d14c6ba71f
Keep snap line alignment before new snaps
...
Also fixes the alignment line that was supposed to be dashed and not
solid.
2020-09-11 14:22:41 -07:00
Seth Hillbrand
f493e270ea
ADDED: Menu option to enable/disable snap to grid
...
You can now enable and disable snap to grid when drawing/editing across
all apps. You can also tie snap to grid to the visibility of the grid
to allow rapid enable/disable via grid display.
2020-09-10 20:09:30 -07:00
Jeff Young
fc1665ff28
ADDED Clearance Inspector.
2020-09-10 20:58:38 +01:00
Seth Hillbrand
4026904cc4
Make grid snapping depend on grid visibility
...
Turning the grid view on enables snapping to the grid. Turning it off
removes the snap and allows free draw
2020-09-09 10:18:15 -07:00
Seth Hillbrand
173b4ff588
Add snapping to eeschema
...
This generalizes both the SetPosition() function and ORIGIN_VIEWITEM
class away from the pcbnew-centric.
2020-09-09 10:18:15 -07:00
Jon Evans
3d5b216d1d
Allow rectangles to be converted to lines
2020-09-08 08:41:33 -04:00
Jeff Young
9ea96ee64e
Update pad layer testing for selectability.
...
My only guess is the old code predated the introduction of
GetLayerSet(). In any case it was long-winded and still didn't
catch the case of being on copper layers other than front or back
(which might be hidden).
2020-09-08 11:02:09 +01:00
Seth Hillbrand
7e2a6a9b64
Block undo/redo while editing points
...
We need to keep a stable board while modifying items.
Fixes https://gitlab.com/kicad/code/kicad/issues/5533
2020-09-06 15:30:38 -07:00
Jeff Young
1be1205734
Repair missing checkVisibilityOnly test.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5516
2020-09-05 19:12:07 +01:00
Jeff Young
adfcdc89af
Repair parent pointer after SwapData() nukes it.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5523
2020-09-05 18:51:56 +01:00
Jeff Young
7893af2c60
insideArea should be outline-based, not fill-based.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5499
2020-09-05 00:25:19 +01:00
jean-pierre charras
2babcd5936
Do not translate debug strings
2020-09-04 20:29:22 +02:00
Jeff Young
2736becb8b
Fix typo in Toggle Layers action and add descriptions to hotkeys lists.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5494
2020-09-04 17:45:07 +01:00
Jeff Young
b0081606f7
Fix crash bug in Select All / Delete.
...
We only expect footprint edge selections in the Footprint Editor.
They cause PCBNew's undo architecture to wrap itself in knots.
2020-09-03 15:03:09 +01:00
Ian McInerney
cb36006406
First round of cleanup for the PCB groups
...
ADDED: Leave group action
Fixes https://gitlab.com/kicad/code/kicad/issues/5299
2020-09-02 02:10:26 +01:00
Jeff Young
6e72f609f0
Make sure router and via tools update when sizes change.
...
Also adds a size menu to the context menu for the Via tool.
Fixes https://gitlab.com/kicad/code/kicad/issues/5321
2020-08-31 23:33:02 +01:00
Michael Kavanagh
108936079b
Fix default hotkey clash on "Delete Full Track"
...
Fixes https://gitlab.com/kicad/code/kicad/issues/3710
2020-08-31 15:48:29 +00:00
Jeff Young
1fa96b794a
Update some strings for Appearance manager.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5431
2020-08-31 16:38:11 +01:00
Jeff Young
88635ee5b6
Clean up error messages.
...
Convert a lot of nags to InfoBar errors/warnings/messages, and some
that never should have been exposed to wxFAIL_MSGs.
2020-08-31 14:19:57 +01:00
Fabien Corona
4a0d6297ab
pcbnew: Add an alternate edit method for arcs
...
The alternate edit methods keeps the radius constant
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5369
2020-08-29 22:59:11 +00:00
Jon Evans
fa8655511e
Enable converting segments to arcs
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/1957
2020-08-29 12:13:51 -04:00
Jon Evans
a390b19f97
Move actions around
2020-08-29 10:43:05 -04:00
Jon Evans
19832c7599
ADDED: Tool for converting shape types in PcbNew
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/2406
Fixes https://gitlab.com/kicad/code/kicad/-/issues/2507
2020-08-28 21:16:06 -04:00
Jeff Young
9e12ea9bb6
Cleanup some dead code and make better use of iterators.
...
Also applies coding style around auto and lambdas.
2020-08-28 11:05:58 +01:00
Jeff Young
b8aee85b94
Don't drop selection on an undo/redo.
...
We want to be able to restore it back to the way it was.
Fixes https://gitlab.com/kicad/code/kicad/issues/5356
2020-08-28 11:05:58 +01:00
Seth Hillbrand
1e461c2259
ADDED: Improved center point dragging
...
The center point on polygons now maintains the axis of the dragged line
and, optionally with Ctrl pressed, maintains the slope of the adjacent
segments as well.
This also fixes a longstanding issue that prevented the ctrl-snapping
from using the original point rather than the last updated point when
constraining.
Fixes https://gitlab.com/kicad/code/kicad/issues/2465
2020-08-27 10:34:12 -07:00
Seth Hillbrand
0dc0536cbf
pcbnew: Fix Select All copy-pasta
...
Adds condition to footprint editor and corrects condition for both
modedit and pcbnew
2020-08-26 17:19:32 -07:00
Mark Roszko
1082402b33
Convert UNDO_REDO_T to an enum class
2020-08-26 18:04:32 +00:00
Jeff Young
1138c32bf3
Don't pass Cancel event where there was a specific action cancelled.
...
For instance, if during a move the user hits ESC they only want the
move cancelled, not (for instance) the selection dropped.
Fixes https://gitlab.com/kicad/code/kicad/issues/5356
2020-08-25 12:54:40 +01:00
Jeff Young
b8bbe72e48
Another attempt to fix the select-reference-point toolstack thing.
...
This time remove the push/pop from the picker tools as that's
responsible for the issue of trying to re-activate the move action
when its popped. Instead do the push/pop from the client code
of other actions that need it, and not at all from the move-with-
reference action.
Fixes https://gitlab.com/kicad/code/kicad/issues/5336
2020-08-24 22:47:24 +01:00
Jeff Young
50b182574d
Missing change from last commit.
2020-08-24 21:59:43 +01:00
Jeff Young
5a0db6802a
Use IsOnLayer(); GetViewLayers() now returns synthetic ZONE layers.
...
Also uses IsPadOnLayer() for pads so that it will drop layers which
have had their pads removed.
Fixes https://gitlab.com/kicad/code/kicad/issues/5349
2020-08-24 20:20:04 +01:00
Jeff Young
a4ff339a1e
Clear toolstack after cancel.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5336
2020-08-24 19:28:53 +01:00
Jeff Young
8eda4d93ee
Use LAYER_VIAS instead of via-type-specific layers for visibility.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5344
2020-08-24 14:00:46 +01:00
Jeff Young
502f2ca2ef
Fix some snarled up event processing.
...
See the bug for details. It's complicated.
Fixes https://gitlab.com/kicad/code/kicad/issues/5336
2020-08-24 13:20:29 +01:00
PJM
dd374e12ad
Pcbnew: Fix bug when mouse moves off clarification menu
...
CHANGED: This code fixes an issue where bringing up the clarification
menu and moving off it while keeping the button pressed the entire
time caused an assertion.
Fixes https://gitlab.com/kicad/code/kicad/issues/5250
2020-08-22 16:48:19 -07:00
Jeff Young
c71bb246e6
Don't allow preview to try and draw empty polygons.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5314
2020-08-22 23:46:56 +01:00
Jeff Young
a2341f0f33
Pin dragged pad edges to hole (if it has one).
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5317
2020-08-22 20:45:54 +01:00
Jeff Young
e92f58bb4f
Implement "fromOtherCommand" for PlaceModule() too.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5281
2020-08-21 23:24:29 +01:00
Seth Hillbrand
20de1b2b4f
Minor code tightening
2020-08-20 20:18:31 -07:00
PJM
29ddc73d6c
Pcbnew: Allow rects to have overlapping end corner locations
...
CHANGED: If a rectangle is drawn and the location of the second corner
is the same as another rectangle's second corner, Pcbnew crashes. The
reason is that a call is made to DRAWSEGMENT::GetLength(), but that
function only handles shapes of type S_CURVE and S_SEGMENT. This code
checks if the overlapping end points are from a rectangle and if so
it doesn't call DRAWSEGMENT::GetLength().
Fixes https://gitlab.com/kicad/code/kicad/issues/5282
2020-08-21 02:58:32 +00:00
Seth Hillbrand
1e315bc3fe
pcbnew: Add "Select All" Action to pcbnew and fpedit
...
Fixes https://gitlab.com/kicad/code/kicad/issues/2497
2020-08-20 16:07:10 -07:00
Jeff Young
38a994975b
Output resolved text from PCBNew BOM generator.
2020-08-20 13:41:50 +01:00
Ian McInerney
c479deaf02
Use groups when doing graphics import
...
ADDED: Allow DXF/SVG graphics to be imported as a group
Also, cleanup the placement routine to allow the edit tool's flip
and rotate routines to be used when placing the items.
2020-08-20 01:22:48 +01:00
Jeff Young
631b5a9340
Don't allow point editor inversion when editing pad shapes.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5272
2020-08-19 23:27:16 +01:00
Jeff Young
95591669f1
Merge board properties when appending board.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5255
2020-08-19 19:32:20 +01:00
Jeff Young
2bf4fcae2a
Cancel preceeding command if Move was called to place it.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5252
2020-08-19 13:18:53 +01:00
Jeff Young
f2a902c0b1
Remove extraneous drag actions.
2020-08-18 19:05:30 +01:00
Wayne Stambaugh
ede39780e2
Remove all debugging output that cannot be disabled.
...
The use of printf, wxLogDebug, and std::err/std::out causes excessive
debugging output which makes finding specific debugging messages more
difficult than it needs to be.
There is still some debugging output in test code that really needs to
be moved into a unit test.
Add debugging output section to the coding policy regarding debugging
output.
2020-08-18 10:17:36 -04:00
Marek Roszko
294de666a4
Don't update msgpanel while dragging zone points
2020-08-18 13:11:47 +00:00
Marek Roszko
d2086eecdd
Don't update panel while drawing a dimension
2020-08-18 13:11:47 +00:00
Marek Roszko
73b2a10cab
Don't try updating msgpanel while segments.
2020-08-18 13:11:47 +00:00
Marek Roszko
a417da4ce0
Split selecteditemmodified to a selecteditemmoved to reduce updatemsgpanel spam
2020-08-18 13:11:47 +00:00
Marek Roszko
3696064f6f
Don't post update events twice and on motion for movement of items
...
Fix #4880
Fix #4741 (hopefully)
2020-08-18 13:11:47 +00:00
Marek Roszko
a0956fbf97
text tool: msgpanel on motion is the same as msgpanel on not moved text....
2020-08-18 13:11:47 +00:00
Jon Evans
3c66f932bf
Synchronize flip board checkbox
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5224
2020-08-17 21:48:11 -04:00
Ian McInerney
e825a99b9a
Consolidate some UI conditions from context menu enabling
...
These conditions are for enabling/disabling a control,
so place them inside the new UI conditions framework instead
of the separate update routine.
2020-08-17 23:21:25 +01:00
Seth Hillbrand
0debaa5866
Update selection ratsnest should do slow updates sometimes
...
When rotating/mirroring/etc, the selection ratsnest should be
recalculated to keep the lines correctly connected for the fast tree
move.
Fixes https://gitlab.com/kicad/code/kicad/issues/5194
2020-08-16 13:31:50 -07:00
Ian McInerney
4491f24d5e
Ripout the old SyncToolbars infrastructure reminants
...
The tool framework no longer needs to request updates of the UI
state for the controls, wxWidgets will do it for us.
2020-08-16 19:10:26 +00:00
Ian McInerney
e8b11c911e
Migrate Pcbnew/footprint viewer/footprint editor to the new UI update system
2020-08-16 19:10:26 +00:00
Ian McInerney
d19ff3e595
Unify the UI IDs for actions between the menus and toolbars
...
By unifying the IDs so that an action only has one UI ID,
it will receive only one update event that will work for
all controls using the action.
2020-08-16 19:10:24 +00:00
Jon Evans
bd14f8a82a
ADDED: New appearance control widget for PcbNew
...
Featuring:
- Layer view presets
- Per-type opacity for tracks, vias, pads, zones
- Net and netclass color and visibility controls
CHANGED: Simplified object visibilty controls
Fixes https://gitlab.com/kicad/code/kicad/-/issues/1951
Fixes https://gitlab.com/kicad/code/kicad/-/issues/1981
Fixes https://gitlab.com/kicad/code/kicad/-/issues/2003
Fixes https://gitlab.com/kicad/code/kicad/-/issues/2173
Fixes https://gitlab.com/kicad/code/kicad/-/issues/2254
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4325
2020-08-15 15:24:28 -04:00
jean-pierre charras
e4021a9ffa
Fix some I18n issues.
...
Strings used for debug and strings containing only a print format like "%i"
are not translated
2020-08-15 17:56:32 +02:00
Seth Hillbrand
a0c54951db
pcbnew: Clean up group move
...
SetPosition() only changes the base position of tracks, we need to use
Move() to move the whole element.
This also cleans up white space and group handling in ratsnest
Fixes https://gitlab.com/kicad/code/kicad/issues/5188
2020-08-14 19:47:03 -07:00
Seth Hillbrand
b8b3d5c16d
pcbnew: Remove all threading from dynamic ratsnest
...
The last remaining threaded operation in dynamic ratsnest was the
recalculation of the dynamic connectivity map. Because we do not
require any of the extra features of the connectivity map, we can get
away with a lightweight move of the anchors to update the ratsnest. The
resulting connectivity tree is not valid but it is not needed for the
ratsnest, which only needs a list of nets/anchors.
2020-08-14 17:48:33 -07:00
Jeff Young
393bb0fd83
Fix assert where geometry routine wasn't ready to handle layers.
...
This introduces layer handling to a lot of the geometry routines.
Many of them don't do much with it now, but it does help multi-layer
zones and will help when padstacks are implemented.
2020-08-12 22:20:08 +01:00
Jeff Young
a6d44676b3
Move commit handling outside of ZoneFiller.
...
This allows us to rever the commit on a cancel.
Fixes https://gitlab.com/kicad/code/kicad/issues/5107
2020-08-12 22:20:07 +01:00
Qbort
b41892e4da
Rename class GROUP in pcbnew to PCB_GROUP
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5156
2020-08-12 15:36:08 +01:00
Seth Hillbrand
ab58b67842
Adding triangulation viewing to AC
...
This adds a helper routine to visualize the quality of our
triangulation. It also renames an excessively long variable name for
the arc editor
2020-08-12 06:22:45 -07:00
Joshua Redstone
ee428876ec
ADDED: Group/Ungroup function
...
This implements the group/ungroup functions to mark a set of EDA_ITEMs as a unit, allowing them to be moved and rotated as a unit
2020-08-11 19:37:07 +00:00
Jeff Young
a0f95855d1
ADDED board repair tool.
...
Currently it just fixes duplicate UUIDs.
2020-08-11 15:02:27 +01:00
Jeff Young
5ab39b7c06
Clean up reannotation UI.
2020-08-11 15:02:27 +01:00
Ian McInerney
e03f6a3b49
Pcbnew: Route all display options updates through the frame
...
The frame contains the main option set that is used for setting the UI
state, so it must be updated. The frame also updates the view when set,
so calling the view separately to update the options isn't needed.
Fixes https://gitlab.com/kicad/code/kicad/issues/5069
2020-08-11 01:20:11 +01:00
Seth Hillbrand
211cbadc24
pcbnew: MODULEs are not BOARD_CONNECTED_ITEMS
...
Handling ratsnest requires first checking for modules, handling their
pads and then checking that the remaining elements derive from
BOARD_CONNECTED_ITEM
Fixes https://gitlab.com/kicad/code/kicad/issues/5131
2020-08-10 11:01:03 -07:00
jean-pierre charras
23a5b0ca5f
fix a few compil warnings and a Coverity warning.
2020-08-10 18:32:44 +02:00
Jeff Young
34705fd8b2
More clone vs duplicate bugs.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5120
2020-08-10 14:45:01 +01:00
Jeff Young
692aeff334
Fix a bunch of usages of copy ctor that really meant duplicate.
...
In particular, "duplicate" means "with a new KIID".
Fixes https://gitlab.com/kicad/code/kicad/issues/5127
2020-08-10 14:23:11 +01:00
Seth Hillbrand
5fc6b74c89
ADDED: Remove unused pads
...
This option removes copper layers from pads and vias where they are not
connected to other board elements. This allows the inner layers to be
more closely routed if the via landing pad is not needed.
Fixes https://gitlab.com/kicad/code/kicad/issues/1835
2020-08-10 03:27:26 +00:00
Fabien Corona
133d082cc5
Pcbnew fix arc edition
2020-08-09 23:03:31 +00:00
bjpiccioni
d08bf90576
ADDED: Geographic Reannotation
2020-08-09 12:43:05 -04:00
Jeff Young
4317881012
Improve delete-unused-layers to better handle multi-layer items.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5116
2020-08-09 15:39:51 +01:00
Jeff Young
5c3fddffa6
Handle module keepout zones on internal layers.
...
Make sure the Keepout Zone dialog allows specifiying them and make
sure they're selectable.
Fixes https://gitlab.com/kicad/code/kicad/issues/5113
2020-08-09 00:24:53 +01:00
Jeff Young
e5b50d90a7
Update DRC rules to new layer and disallow grammars.
...
Also adds support for hooking rules up to named zones.
Fixes https://gitlab.com/kicad/code/kicad/issues/2041
2020-08-07 21:49:36 +01:00
Seth Hillbrand
406de56964
pcbnew: Prevent use of non-connected item in ratsnest
...
We need to be careful in the connectivity system to always use
dyn_cast/dynamic_cast and check the return when dealing with board
items. Getting non-connected items will result in null nets when
propagated.
Fixes https://gitlab.com/kicad/code/kicad/issues/5082
2020-08-07 13:38:51 -07:00
Jeff Young
00e77d1ba4
Implement pad & via aprons for hatched zones.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/2519
2020-08-07 15:15:43 +01:00
Jeff Young
4b51184678
Don't try and select if we don't have a location.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5088
2020-08-06 01:22:59 +01:00
Jeff Young
e2ec9d9f00
A more fail-safe way to disallow editing while routing.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/4413
Fixes https://gitlab.com/kicad/code/kicad/issues/5067
2020-08-05 16:51:58 +01:00
Jeff Young
59ba793096
Disable various combinations of router and editing commands.
...
They just confuse each other.
Fixes https://gitlab.com/kicad/code/kicad/issues/5067
2020-08-04 14:32:02 +01:00
Jeff Young
7108a25278
Fix issues flipping text.
...
This is a really hard problem to get right. This algorithm won't
look quite right if you assemble a paragraph from disjoint text
objects and flip them all top-to-bottom (as it will re-order the
text). But this is really the nature of the problem (and has to
stay that way to correctly flip disjoint graphic items or mixed
text and graphic items). The real fix here is to support text
wrapped in a single text box.
Fixes https://gitlab.com/kicad/code/kicad/issues/4480
2020-08-02 17:05:13 +01:00
Jeff Young
dae40d5c9f
Don't use std::set_difference which assumes sorted lists.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/4968
2020-08-01 22:15:53 +01:00
Jeff Young
b2dc592bf1
Clear UUID and path when pasting board items.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/4992
Fixes https://gitlab.com/kicad/code/kicad/issues/4041
2020-07-30 18:06:42 +01:00
Jeff Young
be957e0105
Convert parent-less module items to board items on paste.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/4938
2020-07-27 19:53:42 +01:00
jean-pierre charras
6f7d5f5e2b
Footprint editor: fix some issues in flip and mirror commands.
...
more about fixes #4958
https://gitlab.com/kicad/code/kicad/issues/4958
2020-07-25 18:10:24 +02:00
Ian McInerney
50b2271f84
Fix missing variable initialization
2020-07-18 23:56:39 +01:00
Ian McInerney
da6d0c9de6
Add cancel to the selection context menu if a tool is running
...
The selection tool's context menu is displayed during the move tool,
so it should contain the ability to cancel the current action.
2020-07-16 15:12:58 +01:00
Jeff Young
7340c97ef9
Undo for schematic-wide operations.
...
Editing value/footprint fields of multi-unit components.
Find/Change.
Annotation.
Back annotation.
Fixes https://gitlab.com/kicad/code/kicad/issues/2122
Fixes https://gitlab.com/kicad/code/kicad/issues/4869
Fixes https://gitlab.com/kicad/code/kicad/issues/3933
Fixes https://gitlab.com/kicad/code/kicad/issues/4871
Fixes https://gitlab.com/kicad/code/kicad/issues/3899
2020-07-13 12:32:17 +01:00
Jon Evans
2f31bf278b
Fix layer hotkey dispatch
...
Hotkeys received by more than one tool need AF_NOTIFY
2020-07-11 21:59:16 -04:00
Jon Evans
5d118b0700
More visibility settings infrastructure
...
ADDED: Three-state high contrast mode action
ADDED: Save contrast mode in local settings
Also some initial infrastructure for layer presets
2020-07-11 21:59:07 -04:00
Jon Evans
72b08f2b18
ADDED: Hide ratsnest for specific nets
...
List of hidden nets stored in project local settings
Hide/Show actions in context menu only for now, will
add them to some more GUI places soon.
Ref https://gitlab.com/kicad/code/kicad/-/issues/1951
2020-07-10 21:06:17 -04:00
Jon Evans
bb596ac139
Add Move with Reference to Special Tools menu
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4838
2020-07-09 12:02:26 -04:00
Seth Hillbrand
7cea4b23f1
ADDED: Expand selection in context menu
...
Break out the context menu with heuristically limited choices being
appended to the main list rather than re-selecting
Fixes https://gitlab.com/kicad/code/kicad/issues/4799
2020-07-07 14:18:35 -07:00
Jon Evans
a3655225cd
Save selection filter state in project local settings
2020-07-06 21:53:12 -04:00