Commit Graph

1267 Commits

Author SHA1 Message Date
Jeff Young f345eacf13 Be more careful with undo, and don't re-merge a bus over a bus entry.
Fixes https://gitlab.com/kicad/code/kicad/issues/9475
2021-10-30 19:58:09 +01:00
Roberto Fernandez Bautista c5cdda26ae Fix crash in libedit when moving/editing pins in synchronised mode
Unit numbers start at 1, not 0. Our vector needs to be size + 1 if we want
to use the unit number as an index.
0 is reserved for "all units"
2021-10-30 18:14:23 +01:00
Jon Evans d426abafd7 Handle empty shape in removeCornerCondition
Fixes https://gitlab.com/kicad/code/kicad/-/issues/9495
2021-10-30 13:10:12 -04:00
Jeff Young b967610e05 Remove confirmation for De Morgan (and spell his name right).
Fixes https://gitlab.com/kicad/code/kicad/issues/9483
2021-10-29 20:30:37 +01:00
Jeff Young 1fa9ad227a Repair new junction logic for crossing wires.
Fixes https://gitlab.com/kicad/code/kicad/issues/9484
2021-10-29 19:09:02 +01:00
Seth Hillbrand 18318c73b5 Fix swapped parameters 2021-10-27 08:59:39 -07:00
Seth Hillbrand dd99b2dc2f Add action to edit symbol from Library
Analog of ea4e06124e for symbol editor.  Allows scripting to open
library symbol
2021-10-26 12:59:59 -07:00
jean-pierre charras 29756278e0 eeschema: fix crash when the simulator frame is open and the Tune tool is actived.
In some cases when the Tune tool is actived and a symbol is selected, if the tool
is deactivated from the right toolbar in Eeschema, Eeschema crashes.
2021-10-22 20:00:14 +02:00
Jeff Young c5e5d8e0d4 Fix multi-sheet find/replace issues.
1) When replacing symbol fields, make sure we do it for all sheets
2) Honour "find on current sheet only"

Fixes https://gitlab.com/kicad/code/kicad/issues/9431
2021-10-20 18:28:57 +01:00
Jeff Young b8d193485d Respect selection reference point when set.
Fixes https://gitlab.com/kicad/code/kicad/issues/8520
2021-10-18 18:09:40 +01:00
Jeff Young f9861b4a6c Finish arc rework and push out to file formats. 2021-10-15 12:45:43 +01:00
Jeff Young b52529521e Replace individual LIB_* shapes with LIB_SHAPE (based on EDA_SHAPE).
Also moves to more capable FILL_T model that can be shared.
2021-10-15 12:45:43 +01:00
Mikolaj Wielgus 5f53019290 Substitute all wxHtmlWindow with HTML_WINDOW
Remove other places where <body> tag is used to override the default
black-on-white theme.
2021-10-12 07:07:15 +00:00
Seth Hillbrand 2c7da5e2bd Handle deleting segment
Edited point needs to clear to allow us to use the click timer for
left-click after the drawing is deleted.

Fixes https://gitlab.com/kicad/code/kicad/issues/9320
2021-10-06 10:21:04 -07:00
Seth Hillbrand bb5c58b3cf Set default force cursor off in auto-lines
Leaving the forced position on results in the auto-line linking to a pin
for far longer than we intend if there are other hits in the area of the
cursor

Fixes https://gitlab.com/kicad/code/kicad/issues/9321
2021-10-05 20:28:05 -07:00
Seth Hillbrand 854472d550 Prevent automatic RTree recaching
Calling UpdateItem() may be performed by in a common loop, e.g. for(
SCH_ITEM* item : GetScreen()->Items() ) or similar.  We cannot call
GetScreen()->Update( SCH_ITEM* ) in this routine as it will remove and
re-add the item to the RTree, invalidating iterators.  If needed, the
items need to be cached to an external container before updating

Fixes https://gitlab.com/kicad/code/kicad/issues/9318
2021-10-05 20:13:15 -07:00
Seth Hillbrand 9a8d1246cc We don't keep a CHANGELOG.TXT
Direct interested readers to AUTHORS.TXT instead.
2021-10-05 19:46:53 -07:00
Jeff Young f606679164 Proper numeric sorting for intersheet refs.
Also expunges the horrifically named std::remove and std::remove_if
(neither of which remove anything).
2021-10-01 18:29:21 +01:00
Seth Hillbrand dd1d36d40a Fix segfault when check for editing points
The point editor is not always available when checking for points.  We
need to handle the missing tool without crashing
2021-09-30 17:25:33 -07:00
Jeff Young 12b726ba2f Prevent the point editor from fighting with other tools.
1) Don't start a long-click timer when the point editor is active.
2) Don't auto-start a wire when the point editor is active.

Fixes https://gitlab.com/kicad/code/kicad/issues/9270
2021-09-29 19:16:06 +01:00
Jeff Young 9cf9abbd66 Don't allow Text Properties dialog on intersheets references field. 2021-09-29 16:04:36 +01:00
Mike Williams d90dc77e00 Selection: Don't drop small moves
If we do a real drag, the timer will be cancelled. If we don't, then
the user is still holding the mouse button down and would probably like
to see the menu. Otherwise it appears the action is dropped.
2021-09-27 16:44:32 +00:00
jean-pierre charras d362cbc530 EEschema: change Save Copy As... to Save Current Sheet Copy As...
Save Copy As did not work with hierarchies (was not able to manage subsheets)
Fixes #9245
https://gitlab.com/kicad/code/kicad/issues/9245
2021-09-27 18:23:11 +02:00
Jeff Young 5f3c67bd2b Fill in some missing GetMsgPanelItems and make some others consistent.
Also expunges a std::vector<MSG_PANEL_ITEM> cover type.
2021-09-27 00:23:40 +01:00
Jeff Young 42687f5d9d Give selection preference to pins over wires.
Fixes https://gitlab.com/kicad/code/kicad/issues/9063
2021-09-23 23:59:20 +01:00
Jeff Young 9ea6b44ee8 Formatting. 2021-09-23 23:59:20 +01:00
Marek Roszko 064ab933dd Always update the hierarchy navigator when setting the current sheet in the frame
Fix #9221
2021-09-23 18:14:44 -04:00
Seth Hillbrand 71602475eb Allow rotate/mirror even when dragging
Keeps the lines connected but doesn't solve the crossed-wire mixups.
This allows common usage (mirroring labels/rotating segments) and leaves
prevention of the crossed wires to the user.

We can't really prevent crossed wires when rotating e.g. a part with
wires connected to 4 sides and users will not expect that.  But we
should not disable useful features like mirroring multiple parallel
items to avoid a known impossible situation

Also provides an alternative solution to 345f506f0c that allows us to
rotate groups without destroying connections on hover

Fixes https://gitlab.com/kicad/code/kicad/issues/8403

Fixes https://gitlab.com/kicad/code/kicad/issues/8523
2021-09-23 14:47:49 -07:00
Jeff Young 4b38bd1543 Favour junction dots to wires inside the dot.
Fixes https://gitlab.com/kicad/code/kicad/issues/9187
2021-09-23 22:13:56 +01:00
Jeff Young 552f053a55 Remove pins from symbol hit-testing.
Fixes https://gitlab.com/kicad/code/kicad/issues/8508
2021-09-23 22:07:51 +01:00
Seth Hillbrand 671aec5da6 In fallback selection, handle cancelled menu
doSelectionMenu returns false to indicate a cancelled menu.  This needs
to be handled in selectPoint when directly accessing doSelectionMenu in
the same manner as SelectionMenu() events

Fixes https://gitlab.com/kicad/code/kicad/issues/9218
2021-09-23 11:48:29 -07:00
Seth Hillbrand 3b04b602d9 Don't walk text/labels when mirroring
We have a fixed bottom-align for the text and labels in eeschema.
Therefore, mirroring vertically needs to account for the text's offset
from the bounding box center.

Fixes https://gitlab.com/kicad/code/kicad/issues/9208
2021-09-22 09:24:16 -07:00
Jeff Young ec2ac181a2 Further simplify selection logic.
The select-single-wire stuff is no longer needed, and the prefer-wire-ends
stuff needs to be distance-based.

Also improved wire hit-testing to include bubbles the size of the dangling
symbol at each end.

