Commit Graph

1420 Commits

Author SHA1 Message Date
Jeff Young 5679b9dbdc Remove a few EDA_RECT instances. 2022-08-31 01:22:49 +01:00
Jeff Young 0c8787cbb9 Some more wxPoint/EDA_RECT yeeting. 2022-08-31 00:44:33 +01:00
Seth Hillbrand b736460e71 Move optional access from value() to *operator
`value()` throws.  Where we check for existence, we don't need to use
the throwing version and should just use the unprotected variant
2022-08-30 13:59:39 -07:00
Jeff Young 6bad88e592 Make external hypertext links show a menu before executing. 2022-08-27 23:58:13 +01:00
Jeff Young c0d2052e4b PDF hypertext menus for intersheet references. 2022-08-27 23:58:13 +01:00
Jeff Young 122a6d7f46 Move hypertext linking to user-page-numbers.
Also moves most navigation code to SCH_NAVIGATION_TOOL.
Also changes page number href to anchor syntax ('#foo').
Also adds hypertext processing to SCH_TEXTBOXes.
Also adds combobox with schematic pages to text properties dialog.
2022-08-27 19:17:43 +01:00
Roberto Fernandez Bautista 516c4cb2d3 wip refactoring: use virtual page numbers for page navigation
"Real" page numbers are just strings and could be duplicated. Virtual page
numbers are guaranteed to be unique, since they indicate a sequence.
2022-08-27 19:17:43 +01:00
Wayne Stambaugh 7c6d9f67f9 Eeschema: fix broken instance data when adding new symbol.
Pass the current SCHEMATIC object pointer in SCH_SYMBOL ctor so that
newly created symbols will update the current instance data on creation
when the current sheet instance is being displayed.

This is a better fix for the master branch and cherry-picking from 6.0
was a mess.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/12190
2022-08-26 13:35:49 -04:00
Jon Evans ae6a2a6443 ADDED: Database libraries MVP
Allows placing parts from an external database that reference symbols from another loaded library.

Includes:
- nanodbc wrapper
- database schematic library plugin
- basic tests

Fixes https://gitlab.com/kicad/code/kicad/-/issues/7436
2022-08-26 10:51:13 -04:00
Seth Hillbrand f1261e71d4 Replace boost::optional with std::optional 2022-08-25 15:50:47 -07:00
Jeff Young 9657b23139 Allow selected RefDes as proxy to selected symbol for annotate selection.
Also fixes some likely bugs regarding collection of power symbols and symbols
with no lib link for annotation.

Fixes https://gitlab.com/kicad/code/kicad/issues/12259
2022-08-24 11:31:13 +01:00
Marek Roszko e0f28fc4e1 Replace wxFindReplaceData with our own container
By dropping the flags, we can be strict with options.
Also it makes future usage of search functionality a little more "UI" framework independent
2022-08-23 22:16:51 -04:00
Jeff Young 142229089f Don't look for connections when we're just clearing the highlight.
This can happen before connectivity has been updated, and the only
reason we're looking for it anyway was to make the logic simpler.

Fixes https://gitlab.com/kicad/code/kicad/issues/12037
2022-08-23 12:57:55 +01:00
Alex 3a76d42630 Cross-probing/selection for multiple items (PCB -> SCH)
Fixes https://gitlab.com/kicad/code/kicad/issues/10469
2022-08-22 19:33:39 +00:00
Jeff Young 03454684fa Commenting. 2022-08-22 12:43:57 +01:00
Mikolaj Wielgus 6fad25f8ed Allow mapping sim model pins to arbitrary string symbol pin numbers
This change removes the incorrect assumption that symbol pin numbers are
integers and are the same as indexes in the vector storing the symbol
pins.

"~" is now used to denote a floating sim model pin.
2022-08-22 08:13:26 +02:00
Jeff Young 4f0136db3b Attempt to fix std::initializer_list lifetime issue. 2022-08-21 20:54:41 +01:00
Jeff Young b2a2d66005 Move Bus Definitions to common GUI paradigm in Schematic Setup.
Also includes a change to the std::initializer_list stuff to try and
fix a crash.
2022-08-21 12:29:51 +01:00
Jon Evans 8694c37376 Remove requirement that non-power symbols share a name and value
There is no technical reason for this restriction for non-power symbols, so let's remove it.
This will allow more flexibility and compatibility with other tools.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/9389
2022-08-20 17:43:43 -04:00
Seth Hillbrand 28876bef90 Don't close blocking dialog in backannotate
Back annotate is called from a dialog, so this will close itself but not
exit, locking the UI
2022-08-20 08:17:53 -07:00
Jeff Young aa2ad3b44c Move KICAD_T[] to std::initializer_list<KICAD_T>. 2022-08-20 10:28:11 +01:00
Seth Hillbrand 35ac39844f Clean up some auto usage
Don't make new copies of shared_ptr if we can use references.  Keep auto
usage down to hard-to-type-out sequences
2022-08-15 11:29:45 -07:00
Wayne Stambaugh 898ec0d094 Fix wxWidgets 3.1 and later deprecated build warnings.
wxWidgets 3.1 has deprecated wxPATH_NORM_ALL when normalizing file
paths when calling wxFileName::Normalize().  This change keeps the
existing behavior except in places where our own internal
ExpandEnvVarSubstitutions() to expand environment variables.
2022-08-15 08:00:40 -04:00
Jeff Young a9536b5de9 CHANGED netclass assignments now done via canvas or via patterns. 2022-08-14 22:56:29 +01:00
BugRepellentExtraStrong 02a6566438 eeschema: Fixes wrong displayed secondary worksheet
Fixes https://gitlab.com/kicad/code/kicad/issues/12017
2022-08-14 14:52:23 +00:00
Seth Hillbrand 225b03d702 Move sheetpins by their connection point
Need to calculate the sheet pin anchor position in order to get it
aligned to the grid while moving