Fixes https://gitlab.com/kicad/code/kicad/issues/9187
2021-09-21 20:27:35 +01:00
Jeff Young 2ec1c215cd Drop selection after hiding items.
Fixes https://gitlab.com/kicad/code/kicad/issues/8605
2021-09-21 17:02:34 +01:00
Seth Hillbrand c67d560538 Remove unused and shadowed variables 2021-09-20 11:45:27 -07:00
Marek Roszko e7814915db Call UpdateHierarchyNavigator on find jump in schematic in case we cross pages
Fix #8971
2021-09-19 08:35:51 -04:00
Jeff Young a5c4bace60 Improve (and simplify) wire and pin hit-testing.
1) Expand the accuracy to at least the grid spacing
2) Move pin-selects-symbol logic to Selectable()
3) Recode pick-closest algorithm to handle exactHits and inexactHits
separately
4) Remove pin target from bounding box in favour of expanding it to
at least as wide as the pin decoration (this prevents the accuracy
off the end of the pin from growing too large)
2021-09-19 11:34:43 +01:00
Jeff Young a291cae2fd Make sure intersheetRef bounding boxes get updated in RTree.
Fixes https://gitlab.com/kicad/code/kicad/issues/9177
2021-09-18 18:32:19 +01:00
Jeff Young 4b3490a2b9 Intercept rotate command when drawing wires.
If unfolding from bus rotate the label; otherwise beep.

Fixes https://gitlab.com/kicad/code/kicad/issues/9178
2021-09-17 22:01:17 +01:00
Jeff Young 5c07441e24 Remove Setup Dialog assignment of netclasses to buses.
Also removes the message bar display of assigned netclass for
buses and bus-to-bus entries.

Also fixes a bug where assigning a netclass via the canvas only
looked at the first level of bus members (and not any nested
members).

Also fixes a bug where the bus name validator tried to validate
a vector bus first -- which doesn't work as a vector bus may be
nested in a group bus.

Also fixes a bug where we were failing to check for illegal
chars in bus definitions which otherwise passed the bus parsers.

See additional comments in the bug report.

Fixes https://gitlab.com/kicad/code/kicad/issues/9160
2021-09-17 22:01:17 +01:00
jean-pierre charras ca33ec05df Eeschema: fix incorrect rotation (CW versus CCW) of some items.
For some (not all) items and for blocks the rotation CCW was in fact a CW rot.
Fixes #9176
https://gitlab.com/kicad/code/kicad/issues/
2021-09-17 18:30:23 +02:00
Jeff Young cc14dfe3ca Make canvas netclass assignment mirror Setup Dialog assignment.
While it would make more sense to have them both use the old canvas
algorithm (of only assigning to the members), I'd be *very* hesitant
to change the Setup Dialog and underlying machinery this late in the
6.0 release.

Fixes https://gitlab.com/kicad/code/kicad/issues/9160
2021-09-17 14:40:12 +01:00
Jeff Young b84d1456d5 KIFACE_I -> KIFACE_BASE. 2021-09-14 23:45:14 +01:00
Jeff Young 3aae3c6f65 Dark mode for a bunch of HTML dialogs.
WX_HTML_REPORT_BOX
WX_HTML_REPORT_PANEL
HTML_MESSAGEBOX
DIALOG_DISPLAY_HTML_TEXT

Fixes https://gitlab.com/kicad/code/kicad/issues/9157

Fixes https://gitlab.com/kicad/code/kicad/issues/9156
2021-09-14 21:23:57 +01:00
Seth Hillbrand 484eaa01b9 Try harder to avoid loop contention
We have two cases where we might be requesting a disambiguation menu.
In one case, we already have the event loop waiting and we need to run
the selectionMenu through the action system.  In the other case, the
tool isn't on the stack and won't activate.  Here we need to run
directly and we are assured of not crashing because the tool isn't
active.

Fixes https://gitlab.com/kicad/code/kicad/issues/9154
2021-09-13 10:17:04 -07:00
Jeff Young fdfecf5932 Don't push view control settings to the previous active tool.
See further comments in bug report.

Fixes https://gitlab.com/kicad/code/kicad/issues/9147
2021-09-13 13:28:05 +01:00
Jon Evans 558ba855a2 Copy default hotkey for Clear Highlight from pcbnew to eeschema 2021-09-12 17:38:02 -04:00
Jon Evans ed342d0cc0 Do not clear highlighting on a cancel event
Fixes https://gitlab.com/kicad/code/kicad/-/issues/9035
2021-09-12 17:35:44 -04:00
Seth Hillbrand 29c2f3b7d4 Prevent jumping into disambiguation if moved
Moving points should not be overrided by disambiguation menu, so we
track where the disambiguation event started and only trigger the menu
if the mouse hasn't moved a full unit in x/y

Fixes https://gitlab.com/kicad/code/kicad/issues/9132
2021-09-09 16:24:18 -07:00
Wayne Stambaugh 451f8eefc0 Eeschema: fix broken project symbol rescue bug.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/9111
2021-09-09 10:21:09 -04:00
Seth Hillbrand c8b2e69332 Check if selection is primary tool
Previously, we were checking if the selection tool was the top of the
stack but this ignored many other "secondary" tools that might be
running such as the point editor.  These still allow the selection tool
to handle events such as clicks.  This change allows the selection tool
to handle clicks when it is the primary tool on the stack rather than
the top

Fixes https://gitlab.com/kicad/code/kicad/issues/9110
2021-09-07 10:42:01 -07:00
Wayne Stambaugh 4ee0b28ffc Coverity issue fixes.
Fix Coverity issues 338623, 338716, and 338717.
2021-09-07 13:38:56 -04:00
Seth Hillbrand 0f38a35531 Be sure to stop the timer when triggering d-click
Some mice apparently trigger double-click without triggering a click, so
stop the timer when we receive this event

Fixes https://gitlab.com/kicad/code/kicad/issues/9106
2021-09-06 12:27:31 -07:00
Seth Hillbrand 240c3b75c4 Move selection disambiguation to long-click
This standardizes selection tools in SELECTION_TOOL class to be able to
handle a long-click as asking for a non-heuristic disambiguation menu.

Fixes https://gitlab.com/kicad/code/kicad/issues/8490
2021-09-05 13:42:51 -07:00
Marek Roszko 74b8f14ec3 Don't find when the dialog isn't open or the search is blank (which resulted in full highlighting)
Fix #9056
2021-09-04 23:48:06 -04:00
Seth Hillbrand b0ba8b01c4 Update RTree when rotating components
Fixes https://gitlab.com/kicad/code/kicad/issues/9061
2021-08-31 16:36:38 -07:00
Seth Hillbrand 345f506f0c Ignore STARTPOINT/ENDPOINT in multiple item rot
Rotating multiple items does not allow for individual end points to be
selected.  This can happen when we narrowSelection by hovering on end
points.
2021-08-31 14:34:05 -07:00
Roberto Fernandez Bautista 3e32c2e5a7 eeschema: Make pasted text left aligned so that it is editable
Previously it was pasted as centre aligned, which is not supported in
the GUI.
2021-08-31 20:02:20 +01:00
Wayne Stambaugh 897269f33f Eeschema: schematic object context menu improvements.
Don't show the clean up sheet pins context menu entry when the selected
sheet doesn't have any pins to clean up.

Remove sheet has no pins to clean up nag dialog now that the context menu
entry isn't shown unless there are pins to clean up.
2021-08-30 11:52:40 -04:00
Jeff Young 6c16846b21 Remove unused lambda. 2021-08-30 13:44:28 +01:00
Jeff Young 9da8f04cb4 Cleanup sheet pins doesn't make any sense when drawing sheets.
Fixes https://gitlab.com/kicad/code/kicad/issues/9044
2021-08-30 13:11:37 +01:00
Seth Hillbrand 871bdbc952 Search sheets in hierarchy-order
Also fixes an issue where multiple sub-sheets were skipped in certain
cases

Fixes https://gitlab.com/kicad/code/kicad/issues/8972
2021-08-27 13:03:18 -07:00
Mike Williams d18d993eac Eeschema: find next key shouldn't launch find dialog
Adds some general cleanups of overridden find functions while I'm in there.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/8967
2021-08-27 18:15:36 +00:00
Jon Evans 0463fc4c2b Fix several bugs and refactor schematic saving
Having the logic split between three different paths was
a bit much, this should hopefully be a bit easier to
maintain.  All save logic now goes through SaveProject;
individual file writing is now a private function.

Also change Save As to Save Copy As in project manager
mode, as we don't want to change projects from inside
the editor in project manager mode.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/9015
2021-08-23 23:01:08 -04:00
Wayne Stambaugh 1d8fd22cd8 Symbol editor: fix message panel units when selecting from combo box.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8991
2021-08-20 15:45:57 -04:00
Seth Hillbrand 75e4fa9b75 Handle multiple annotation in search
New schematic format needs to search client screen paths instead of
maintaining multiple copies in a flat format.
2021-08-20 10:24:08 -07:00
Seth Hillbrand 729ba1e301 Ensure deterministic Find/Replace ordering
Sorts first by x and then by y when returning search order

Fixes https://gitlab.com/kicad/code/kicad/issues/8972
2021-08-20 08:42:06 -07:00
Jeff Young fc4d748bdc Fix bugs in sheets.
1) Default_line_width is in mils, not IU.
2) Plot sheet fields.

Fixes https://gitlab.com/kicad/code/kicad/issues/8984
2021-08-17 13:21:52 +01:00
Jon Evans 766b67a8f1 Tune selection of wire endpoints near other objects
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8941
2021-08-12 22:04:24 -04:00
Jeff Young 6eb59b9d9e Dialog naming conventions. 2021-08-06 20:54:26 +01:00
Jeff Young 95b87ba29a Freshen microwave polygon dialog and remove a bunch of dead code. 2021-08-03 01:11:11 +01:00
Jeff Young d40712d9d6 Formatting and message consistency. 2021-08-01 21:31:23 +01:00
Jeff Young c716548b29 Enable autoplace whenever sel contains at least 1 field owner.
Fixes https://gitlab.com/kicad/code/kicad/issues/8886
2021-07-29 20:23:56 +01:00
Jeff Young 539d14ce94 Fix hang-over from legacy canvas where we only looked at sel head.
Fixes https://gitlab.com/kicad/code/kicad/issues/8886
2021-07-29 16:52:22 +01:00
Jeff Young 6aaf4413b3 Fix kicad_string.h / string.cpp mismatch.
They don't define a KiCad string class, so the header file name was
somewhat misleading. But the fact that they didn't match definitely
made coding more difficult.
2021-07-29 16:03:25 +01:00
Jeff Young f221220fe2 Rename layer ids file.
It hasn't had anything to do with colors or visibility for some time
now.
2021-07-29 16:03:25 +01:00
Wayne Stambaugh f233f4a0a9 Expunge EDA_FILE_SELECTOR.
EDA_FILE_SELECTOR was just an obfuscation of wxFileSelector().
2021-07-28 14:12:51 -04:00
Jeff Young 19de38bbae Avoid Mac-standard Cmd+H as well.
Fixes https://gitlab.com/kicad/code/kicad/issues/8864
2021-07-27 22:26:13 +01:00
Mike Williams 2c766bdb2b Eeschema: fix assigning netclass to buses
Buses with at least one member can use assign netclass functionality to
set all members to that netclass.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/8743
2021-07-27 20:48:25 +00:00
Jeff Young dd5676f4bc Implement a safer (RAII) tool re-entrancy guard.
Fixes https://gitlab.com/kicad/code/kicad/issues/8873
2021-07-27 16:37:34 +01:00
Wayne Stambaugh 78e5e98ea0 Pass VECTOR2I objects by reference instead of on the stack. 2021-07-27 08:41:27 -04:00
Wayne Stambaugh 8fd83cbb95 Pass wxPoint objects by reference instead of on the stack. 2021-07-26 15:35:33 -04:00
Mike Williams 13a03f77d3 Eeschema: Fix for delete key in wire tool
Delete key was not working for items selected with wire tool active.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/8841
2021-07-25 15:17:49 -04:00
jean-pierre charras 1aadf45947 DIALOG_SHIM: fix not working initial size when creating a dialog.
The first time a DIALOG_SHIM was created, with a given size, this size
was not taken in account. This this is now forced.
(when recreated during a session, this is the last dialog size that is used)
2021-07-24 18:59:28 +02:00
jean-pierre charras dbf17f83ed Minor fixes (DIALOG_DISPLAY_HTML_TEXT_BASE: ensure min size is working). 2021-07-24 17:03:36 +02:00
jean-pierre charras 9820e89268 EE_INSPECTION_TOOL::CheckSymbol(): fix incorrect test about pins on grid.
(the minimal grid was 25 internal units instead of 25 mils)
Also the coordinates in messages are now printed in current user units.
2021-07-23 18:23:25 +02:00
jean-pierre charras bff0307ac0 Edit pin number: fix a crash when a pin is common to all units (i.e. having a unit id = 0)
Fixes #8824
https://gitlab.com/kicad/code/kicad/issues/8824
2021-07-20 16:49:53 +02:00
Jeff Young 4317848cfe Only title-caps "our" field names.
Fixes https://gitlab.com/kicad/code/kicad/issues/8803
2021-07-19 14:43:57 +01:00
Wayne Stambaugh cb72da294a More NULL expunging. 2021-07-16 16:13:41 -04:00
Jeff Young 0b4bb9378b Use consistent terminology.
Fixes https://gitlab.com/kicad/code/kicad/issues/8777
2021-07-12 11:59:07 +01:00
Jeff Young 46701c1195 Don't allow undo record to get pushed during an undo.
When doing a schematic cleanup, for instance, we were breaking wires
and pushing undo records on to the stack.  Needless to say, this was
pretty unexpected for the rest of the undo framework and caused all
kinds of mayhem (including crashes in some cases).

Fixes https://gitlab.com/kicad/code/kicad/issues/8704
2021-07-08 19:43:15 +01:00
Mikolaj Wielgus 1c28ea0577 Do not create selection with simulator probe tool 2021-07-08 03:15:15 +00:00
Jeff Young 66eb2ddeb5 Remove auto when not needed for line length. 2021-07-07 20:05:50 +01:00
Jeff Young f46486bc3e Naming conventions. 2021-07-03 21:43:57 +01:00
Jeff Young 04764c9224 Allow dragging of fields in symbol aliases.
Fixes https://gitlab.com/kicad/code/kicad/issues/8698
2021-07-01 21:03:53 +01:00
Wayne Stambaugh 175b474c3e Coverity issue fixes.
Fixes issues #280412, #314755, #329615, #332459, #332157, #332167,
2021-06-30 18:08:49 -04:00
Jeff Young b1b4caee6a Escape "naughty" characters in symbol names.
It's tempting to say that we don't need to exclude filename chars
from symbols, but we might regret that decision down the road.  Better
to just escape them.

Fixes https://gitlab.com/kicad/code/kicad/issues/8694
2021-06-30 13:12:57 +01:00
Jeff Young a1dfc36233 More error message regularization. 2021-06-29 01:08:26 +01:00
Roberto Fernandez Bautista 466536d509 Make sure hierarchy is up to date before checking duplicate sheet names
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8654
2021-06-22 21:41:50 +01:00
Jeff Young b72545a432 Implement more aggressive re-entrancy blocking for drawing tools.
A similar strategy was already implemented in Eeschema.

Also adds some safety around clearing of autopan and mouse capture.

Fixes https://gitlab.com/kicad/code/kicad/issues/6909
2021-06-20 11:09:55 +01:00
Jeff Young 389287e942 A bit more Part -> Symbol. 2021-06-17 22:24:41 +01:00
Jeff Young 0484ca5564 Separate LIB_PIN and SCH_PIN GetShownName/Number processing.
SCH_PIN wasn't handling the legacy empty string token (~), but
more importantly this will allow text variable resolution specific
to the schematic.