Fixes https://gitlab.com/kicad/code/kicad/issues/12134
2022-07-31 20:02:57 -07:00
Mikolaj Wielgus 739b9255d9 Sim Model Editor improvements
- Tab-switching,
- Automatic expansion of categories on tab-switch,
- Various minor simulation improvements,
- Various new simulation-related bugfixes.
2022-07-30 02:25:34 +00:00
Mikolaj Wielgus 6450ec6b85 Sim: Spice netlist exporter rewrite
Rewrite the spice exporter to work with the new simulation model
architecture and data model, with many bugfixes related to the latter
two along the way.
2022-07-30 02:25:34 +00:00
Mike Williams d9449b9beb Annotation: annotate all sheet instances for new symbols
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/11841
2022-07-25 18:44:55 +00:00
Mike Williams bf550afa8c Annotation: use full hierarchy for sheet based numbering on paste 2022-07-25 18:44:55 +00:00
Mike Williams 17f6c0ecf1 Annotate: correctly annotate duplicated items across reused subsheets
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/11840
2022-07-25 18:44:55 +00:00
jean-pierre charras 993c446fdf Fix some warnings detected by PVS-STUDIO (most are not used vars) 2022-07-25 18:23:52 +02:00
Jeff Young e36491f231 Make EEschema highlight net consistent with PCBNew.
In particular, highlight net on an already highlighted net clears
highlight.

Fixes https://gitlab.com/kicad/code/kicad/issues/11016
2022-07-24 09:16:31 +01:00
jean-pierre charras 0604d7b813 Fix minor compil and Coverity warnings. 2022-07-24 09:33:43 +02:00
Jeff Young 3aabea5191 Add side handles to sheets.
Fixes https://gitlab.com/kicad/code/kicad/issues/11525
2022-07-23 23:57:31 +01:00
Jeff Young 3def3d659e Allow click-selection and greedy-drag selection of visible pin text.
Stingy drag still works only on the pin itself.

Fixes https://gitlab.com/kicad/code/kicad/issues/11723
2022-07-23 23:27:14 +01:00
Jeff Young f48755cc67 Restore unique-item filtering when collecting nearby items from view.
Fixes https://gitlab.com/kicad/code/kicad/issues/12076
2022-07-23 15:09:58 +01:00
Jeff Young cb77e68076 Don't assume a SCH_EDIT_FRAME in EE_SELECTION_TOOL.
It's also used in the symbol editor.

But in any case, pins of other units have no business being in an
SCH_SYMBOL anyway.

Fixes https://gitlab.com/kicad/code/kicad/issues/12076
2022-07-23 14:28:07 +01:00
Jeff Young 0d5302f375 Add preference for esc-clears-net-highlighting.
Fixes https://gitlab.com/kicad/code/kicad/issues/8760
2022-07-23 10:32:43 +01:00
Jeff Young def87c969e Redo the pinned-libraries storage architecture.
1) always use preferences directly
2) allow nicknames from either preferences or project
3) store-after-modify

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

Fixes https://gitlab.com/kicad/code/kicad/issues/11892
2022-07-22 09:31:10 +01:00
Jeff Young bdffbbd43b Handle rotation while moving from move tool.
This keeps us from getting CancelInteractive events in the move tool
when the EditTool runs to do the rotate.

Fixes https://gitlab.com/kicad/code/kicad/issues/12004
2022-07-22 09:31:09 +01:00
Jeff Young 9652dcf96d ADDED conversion between textbox and other text types.
Fixes https://gitlab.com/kicad/code/kicad/issues/12031
2022-07-22 09:31:07 +01:00
Seth Hillbrand f78671fc2e Make textbox placement modal
Placing a symbol from symbol editor starts the TwoClickPlace in a
different context.  We need to prevent multiple contexts of the same
tool

Fixes https://gitlab.com/kicad/code/kicad/issues/11891
2022-07-19 09:20:43 -07:00
Jeff Young 45393f228a Promote pin selections to symbols when preference is set.
Also make additional line slop zoom-relative.

Fixes https://gitlab.com/kicad/code/kicad/issues/12034
2022-07-19 10:31:49 +01:00
Jeff Young e5a664c6b3 Try a slightly different tack for cancelling net highlighting.
Fixes https://gitlab.com/kicad/code/kicad/issues/12029
2022-07-19 10:31:49 +01:00
Alex c6d9dcdad5 Schematic editor: allow box-selecting pins. 2022-07-18 18:51:52 +00:00
Alex d343d87b73 Speed-up EE_SELECTION_TOOL::RequestSelection. 2022-07-18 18:51:52 +00:00
Seth Hillbrand 93fb00d815 Protect the Kiway dereference
Also find a few more places where we are reaching into a new frame to
perform actions that need to have dialogs closed.

Running actions should also wait for the next cycle rather than being
immediately executed when we are calling into a new frame.  This allow
for the cleanup actions onClose() to happen prior to the next action
starting