Fixes https://gitlab.com/kicad/code/kicad/issues/8625
2021-06-17 10:52:46 +01:00
Wayne Stambaugh ff099453c8 Rename class_library.[h|cpp] to symbol_library.[h|cpp]. 2021-06-15 09:24:55 -04:00
Wayne Stambaugh ee3eac325d Expunge the use of the word part from Eeschema code. 2021-06-15 08:32:11 -04:00
Wayne Stambaugh fb46cd8bc5 Expunge the use of the word component from Eeschema code.
The only exception to this is the SPICE simulator's use of component
when referring to physical component (R, L, C, etc.) values.
2021-06-14 14:00:21 -04:00
Wayne Stambaugh 71c183d7bb Rename LIB_PART to LIB_SYMBOL. 2021-06-14 07:11:17 -04:00
Jeff Young a1a48a4c42 Don't allow rotation/mirroring while dragging.
Fixes https://gitlab.com/kicad/code/kicad/issues/8523
2021-06-13 20:22:25 +01:00
Jeff Young d9cb5a3015 Make sure text gets rotated, not just position.
Fixes https://gitlab.com/kicad/code/kicad/issues/7964
2021-06-13 20:22:25 +01:00
Jeff Young bcdec0dea7 Move '~' pin name processing to LIB_PIN and SCH_PIN.
This will also allow us to do variable processing in the future if
desired.
2021-06-12 19:54:34 +01:00
Wayne Stambaugh fbc135e69f Rename SCH_COMPONENT to SCH_SYMBOL. 2021-06-10 10:34:49 -04:00
luz paz 5f1e9bc8a7 Fix typos in source code 2021-06-10 01:24:15 +00:00
luz paz f968fc8719 Fix source comment / documentation typos 2021-06-09 19:32:58 +00:00
Ian McInerney dc27079b71 cleanup tool event and tool action includes 2021-06-06 18:26:26 +01:00
Jon Evans 9ffa2955b7 Fix drag of bus wire creating net wires 2021-06-03 22:29:04 -04:00
Marek Roszko 4df3cb912d Remove another leaky wx/log.h header 2021-06-03 08:11:15 -04:00
Marek Roszko b5b76eedf7 Avoid sharing gdicmn for just bitmaps 2021-06-03 01:46:04 -04:00
Ian McInerney f03ca3259e Remove unused Boost code/includes 2021-06-02 18:39:43 +01:00
Seth Hillbrand c7d188a8d0 Centralizing SCRIPTING class 2021-06-01 20:18:24 +00:00
Jeff Young c4cabb38d5 More worksheet -> drawing sheet cleanup.
Fixes https://gitlab.com/kicad/code/kicad/issues/8516
2021-05-31 12:26:44 +01:00
Jeff Young 0598c82972 Terminology (use present tense for flags). 2021-05-31 12:26:44 +01:00
Jeff Young 1be2c8cc40 More trouble with the IS_MOVED flag.
We moved it earlier because AddItemToScreenAndUndoList() was clearing
it, but it needs to be set for AddItemToScreenAndUndoList() too.

Fixes https://gitlab.com/kicad/code/kicad/issues/8289
2021-05-31 12:26:44 +01:00
Marek Roszko 3ac5aa5369 enum class SHEET_SIDE 2021-05-30 21:23:46 -04:00
Roberto Fernandez Bautista 3fa8795f26 Fix crash in LIBEDIT when editing pins
Units in library items start at 1. 0 is reserved for "all units".
Previous code was requesting an out of range index due to an assumption
that units start at 0.
2021-05-28 20:13:11 +01:00
Jeff Young 42eae27551 Rebuild selection after heavy lifting.
Undo does some fairly major redraws (including setting the current
screen), all of which drop the selection and cancel interactive tools.
Make sure the selection is re-built *after* all those run.

Fixes https://gitlab.com/kicad/code/kicad/issues/8492
2021-05-27 14:25:37 +01:00
david-beinder 64cd401bdb Delete Tool: Fix missing "Item Locked" popup
Fixes problem identified in https://gitlab.com/kicad/code/kicad/-/issues/8392
Removes same popup from schematic tool because SCH_ITEM can not be locked
2021-05-27 05:38:51 +00:00
Jeff Young 45ba067642 Update SCH_SCREENs RTree after placing new symbol.
Fixes https://gitlab.com/kicad/code/kicad/issues/8451
2021-05-25 15:10:10 +01:00
Roberto Fernandez Bautista 6b764f893a Assign a page number to all sheet instances when adding a sheet
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8208
2021-05-21 22:52:40 +01:00
Roberto Fernandez Bautista 5cf3e6d31a eeschema: Duplicate() is a Copy() followed by a Paste()
The only subtle difference is that Duplicate() does not modify the
clipboard contents so we need to keep a local variable in which to
store the result of a Copy()
2021-05-21 22:52:34 +01:00
Wayne Stambaugh ebd53cd45c Eeschema: fix text justification terminology.
Use justification instead of orientation relative to the anchor point when
describing text direction and alignment.  This seems to be the preferred
method by most users so hopefully this will eliminate some confusion.

Fix a bug in the s-expression schematic parser that failed to take into
account how graphical text alignment is defined for graphic text objects
compared to label text objects.

Fixes https://gitlab.com/kicad/code/kicad/issues/6489
2021-05-14 13:44:17 -04:00
Jeff Young 2a856890e6 Allow connections between sheet (pins) and symbols.
Fixes https://gitlab.com/kicad/code/kicad/issues/8305
2021-05-12 00:07:17 +01:00
Jeff Young 7356f9568d Move grid disable modifier from ALT to CTRL.
Also had to move the H/V/45 disable modifier from CTRL to SHIFT.

Fixes https://gitlab.com/kicad/code/kicad/issues/8124
2021-05-09 20:17:40 +01:00
Jeff Young 7c66a0a594 Selection routines should never be snapped. 2021-05-09 18:14:41 +01:00
Jeff Young f03152a548 Add some more tools to the "don't allow tool loop interruption" set.
See also b78ba12739.

Fixes https://gitlab.com/kicad/code/kicad/issues/8071
2021-05-09 17:30:32 +01:00
Jeff Young b78ba12739 Don't allow activation of other tools in the middle of a move.
Fixes https://gitlab.com/kicad/code/kicad/issues/8116
2021-05-08 20:49:51 +01:00
david-beinder 063f26531c Make LIB_PART::GetPins() return data for derived symbols
https://gitlab.com/kicad/code/kicad/-/issues/8212
2021-05-06 22:00:06 +00:00
Ian McInerney 5378cacee3 Don't make a copy when looping 2021-05-06 21:56:21 +01:00
Jeff Young 2e3860de6f Naming conventions. 2021-05-05 22:58:40 +01:00
Roberto Fernandez Bautista f2677340f2 Access the new paste behaviour via a new Paste Special... dialog
ADDED Paste Special... action in pcbnew

CHANGED Additional options for Paste Special... in eeschema, including
"Assign unique reference designators to pasted instance"
2021-05-03 19:38:32 +01:00
Roberto Fernandez Bautista 98c8f43320 eeschema and pcbnew paste: consistent paste behaviour
Duplicates are reannotated on paste in the same way in pcbnew and
eeschema such that when copying and pasting the same block in the
pcb and schematic, the reference designators will match.
2021-05-03 19:38:32 +01:00
Roberto Fernandez Bautista 5822cd85c4 Fix eeschema copy/paste: save and load sheet and symbol instances
Save sheet and symbol instance information to the clipboard on copy

Load sheet and symbol instance information from the clipboard on paste
and renumber page numbers after loading.

Correctly handle pasting in a multiple hierarchy by ensuring symbol and
sheet instances are updated for all instances of the destination sheet.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/8207
2021-05-03 19:38:31 +01:00
jean-pierre charras 0427bda768 Remove useless wx/wx.h include, that create sometimes compil warnings on msys.
wx/wx.h includes all wxWidgets .h files, and sometimes creates collision
names in #define between kicad and windows headers
Moreover, blindly including a lot of useless files is compil time consuming
2021-05-01 19:32:15 +02:00
Jeff Young 1ed54d2314 Make sure find/replace respects different values in the hierarchy.
Fixes https://gitlab.com/kicad/code/kicad/issues/8328
2021-04-30 18:39:21 +01:00
Roberto Fernandez Bautista 9b35757e18 Refactor AppendSymbol and AppendMultiUnitSymbol 2021-04-30 11:03:21 +00:00
Roberto Fernandez Bautista 0c91bea751 Fix eeschema reannotation: ensure no duplicate references are created
Also implements reannotation of a selection

ADDED: Ability to reannotate a selection in eeschema

Fixes https://gitlab.com/kicad/code/kicad/-/issues/2209
2021-04-30 11:03:21 +00:00
Wayne Stambaugh 54e18f6b1f Pcbnew: remove update schematic option for geographical annotation dialog.
REMOVED: Update schematic option from geographical annotation dialog due
to potential issues with incomplete and/or broken updates.  Use "Update
Schematic from PCB" tool to update reference designation changes.

Forcing the footprint reference designator changes back to the schematic
without checking any other board changes in the schematic could leave the
schematic in a undefined state.  The update schematic from board tool is
the correct method to sync any changes from the board.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/8042
2021-04-22 12:45:59 -04:00
Jeff Young 620aa315f6 Show infobar error when asking for empty datasheet.
Fixes https://gitlab.com/kicad/code/kicad/issues/8260
2021-04-21 15:40:59 +01:00
Jon Evans afe0c79a1e Sheet pins need new UUIDs, too 2021-04-18 22:14:15 -04:00
Jon Evans 1e52f0a180 Make sure pasted symbols get new pin UUIDs
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8218
2021-04-18 21:53:38 -04:00
jean-pierre charras 15353e3c33 Eeschema: when placing a new symbol or image, avoid starting the autopan.
When activate the new symbol placement, the mouse cursor is outside the canvas.
Therefore a autopan was started and not so easy to stop.
Now the mouse cursor (and the graphic cursor) are moved to a better location inside the canvas.
Fixes #8156
https://gitlab.com/kicad/code/kicad/issues/8156
2021-04-11 18:01:25 +02:00
Jeff Young cc956695ae Hit test for worksheet before adding Properties to menu.
Fixes https://gitlab.com/kicad/code/kicad/issues/8171
2021-04-11 14:18:35 +01:00
Jeff Young 21d4197eab Apply SPECIAL_CASE_LABEL_INFO architecture to one-ended-drag.
We've been doing this for some time to wires that are attached to
the moving block (and therefore have the other end anchored).  However
we also need to apply it when dragging a single end of a wire.

Fixes https://gitlab.com/kicad/code/kicad/issues/7807
2021-04-07 14:40:07 +01:00
Jeff Young 30a073c2bb Cleanup. 2021-04-07 14:40:07 +01:00
Jeff Young 895f3de455 Formatting. 2021-04-07 14:40:07 +01:00
Wayne Stambaugh 2b86b34124 Eeschema: split out SCH_SHEET_PIN declarations into separate header. 2021-04-06 17:15:49 -04:00
Roberto Fernandez Bautista 7d9ee76f64 Don't iterate through m_selection if deleting items from it
Use the copied container saved_selection instead

Fixes https://gitlab.com/kicad/code/kicad/-/issues/8126
2021-04-05 18:40:40 +00:00
Ian McInerney e08387ce3d Make the GAL responsible for the native cursor management
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
2021-04-05 02:36:12 +01:00
Jeff Young 329577cc5c Add new text items/labels to the selection so rotate/mirror/etc. work.
Also clears the selection after finding the sheet in the sheet pin
case so that the sheet itself doesn't get rotated/mirrored/etc.

Fixes https://gitlab.com/kicad/code/kicad/issues/8108
2021-04-03 19:41:24 +01:00
Jeff Young 32e8a17cc0 Fix nullptr error.
Fixes https://gitlab.com/kicad/code/kicad/issues/8102
2021-04-03 11:15:11 +01:00
Ian McInerney bb95761642 Remove unused variable
item is already an SCH_ITEM, so the static cast is pointless.
2021-04-02 19:26:22 +01:00
Jeff Young c7d689a022 Show field children when creating new labels.
And in particular, show reasonable intersheet reference facsimiles.
2021-04-02 15:15:07 +01:00
Ian McInerney 0a0935e0f3 Remove ACTIONS::TranslateLegacyId and TOOL_DISPATCHER::DispatchWxCommand
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).
2021-03-30 23:20:22 +00:00
Jeff Young f2e68e68d0 Add "Hide Tree" context menu options when tree has no selection.
Also cleans up some other code to be more consistent between symbol
editor and footprint editor.

Fixes https://gitlab.com/kicad/code/kicad/issues/8052
2021-03-29 12:02:00 +01:00
Jeff Young 14e73d24dc Naming conventions. 2021-03-29 11:46:05 +01:00
Jeff Young 455e7dc3a8 Reorder for better readability and consistency. 2021-03-29 11:04:06 +01:00
Jeff Young 1b163c5dd3 Don't eat delete event when there's no item being drawn.
Fixes https://gitlab.com/kicad/code/kicad/issues/8061
2021-03-29 10:59:45 +01:00
Jeff Young 0561ce903e Don't remove IS_MOVED flag too early.
Fixes https://gitlab.com/kicad/code/kicad/issues/8056
2021-03-28 20:05:41 +01:00
Jeff Young c32932a311 Naming conventions. 2021-03-28 20:05:41 +01:00
Ian McInerney 42c6af4bd8 Cleanup ACTION_MENU creation in some places
The ACTION_MENU constructor now takes the tool as an argument,
so the call to SetTool() immediately following it can be removed
and the tool just passed into the constructor.
2021-03-27 19:16:58 +00:00
jean-pierre charras bbd7b4ca8c Eeschema, selection tool: uniformize the cursor shape and the actual modifiers.
SHIFT, CTRL, ALT modifier keys were handled in 2 different codes, one for
the selection tool and another to modify the mouse cursor shape, with 2
different configs.
Now the modifiers are managed from only one function.
Pcbnew: group also SHIFT, CTRL, ALT modifier keys management to a specific function.
Fixes #8021
https://gitlab.com/kicad/code/kicad/issues/8021
2021-03-25 10:28:20 +01:00
Wayne Stambaugh b37b7d53b4 Fix geographic annotation bug when back annotating to schematic.
For some reason, the footprint UUID was being prefixed to the sheet path
which caused the symbol look up by sheet path to fail.  An option was
added to not do this when the geographical back annotation to the schematic
is performed.
2021-03-24 09:57:36 -04:00
Roberto Fernandez Bautista be51be22a7 Update Page Number when Duplicating or Pasting sheets
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7872

Also, update hierarchy before renaming pasted sheets
Avoids duplicate sheet names when pasting multiple sheets
2021-03-23 02:48:07 +00:00
Jeff Young cf4cbea8a1 Use a more robust storage of items added to drag.
We kept having various issues of the pointer list going stale.  This
will prevent all permutations of that.

Also while I was in there I fixed the double-move thing (see bug
number).

Fixes https://gitlab.com/kicad/code/kicad/issues/7910
2021-03-22 13:51:10 +00:00
Jon Evans c5c348538e Fix some STL asserts in EE_SELECTION_TOOL 2021-03-21 22:01:45 -04:00
Jon Evans c04e19f9ac Include optimization: move some things from common.h to point-of-use 2021-03-20 12:09:18 -04:00
Jeff Young f0e6f812ff Edit One Field improvements.
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
2021-03-20 00:41:09 +00:00
Jeff Young 2e129d9b47 Naming conventions and other cleanup. 2021-03-19 23:06:19 +00:00
Jon Evans 4b46c0c954 Make sure nested settings get released in dtor
Also fix a crash if sim window can't be created because
ngspice shared library could not be found

Fixes https://gitlab.com/kicad/code/kicad/-/issues/7969
2021-03-19 19:04:27 -04:00
Jeff Young e206a9d39a Naming conventions. 2021-03-18 12:28:24 +00:00
Jeff Young cc70a9fa98 New components must be added to the screen.
Fixes https://gitlab.com/kicad/code/kicad/issues/7952
2021-03-18 12:28:24 +00:00
Jeff Young 35d17929ff Add specific warning for no symbol library selected.
Fixes https://gitlab.com/kicad/code/kicad/issues/7954
2021-03-18 12:28:24 +00:00
Jeff Young 7e682e9948 Don't allow pins on corners.
Fixes https://gitlab.com/kicad/code/kicad/issues/7917
2021-03-16 22:03:08 +00:00
Jeff Young 30fdba4cbb Finish grid-snapping impl. 2021-03-16 22:03:08 +00:00
Mikolaj Wielgus ee4bc8b1d0 Fix default line width for symbol editor graphic items, add validation
There was a mils to iu conversion missing for line width (the default
values are in mils).

Fixes https://gitlab.com/kicad/code/kicad/issues/7813
2021-03-16 13:50:41 +00:00
Jeff Young 2bafc1af00 Give up on using preview layer for PlaceComponent.
1) Cloning the component fails to select all its pins.
2) Something about the layer compositing causes light selection shadows
to get even lighter.  The default pretty much disappears.

Fixes https://gitlab.com/kicad/code/kicad/issues/7908
2021-03-15 19:04:59 +00:00
Jeff Young 573dd36515 Handle <delete> in move and drawing tools.
Fixes https://gitlab.com/kicad/code/kicad/issues/7924
2021-03-15 14:23:54 +00:00
Jeff Young afab60ae06 Fixes for autoplace fields.
1) Don't factor in pin names when computing symbol body boundingbox.
2) Grid-snap only in the axis corresponding to the layout side.
3) We only need interline spacing *between* lines, not for each line.
4) Also cleans up the unit checking logic as the unit can't be more
than 0 unless it's a multi-unit symbol.