Fixes https://gitlab.com/kicad/code/kicad/issues/11891
2022-07-14 11:37:45 -07:00
Mike Williams d44e34d513 Images: Add full properties editor
Converts dialog_image_editor to panel_image_editor. Embeds this panel in
a new properties dialog for the schematic and PCB editors that allows
editing position, layer, locked status, etc. like other items.
2022-07-14 11:23:23 +00:00
Mike Williams 1f4079802c Schematic: drop undefined/unused function 2022-07-14 11:23:23 +00:00
Seth Hillbrand b5bf1da251 Keep track of blocking windows
Allows the calling KiWAY player to send messages to the blocking window
before signaling a separate call

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

Fixes https://gitlab.com/kicad/code/kicad/issues/11772
2022-07-13 19:25:24 -07:00
Seth Hillbrand 0dab566270 Fix name escaping in symbol editor
When renaming a symbol, be sure to handle name escaping in all of the
various places that we do renaming (!)

Fixes https://gitlab.com/kicad/code/kicad/issues/11939
2022-07-12 12:06:30 -07:00
Jeff Young d24e6c3408 Auto-annotate (and then don't re-annotate) power symbols.
Fixes https://gitlab.com/kicad/code/kicad/issues/11942
2022-07-11 21:46:01 -06:00
Jeff Young 57acce9e55 Share more code between selection tools. 2022-07-11 19:04:08 -06:00
Mike Williams e454595348 Eeschema: Changing pin length adjusts offset according to orientation
ADDED: When pin length is changed now, the pin position is adjusted
according to its orientation such that the connection point for wires
moves instead of the other side of the stem base. For pins coming out of
component boxes, etc. this keeps them attached to the box while the
length is changed.
2022-07-11 13:58:06 -04:00
Jeff Young 4685dc49cc Show more than 9 items in disambiguation menu.
(But only the first 9 get hotkeys.)

Fixes https://gitlab.com/kicad/code/kicad/issues/11966
2022-07-10 20:11:22 -06:00
Jeff Young b759d860c0 Don't disambiguate if the user is dragging a multiple selection.
Fixes https://gitlab.com/kicad/code/kicad/issues/10108
2022-07-10 19:45:56 -06:00
Jeff Young e122dc38bd Add context menu item for clearing net highlighting.
In selection tools, drawing tools, router tool, line_wire_bus tool.

Fixes https://gitlab.com/kicad/code/kicad/issues/11920
2022-07-10 17:15:20 -06:00
Jeff Young 00fc225306 Give <esc>-with-no-selection-clears-net-highlight a test.
Fixes https://gitlab.com/kicad/code/kicad/issues/8760
2022-07-09 11:56:16 -06:00
Jeff Young 70aec5d576 Don't drag both ends after Break Wire.
Fixes https://gitlab.com/kicad/code/kicad/issues/11915
2022-07-08 23:03:41 -06:00
jean-pierre charras 7b28804f67 Fix a minor compil and Coverity warning 2022-07-06 13:54:17 +02:00
Miklos Marton d30af7c164 eeschema: Add automatic rotate feature for placing global and
hierarchial labels
2022-07-05 17:02:45 +00:00
Seth Hillbrand cde30d3dba Clarify cross-probing options
Previous the cross-probing options were mixed between sending and
receiving cross-probe events.  This clarifies so that all of the pcbnew
cross-probe options deal with whether the cross-probe is seen in pcbnew
and all of the eeschema options deal with seeing the event in eeschema.

Also updates the wording in the options panels to be the same where
possible and adds tooltips

Fixes https://gitlab.com/kicad/code/kicad/issues/11454
2022-07-01 16:47:09 -07:00
Mike Williams 66b3b48e93 Library Editor: Fix missing automatic annotation
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/11818
2022-06-29 14:17:21 +00:00
Jeff Young 34e706bcbc Border colours and line styles for symbol editor.
Fixes https://gitlab.com/kicad/code/kicad/issues/11810
2022-06-16 14:52:38 +01:00
jean-pierre charras 1140fd0fb0 Eeschema, context menus: move edit value, ref and footprint to a submenu.
remove also Select All menuitem from the move context menu.
2022-06-13 11:35:17 +02:00
Jeff Young 29900cad34 Add create-wire logic to labels.
Fixes https://gitlab.com/kicad/code/kicad/issues/11768
2022-06-10 22:38:01 +01:00
jean-pierre charras e0f0bb2edd Eeschema: Fix issues when converting a label/text to another label text type.
- make convert to/from SCH_DIRECTIVE_LABEL working.
- Autoplace fields of new labels
Fixes #11779
https://gitlab.com/kicad/code/kicad/issues/11779
2022-06-10 14:13:22 +02:00
Jeff Young bce1fd337b Second tool hotkey accepts action (ie: acts as click).
Fixes https://gitlab.com/kicad/code/kicad/issues/11729
2022-06-09 16:54:04 +01:00
jean-pierre charras 35bde4710c Eeschema, context menu selection: move convert to ... menuitems to a submenu.
Add also missing icons in a few menuitems.
Fixes #11776
https://gitlab.com/kicad/code/kicad/issues/11776
2022-06-09 16:46:21 +02:00
Jeff Young c55a0e4561 Separate last-created-params for textboxes from shapes.
Fixes https://gitlab.com/kicad/code/kicad/issues/11755
2022-06-08 15:25:13 +01:00
jean-pierre charras 185016b84b Eeschema, Hierarchy navigator: add tool to Hide/show the panel.
Add also a close button to the pane.
2022-06-07 11:11:10 +02:00
jean-pierre charras 9f38fa43cd Fix some minor compil and Coverity warnings. 2022-06-05 11:44:49 +02:00
Jeff Young 718bb461d2 Textbox defaults for libedit.
Fixes https://gitlab.com/kicad/code/kicad/issues/11739
2022-06-04 21:25:37 +01:00
Roberto Fernandez Bautista 78e465bbd8 Fix crash in sch_navigate_tool when history was empty 2022-06-03 23:07:12 +02:00
Jeff Young ce79a16ed8 Use default schematic text size for textboxes.
Also adds support for remembering stroke info, fill info, and
spin style for sch text boxes.

Fixes https://gitlab.com/kicad/code/kicad/issues/11739
2022-06-03 21:48:12 +01:00
Mike Williams 8d51b6b6d3 Schematic: Add icons for Any/90/45 angle modes
Also add a dark mode icon for existing 45hv icon.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/11332
2022-06-03 15:04:52 +00:00
Mike Williams 857990a883 Hierarchy: turn into a left side pane
Drop auto-closing option as well.
2022-06-02 21:56:17 +00:00
Jeff Young abba1b04bd Add "Enter Sheet" to Sheet tool (context menu & double-click).
Fixes https://gitlab.com/kicad/code/kicad/issues/11531
2022-05-30 14:08:26 +01:00
Jeff Young d5d8d36d86 Implement expanding Select Connection.
Fixes https://gitlab.com/kicad/code/kicad/issues/8579
2022-05-29 22:51:33 +01:00
Mike Williams f2cf934083 Schematic: Annotation Tweaks
Fix newly placed symbols to be annotated and not show a ? until
placement.
2022-05-27 15:54:00 +00:00
Mike Williams efa23a5cbe Schematic: better automatic/recursive annotate 2022-05-27 15:54:00 +00:00
Mike Williams 7f3e5e9b79 Schematic: add recursive annotation control 2022-05-27 15:54:00 +00:00
Mike Williams 85516a4691 Schematic: add automatic annotation toggle 2022-05-27 15:54:00 +00:00
Mike Williams dabd42bbc4 Schematic: Automatic Symbol Annotation 2022-05-27 15:54:00 +00:00
Miklós Márton 487c8f8e39 symbol editor: Improve pin duplication
When duplicating pins in the symbol editor the duplicated pins will have
unique pin numbers assigned if the duplication target had the pin number
specified
2022-05-25 00:02:16 +00:00
Roberto Fernandez Bautista ea29c66608 Fix formatting 2022-05-22 07:14:24 +00:00
Chetan Shinde 4e5febdb19 Fixes the import pin issue, that the they are shown in two different way https://gitlab.com/kicad/code/kicad/-/issues/11391 2022-05-22 04:42:22 +00:00
Jeff Young 8e94c307d2 Provide default case for mirroring single objects.
Fixes https://gitlab.com/kicad/code/kicad/issues/11649
2022-05-21 22:50:55 +01:00
Jeff Young 23fb4c7433 Uniformly use a single facility for location-less prime events.
Also implements a uniform mechanism for avoiding auto-scroll after
a prime event or dialog which results in a mouse position at the
edge of the canvas.

Fixes https://gitlab.com/kicad/code/kicad/issues/11057
2022-05-16 23:43:00 +01:00
Jeff Young f2fc78f380 Don't copy modifiers to prime events.
The modifiers go with the hotkey, not with the action.

Fixes https://gitlab.com/kicad/code/kicad/issues/11618
2022-05-16 13:51:40 +01:00
Jeff Young 79a0ce9137 Unset forced cursor before leaving two-click place.
Fixes https://gitlab.com/kicad/code/kicad/issues/11607
2022-05-14 22:38:54 +01:00
jean-pierre charras 45b167dff5 Some fixes related to translated/not translated mandatory field names. DIALOG_SYMBOL_FIELDS_TABLE: add new fields to symbols only if the field is not empty. 2022-05-13 11:45:38 +02:00
Marek Roszko f85251ef75 Fix eda_doc not looking for schematic locally
It looks like this was overlooked by Jeff in 2020 not realizing eda_doc isn't built under eeschema but common in cc9ac37a0e
2022-05-10 21:28:48 -04:00
jean-pierre charras 4bd349d922 Update some demos 2022-05-09 19:06:14 +02:00
Miklós Márton 7e20c0ed9c eeschema: removed unused code
Fixes #11533
2022-05-06 17:17:55 +00:00
jean-pierre charras 32077673e8 Symbol editor crash: Fix use of a null pointer.
LIB_TEXT::Clone() did not copy a member set to nullptr.
Fixes #11569
https://gitlab.com/kicad/code/kicad/issues/11569
2022-05-06 12:51:26 +02:00
Jeff Young 1751c8e1cf Save selection *before* clearing it. Saving after doesn't do much good.
Fixes https://gitlab.com/kicad/code/kicad/issues/11242
2022-05-06 00:06:00 +01:00
Simon Richter bd7447cff3 Fix variable name
This is the top left position, not the top right.
2022-05-05 10:27:19 +00:00
Jeff Young babfb29c54 Formatting cleanup. 2022-05-03 13:39:14 +01:00
Jeff Young 67f352717e Fix dodgy type-cast and init line-widths to "inherit".
Fixes https://gitlab.com/kicad/code/kicad/issues/11535
2022-05-03 13:39:14 +01:00
jean-pierre charras 3f470359a2 Eeschema, backannotate: fix minor issues in displayed messages.
Fixes #11530
https://gitlab.com/kicad/code/kicad/issues/11530
2022-05-03 09:20:46 +02:00
Jeff Young f6f316bd8c Promote field selection to field-owner for Autoplace.
Fixes https://gitlab.com/kicad/code/kicad/issues/11529
2022-05-02 20:11:21 +01:00
jean-pierre charras ece15b6472 Fix a compil warning (shadowed var). 2022-05-02 15:25:55 +02:00
jean-pierre charras 40c75c74fa EEschema/Cvpcb: make assign footprints from CvPcb undoable.
Fixes #11508
https://gitlab.com/kicad/code/kicad/issues/11508
2022-05-02 12:49:14 +02:00
Jeff Young 772bdc4bbf Turn off auto-dialog for text objects when immediateActions == false. 2022-05-02 11:25:40 +01:00
Jeff Young de0bb26c4c Init global label's intersheet ref's visibility from schematic settings. 2022-05-02 09:42:38 +01:00
Miklós Márton 7ebdb4853c Do not open label edit dialog when adding label to an already named wire 2022-05-02 08:42:15 +00:00
Jeff Young 8a97a46e6b Release file before re-loading it for Revert.
Fixes https://gitlab.com/kicad/code/kicad/issues/11481
2022-04-26 22:28:35 +01:00
Jeff Young e0f2a5f07c Update findnext to handle new instance data architecture.
Fixes https://gitlab.com/kicad/code/kicad/issues/11424
2022-04-26 20:21:15 +01:00
Seth Hillbrand 25474b347c Fix frustration with mirroring autoplaced fields
When the user asks to mirror a symbol is is frequently to get the
reference/value on the other side of the symbol for placement purposes.
Autoplacing the fields here keeps the text where they were initially
which can be frustating to work around.

This commit treats the mirror command as a user request to change where
the fields are
2022-04-25 12:50:45 -07:00
Jeff Young f5d612eaed Switch <insert> replacement on OSX to <f1>.
Fixes https://gitlab.com/kicad/code/kicad/issues/11413
2022-04-25 10:01:33 +01:00
Jeff Young 90bfe2d94b Remove Save Copy As from fp editor, and rename to Save a Copy elsewhere.
It's still used by Eeschema and PCBNew when not in stand-alone mode.

Fixes https://gitlab.com/kicad/code/kicad/issues/9185
2022-04-24 19:46:57 +01:00
jean-pierre charras 3bc34590c7 Eeschema: fix missing call to UpdateMessagePanel() due to commit e09147db.
EE_INSPECTION_TOOL::UpdateMessagePanel was called by EVENTS::SelectedEvent
But This event after commit calls E_INSPECTION_TOOL::CrossProbe(),
and no longer UpdateMessagePanel.
So CrossProbe() now calls UpdateMessagePanel.
Fixes #11447
https://gitlab.com/kicad/code/kicad/issues/11447
2022-04-24 18:40:10 +02:00
Jeff Young c6f83b6dec ADDED Duplicate Footprint, Rename Symbol and Rename Footprint. 2022-04-22 22:06:51 +01:00
Mike Williams b42365190e Schematic/PCB: deleting fields sets them to invisible 2022-04-21 16:20:23 +00:00
Mike Williams 653baf270c Schematic: drag created / changed segments need junction checks
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/10844
2022-04-18 17:24:02 +00:00
Simon Richter 801c5deb87 Fix minimum size calculation for new hierarchical sheets
These constants are given in mil, but are used in a context of internal
units.
2022-04-18 15:01:59 +00:00
Jeff Young 71c2cb3180 ADDED revert for pcbnew and eeschema.
Fixes https://gitlab.com/kicad/code/kicad/issues/6802
2022-04-17 20:02:58 +01:00
jean-pierre charras 38c54ffa8f Eeschema, Symbol Library Browser: fix crash when left clicking on the canvas. 2022-04-17 09:54:19 +02:00
Jeff Young e09147db30 Cross-probing for ERC dialog.
Fixes https://gitlab.com/kicad/code/kicad/issues/11411
2022-04-17 00:33:56 +01:00
Seth Hillbrand 250a246761 Clear flags after we're done with them
The CANDIDATE flag is a temporary element that should not be maintained
outside of the routine in which is it temporarily set

Fixes https://gitlab.com/kicad/code/kicad/issues/11361
2022-04-16 15:45:17 -07:00
jean-pierre charras 65f7d9f97a EEschema: move symbol checker code in symbol_checker.cpp.
- Add some tests for Power symbols.
- Fix incorrect print format in some messages.
2022-04-16 18:56:06 +02:00
Jeff Young 6ef6e37edb Disable using default instance data when writing to clipboard.
Fixes https://gitlab.com/kicad/code/kicad/issues/11379
2022-04-14 17:09:27 +01:00
Jeff Young 034b57d9c0 When reannotating keep existing prefix in most cases.
(Execption is reannotating entire schematic, in which case we reset
all of them.)

Fixes https://gitlab.com/kicad/code/kicad/issues/11379
2022-04-13 23:38:45 +01:00
Jeff Young 306dfef7e5 Fix typo. 2022-04-12 19:18:15 +01:00
Jeff Young 576f3dc2fd Keep pins aligned to grid when possible.
This uses the first pin as the anchor point in a mulitple-item
selection.

Fixes https://gitlab.com/kicad/code/kicad/issues/11151
2022-04-12 18:14:21 +01:00
Jeff Young 546b3bfbc0 Select wire ends in select all.
Fixes https://gitlab.com/kicad/code/kicad/issues/10958
2022-04-11 19:36:54 +01:00
Jeff Young 74a578047c Make sure to add any now-necessary junctions after a rotate.
Fixes https://gitlab.com/kicad/code/kicad/issues/11242
2022-04-11 12:02:20 +01:00
Jeff Young c17b90c8dc Run pinning on sides as well as corners.
Also fixes a bug in LIB_SHAPE's Normalize() which wasn't handling the
upside-down coordinate system.

Fixes https://gitlab.com/kicad/code/kicad/issues/11339
2022-04-07 11:51:58 +01:00
Jeff Young 356d565d48 Normalize rectangular shapes before feeding to point editor.
Fixes https://gitlab.com/kicad/code/kicad/issues/11339
2022-04-06 18:18:29 +01:00
jean-pierre charras be6379a8f6 Fix minor Coverity and compil warnings. 2022-04-01 20:43:21 +02:00
jean-pierre charras 5d9668938b SYMBOL_EDITOR_CONTROL::DuplicateSymbol(): fix incorrect validation test.
DuplicateSymbol() is called both to duplicate and paste. Only duplicate
needs a test to know if a symbol is selected.
Fixes #11053
https://gitlab.com/kicad/code/kicad/issues/11053
2022-04-01 10:42:20 +02:00
Jeff Young 7c21a0bdd4 Dirty text render caches in point editor.
Fixes https://gitlab.com/kicad/code/kicad/issues/11284
2022-03-30 16:32:23 +01:00
Jeff Young 8dc680adbb Implement align-to-grid for sheets.
Fixes https://gitlab.com/kicad/code/kicad/issues/11201
2022-03-29 19:31:02 +01:00
Jeff Young 4ee6f9e138 Make sure setting the cursor gets put into the right tool context.
Fixes https://gitlab.com/kicad/code/kicad/issues/10141
2022-03-28 21:54:24 +01:00
Mike Williams 2a726a882f Schematic: new feature, force 45 degree lines
* New modes to force 45 deg angle at beginning or end of line

* Backspace will undo most recent segment added

* / will toggle posture of 90 and 45 degree lines

* Added alg::signbit for convenience

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/10869
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/9175
2022-03-28 16:07:23 -04:00
Mike Williams e51ab86225 Schematic Drag: fixes and improvements
Fixes:
* Various special cases around junctions on pins and dragging.

* Some rotations of endpoints resulting in a 45 degree rotate.

* Some cases where it was possible to get a line with neither
  endpoint selected, and also substractive unselecting only one of two
  selected endpoints unselecting both.

* Use line midpoint for sorting.  Start and endpoints aren't
  consistent in the order they appear on the X or Y axis. So,
  we need to use the midpoint for our position for consistent
  sorting when dragging groups of parallel lines where some
  have the start and end reversed.

Other:
* Rename TEMP_SELECTED TO SELECTED_BY_DRAG. This is the actual meaning
  of the flag, and should reduce confusion as
  to when it should be used.

* Move usage of TEMP_SELECTED as an algorithmic mark to CANDIDATE
  instead.

* Fix mistaken clearing of START_POINT and ENDPOINT.

* Move endpoint setting and clearing out of narrowSelection, and into
  selectPoint and selectMultiple.

* Don't show dangling end warnings on new lines
2022-03-28 16:02:48 -04:00
Jeff Young 343b2681d4 Midpoints for eeschema rectangles and text boxes.
Fixes https://gitlab.com/kicad/code/kicad/issues/10362
2022-03-28 11:16:39 +01:00
jean-pierre charras 38bd612c01 sch_sexpr_parser.cpp: allows reading a polyline descr with more than 2 points
In symbols, a polyline descr is already a true polyline / polygon descr.
In schematic, a polyline descr was restricted to only 2 points (a line).
A true polyline / polygon descr is now allowed in schematic that support already
polygons.
For compatibility reason, a 2 points polygon (SCH_SHAPE) is converted to a SCH_LINE.
2022-03-27 10:31:21 +02:00
Jeff Young a54457386c Enable immediate mode for pin tool.
Fixes https://gitlab.com/kicad/code/kicad/issues/10156
2022-03-26 21:07:10 +00:00
Jeff Young 0652c7b429 More visible Synchronized Pins Mode informatics.
Fixes https://gitlab.com/kicad/code/kicad/issues/10340
2022-03-26 15:16:08 +00:00
Jeff Young 1c158a4ea4 Use a standard HTML reporter for Symbol Checker. 2022-03-26 14:22:31 +00:00
Wayne Stambaugh 7da7864f5e Fix some Coverity issues. 2022-03-25 15:51:05 -04:00
jean-pierre charras 21144481d2 PLOTTER: do not clamp coordinates to an arbitrary value.
Previously, coordinates were clamped to +- 60 inches. It makes no sense to
clamp them at plotter level: max cooed depends on the editor (schematic/board...)
Rename MAX_PAGE_SIZE_MILS to MAX_PAGE_SIZE_EESCHEMA_MILS and use it only for Eeschema.
Fixes #11196
https://gitlab.com/kicad/code/kicad/issues/11196
2022-03-22 10:32:36 +01:00
Jeff Young 4f62960334 Update message panel from PCB point editor and SCH drawing tools.
Fixes https://gitlab.com/kicad/code/kicad/issues/11186
2022-03-21 10:32:36 +00:00
Jeff Young 63b5ad7df1 Fix some issues with global-label fields' bounding boxes. 2022-03-19 19:37:01 +00:00
jean-pierre charras 77c52ad5df Fix a compil warning (shadowed var). 2022-03-17 20:13:17 +01:00
Jeff Young 400cff994d Update value & footprint from clipboard whether keeping annotation or not.
Fixes https://gitlab.com/kicad/code/kicad/issues/11116
2022-03-17 18:19:13 +00:00
Jeff Young 05bca282f7 Re-entrancy blocker for line/wire/bus tool.
Also clear infobar messages after a cancelInteractive.

Fixes https://gitlab.com/kicad/code/kicad/issues/11155
2022-03-17 15:27:33 +00:00
Jeff Young e68e2e973e Separate Line Properties dialog from Bus/Wire, and handle Junctions in Bus/Wire.
Fixes https://gitlab.com/kicad/code/kicad/issues/9979
2022-03-16 14:56:32 +00:00
Jeff Young ec44dfa60f Unescape value fields when pasting from legacy schematics.
Fixes https://gitlab.com/kicad/code/kicad/issues/11124
2022-03-13 22:17:44 +00:00
Jeff Young 1f745b000d Special-case synthetic click after tool selection.
Fixes https://gitlab.com/kicad/code/kicad/issues/11057
2022-03-07 20:30:50 +00:00
Jeff Young 39fa4e2065 Include textbox in movable objects.
Fixes https://gitlab.com/kicad/code/kicad/issues/11058
2022-03-07 10:33:59 +00:00
jean-pierre charras dbfdd3fb56 Fix some Coverity warnings. 2022-03-06 09:48:33 +01:00
Seth Hillbrand 7ecc70a79d Duplicate from selected or current
When double-clicking to open a symbol, it is no longer selected in the
tree.  We need to use the `GetTargetLibId()` to pick the correct symbol
(first selected, then current) when using the duplicate command

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

(cherry picked from commit 802d20c409)
2022-03-03 16:04:22 -08:00
Seth Hillbrand 548936bb22 Fix broken unit select context menu
The fix for https://gitlab.com/kicad/code/kicad/issues/10529 kicked the
subsequent IDs for unit selection off the maximum ID value for popup
menus.  This increases the maximum popup number (integers are free)

(cherry picked from commit 79b6991d7b)
2022-03-02 16:33:28 -08:00
Mike Williams 5503afc09a Schematic: disallow center rotation, allow both endpoint rotations
Center rotation will often misalign lines to the grid, which is bad
until fix off grid items on the schematic.

We can rotate a connection end into a new connection or to become
collinear with an existing line, so we need to check for this at the end
of rotation.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/10565
(cherry picked from commit 7d4cb91f39)
2022-02-28 08:50:12 -08:00
Jeff Young c4d2ac570f Don't allow break commands (or labelling cmds) on multiple wire selections.
Fixes https://gitlab.com/kicad/code/kicad/issues/10934
2022-02-27 23:15:07 +00:00
Seth Hillbrand 535ea800c0 Honor modifier keys in diambiguation
Needs to be reset for the new action before selecting elements at a
point.

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

(cherry picked from commit a30ad0b54a)
2022-02-25 16:16:15 -08:00
Seth Hillbrand faa3829ad4 Add MRU to image placement tools 2022-02-25 13:18:43 -08:00
Jeff Young 6d8507d44f Formatting. 2022-02-25 17:36:35 +00:00
Mike Williams e35c3f2b99 Schematic: handle switching h/v mode better while drawing lines
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/10859
2022-02-21 17:03:43 +00:00
Jeff Young a2772b3363 Don't crash on highight net during drag.
Fixes https://gitlab.com/kicad/code/kicad/issues/10866
2022-02-21 13:30:15 +00:00
Jeff Young b0d7c82e64 Disable grid when ctrl/cmd key is down.
Fixes https://gitlab.com/kicad/code/kicad/issues/9995
2022-02-20 16:50:30 +00:00
Mike Williams d0749c4e9a Schematic: more drag undo fixes
Drag was not clearing IS_CHANGED status of items that were moved by the
drag, but weren't selected or created by it.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/10845
2022-02-20 11:49:18 +00:00
Seth Hillbrand d1a4daefbb wxPoint->VECTOR2I correction for master 2022-02-19 19:14:41 -08:00
Seth Hillbrand 24ac516135 Trim wires based on how many pins they intersect
If a wire intersects more than 2 pins from the same symbol, we don't
trim connections.  If the wire intersects exactly two pins from a single
symbol, we remove the wire between the pins.

We avoided doing this before because we didn't have a good metric for
trimming vs. not.  But the per-symbol calculation feels like the least
surprising option.

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

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

(cherry picked from commit 75a4036e45)
2022-02-19 16:54:45 -08:00
Jeff Young 510dc28a5c Resolve text variables before attempting to open datasheet. 2022-02-19 14:59:50 +00:00
Mike Williams 567168fffc Schematic: make grabbing whole lines more intuitive
Selecting end and midpoint will select whole line. Some changes for
orthogonal dragging made this worse than in 6.0.

Improves, but does not fully resolve:
https://gitlab.com/kicad/code/kicad/-/issues/10860
2022-02-16 19:15:55 +00:00
Mike Williams 97797c44b9 Schematic: added drag wires undo/redo fix
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/10845
2022-02-15 19:31:17 +00:00
Seth Hillbrand 45a1a9a715 Replace awkward double cast with binary logic
The use of XOR with integers here is needed as MSVC doesn't implement
the use of std::signbit for integers and casting up to double just to
get the signbit feels wrong
2022-02-15 10:13:59 -08:00
Marek Roszko 3129f96686 Add awkward cast to double due to msvc conflict
https://github.com/microsoft/STL/issues/519
2022-02-14 21:43:11 -05:00
Mike Williams 9c59c4ee12 Schematic: orthogonal drag bends should depend on move direction
Prevents overlapping lines when possible.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/10844
2022-02-14 22:52:34 +00:00
Jeff Young 4e5b30ad80 Rewrite autostart to not need connectivity.
Fixes https://gitlab.com/kicad/code/kicad/issues/10579
2022-02-14 01:15:06 +00:00
Mike Williams 013d6d088f Eeschema: fix pin starting wire bus bug
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/10819
2022-02-13 15:02:09 +00:00
Jeff Young 33e57930bc Implement undo for Eeschema find/replace.
Fixes https://gitlab.com/kicad/code/kicad/issues/10824
2022-02-11 22:09:22 +00:00
Mike Williams 21b59b4b6a Eeschema: fix bus label drag adding a line
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/10822
2022-02-11 21:30:50 +00:00
Mike Williams a5e8575091 Eeschema: Implement orthogonal dragging
Fixes https://gitlab.com/kicad/code/kicad/-/issues/1956
2022-02-10 18:38:40 +00:00
Mike Williams 7c91cd73e3 Eeschema: unconnected ends of wire entries should allow auto start wires 2022-02-07 23:31:24 +00:00
Jeff Young cc69849719 Fix definition of nonFields to include textboxes.
Fixes https://gitlab.com/kicad/code/kicad/issues/10771
2022-02-06 19:43:25 +00:00
Jeff Young 8d3e1639d0 Update text variables when they change.
Fixes https://gitlab.com/kicad/code/kicad/issues/10734
2022-02-04 12:52:46 +00:00
Seth Hillbrand 3badd53a96 Setup selection when repeating
We need the item to be currently selected when repeating the last symbol
insert.  This ensures we have a valid selection before starting the move
tool and possibly getting odd system behavior from mouse positions

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

(cherry picked from commit 7642a9db79)
2022-02-03 17:09:59 -08:00
Jeff Young f3cd36d1d7 Bring EEschema textboxes in line with PCBNew's.
Also adds Border checkboxes and fixes a bunch of bugs.
2022-01-31 21:46:40 +00:00
Seth Hillbrand 38706fdd95 Fully select a line for transformation
When not trying to select points, we need to ensure that the full
line is selected for transformation

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

(cherry picked from commit 70d00689ca)
2022-01-29 17:37:30 -08:00
Wayne Stambaugh b36e31c49f Factor out common and remove dead legacy symbol library code. 2022-01-29 14:13:00 -05:00
Jeff Young c6a8100d46 Schematic and symbol text boxes.
Also fixes some plot bugs with arcs.

Also moves polygonization of arcs (when required) in plotting code
from 5 degrees to calculated based on ARC_HIGH_DEF.

Fixes https://gitlab.com/kicad/code/kicad/issues/5017
2022-01-28 21:38:15 +00:00
Jeff Young 3409783d9f Break sch_text.h/.cpp into sch_text and sch_label.
Also moves SCH_NETCLASS_FLAG to SCH_DIRECTIVE_LABEL, and remaps Altium
harnesses from SCH_TEXT to SCH_DIRECTIVE_LABEL.
2022-01-28 21:38:15 +00:00
Mike Williams ecb32b1fb0 Eeschema: hover start from wire end should copy wire properties
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/10128
2022-01-27 17:17:45 +00:00
dsa-t bc1ff6756f Cross-probing/selection for multiple items (SCH->PCB) 2022-01-16 20:29:03 +00:00
Jeff Young e048e51f5d Improve SNR of EDA_ANGLE stuff. 2022-01-14 16:08:18 +00:00
Seth Hillbrand 5a3d53d9e4 Catch default autowire case
Since we are dereferencing the optional, we need to ensure it exists in
all cases

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

(cherry picked from commit 56d87a8613)
2022-01-12 09:03:44 -08:00
Seth Hillbrand 04c46a8fd2 Correct return type in mapCoords 2022-01-07 09:08:40 -08:00
Seth Hillbrand 3d88f37949 Switch mapCoords to VECTOR2I 2022-01-07 08:37:37 -08:00
Seth Hillbrand eb271ca7fb Don't deduplicate schematic polygon points 2022-01-07 08:29:34 -08:00
Seth Hillbrand 4cdc9d3857 Don't deduplicate symbol polygons
SHAPE_LINE_CHAIN will, by default, remove duplicate points when
appending.  We don't want to do this when constructing our polygons in
symbol editor, so we need to explicitly call the routine without
deduplication

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

(cherry picked from commit 62f8603353)
2022-01-07 08:25:49 -08:00
Seth Hillbrand c9fc15b5eb Clear edited point when exiting tool
When leaving the main point editor loop, we need to ensure that the edit
point is cleared as well.  This is usually cleared by a ClearEvent call
but in case this is missed, we need to ensure that other tools are not
caught out

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

(cherry picked from commit 9a2332dfcf)
2022-01-07 08:25:49 -08:00
Seth Hillbrand 88a8ad2ca1 Keep symbol synced with edit tool
Undo/Redo can change the symbol referenced by the symbol drawing tool.
This updates the current symbol before important steps to keep the
system synced

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

(cherry picked from commit b8a7a66a0a)
2022-01-05 16:52:02 -08:00
Roberto Fernandez Bautista 2d3624a016 Rename ComparePageNumAndName -> ComparePageNum 2022-01-02 23:20:17 +00:00
Jeff Young 32dec0127e Fix some issues with Eeschema's Shape Properties dialog.
Fixes https://gitlab.com/kicad/code/kicad/issues/10140
2022-01-01 20:46:45 +00:00