Fixes https://gitlab.com/kicad/code/kicad/issues/7907
2021-03-15 02:23:29 +00:00
Jeff Young 7415bf0c62 Don't hide (or disable) options if it's not obvious why.
It deprives us of the opportunity to inform the user what the conditions
are.
2021-03-15 02:23:29 +00:00
Jeff Young e34734c230 Make sure pasted sheet instances get added.
Fixes https://gitlab.com/kicad/code/kicad/issues/7872
2021-03-13 16:34:30 +00:00
Jon Evans 18037e2f65 Rework bitmap system to load from archived PNGs
Bitmaps are now identified by an enum class instead of by pointers.
Bitmap loading and caching is now handled by a class in common, and
we no longer compile most bitmaps into the binary, so there is no
longer a bitmaps static library.

Instead, bitmaps are archived to a .tar.gz file which is installed
in ${KICAD_DATA}/resources/images.tar.gz

The source PNGs are checked in to Git as the original CPP files were,
so that people can build without the required dependencies to convert
SVGs to PNGs.

Initial support is also added for dark theme icons, although this
is not yet exposed in the GUI.

Stubs are present for multi-resolution image resources, but this is
not fully-baked yet and could use some refinement.
2021-03-11 08:37:35 -05:00
Jeff Young 068e85c567 Reset moved flag after completing move.
Fixes https://gitlab.com/kicad/code/kicad/issues/7818
2021-03-10 16:00:28 +00:00
Jeff Young e48f86bfd6 Move default assignment on Mac.
CHANGED: add corner and repeat last command now default to 'I' instead
of '<insert>' on Mac.

1) wxWidgets doesn't currently display the correct graphic in the menu
for the insert key
2) Mac laptops don't have an instert key

Fixes https://gitlab.com/kicad/code/kicad/issues/5016
2021-03-10 13:35:04 +00:00
Jeff Young 8be3ff5a0a Perform a slightly more aggressive cleanup.
Also removes the functionality that selects the newly-added item as
we don't do that with any of the other drawing tools.

Fixes https://gitlab.com/kicad/code/kicad/issues/7833
2021-03-09 21:42:35 +00:00
Jon Evans 720147d272 Remove transitive inclusion of bitmaps.h 2021-03-07 16:08:57 -05:00
Jeff Young 22b4a74bfa Don't forget intersheet refs when collecting non-view items.
Fixes https://gitlab.com/kicad/code/kicad/issues/7819
2021-03-07 15:04:01 +00:00
Jeff Young 3ab1ef7b83 Formatting. 2021-03-07 15:04:01 +00:00
PJM 0fc8a9d89a Eeschema: Fix ctrl-MMB double click to perform 'Zoom to Objects'
CHANGED: Ctrl-middle mouse button double click should perform
'Zoom to Objects' in Eeschema, but a change in modifier key handling
broke it.  This MR restores the functionality.

Fixes https://gitlab.com/kicad/code/kicad/issues/7803
2021-03-04 22:43:03 -08:00
Jon Evans 4ddb942ec0 Do not allow drag selection or drag move when already moving something
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7800
2021-03-04 19:01:31 -05:00
Wayne Stambaugh 7a00e01b3e Eeschema: fix false positive library symbol changed ERC errors.
This fix required sorting all of the LIB_PART draw items to ensure
accurate comparison between the symbols stored in the schematic and the
original library symbols.  This has a noticeable impact on symbol library
load performance.  It may also cause significant changes the next time
the library is saved due to changes in the draw item sorting.  Hashing
may be a better solution here but this addressed the immediate problem.

A skeleton method SCH_SCREEN::SwapSymbolLinks() was added because there
is most likely an issue with orphaned symbols in the schematic library
symbol cache during undo/redo operations.  More testing is required to
verify this.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/7263
2021-03-04 17:59:24 -05:00
Jon Evans 1fc399fa31 Fix a few more cases of picking up wrong mouse positions
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7745
2021-03-03 20:09:24 -05:00
Ian McInerney 908de37e7c Don't hardcode the file extensions where possible 2021-03-03 01:13:59 +00:00
Jonathan Haas f90164f7cf Fix some typos and improve wording 2021-03-02 19:13:49 +01:00
Jon Evans 375cd12258 Eeschema: never replace event position in wire drawing tool
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7745
2021-03-01 12:17:18 -05:00
jean-pierre charras 9797bc5f25 Left Mouse Button: use same modifiers for Pcbnew, Eeschema and pleditor for selection.
It also means the "force disambiguation menu" uses now Ctrl in Eeschema and pleditor.
2021-02-25 08:22:35 +01:00
Seth Hillbrand 0bab025832 Fixup toolchaining for immediate mode
The move tool can stack on others, so when we re-enter the previous tool
this caused another immediate action.  We flag re-entry in the tool
stack to check for this and avoid unexpected tool starts
2021-02-24 10:44:54 -08:00
Jeff Young 2fd5f25c3c Allow expand selection to work (even if you probably can't get there).
I think the guessSelectionCandidates narrows down to a single item
in 99.9% of cases, so we can probably remove this entirely.  But for
now it's safer just to fix it.
2021-02-24 14:12:32 +00:00
Wayne Stambaugh 1786ae8773 Eeschema: use symbol nomenclature for object file naming. 2021-02-24 08:48:02 -05:00
Seth Hillbrand 0518d9c546 Add more force-immediate tools 2021-02-23 17:05:03 -08:00
Seth Hillbrand 005622027f Add component/footprint is always immediate
When a user clicks on the "Add Component", "Add Power" or "Add Footprint"
icon, they want to add the item.  Requiring an extra click on the screen
before selecting the component/footprint is not needed.
2021-02-23 16:15:31 -08:00
Jeff Young 7318417ca4 Fix typo in expand-selection-disambiguation menu logic.
Fixes https://gitlab.com/kicad/code/kicad/issues/7654
2021-02-23 22:09:00 +00:00
Jeff Young c0487e5c87 Don't leave the cursor position forced.
Fixes https://gitlab.com/kicad/code/kicad/issues/7665
2021-02-23 21:43:41 +00:00
Jeff Young 8755f55956 Fix copy-paste error.
Fixes https://gitlab.com/kicad/code/kicad/issues/7674
2021-02-23 17:50:11 +00:00
Jeff Young a9ea617069 Add some defensive code for double-moves.
Fixes https://gitlab.com/kicad/code/kicad/issues/7665

Fixes https://gitlab.com/kicad/code/kicad/issues/7502
2021-02-23 16:38:18 +00:00
Jeff Young 9eb2113a50 Make TwoClickPlace cursor handling match SingleClickPlace. 2021-02-23 15:28:45 +00:00
Jeff Young d7b6d4a541 Warn user when placing a junction is just going to remove it again.
Also removes a duplicate call to SaveCopyForRepeatItem (which has
already been done in AddItemToScreenAndUndoList).

Fixes https://gitlab.com/kicad/code/kicad/issues/7651
2021-02-23 12:51:15 +00:00
Jeff Young a3b9e8ddb4 Round 2 of Worksheet -> Drawing Sheet. 2021-02-23 11:57:44 +00:00
Jeff Young cad5198ab7 Worksheet -> (industry standard) Drawing Sheet. 2021-02-22 17:35:46 +00:00
Jeff Young 09d3667bce Fix bone-headed mess up of two-click-place.
Original architecture was to pass KICAD_T in to specify what kind of
object you wanted.  That didn't work well with things like cursor
shape so it was moved to setting booleans based on the ACTION.  When
I cleared out the old KICAD_T stuff I missed one case where it was
still used.  That is now corrected as well.

Fixes https://gitlab.com/kicad/code/kicad/issues/7651
2021-02-22 11:54:03 +00:00
Jeff Young 781d293b60 Add option for text updating to Update Symbol.
Fixes https://gitlab.com/kicad/code/kicad/issues/6420
2021-02-22 00:36:40 +00:00
Jeff Young afb4bbde47 Bug fixes to Eeschema context menu.
1) Fix typo in SingleSymbolOrPower
2) Remove Edit reference/value/footprint items for power symbols
2021-02-21 23:45:32 +00:00
Mikolaj Wielgus f9c42585fb Force immediate action for auto start wire feature
Fixes https://gitlab.com/kicad/code/kicad/issues/7503
2021-02-21 18:43:34 +00:00
Jeff Young 18d4d517b0 Implement RMB Import Sheet Pin as a single-shot.
Fixes https://gitlab.com/kicad/code/kicad/issues/7638
2021-02-21 15:46:53 +00:00
Marek Roszko 907e282347 Silence some msvc warnings
- exception variables that were unused
- RAYSEG2D improperly foward declared with class instead of struct
- unused vars
2021-02-20 11:58:55 -05:00
Jeff Young 26cb05051b fixup! Whittle down library tree context menus to be more contextual. 2021-02-19 19:07:45 +00:00
Jeff Young 57e043e0e6 Don't allow moving markers. Do allow excluding them. 2021-02-19 19:07:45 +00:00
Jeff Young c2f68ca4da Whittle down library tree context menus to be more contextual.
(From discussion on Zulip.)
2021-02-19 19:07:45 +00:00
James Jackson 48853d0c88 Eeschema: Allow auto-wiring / drawing from unconnected bus and graphic line endpoints
Fixes https://gitlab.com/kicad/code/kicad/issues/7537
2021-02-19 17:15:27 +00:00
Jeff Young b43db7cd7d Fix assert in Symbol Editor.
Also allows some symbol lib operations when we know the context even
if the library itself isn't selected.  (For instance, select a symbol,
copy, paste.)
2021-02-18 18:08:37 +00:00
Seth Hillbrand a25dfcd1b4 Allow "Update Symbol" command on power symbols
Power symbols can be modified in the library so it is useful to allow
them to be updated with the right-click menu
2021-02-17 15:31:22 -08:00
Jeff Young 2c4d53d994 Minor cleanup. 2021-02-16 21:11:36 +00:00
Jeff Young 2a7e60960a Use standard mirror icons & terminology.
Also use standard group icons.

Also put both (and rotate commands) in toolbar.

Fixes https://gitlab.com/kicad/code/kicad/issues/7504
2021-02-16 21:11:36 +00:00
Seth Hillbrand 24795f5b12 Fix overzealous breakSegments()
We cannot break segements that are merely close or on endpoints, so we
filter these prior to the break routine.  Failing to do this was
overloading our undo stack with bogus values

Fixes https://gitlab.com/kicad/code/kicad/issues/7553

Fixes https://gitlab.com/kicad/code/kicad/issues/7557

Fixes https://gitlab.com/kicad/code/kicad/issues/7554
2021-02-16 10:12:30 -08:00
Seth Hillbrand d93ba0a06a Choose half-grid for mirror
Using the half-grid allows for odd-grid counts to remain on-grid,
closer to the actual center.

Fixes https://gitlab.com/kicad/code/kicad/issues/7493
2021-02-15 11:59:04 -08:00
Seth Hillbrand 55e34592a6 Fix expand selection option in Eeschema 2021-02-15 10:53:17 -08:00
James 9205f1571d EE_SELECTION_TOOL correctly identifies buses and wires for auto starting 2021-02-15 14:57:06 +00:00
Jeff Young cf42d692bf Remove some dead code. A little bit of comment cleanup as well. 2021-02-15 14:13:43 +00:00
Jeff Young ec20121114 Make sure schematic symbol fields get transferred to symbol editor.
Fixes https://gitlab.com/kicad/code/kicad/issues/7501
2021-02-14 18:30:14 +00:00
Jeff Young 0f463ee84b Add Update Symbol Fields dialog for derived symbols.
ADDED This allows one to update a derived symbol's fields from the
parent symbol.

Fixes https://gitlab.com/kicad/code/kicad/issues/7168
2021-02-14 12:15:26 +00:00
Seth Hillbrand 02c7fcdc84 Fix BreakWire tool
Adds ability to start new commit to eeschema, allowing all
AddItemsToUndoList to always append without foreknowledge.  Keeps newly
split wires on the tool until placed

Fixes https://gitlab.com/kicad/code/kicad/issues/7512
2021-02-12 17:17:12 -08:00
Jon Evans 1bec10b6fa Make it easy to select small things overlapping symbols
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7487
2021-02-11 12:13:46 -05:00
Jeff Young a0b9b0c3ee Improve IsSymbolEditable to differentiate fields.
Fields are editable in Aliases, but still not in Legacy libraries,
locked libraries, etc.

Fixes https://gitlab.com/kicad/code/kicad/issues/7175
2021-02-10 22:57:23 +00:00
Mikolaj Wielgus 1dc0ef01b3 Fix automatic wire tool in gridless mode
The automatic wire tool was not working in the gridless mode because the
grid snapping on/off logic present in `EE_GRID_HELPER`, based on the
value of `m_enableGrid`, was not taking into account that another check,
but for the global KiCad setting, would be performed in the `Align()`
method, which is inherited from `GRID_HELPER`.

I've modified all tests of `m_enableGrid` value to also take the global
setting into account, and moved checks for it to `Align()` method, as
it's more consistent this way.

I've also removed an override of the `Align()` method in the
`PCB_GRID_HELPER` class, as it was made redundant by my changes.

Fixes https://gitlab.com/kicad/code/kicad/issues/7402
2021-02-10 22:07:49 +00:00
Seth Hillbrand 67ccee338e Give cleanup to the move tool
For unknown reasons, the move tool was not clearing the stack when
called from the edit tool.  This moves the call to move tool to after
clearing the edit tool from the stack.  The move tool handles cleanup,
so we skip the original reason for waiting on the move tool before
finalizing the edit tool routines

Fixes https://gitlab.com/kicad/code/kicad/issues/7481
2021-02-10 10:01:05 -08:00
Jeff Young a30ae6a237 Pass un-pretty-printed bus names through menu help text.
Fixes https://gitlab.com/kicad/code/kicad/issues/7412
2021-02-10 15:03:06 +00:00
Wayne Stambaugh 356c2d3508 Symbol editor: fix symbol save as menu enable logic issue.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7451
2021-02-07 18:21:59 -05:00
Jeff Young d70cebcd62 Allow clicking on terminal point to finish a bus unfold.
Fixes https://gitlab.com/kicad/code/kicad/issues/7413
2021-02-07 00:31:00 +00:00
Michael Kavanagh db66cd50d7 Use Save As icon for Save As action in symbol editor 2021-02-06 22:51:56 +00:00
Jeff Young c2dbd28101 Simplify and harmonize symbol editor and footprint editor menus.
Some differences are due to difference between libraries being files
in symbol editor and directories in footprint editor, but this unifies
most of the rest.

It also dispenses with the save-to-library vs save-to-document distinction
in the GUI because it makes for too much variability in the GUI, was
implemented differently between the two editors, and isn't needed as much
anymore now that we have the highly visible infobar.

There was also an issue that the save-to-board icon occupies the same
location and has the same size/shape/colours as the Board Setup icon in
PCBNew.

Fixes https://gitlab.com/kicad/code/kicad/issues/7215
2021-02-06 14:33:16 +00:00
Seth Hillbrand 2aa8a3724f Don't continue until the move tool completes
Starting a new action (to add junctions) will break the move tool loop
and cancel placement.  We need to wait until the tool completes before
choosing where to place the junctions

Fixes https://gitlab.com/kicad/code/kicad/issues/7421
2021-02-05 10:18:34 -08:00
Jeff Young b4a9792e23 Add a warning for hidden power pins.
Fixes https://gitlab.com/kicad/code/kicad/issues/6440
2021-02-04 22:47:37 +00:00
Jeff Young 62254309b0 Don't rotate fields if their parent is selected.
Fixes https://gitlab.com/kicad/code/kicad/issues/7410
2021-02-04 00:05:13 +00:00
Seth Hillbrand b07c8110c8 Follow grid snapping when moving 2021-02-02 20:23:12 -08:00
Seth Hillbrand 238aa2b5b0 Snap to eeschema lines
Allows easier snapping to lines when drawing in eeschema.

Fixes https://gitlab.com/kicad/code/kicad/issues/7378
2021-02-02 19:33:18 -08:00
Seth Hillbrand ea08f1b8cb Update action short names for clarity 2021-02-02 19:33:18 -08:00
Jeff Young 147c839857 Allow drag-select of fields.
Fixes https://gitlab.com/kicad/code/kicad/issues/6662
2021-02-01 17:14:30 +00:00
Seth Hillbrand ae5d2efe07 Snap common single-click tools
Fixes https://gitlab.com/kicad/code/kicad/issues/7362

Fixes https://gitlab.com/kicad/code/kicad/issues/7363
2021-01-31 15:17:24 -08:00
Seth Hillbrand 08a932a969 Add smarts to switch selection on right-click
Now looks at how hard it is to select the item (grids) and switches only
if the mouse is more than a grid square away and there is a new item
under the mouse.

Fixes https://gitlab.com/kicad/code/kicad/issues/4455
2021-01-31 07:00:48 -08:00
Jon Evans abf0a46dce Refactor PICKER_TOOL and push up snapping disable functionality
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7348
2021-01-31 09:50:41 -05:00
Wayne Stambaugh 7737489e57 Symbol editor: don't allow new or imported symbols in read only libraries.
Fixes https://gitlab.com/kicad/code/kicad/issues/7334
2021-01-30 13:03:05 -05:00
Jeff Young 41234a8373 Implement more precise annotation-required messages.
Also moves the message to an infobar so it's more noticeable.

Fixes https://gitlab.com/kicad/code/kicad/issues/7332
2021-01-30 16:31:27 +00:00
Jon Evans 1d12f3fe4a Fix logic in selecting power symbols for net highlighting
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7339
2021-01-30 10:28:26 -05:00
Seth Hillbrand b64611af7a Make highlight net flexible with grid 2021-01-29 14:28:26 -08:00
Seth Hillbrand ea6dc0d730 Make auto-wire use snapping behavior
Forcing grid snap for the kick-start behavior loses snaps to pins that
may be desired.  This also adds force-snapping in select mode to match
the user's auto-start preferences

Fixes https://gitlab.com/kicad/code/kicad/issues/7293
2021-01-29 14:09:33 -08:00
Seth Hillbrand 02954dfaa1 Fix another instance of modifying iterators
We cannot modify the ee_rtree while iterating over it without
invalidating the iterators

Fixes https://gitlab.com/kicad/code/kicad/issues/7331
2021-01-29 08:33:44 -08:00
Jeff Young ff7742c6b8 File naming and include cleanup. 2021-01-28 11:35:18 +00:00
Jeff Young 7d6a749285 Implement a more aggressive re-entrancy check for SCH drawing tools.
Fixes https://gitlab.com/kicad/code/kicad/issues/7259
2021-01-27 19:51:11 +00:00
Jeff Young f3047829e5 Mark document dirty after drag; don't wait for point editor deactivation.
Fixes https://gitlab.com/kicad/code/kicad/issues/7285
2021-01-26 19:01:31 +00:00
david-beinder 1598e870b6 Insert the same unit on all sheet instances when adding a symbol
Fixes https://gitlab.com/kicad/code/kicad/issues/5898 (C)
2021-01-26 18:12:49 +00:00
david-beinder 2e21489acf Copy unit numbers to symbol instances when pasting sheets
Fixes https://gitlab.com/kicad/code/kicad/issues/5898 (B)
2021-01-26 18:12:49 +00:00
david-beinder 4bcd56b1f6 Always include unit number when copying to clipboard
Fixes https://gitlab.com/kicad/code/kicad/issues/5898 (A)
2021-01-26 18:12:49 +00:00
Wayne Stambaugh 4619d5e112 Fix more broken Doxygen comment specifiers. 2021-01-26 12:17:52 -05:00
Jeff Young b576ccef61 Don't double-up tools on tool stack.
Also make sure move tool gets cancelled by other tools being
activated.

Fixes https://gitlab.com/kicad/code/kicad/issues/7259
2021-01-26 10:56:19 +00:00
Jeff Young f6b7817044 Init intersheet refs props when converting to global label.
Fixes https://gitlab.com/kicad/code/kicad/issues/7252
2021-01-25 13:20:16 +00:00
Jon Evans 8ad448cbbc Don't leave point editor running when moving things in eeschema
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7227
2021-01-24 12:59:42 -05:00
Jeff Young df2d0962c6 Drop hover selection in Symbol Editor after edit action.
Fixes https://gitlab.com/kicad/code/kicad/issues/7234
2021-01-23 17:12:34 +00:00
Jeff Young d770284fa2 Add a bus instead of a wire for bus junctions.
Fixes https://gitlab.com/kicad/code/kicad/issues/7231
2021-01-23 17:04:44 +00:00
Roberto Fernandez Bautista 4f0accb714 Allow only updating reference links during back-annotation
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7190
2021-01-20 00:37:38 +00:00
Jeff Young 360953ba98 "comp" -> "symbol". 2021-01-19 23:50:40 +00:00
Michael Kavanagh d32c12b4b9 Banish new project from template to the menubar
+ remove inappropriate icon from Eeschema ctx menu
2021-01-19 22:57:25 +00:00
Michael Kavanagh 80dbc24326 Icons: remove superfluous icon
Remove icons where menu text gives context
2021-01-19 22:57:25 +00:00
Jeff Young 351074cc48 Better-encapsulate collector sources in the selection tool.
Fixes https://gitlab.com/kicad/code/kicad/issues/7191
2021-01-19 21:10:43 +00:00
Seth Hillbrand 4da28cf8f4 Fix bad dereference
Fixes https://gitlab.com/kicad/code/kicad/issues/7188
2021-01-19 08:39:22 -08:00
Jeff Young 2c9da4daa4 Make sure Check Pins works on a flattened copy of the part.
Also improved the reporting slightly (in particular for pins with
no names or pins with the empty flag ("~").

Fixes https://gitlab.com/kicad/code/kicad/issues/7165
2021-01-18 15:20:15 +00:00
Michael Kavanagh 479487ceb1 Tidy up context menus a bit
Try and put the common actions in the same places
2021-01-17 22:42:03 +00:00
jean-pierre charras e10025db64 Hierarchy navigation: keep the last used zoom level in a sheet when go back to this sheet.
Fixes #7107
https://gitlab.com/kicad/code/kicad/issues/7107
2021-01-17 09:41:49 +01:00
Jeff Young 68efdb2fff Push shared parts of GRID_HELPERs into common. 2021-01-16 23:18:10 +00:00
Jeff Young bae5825d1b Fix copy/paste error.
Fixes https://gitlab.com/kicad/code/kicad/issues/7119
2021-01-15 13:14:47 +00:00
Wayne Stambaugh 2d64613bbb Coverity fixes.
Reports 314745, 316271, and 316269.
2021-01-13 11:23:09 -05:00
Jeff Young d23b5f89b3 Don't save sheet multiple times on undo stack.
Fixes https://gitlab.com/kicad/code/kicad/issues/7063
2021-01-12 23:56:35 +00:00
Michael Kavanagh 8fba0c257b Icons: remove more inconsistencies around Select
Missed from 5d9b2d3fea
2021-01-11 23:31:24 +00:00
Jeff Young 50889a9ed6 Promote mouse drag settings to full enums. 2021-01-11 22:09:36 +00:00
Jeff Young 6c648df4c6 Support 3 drag vs. select options, and unifiy with other drag prefs.
Fixes https://gitlab.com/kicad/code/kicad/issues/5493
2021-01-11 11:50:14 +00:00
Wayne Stambaugh 0655f2c436 Symbol editor: do not disable tools and grey symbols from schematic.
Fixes https://gitlab.com/kicad/code/kicad/issues/6968
2021-01-08 18:25:18 -05:00
Jeff Young 51e6846ca5 Don't edit fields when more than one is selected.
Fixes https://gitlab.com/kicad/code/kicad/issues/7005
2021-01-08 20:43:02 +00:00
Michael Kavanagh 54724096ea Icons: consistency between Eeschema and Pcbnew 2021-01-06 00:35:20 +00:00
Michael Kavanagh b40e3a39f5 Minor cleanup. 2021-01-04 23:59:36 +00:00
Jeff Young dc65166ee7 Implement algin-to-grid for fields.
Fixes https://gitlab.com/kicad/code/kicad/issues/6530
2021-01-03 22:39:58 +00:00
Michael Kavanagh 154e19b6e7 Icons: use common prefix for small 16x16 2021-01-02 23:16:33 +00:00
Michael Kavanagh 6d3c1c7716 Icons: remove unused sources/duplicates + rename 2021-01-02 23:16:33 +00:00
Seth Hillbrand a69a4be853 Fix build error with icon names 2021-01-01 13:13:33 -08:00
Seth Hillbrand 5a0c3bf4bc Icons updates
- Remove 22px bitmaps
- Move 24px icons to icon_XXX_24 filenames
- Update convert icon thanks to MisterHW

Fixes https://gitlab.com/kicad/code/kicad/issues/6088
2021-01-01 11:00:15 -08:00