Commit Graph

8437 Commits

Author SHA1 Message Date
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 184b67098f Meet user expectations on life-cycle of symbol fields.
In other words, support empty fields.

Also adds deleting fields to Symbol Fields Table.

Fixes https://gitlab.com/kicad/code/kicad/issues/8999
2022-04-12 22:11:31 +01:00
Roberto Fernandez Bautista 85f6ff48e7 CADSTAR Sch: Clear symbol of all elements before overwriting with new one
Fixes https://gitlab.com/kicad/code/kicad/-/issues/11378
2022-04-12 21:34:23 +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
Marek Roszko f88e0481c8 Change the behavior of ACTION_MENU::Add to require clones if required outside the function
This reverts commit 2a5769607f.
2022-04-11 19:03:01 -04:00
Jeff Young 16acba34d3 Don't save schematic symbol back to lib manager.
Also, since it doesn't get saved, changing symbols will lose any edits.
Make sure to ask the user first.

Fixes https://gitlab.com/kicad/code/kicad/issues/10767
2022-04-11 22:43:39 +01:00
Seth Hillbrand 2a5769607f Revert "Change the behavior of ACTION_MENU::Add to require clones if required outside the function"
This reverts commit 403992a6f4.
2022-04-11 11:39:03 -07: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
jean-pierre charras f0f10a43a2 Ensure "Clear Recent Files" menuitem titles are updated after language change.
(missing fixes in commit ac8e2d076)
2022-04-11 18:11:17 +02: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 8358685920 Dual-purpose IsMovableFromAnchorPoint to keep from moving symbols off-grid.
Fixes https://gitlab.com/kicad/code/kicad/issues/11360
2022-04-11 12:02:20 +01:00
jean-pierre charras ac8e2d0768 Ensure "Open Recent" and "Clear files" menu titles are updated after language change. 2022-04-11 11:09:05 +02:00
Marek Roszko 403992a6f4 Change the behavior of ACTION_MENU::Add to require clones if required outside the function
Fix https://gitlab.com/kicad/code/kicad/-/issues/10994
2022-04-10 22:38:13 -04:00
Marek Roszko 5bb2cdf73d Revert "Stop leaking submenu items"
This reverts commit 34c70a51ea.
2022-04-10 22:33:43 -04:00
Marek Roszko 34c70a51ea Stop leaking submenu items
Our menu bar code is interestingly complex. But we were throwing away newly made menu items to the void in the cases of constructed on the fly submenus
2022-04-10 22:04:48 -04:00
Jeff Young 117bd4fc22 Adjust LIB_SYMBOL compare for use with ERC.
Fixes https://gitlab.com/kicad/code/kicad/issues/10783
2022-04-09 20:12:29 +01:00
Roberto Fernandez Bautista 0015574a60 ${SHEETNAME} represents the sheet name + introduce ${SHEETPATH}
CHANGED: The text variable ${SHEETNAME} now always represents the name of the
sheet when used anywhere in the schematic editor, including the title block

ADDED: A new text variable ${SHEETPATH} which is replaced with the path to the
current sheet - e.g. "/Sheet 1/Sheet 2".

To ensure backward compatibility, the default drawing sheet now uses
${SHEETPATH}. Custom drawing sheets will need to be manually edited.
2022-04-09 15:45:58 +01:00
Wayne Stambaugh 239f0214ac Eeschema: add support for default schematic symbol instance data.
Prior to fixing the schematic file change churn do to instance data
changing to the last selected sheet instance, the symbol instance data
was set rather than empty.  This change allows for users to set the
default instance data which is used for every new instance of the
schematic.

ADDED: Default schematic symbol instance data (unit and reference, value,
       and footprint fields) can be set to be used as the default settings
       for all new instances of the schematic.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/11113
2022-04-09 07:49:36 -04:00
Jeff Young 007906cd16 Fix a degeneracy bug in arc collisions.
This also fixes a failure to use the correct effective width for
shapes (which might, for instance, inherit their widths from schematic
defaults, netclasses, etc.).

Fixes https://gitlab.com/kicad/code/kicad/issues/11358
2022-04-08 16:15:58 +01:00
Seth Hillbrand 702623ef87 Don't flag pin missing driver when there is an NC
The NC flag indicates user intention to override the lack of connection
to input pins

(cherry picked from commit e02229a234)
2022-04-07 09:35:23 -07: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
Seth Hillbrand 4b0b4c0ddc Show non-driven error on single-pin nets
Better to have both the single-pin error message and the non-driven
error message when an input pin is not connected than miss error
messages when the pin is connected to a blank net

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

(cherry picked from commit e740db61f5)
2022-04-06 16:54:04 -07: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
Jeff Young 67d54ecb4c A bit of dialog layout cleanup. 2022-04-06 16:58:26 +01:00
Jeff Young 06df90636b Rationalize negative line-width handling.
Make "don't stroke" an explicit property in the GUI.
Silently enforce line width to >= 0 when stroking.
Make layouts between dialogs more consistent.
Interpret unspecified fill colour as layer colour.

Fixes https://gitlab.com/kicad/code/kicad/issues/11279
2022-04-05 23:59:25 +01:00
Sylwester Kocjan a9c61d21ca eeschema: fix crash when closing simulation frame
Destructor of SIM_PLOT_FRAME calls sim->Attach( nullptr ) in order to destroy
circuit model (former netlist exporter). If this is skipped, eeschema crashes
when program is closed. nullptr is a valid parameter for Attach()
2022-04-05 19:28:05 +00:00
Jeff Young 1594df3498 Fix egregious typo. 2022-04-05 20:10:25 +01:00
Jeff Young 0bd3341f0f Allow textboxes to have no text. (They still have a defined box.)
Fixes https://gitlab.com/kicad/code/kicad/issues/11286
2022-04-05 16:29:21 +01:00
Jeff Young ed361925ba Repair code that was supposed to be after LoadSymbol().
(Even the comment said so.)

Fixes https://gitlab.com/kicad/code/kicad/issues/11199
2022-04-05 14:38:05 +01:00
Jeff Young 68ca385e07 On-the-fly translations for pin electrical types.
Also add on-the-fly translation for editor title bars.

Fixes https://gitlab.com/kicad/code/kicad/issues/11324
2022-04-05 13:57:28 +01:00
Jeff Young 3196857449 Fix incorrectly initialized variable.
The SCH_ITEM default is LAYER_WIRE, which we don't want for a symbol.

Fixes https://gitlab.com/kicad/code/kicad/issues/11307
2022-04-05 13:57:28 +01:00
markus-bonk dc8556726b Fix building QA tests with options -DKICAD_USE_3DCONNEXION=ON 2022-04-05 06:47:49 +00:00
Jeff Young 3f9cfc0ac1 Fix incorrect m_SyncPinEdit setting.
Fixes https://gitlab.com/kicad/code/kicad/issues/11331
2022-04-04 16:56:53 +01:00
Sylwester Kocjan 05fbe47a1b eeschema: two fixes for simulation tuners
- fix irrelevant warning message box when tuners moved
  too quickly and simulation was slow
- fix for rerun simulation when tuning and result tab was changed
2022-04-02 15:05:54 +00:00
Seth Hillbrand 0625e20fc0 Cleanup spacemouse plugin
Sets std:: convention and unifies the defined/non-defined interface
2022-04-01 15:14:41 -07:00
Jeff Young a12f77b8f6 Don't render fills in black & white mode.
Fixes https://gitlab.com/kicad/code/kicad/issues/11303
2022-04-01 21:24:56 +01:00
Seth Hillbrand 5d5a2f9270 Allow common greek letters in passive regex
Adds common letters (µ and Ω) as prefix and unit

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

(cherry picked from commit 15fe2f2fd0)
2022-04-01 12:51:43 -07:00
Sylwester Kocjan 4719fdc9bf eeschema: rename m_exporter to m_circuitModel 2022-04-01 19:28:31 +00:00
Sylwester Kocjan f5dedd77c6 eeschema,sim: add SIMULATOR and SIM_MODEL interface
SIMULATOR has now an Attach() method, which should be called
with proper SIMULATION_MODEL that should be simulated, before calling Run()

Concrete class of SIMULATION_MODEL for ngspice is NGSPICE_CIRCUIT_MODEL,
renamed from NETLIST_EXPORTER_PSPICE_SIM. DIALOG_SIM_SETTINGS relies
on above mentioned object, so it was added as an argument of the constructor.
2022-04-01 19:28:31 +00:00
jean-pierre charras be6379a8f6 Fix minor Coverity and compil warnings. 2022-04-01 20:43:21 +02:00
Jeff Young 6f818f4c2e Editing support for sheet-pin fonts, text styles and text colors.
Fixes https://gitlab.com/kicad/code/kicad/issues/11300
2022-04-01 19:26:27 +01: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
Seth Hillbrand 49c48e2fe0 Consistently handle env/prj variables
User-defined variables cannot be used for internally-reserved variables

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

(cherry picked from commit c23679d9bd)
2022-03-31 17:05:53 -07:00
Jeff Young 6b99a937d8 Look for sheet pins inside sheets.
Fixes https://gitlab.com/kicad/code/kicad/issues/11297
2022-03-31 22:10:45 +01:00
markus-bonk 1a9ef4bd0f Add support for using a SpaceMouse to pan & zoom in the schematic editor. 2022-03-31 19:03:41 +00:00
Jeff Young e8a543f1ea Colors for text in PL_Editor and Eeschema.
Fixes https://gitlab.com/kicad/code/kicad/issues/1952
2022-03-31 19:43:56 +01:00
Jeff Young 748cc1a59a Pay better attention to aPlotter->GetColorMode().
Fixes https://gitlab.com/kicad/code/kicad/issues/11287
2022-03-30 20:38:24 +01: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 5c7b022f40 Be more pedantic about setting GAL line width.
Fixes https://gitlab.com/kicad/code/kicad/issues/11280
2022-03-30 16:32:23 +01:00
Jeff Young 91ea0903d0 Add infobars for individual-item-color-overrides. 2022-03-29 20:41:03 +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
Seth Hillbrand 719874fe9c Thread the connectivity vector updates
Now that we are dealing with individual connection elements that do not
update their connected elements as well, we can thread the update, just
being careful to guard any remaining updates (bus_enty/busLine) that
need reciprocal updating

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

(cherry picked from commit 6a53e318e5)
2022-03-28 15:36:55 -07:00
Seth Hillbrand 6a33bcdc78 Avoid generating SCH_CONNECTION if not needed
If the SCH_ITEM has already been processed, the extra time needed to
iterated over the memberset and get the SCH_CONNECTION when we won't use
it is not neccesary.

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

(cherry picked from commit 776a28a10e)
2022-03-28 15:36:55 -07:00
Seth Hillbrand 41f7354b7a Handle connection vector inline
Normally, you will gain by resursing a nested loop only over the
pairs that are not already handled.  In this case, however, you lose
time because you step outside of the cache by adding the reciprocal test
at each step.

Instead, we process one element at a time, keeping it cached and loop
over all other elements to add to the connection.  This saves us about
75% of the time for larger loops (e.g. stacked power pins on a large
BGA)

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

(cherry picked from commit 3a98eacdb9)
2022-03-28 15:36:55 -07:00
Jeff Young 09ba7468ae A better is-modified test.
Fixes https://gitlab.com/kicad/code/kicad/issues/10791
2022-03-28 21:54:24 +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
Seth Hillbrand 8706bea3c6 Fix renamed flag
Snuck in between MR reviews
2022-03-28 13:50:44 -07: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 47f4503564 SCH textboxes start/end -> at/size.
The at token can handle an angle; start/end does not.

Fixes https://gitlab.com/kicad/code/kicad/issues/11252
2022-03-28 11:16:39 +01: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
Jeff Young 265ff90e19 Use selection highlight color for sel shadows even when brightened.
This allows Find & Change to show both matches and current match.

Fixes https://gitlab.com/kicad/code/kicad/issues/11101
2022-03-28 11:16:39 +01:00
jean-pierre charras cfe0003ca4 Eeschema: fix misplaced nullptr test that prevent saving SCH_TEXT items.
Fixes #11250
https://gitlab.com/kicad/code/kicad/issues/11250
2022-03-27 18:48:55 +02: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 48dd810cd1 ADDED grouping of selected pins in Pin Table.
Fixes https://gitlab.com/kicad/code/kicad/issues/4956
2022-03-26 21:07:10 +00: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
Sylwester Kocjan 53ccd8bd67 eeschema,sim: refactor NETLIST_EXPORTER_PSPICE_SIM creation 2022-03-26 15:50:15 +00:00
jean-pierre charras 9a342458fa Fix a few Coverity and compil warnings. 2022-03-26 16:21:23 +01: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
Jeff Young d5533e7999 ADDED unit-filtering for pin table.
Fixes https://gitlab.com/kicad/code/kicad/issues/9382
2022-03-26 11:53:48 +00:00
Jeff Young e6c2b12ddf ADDED allow pin conversion to be edited in Pin Table.
Added a De Morgan column.
2022-03-26 11:53:48 +00:00
Jeff Young 2681ad6cfc Don't rely on HasConversion() for Symbol Properties in Symbol Editor.
Fixes https://gitlab.com/kicad/code/kicad/issues/11200
2022-03-26 11:53:48 +00:00
Wayne Stambaugh 7da7864f5e Fix some Coverity issues. 2022-03-25 15:51:05 -04:00
Seth Hillbrand c686105afc Correctly order swap test
MapAngles() will modify parameters and C++ does not guarantee LTR
evaluation, so we need to separate the calls into the proper order
before comparing the returns

Fixes https://gitlab.com/kicad/code/kicad/issues/11135
2022-03-24 09:23:50 -07:00
Jeff Young 92a229eec7 ADDED separate user-defined color for page limits.
Fixes https://gitlab.com/kicad/code/kicad/issues/5271
2022-03-24 14:11:41 +00:00
Wayne Stambaugh b87fc45e33 Fix broken symbol field table editor dialog.
Do not use the symbol field string to populate the value and footprint
grid cells.  The field strings may be empty because the symbol has not
been instantiated yet by entering a sheet.  This fix makes an incorrect
assumption that the first instance value and footprint data in the symbol
is the same for all instances.

Note: this fix is incomplete because the value and footprint fields are
      can now be different between sheet instances.  The entire field
      table editor design will need to be rethought because the current
      grouping doesn't allow different value and footprint instance
      changes.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/11194
2022-03-23 11:46:49 -04:00
Jeff Young 535ecb9b7b Don't leave dangling pointers to old document when importing.
This goes for both selection pointers and undo/redo pointers.

Fixes https://gitlab.com/kicad/code/kicad/issues/10145
2022-03-22 18:08:05 +00:00
Jeff Young 8eb10c41d8 Name any unnamed fields so they don't clobber each other.
Fixes https://gitlab.com/kicad/code/kicad/issues/10039
2022-03-22 18:08:05 +00: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
Wayne Stambaugh e336a0e403 Improve sheet schematic import messages and simplify code.
There was also a logic bug when the selected schematic was in a different
path than the current project and was already part of the current project.
The symbol library table reconciliation code was still run which was wrong.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/11075
2022-03-21 17:09:49 -04:00
Sylwester Kocjan 2fed8aa4b8 eeschema: Add sync functions to SPICE_SIMULATOR
SPICE simulator can be called also during IBIS model determination,
and in the future in ERC. Therefore a necessity arises to implement
exclusive access.
2022-03-21 19:10:08 +00:00
Jeff Young e77a71bf7a Fix typo found in code review. 2022-03-21 10:32:36 +00: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 58c146a7c0 ADDED ki_description and ki_keywords to footprint properties.
Also a bunch of wxT().

Fixes https://gitlab.com/kicad/code/kicad/issues/7783
2022-03-19 23:16:56 +00:00
Jeff Young cc165129fd Special case undo for items with instance data.
Fixes https://gitlab.com/kicad/code/kicad/issues/11102
2022-03-19 19:37:01 +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 2bba277c5e Unit binder: fix hang and DIALOG_WIRE_BUS_PROPERTIES: fix uninitialized variable.
The hang can be Windows specific.
2022-03-19 10:22:41 +01:00
Jeff Young 7b82c2ba85 Preload eeschema find with selection when appropriate.
Fixes https://gitlab.com/kicad/code/kicad/issues/11148
2022-03-18 23:31:30 +00:00
Jeff Young 41c0009c51 Off-grid ERC warnings.
Fixes https://gitlab.com/kicad/code/kicad/issues/10379
2022-03-17 20:23:56 +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
Seth Hillbrand deb7a0beff Avoid marking symbols that will not be processed
We want to shorting the processing time by marking symbols that have
already been processed.  But we must avoid marking symbols that will not
be processed due to their other flags

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

(cherry picked from commit 2208e0db16)
2022-03-17 10:10:56 -07: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 1434988bf8 Formatting. 2022-03-16 14:56:32 +00:00
Wayne Stambaugh c16090cc42 Improve sheet schematic import from different project message.
https://gitlab.com/kicad/code/kicad/-/issues/11075
2022-03-15 18:16:56 -04:00
jean-pierre charras 1f5ec30566 Fix and issue about 180 deg arcs in symbols from "old" libraries.
Can be seen with lib version 20201005, not with latest version.
The fix is similar to commit 8a17fb8d, but for arcs defined by start, end, angles
(modify 180 deg arcs)
Fixes #11130
https://gitlab.com/kicad/code/kicad/issues/11130
2022-03-15 11:31:58 +01:00
jean-pierre charras 2cb719f0cf Fix crash in SCH_LABEL_BASE::IsType() when the item is not living in a schematic.
It happens for instance when copying the item from the clipboard.
Fixes #11128
https://gitlab.com/kicad/code/kicad/issues/11128
2022-03-14 09:23:16 +01:00
Jeff Young 38cde901b0 Don't use last-resolved caches for graphic lines.
Fixes https://gitlab.com/kicad/code/kicad/issues/11127
2022-03-14 00:31:56 +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
Seth Hillbrand d653484d72 Move connected_items from hash table to tree
This gains about 10% speed in heavily connected sheets

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

(cherry picked from commit 187aa1c171)
2022-03-11 16:58:38 -08:00
Seth Hillbrand 5b5c7d41b4 Break up buildConnectionGraph for debugging
Needed to find bottlenecks in fns, so break out individual sections of
the massive function for easier understanding.

buildItemSubgraphs (one section of the previous function) would build
millions of connections that were never used as stacked pins created X!
connections.  Also tested using sets instead of lists and keeping unique
lists to avoid flagging but none of these were as performant as using
flags to remember which items had already been processed.

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

(cherry picked from commit 17b1b68ac7)
2022-03-11 16:58:38 -08:00
Jeff Young 7ab4d67e94 Make sure line style comboboxes get a default entry.
Fixes https://gitlab.com/kicad/code/kicad/issues/11083
2022-03-11 23:19:16 +00:00
Wayne Stambaugh dd1dbb81f6 Improve shared schematic file churn heuristics.
The previous solution cleared all of the fields and force the unit setting
to unit one which would have less than desirable effects when reusing a
schematic in another project.  This solution forces all of the instance
settings to the first sheet instance of the current project to prevent file
change churn when changing shared sheets in the current project.

This will not prevent shared schematic file changes when the first sheet
instance data differs between projects.
2022-03-11 12:37:30 -05:00
Wayne Stambaugh bf5d585e24 Reduce shared schematic file change churn. 2022-03-11 00:32:34 +00:00
Jeff Young a9eb7a0e28 Make sure LIB_ID escape context allows for formatting constructs.
Also make sure that value field is updated from name changes when the
symbol is a power symbol (even if it's from the schematic instead of
the library).

Fixes https://gitlab.com/kicad/code/kicad/issues/11093
2022-03-10 13:46:42 +00:00
Seth Hillbrand 16a266301a Remove double-call of settings from Netlister
Double-calls are no longer needed when using settings.  They can
interfere depending on how the system executes the commands.

Removing keeps the last used plugin as the default, rather than the last
selected

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

(cherry picked from commit e8ef863861)
2022-03-09 17:12:41 -08:00
Seth Hillbrand fd59179cd2 Avoid implementation dependent on events
Adding a page in the ctor can generate events that change the default
page.  Instead, we set the default after all pages have been added,
avoiding the reset

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

(cherry picked from commit 5314ba6440)
2022-03-09 15:42:29 -08:00
Seth Hillbrand 6934bc124c Move temp save files to temporary directory
Avoid excess writes to the project directory to dodge issues with remote
file systems not fully writing data.

wxRename works across disk boundaries (in theory) and falls back to
wxCopy/wxRemove when it fails

Fixes https://gitlab.com/kicad/code/kicad/issues/10747
2022-03-07 20:13:28 -08:00
Seth Hillbrand c9fb95b888 Fix the order of evaluation in the arc printing
MapAngles will adjust by small amounts the angles t1 and t2.  This
adjustment will determine the CW/CCW drawing.  Therefore, the MapAngles
needs to be called explicitly before the Normalize180() call.
Left-to-Right evaluation is not a given for MSVC

Fixes https://gitlab.com/kicad/code/kicad/issues/11050
2022-03-07 16:43:13 -08:00
Jeff Young bf0f2aa4a8 Adjust bitmap text spacing a bit so it's closer to the stroke font.
This helps the text better match the highlighting when it gets small
enough that we switch to the bitmap font for performance.
2022-03-07 20:30:50 +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
Jeff Young d3716b9956 Reentrancy block for symbol editor symbol properties dialog.
Fixes https://gitlab.com/kicad/code/kicad/issues/11060
2022-03-07 10:26:18 +00:00
Jeff Young 4923f02651 Reset GAL pen width between drawing text and border.
Fixes https://gitlab.com/kicad/code/kicad/issues/11059
2022-03-06 20:32:28 +00:00
Jeff Young 3969045009 Don't bitmap multi-line SCH_TEXT.
The linespacing isn't even close and multi-line text is also likely to
have longer lines which makes the X offset get way off too.
2022-03-06 20:17:56 +00:00
Jeff Young 6b3ed89248 Handle justified LIB_TEXT.
Fixes https://gitlab.com/kicad/code/kicad/issues/11052
2022-03-06 19:54:06 +00:00
Jeff Young 14304215b3 Copy m_private flag in LIB_TEXT's clone().
Fixes https://gitlab.com/kicad/code/kicad/issues/11051
2022-03-06 17:00:13 +00:00
Jeff Young c919817c18 Don't reserve space for private items when autoplacing. 2022-03-06 16:12:49 +00:00
jean-pierre charras dbfdd3fb56 Fix some Coverity warnings. 2022-03-06 09:48:33 +01:00
Seth Hillbrand 8fd87e1f04 Change connectivity item group from set to vector
Reserve space for new items to speed construction of connectivity graph

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

(cherry picked from commit 7aebc4b11f)
2022-03-05 13:04:11 -05:00
Seth Hillbrand cd7141fd10 Cache read arc data for stability
Arcs can be altered by the process of changing from on-disk
representation to in-memory representation.  Saving back to disk without
modifying the arc should not modify the calculated values.

This stores a copy of the on-disk representation that is only used to
save back to disk in the event that the arc is not modified during
editing.

Fixes https://gitlab.com/kicad/code/kicad/issues/10442
2022-03-04 15:20:31 -08: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
Jeff Young c025b4c73d Save all stroke parameters of sch & lib shapes.
We were failing to save the line style, which caused ERC errors when
DEFAULT != SOLID.
2022-03-03 14:37:04 +00:00
Jeff Young 76535d8572 Make LIB_ITEM::COMPARE_FLAGS really a flags field, and add ERC.
Before they were 1/2 treated as flags and 1/2 treated as a mode enum.

The ERC flag relaxes constraints on data that is settable in the
schematic editor.

Fixes https://gitlab.com/kicad/code/kicad/issues/11018
2022-03-03 13:27:18 +00:00
jean-pierre charras a0d68b8426 SCH_DIRECTIVE_LABEL: add missing virtual SwapData.
Fixes #11027
https://gitlab.com/kicad/code/kicad/issues/11027
2022-03-03 10:27:17 +01:00
Jeff Young c5d85e0b7e Don't try to open cell editor on first focus.
It hasn't worked since we rejiggered the default grid selection mode
anyway, and for some reason it eats <esc> key events after the dialog
has been resized.

Fixes https://gitlab.com/kicad/code/kicad/issues/11015
2022-03-03 02:06:48 +00:00
Jeff Young fd4b4533b1 Remove some code that isn't used anymore. 2022-03-03 02:06:48 +00: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
Seth Hillbrand 8c36ba3653 Explicitly give unit values
Removes the ability to hide symbol units in file formats.  This was
mostly the case for a while but there remained corner cases where we
left a default/hidden option

Fixes https://gitlab.com/kicad/code/kicad/issues/10888
2022-03-02 16:01:08 -08:00
Seth Hillbrand 984eb0fb40 Handle locally-coded file names for sheets
Windows can accidentally create forward slash-coded files.  This simply
converts them to the proper unix-coded value when set

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

(cherry picked from commit 429544c188)
2022-03-01 17:23:30 -08:00
Seth Hillbrand 61acd607ad Ensure fields are properly ordered
When reading sheet fields, we need to maintain a consistent order for
the mandatory fields as they are dereferenced by place.  We force this
during the `SetFields()` call.

(cherry picked from commit 8385ce3021)
2022-03-01 17:10:35 -08:00
Seth Hillbrand ac87d5e940 Resolve text when requested
Getting resolved text for a symbol should always happen, even if we have
unresolved data in the instances

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

(cherry picked from commit acb5ce7108)
2022-03-01 15:11:06 -08:00
Jeff Young 79ad15b4fa Fix copy/pasta.
Fixes https://gitlab.com/kicad/code/kicad/issues/11005
2022-03-01 14:59:29 +00:00
Jeff Young 4dc652497d Put device-coloured fills on device layer.
Fixes https://gitlab.com/kicad/code/kicad/issues/10993
2022-02-28 21:11:01 +00:00
Seth Hillbrand eb06ecab10 Avoid resolving text vars without screen
We need to keep the screen blank while initially loading a sheet before
the hierarchy is developed.  Avoid resolving text variables during this
process

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

(cherry picked from commit 63b06af6b1)
2022-02-28 12:28:02 -08:00
Jeff Young b55bda8d6f Font support for drawing sheet editor.
Fixes https://gitlab.com/kicad/code/kicad/issues/10306
2022-02-28 18:05:26 +00: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 f241617478 Be more careful about non-visible elements in fields autoplacer.
Fixes https://gitlab.com/kicad/code/kicad/issues/10774
2022-02-28 00:18:39 +00: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
Jeff Young 1f16092e29 Infobar warning if symbol loading was cancelled.
Also makes sure the progress dialog is closed when we're done reading
symbols (it used to stay up for much of the symbol editor initialization).

Also makes sure that any cancel in the preLoad step is honoured in the
sync step.  (The preload is done because it is multi-threaded and therefore
faster than the single-threaded sync.)

Also makes sure that individual threads pay attention to the cancellation,
not just the GUI thread.

Fixes https://gitlab.com/kicad/code/kicad/issues/8372
2022-02-27 17:06:08 +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
Steffen Mauch 78620347c8 Fixing Eagle refs that do not work with KiCad
KiCad has stricter requirements for what consititutes an annotated
symbol.  This checks for and corrects annotations that begin with '#',
do not begin with a non-numeric character or do not end with a number
2022-02-25 23:42:47 +00: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
jean-pierre charras 4c81bac9e3 Eeschema: ensure ERC exclusions list is up to date before saving it in *.kicad_pro
Fixes #10339
https://gitlab.com/kicad/code/kicad/issues/10339
2022-02-25 18:21:46 +01:00
Jeff Young 67eb138a4b Fix copy/pasta.
Fixes https://gitlab.com/kicad/code/kicad/issues/10957
2022-02-25 00:49:41 +00:00
Jeff Young a29968fa91 Make sure bitmap fallback is only used for non-cached text.
Also fixes backwards vertical justification for bitmap text.

Fixes https://gitlab.com/kicad/code/kicad/issues/10956
2022-02-24 18:16:45 +00:00
Jeff Young 2042b08127 Performance optimizations for drawing (small) text. 2022-02-23 12:09:36 +00:00
Jeff Young d58427a519 Don't kill entire OpenGL cache on undo.
The comment regarding bitmaps was true for one more month in 2018, but
hasn't been true for the last 3 years, and clearing the cache is a huge
performance hit.
2022-02-22 23:09:55 +00:00
Jeff Young c7dda3fbec Formatting. 2022-02-22 22:19:55 +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
Thomas Pointhuber 8ef7252330 altium: Don't use string concatenation for paths pointing in the compound file
* std::vector do not need to be split apart again
* supports backslash in footprint names
2022-02-19 16:46:20 +01:00
Jeff Young 510dc28a5c Resolve text variables before attempting to open datasheet. 2022-02-19 14:59:50 +00:00
Jeff Young 8a22dab83d Fix crash bug when adding rows to pin table and then pasting to unit. 2022-02-18 17:12:46 +00:00
Jeff Young a678b78091 Implement SCH_MARKER::GetSeverity().
Fixes https://gitlab.com/kicad/code/kicad/issues/10893
2022-02-18 12:14:38 +00:00
Jeff Young 944fe9637d Fix error that prevent drawing pin selection highlighting. 2022-02-17 19:02:51 +00:00
Wayne Stambaugh 35f85dd900 Eeschema: fix broken symbol library rescue.
Apparently at some point during V5 development, symbol cache library names
were saved by replacing the LIB_ID separator character ':' with '_'.  This
caused the cache look up to fail there by skipping the symbol rescue which
could result in broken schematics.

I have no idea where this happened during V5 development.  The video demo
in the HEAD of the 5.1 branch shows the issue.  All of the other demo cache
libraries are correct.

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

(cherry picked from commit c6c4f9ae4b)
2022-02-17 09:16:33 -05:00
Jeff Young 9584849aba Fix type which results in global fieldname templates being added to project. 2022-02-17 12:42:10 +00:00
Jeff Young d60ed70d54 Sync all fields between units when symbol is edited.
Fixes https://gitlab.com/kicad/code/kicad/issues/10610
2022-02-17 12:42:10 +00:00
Jeff Young e499793147 Update alt pin assignments in other units.
Fixes https://gitlab.com/kicad/code/kicad/issues/10849
2022-02-17 12:42:10 +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
Jeff Young bc7742cb2e Various text object defaults don't necessarily match file defaults.
Fixes https://gitlab.com/kicad/code/kicad/issues/10862
2022-02-15 23:25:59 +00:00
Jeff Young ab5489ad30 Fix typo.
Fixes https://gitlab.com/kicad/code/kicad/issues/10390
2022-02-15 22:40:24 +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
jean-pierre charras 414dfb4745 Eeschema, DIALOG_TEXT_PROPERTIES and DIALOG_LIB_TEXTBOX_PROPERTIES: fix minor issues
Fixes #10863
https://gitlab.com/kicad/code/kicad/issues/10863
2022-02-15 15:38:08 +01: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
jean-pierre charras 876061369b Fix some Pcbnew crashes due to null pointers 2022-02-14 13:46:05 +01: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 1090403ca2 Schematic Preferences: fix grid assert on negative width 2022-02-13 22:27:41 +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
jean-pierre charras 7e6829e834 Fix minor compil warnings 2022-02-12 11:43:38 +01: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
Jeff Young 940e03e567 Remove arc end swapping when parsing.
See: 2366b06e77 (note_839061664)
2022-02-11 13:10:52 +00:00
Werni 946f62d949 Add separate wildcard for OrCAD netlists 2022-02-11 09:24:20 +00:00
Jeff Young 082c6f5bd6 Make sure plotter uses default font when specified. 2022-02-10 20:33:06 +00:00
Jeff Young f11b8011cd Separate plotting into background and foreground.
Fixes https://gitlab.com/kicad/code/kicad/issues/10390
2022-02-10 20:33:06 +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
Jeff Young 2366b06e77 Don't parse multiple items in a single c'tor or function call.
The C++ optimizer is not always your friend and may do them in the
reverse order.
2022-02-10 17:54:13 +00:00
Jeff Young d33d092e8e Add a second fix for backwards arcs.
This one *should* also be good when we support larger-than-180
degree arcs.
2022-02-10 15:46:02 +00:00
Jeff Young cb8e803788 Formatting. 2022-02-10 13:04:29 +00:00
jean-pierre charras b9843a23eb Eeschema, legacy *lib files: fix issues with 180 deg arcs.
180 deg arcs are a limit, so when importing them convert them to slightly
smaller arc (arc angle = 179.5 deg)
Fixes #10455
https://gitlab.com/kicad/code/kicad/issues/10455
2022-02-10 12:45:54 +01:00
Jeff Young 7b84e0a7d9 Make printing/plotting/drawing of LIB and SCH arcs consistent.
Fixes https://gitlab.com/kicad/code/kicad/issues/10801
2022-02-10 00:35:24 +00:00
Wayne Stambaugh 3f8f90db9f Factor out common s-expression library cache source code. 2022-02-09 11:20:14 -05:00
Wayne Stambaugh 7181f0b40b Fix clang broken build. 2022-02-09 07:55:50 -05:00
Wayne Stambaugh fe82f2dd40 Factor out common schematic s-expression source code. 2022-02-08 14:44:38 -05:00
Jeff Young 58c38d2830 Don't nanny users about what constitutes quality graphics.
Fixes https://gitlab.com/kicad/code/kicad/issues/10788

Fixes https://gitlab.com/kicad/code/kicad/issues/10374
2022-02-08 17:35:48 +00:00
Jeff Young 3600b2ce3f Make sure temp sheet has a parent. 2022-02-08 17:09:17 +00:00
jean-pierre charras 2f79f579cc DIALOG_TEXT_PROPERTIES: do not show fill option for texts.
It make sense only for text boxes.
Fixes #10786
https://gitlab.com/kicad/code/kicad/issues/10786
2022-02-08 09:42:22 +01:00
Mike Williams 7c91cd73e3 Eeschema: unconnected ends of wire entries should allow auto start wires 2022-02-07 23:31:24 +00:00
Wayne Stambaugh fc3cad0b54 Hash symbol libraries per library rather than statically per cache type. 2022-02-07 15:40:21 -05:00
Kevin Lannen f9b27a53b2 Eeschema: Edit pin numbers while grouped
ADDED: The pin table pin numbers column supports editing the list of pin
numbers to add, remove, and rename pins.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/5620
2022-02-07 17:45:16 +00:00
Kevin Lannen 631d5155ef Eeschema: Pin table support for multi unit symbols
ADDED: Symbol editor pin table supports editing which unit each pin is
displayed on

Note: 6513 mentions being able to change the pin unit from the edit pin
menu. This does not add that feature.
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/6513
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/5470
2022-02-07 17:45:16 +00:00
Kevin Lannen 56794ab829 Eeschema: Add pin count column to pin table
ADDED: When the pin table is showing grouped pins, display a read-only column
that displays the number of pins in each row.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/2416
2022-02-07 17:45:16 +00:00
Kevin Lannen 08ca19f95d Eeschema: Display pin count and duplicate pin list in pin table dialog 2022-02-07 17:45:16 +00:00
Jeff Young 624dc393bf Fix tooltip.
Fixes https://gitlab.com/kicad/code/kicad/issues/10708
2022-02-07 17:36:40 +00:00
Jeff Young 79c7d55a40 Add a checkbox for LIB_SHAPE borders. (We already have them for LIB_TEXTBOXes.)
Fixes https://gitlab.com/kicad/code/kicad/issues/10365
2022-02-06 19:43:25 +00:00
Jeff Young 0ffa1288ee Regularize how penWidths are fetched.
Fixes https://gitlab.com/kicad/code/kicad/issues/git
2022-02-06 19:43:25 +00:00
Jeff Young aedfe08bad Show pin dangling symbols in Symbol Editor.
Even though we don't have connections they're a still a good visual
indication of which end of the pin is which.

Fixes https://gitlab.com/kicad/code/kicad/issues/10742
2022-02-06 19:43:25 +00:00
Jeff Young b1cc784582 Harmonize interchangeable units checkboxes.
Fixes https://gitlab.com/kicad/code/kicad/issues/10708
2022-02-06 19:43:25 +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 b57ac3d517 Handle SCH_TEXTBOX in SCH_SEXPR_PLUGIN::Format.
Fixes https://gitlab.com/kicad/code/kicad/issues/10771
2022-02-06 19:43:25 +00:00
Marek Roszko d9c04da407 Sprinkle in some make_unique 2022-02-05 21:26:36 -05:00
Marek Roszko 41f54349a5 Replace inserts/push_backs with emplace in some spots 2022-02-05 19:53:31 -05:00
Jeff Young 7ccac79192 More wxString wide literals. 2022-02-05 21:29:34 +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
Marek Roszko ca7840334c Mark some limits as constexpr
gcc doesn't need it and computes during compile regardless, but experimenting in godbolt, both clang and MSVC actually do need it or else it's partially computed at runtime
2022-02-04 07:50:13 -05: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 b9eb3e9b05 Be more explicit about string conversions. 2022-02-03 23:07:41 +00:00
Seth Hillbrand b7c31d3b5b When undoing creation of the sheet, get out first
We can't stay in a sheet that is deleted by the action of undo.  Checks
the current sheet and, if we are currently using it, ensures that the
following action is to leave the current sheet

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

(cherry picked from commit ccf2a63f45)
2022-02-03 11:19:51 -08:00
Jeff Young 3d0b03515d Fix bad field names when ID == -1.
Fixes https://gitlab.com/kicad/code/kicad/issues/10548
2022-02-03 12:38:56 +00:00
Marek Roszko fa1d316d84 Fix windows build error 2022-02-02 17:43:47 -05:00
Wayne Stambaugh e590d07224 Fix clang build error. 2022-02-02 07:44:11 -05:00
Wayne Stambaugh 9260431fe4 Abstract out symbol library parser object. 2022-02-02 07:07:39 -05:00
Wayne Stambaugh 6fcc6f7c9d Factor out common legacy schematic and symbol library parser code. 2022-02-01 16:30:15 -05:00
Jeff Young bebfbce9b2 Move pcb file rep of text_boxes to strokes. 2022-02-01 16:29:59 +00:00
Jeff Young a1009d7899 Fix assertion failure for labels. 2022-02-01 12:01:04 +00:00
Seth Hillbrand 59e43527a0 Add dummy defaults for textbox 2022-01-31 16:26:37 -08:00
Jeff Young 4243d7b055 Bug fixes for color handling. 2022-02-01 00:21:08 +00:00
Seth Hillbrand 098e8f7d9b Revert "cmake: adding KICAD_MACOSX_APP_BUNDLE option"
This reverts commit ea9f960cc1.

Reverted for updates as this currently breaks kicad-mac-builder
2022-01-31 15:57:56 -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
Jeff Young 5739505aa3 TextBoxes for PCBNew. 2022-01-31 20:00:47 +00:00
Jeff Young 60bcfd1bf1 Bug fixes in arc & textbox printing.
Also removal of the no-longer-used clipping code from GR*.
2022-01-31 20:00:47 +00:00
Roberto Fernandez Bautista 25a7de730c eeschema/CMakeLists.txt Sort sources alphabetically 2022-01-31 19:51:01 +00:00
jean-pierre charras 64f2adbc31 SCH_PAINTER, draw filled LIB_SHAPE: fix incorrect selection of fill color. 2022-01-30 10:20:49 +01:00
jean-pierre charras b4826ce304 LIB_TEXT: fix incorrect position of the drawn text.
Fixes #10654
https://gitlab.com/kicad/code/kicad/issues/10654
2022-01-30 09:11:16 +01: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
Davide Gerhard ea9f960cc1 cmake: adding KICAD_MACOSX_APP_BUNDLE option
ADDED: with cmake KICAD_MACOSX_APP_BUNDLE option the user can disable
the macOS app bundle creation when compiling on macOS. This permit to
use/install KiCad like any other *nix platform (/usr/bin, /usr/share,
ecc.). By default, cmake build the app bundle.
2022-01-28 15:49:37 -08: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
Seth Hillbrand 79403ef075 Readd yield call to give slice to system.
Note:
- wxYield does not work here, indicating the need for locking
- wxYieldIfNeeded does not work, possibly for the same reason as wxYield
- Both Layout() and m_fieldGrid->Layout() need to be called even though
  the first should call the second.

Fixes https://gitlab.com/kicad/code/kicad/issues/5690
2022-01-28 13:02:39 -08:00
Franck a6203617d9 Fix Altium schematic port component import assertion.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/10322

Fixes https://gitlab.com/kicad/code/kicad/-/issues/10401
2022-01-28 15:52:30 +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
Seth Hillbrand 9ab2eb391f Move delay selection out of UpdateUI
Calling actions from within UpdateUI can cause loops that crash or
substantially slow

Fixes https://gitlab.com/kicad/code/kicad/issues/10616
2022-01-26 16:05:40 -08:00
jean-pierre charras 8a17fb8d19 SCH_SEXPR_PARSER::parseArc(): fix a very annoying issue: each time the lib or
sch files are saved and reopened, 180 deg arcs were flipped.
This fix is a workaround, but avoid flipped arcs after saving/reopening these files.
2022-01-26 18:19:52 +01:00
Seth Hillbrand 2dc031ee34 Prevent auto-column sizing when editor opens
On GTK, some configurations will trigger a column resize, which will
close the current editor.  This blocks the column resize while the
editor is open, unless the resize continues, which indicates dragging of
the window edge

Fixes https://gitlab.com/kicad/code/kicad/issues/5690
2022-01-25 17:59:15 -08:00
Seth Hillbrand b6ecbc596e Fix mistaken use of `m_width`
This is a protected var in Linux but doesn't exist in Mac/MSW.  We use
the new m_fieldsSize
2022-01-25 12:45:09 -08:00
Seth Hillbrand efb323d57d Another stab at https://gitlab.com/kicad/code/kicad/-/issues/5690
This time, ensure that the grid is increased and the main form gets an
event
2022-01-24 16:30:30 -08:00
Seth Hillbrand a054a46136 Force a size event to avoid multiple yields
When the grid editor is shown, we also want to ensure that the grid gets
resized to account for the new editor.  Queuing the event will ensure
that happens after the editor is emplaced in the grid

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

(cherry picked from commit fddfce4fb1)
2022-01-24 15:32:17 -08:00
Seth Hillbrand be5bb8c4bd Enforce strictly weak ordering in sheets
This ensures that irreflexivity is given in sort ordering.  This may
have been triggering issues in MacOS when adding sheets

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

(cherry picked from commit a1615cce7e)
2022-01-24 10:41:21 -08:00
Seth Hillbrand 175c4fe67c Allow time to update editor
On GTK, the full editor needs to be shown and, for some systems, the
editor will not show correctly.  By yielding we should allow the time to
recalculate sizes for the editor in the grid

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

(cherry picked from commit 871556ebda)
2022-01-24 09:58:10 -08:00
Seth Hillbrand 0926eb3287 Get all eeschema layers properly ordered
Layers not in the given order are drawn behind everyone else.  Missing
the text prevents global labels from showing properly in GAL order

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

(cherry picked from commit f12d0cb0e2)
2022-01-23 10:04:32 -08:00
Fabien Corona 58e167013d SPICE: Add support for transmission lines 2022-01-23 17:23:22 +00:00
jean-pierre charras 2dbc89e5f2 DIALOG_SIM_SETTINGS: fix incorrect validation of DC souces in DC Transfer panel
Fixes #10568
https://gitlab.com/kicad/code/kicad/issues/10568
2022-01-23 16:22:12 +01:00
Jeff Young 0283e2c246 Highlighting for schematic shapes when fill shapes is turned off.
Fixes https://gitlab.com/kicad/code/kicad/issues/10372
2022-01-22 22:27:41 +00:00
Jeff Young 29841ba315 Bring ERC & DRC dialogs into parity.
Fixes https://gitlab.com/kicad/code/kicad/issues/9350
2022-01-22 22:27:41 +00:00
Jeff Young de49f5090d Formatting (and auto reduction). 2022-01-22 12:16:07 +00:00
Jeff Young 4665cdcdc5 Allow more (lots more) unfold from bus menu entries.
Fixes https://gitlab.com/kicad/code/kicad/issues/10529
2022-01-21 17:41:05 +00:00
jean-pierre charras 242e66355c SYMBOL_VIEWER_FRAME: fix refresh of the canvas after selecting a new symbol. 2022-01-21 16:37:58 +01:00
jean-pierre charras 694ae59664 fix a minor compil warning (shadowed vars) 2022-01-21 14:09:42 +01:00
Jeff Young c8a50d9b50 Remove unit-less angles from VECTOR2I/D APIs. 2022-01-20 23:58:20 +00:00
Seth Hillbrand 16aca901df Clear Undo list when renaming
Our undo/redo list is tied to the screen that gets cleared when we
reload the file after renaming.  We need to clear the Undo list at this
point to prevent possible crashes when moving too far back in the stack

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

(cherry picked from commit 323a069738)
2022-01-20 11:29:05 -08:00
Seth Hillbrand cffc99e384 Don't close filled polylines when printing
Eeschema/libedit support open, filled polylines.  When printing, this
should be drawn as a fill, followed by the polyline to avoid assumptions
about closed polygons in the graphic code

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

(cherry picked from commit 615eda816e)
2022-01-20 10:54:36 -08:00
Jeff Young 3ba89f50ef Maybe, just maybe, fix LibEdit arc parsing.
Fixes https://gitlab.com/kicad/code/kicad/issues/10455
2022-01-19 22:22:18 +00:00
Jeff Young 8445783216 Fix backwards arcs in legacy LIB_ARCs.
Fixes https://gitlab.com/kicad/code/kicad/issues/10455
2022-01-18 14:08:47 +00:00
jean-pierre charras 380cb452b2 fix an issue in a bom script (extra empty lines created)
Fixes #10473
https://gitlab.com/kicad/code/kicad/issues/10473
2022-01-18 13:49:50 +01:00
jean-pierre charras 25fca2abb7 fix a minor compil warning 2022-01-18 13:49:50 +01:00
Jeff Young f310a5b986 Excise deci-degrees from trigo. 2022-01-18 11:44:55 +00:00
Jeff Young b828355206 A bit more angle cleanup. 2022-01-18 09:48:24 +00:00
Jeff Young de31b813f3 Angle cleanup in the Cadstar importer. 2022-01-18 02:31:37 +00:00
Jeff Young 622f94e7b9 Angle cleanup in Altium importer. 2022-01-18 02:31:37 +00:00
Jeff Young 0218b782f4 Angle cleanup in Eagle importer. 2022-01-18 02:31:37 +00:00
Jeff Young dcaec78cc5 A bit more angle cleanup. 2022-01-18 02:18:55 +00:00
Thomas Pointhuber 0129e49b79 altium: Introduce new ALTIUM_COMPOUND_FILE object to handle file opening and searching for streams at a central place 2022-01-17 19:54:26 +01:00
Jeff Young 2defd8d911 Move show-bounding-boxes to a tool on the toolbars. 2022-01-17 11:56:40 +00:00
Jeff Young 5cc3368b14 Fix bounding boxes and hittesting for arcs in eeschema. 2022-01-16 23:54:59 +00:00
Jeff Young e61144d45a Finish with EDA_ANGLE. 2022-01-16 21:15:40 +00:00
dsa-t bc1ff6756f Cross-probing/selection for multiple items (SCH->PCB) 2022-01-16 20:29:03 +00:00
Jeff Young e84c574830 Some more EDA_ANGLE cleanup. 2022-01-16 19:16:18 +00:00
jean-pierre charras 516d038bdf Eeschema: fix incorrect stored rotation value in file of the global and hierarch. labels.
The stored value was the rotation of the text (always 0 or 90 deg), but these labels can also
be rotated by -90 or 180 deg
Fixes #10450
https://gitlab.com/kicad/code/kicad/issues/10450
Fixes #10457
https://gitlab.com/kicad/code/kicad/issues/10457
2022-01-16 17:19:36 +01:00
Jeff Young 9b661aea10 EDA_ANGLE for plotters.
Also fixes a compile error in the PNS Playground.
2022-01-16 01:19:45 +00:00
Jeff Young 2b14b60c32 Resolve text variables in eeschema before passing to pcbnew.
Fixes https://gitlab.com/kicad/code/kicad/issues/10429
2022-01-15 01:30:03 +00:00
Jeff Young a533d64417 Apply default line style.
Fixes https://gitlab.com/kicad/code/kicad/issues/10388
2022-01-14 16:08:19 +00:00
Jeff Young 07013d00e1 More EDA_ANGLE. 2022-01-14 16:08:19 +00:00
Jeff Young 1b19ff5f42 More EDA_ANGLE changes. 2022-01-14 16:08:19 +00:00
Jeff Young 70ad554343 Coverity fixes. 2022-01-14 16:08:18 +00:00
Jeff Young e048e51f5d Improve SNR of EDA_ANGLE stuff. 2022-01-14 16:08:18 +00:00
jean-pierre charras d0f2c20235 Define our kicad font name only once, and do not translate it.
Especially using a translated name breaks kicad config and files because
in non English languages both translated and not translated names were used in code.
2022-01-13 14:32:55 +01:00
Seth Hillbrand e244ce1431 Fix cherry-picked wxPoint 2022-01-12 15:49:03 -08:00
Seth Hillbrand d3f24308e6 Handle rotated symbol rectangles in Eagle import
Fixes https://gitlab.com/kicad/code/kicad/issues/10360

(cherry picked from commit dcb8f29317)
2022-01-12 15:11:18 -08:00
dana 8373180cbb Handle Unicode clipboard data in pcbnew and symbol editor
Fixes #10323
2022-01-12 17:15:47 +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
jean-pierre charras a709d97a32 SCH_LABEL_BASE::Plot(): Plot fields. 2022-01-12 11:08:34 +01:00
jean-pierre charras b3072cc16b SCH_PAINTER, DrawLine: gives a minimal length to lines having a 0 length
Lines with start point = end point always create problems in OpenGL (not drawn).
2022-01-12 09:44:30 +01:00
Franck Bourdonnec 3d8288f919 Remove unused vars, verified there was no other intention with them;
rectangle are OK
2022-01-11 20:16:35 +00:00
Jeff Young 062f5e3177 Undo for SCH_SHAPEs.
Fixes https://gitlab.com/kicad/code/kicad/issues/10373
2022-01-11 18:33:54 +00:00
Jeff Young a23f6e4e92 Handle border colors for SCH_SHAPEs.
Fixes https://gitlab.com/kicad/code/kicad/issues/10361
2022-01-11 18:18:11 +00:00
Jeff Young 184bcf6520 Fix failure of SCH_SHAPE to pick up default line width.
Fixes https://gitlab.com/kicad/code/kicad/issues/10376
2022-01-11 17:40:49 +00:00
Jeff Young f9927ab675 Fix Text Properties dialog layout.
Fixes https://gitlab.com/kicad/code/kicad/issues/10368
2022-01-11 16:00:38 +00:00
Jeff Young 267eca28cd Font support for global edit text & graphics dialogs. 2022-01-11 15:34:24 +00:00
Jeff Young 8f7d2dd06a More VECTOR2D -> VECTOR2I and wxPoint cleanup. 2022-01-11 14:20:14 +00:00
Seth Hillbrand d5faac7614 Better fix for missing end segment
Rather than skipping our endEdit() call in libedit, we need to
parameterize whether we want the shape open/closed.  Closed will remove
the last segment if it lands on the first point.  We don't want that
but we do want to remove the last point if it duplicates the second to
last (in the case of double-clicking)

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

(cherry picked from commit 55020c2b89)
2022-01-10 13:39:39 -08:00
Jeff Young 7d032f9c2f Outline font rendering for Cairo, plotter, printer and 3D viewer.
Fixes https://gitlab.com/kicad/code/kicad/issues/10319
2022-01-10 01:54:28 +00:00
Jeff Young 76368af7b9 Font cleanup and bug fixes. 2022-01-09 18:33:53 +00:00
Jeff Young 92d5a3e763 Clear caches when changing global default font. 2022-01-09 11:34:20 +00:00
Jeff Young 27c967421c Commenting and "auto" reduction. 2022-01-08 16:47:45 +00:00
Jeff Young 04c76f10e9 Performance enhancements for fonts. 2022-01-08 16:47:45 +00:00
Jeff Young 438c63f587 Fix outline font boundingbox issues. 2022-01-08 16:47:45 +00:00
Jeff Young aef2a3fca4 Default font for eeschema. 2022-01-08 16:47:45 +00:00
Jeff Young a2030a5956 GUI for font selection. 2022-01-08 16:47:45 +00:00
Ola Rinta-Koski 72b69e8d7f File format changes for fonts. 2022-01-08 16:47:45 +00: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
jean-pierre charras e00e9ff41f PANEL_TEMPLATE_FIELDNAMES: fix incorrect management of boolean options
(it was impossible to disable them)
Fixes #10280
https://gitlab.com/kicad/code/kicad/issues/10280
2022-01-06 19:00:52 +01:00
Seth Hillbrand 3ace4446e7 Use 'special' escaping for certain fields
Most fields are escaped using the `\` notation.  But the VALUE field and
the symbol name need to be escaped using braces notation.

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

(cherry picked from commit 71e7b4b77b)
2022-01-05 17:19:36 -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
Seth Hillbrand 5a8b0921eb Don't remove last point in libedit
SHAPE_LINE_CHAIN in libedit doesn't make a polygon, so we always need
the last point and it shouldn't be closed

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

(cherry picked from commit 55087a9e82)
2022-01-05 16:06:38 -08:00
Steffen Mauch 3ced3afa68 eeschema: automatic generated symbol library from EAGLE plugin does not include footprint reference
Fixes https://gitlab.com/kicad/code/kicad/issues/10262
2022-01-05 19:48:40 +00:00
Seth Hillbrand e4961cb956 Update pin cache when undoing
The pin cache is invalidated by swap, so we need to ensure that it is
reset when we undo a change to the pins in schematic editor

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

(cherry picked from commit 7f1648934f)
2022-01-05 11:33:35 -08:00
Steffen Mauch 502e34349e eeschema: EAGLE plugin does not reference footprint with library suffix
Fixes https://gitlab.com/kicad/code/kicad/issues/10261
2022-01-05 19:14:27 +00:00
Seth Hillbrand 30549a5e6a Don't strip extensions twice in BOM export
Exporting the Bill of Materials uses the netlist exporter.  Both of
these routines were stripping the extension, leading to projects like
"test.project.kicad_pro" having the project name stripped.  We separate
the BOM netlist export from generic plugin netlist export to allow the
correct behavior when exporting netlists and generating BOMs

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

(cherry picked from commit bef762e652)
2022-01-05 11:07:49 -08:00
Seth Hillbrand 9ca41cc8ee Set readable flags correctly on open
Missing files may be thrown during open.  These should have existence
and readable flags set correctly

(cherry picked from commit a05ec04ee8)
2022-01-05 09:55:51 -08:00
jean-pierre charras cd0ac9e698 eeschema, DIALOG_FIELD_PROPERTIES: fix a few issues.
(incorrect handling of H and V justify bitmap buttons
Fixes #10267
https://gitlab.com/kicad/code/kicad/issues/10267
2022-01-05 17:25:18 +01:00
Seth Hillbrand b0fddef9b4 Don't rename existing schematic file
We should never leave a situation where the schematic file may no longer
exist (if the first rename succeeds and the second fails).  So, make a
backup copy of the original schematic file and then attempt to rename
the autosave over the first file.  In this case, if either attempt
fails, we do not lose the original file

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

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

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

(cherry picked from commit b1658fdf9a)
2022-01-04 20:28:21 -08:00
Marek Roszko 726d873c53 Tear down the wxPoint trigo helpers 2022-01-04 21:23:11 -05:00
Seth Hillbrand dda569d486 Don't split legacy paths
The '.' is a valid character in the legacy preferences, not a separator.
Also adds fail-safe catch for JSON throws

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

(cherry picked from commit a326d777f0)
2022-01-04 11:09:40 -08:00
jean-pierre charras c2b54faceb CvPcb: fix crash due to a null pointer: pcbconfig() can return null.
CvPcb has no config option and pcbconfig() returns nullptr.
In this case use default settings.
Fixes #10250
https://gitlab.com/kicad/code/kicad/issues/10250
2022-01-04 14:51:32 +01:00
Marek Roszko ac715d2e51 Scoop up some more wxPoint instances 2022-01-03 20:00:53 -05:00
Jeff Young e21fa31f64 Rip out rest of macHack architecture. 2022-01-03 22:09:56 +00:00
Roberto Fernandez Bautista 2d3624a016 Rename ComparePageNumAndName -> ComparePageNum 2022-01-02 23:20:17 +00:00
Jon Evans 9daa4d0e2c Move duplicate field handling into field parser
Fixes https://gitlab.com/kicad/code/kicad/-/issues/10130

(cherry picked from commit ea99c42df6)
2022-01-02 13:19:54 -05:00
Jeff Young 89c0f8e297 Move to new font engine. 2022-01-02 14:57:03 +00:00
jean-pierre charras c108d25897 Fix mirroring tests issues in qa tests for eeschema 2022-01-02 15:44:52 +01:00
jean-pierre charras e6087f361a Add forgotten fix 2022-01-02 15:08:09 +01:00
jean-pierre charras 797de9d327 Fix some issues (but not all) in qa tests for eeschema
The main fix is for errors in SCH_TEXT and derived:
qa test expects 4 rotations is an identity transform:
This is false if the item has autoplaced fields.
The fix clears autoplaced flags.
2022-01-02 14:54:27 +01:00
Simon Richter d25fe17b28 Bump minimum required CMake version to 3.11
Signed-off-by: Marek Roszko <mark.roszko@gmail.com>
2022-01-01 21:35:08 -05:00
Seth Hillbrand a365afde3c Ensure merged line gets selected if either parent is
We were only checking for the selection of a single line that gets
merged.  This prevents the merged line from being highlighted but not
selected after merging

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

(cherry picked from commit addc5574b4)
2022-01-01 16:53:52 -08:00
Jeff Young 93018375f8 Fix some test errors and update gold files for better netnames. 2022-01-01 20:46:45 +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
Marek Roszko 34e90e5045 Silence MSVC warnings about type mismatch and unused var 2022-01-01 14:41:36 -05:00
Marek Roszko c91d3e3cf9 Remove some more wxPoint 2022-01-01 14:12:20 -05:00
Roberto Fernandez Bautista a0d708e04d Use virtual page number when real page numbers are blank
Fixes https://gitlab.com/kicad/code/kicad/-/issues/10158
2022-01-01 18:36:56 +00:00
Marek Roszko ea613cf448 Another batch of point changes 2022-01-01 13:17:12 -05:00
Marek Roszko d1552c3fec Some more wxPoint removal 2022-01-01 12:11:21 -05:00
Marek Roszko c4c56de708 Neurotically update position wxPoint usages 2022-01-01 11:55:51 -05:00
Marek Roszko cadc0639eb Update BASE_SCREEN to VECTOR2I 2022-01-01 11:30:33 -05:00
Marek Roszko 347e03363a Convert wxPoint/wxSize starting from EDA_RECT usages 2022-01-01 11:30:33 -05:00
jean-pierre charras 640cc60bf4 fix a compil warning. 2021-12-31 15:53:24 +01:00
Ian McInerney 0e9cfd0af2 Add missing initialization values to variables
Flagged by Coverity.
2021-12-30 23:42:06 +00:00
Ian McInerney 0f2e649b18 Cleanup formatting and warnings in tuner_slider 2021-12-30 23:03:13 +00:00
Roberto Fernandez Bautista 701e256b3f Correctly handle excluding an ERC marker in eeschema when right clicking
In addition, hide the option to exclude a marker if the selected marker
is already excluded.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/10173
2021-12-30 17:14:36 +00:00
jean-pierre charras 480a548171 PCB_PAINTER: do not show track arc clearance when not needed
fix also a minor compil warning.
Fixes #10137
https://gitlab.com/kicad/code/kicad/issues/10137
2021-12-30 09:21:35 +01:00
jean-pierre charras 7c3f0612f1 DIALOG_SPICE_MODEL: fix a cosmetic issue (no room for the help text)
Fixes #10170
https://gitlab.com/kicad/code/kicad/issues/10170
2021-12-30 09:19:00 +01:00
Mark Roszko 44dc602d6b Yeet wxPoint/wxSize out of PLOTTER 2021-12-29 19:02:50 +00:00
Jeff Young ccb94fd1a7 APIs for passing KIFONT::FONT pointers around.
Also some clean-up and bug fixes.
2021-12-29 17:32:19 +00:00
Jeff Young dd6cd7d184 Pull some more improvements in from rockola/kicad-strokefont.
This one is primarily about pushing TEXT_ATTRIBUTES in to the GAL
API, but it also includes adding EDA_ANGLE signatures to some trig
routines to ease integration.
2021-12-29 17:32:19 +00:00
Mikolaj Wielgus 906eee68a5 Another small cleanup after !490 2021-12-29 17:41:21 +01:00
Marek Roszko 3f711b8958 Add win32 VERSION_INFO resource blocks for the DLLs 2021-12-28 23:54:27 -05:00
Mike Williams bf2c4c1584 Eeschema: draw dangling end shadows 2021-12-29 00:06:12 +00:00
Jeff Young 56a31900d3 Formatting. 2021-12-28 22:47:05 +00:00
Jeff Young 86cb57f4a7 Cherry-pick TEXT_ATTRIBUTES and EDA_ANGLE from rockola/kicad-strokefont 2021-12-28 22:15:20 +00:00
Mikolaj Wielgus a0c4f05c17 Small cleanup after !490 2021-12-28 23:07:30 +01:00
Wayne Stambaugh 7b1b96c933 Fix broken tree book selection in paged dialogs.
This only affected the tree controls that only parented sub-pages.  Do
not use the dialog ctor to select the initial page.  Queuing a page
changed event to fire after the dialog is shown is the proper solution.
2021-12-28 09:43:57 -05:00
Frank Zeeman 8167c69508 Add transformation function for characteristic curves of tuners 2021-12-28 02:53:39 +01:00
Frank Zeeman f004665df8 Add tuner support for potentiometer code model 2021-12-28 02:53:39 +01:00
Frank Zeeman e618ef98e9 Add potentiometer code models to model selection 2021-12-28 02:53:39 +01:00
Marek Roszko 705aa64c24 Fix parent of schematic setup parent nodes 2021-12-27 19:08:41 -05:00
Thomas Pointhuber 9ba733f23f altium: Import POLY shape instead of line approximation (#8741) 2021-12-27 17:22:28 +01:00
Thomas Pointhuber 82ab04c1d6 altium: Use newly introduced RECT shape, apply fill and improve stroke handling (#8741) 2021-12-27 16:50:30 +01:00
Thomas Pointhuber 8b714deae1 altium: Add support for circle and arc in schematic (#8741) 2021-12-27 16:02:12 +01:00
dsa-t d105e773a1 Update columns when height changes too 2021-12-25 15:26:43 +00:00
Alex 45c50535c5 Use GetUnobscuredSize in dialogs/panels 2021-12-25 15:26:43 +00:00
Alex c4a4862e8f Try with KIPLATFORM 2021-12-25 15:26:43 +00:00
dsa-t b0cca4a89e Symbol Fields Table: Make list look as good as possible on Windows too 2021-12-25 15:26:43 +00:00
Jeff Young 933b82495d Use ISO 128-2 values for dashed line defaults. 2021-12-25 14:00:57 +00:00
Jeff Young ec104e4ab0 Add hint to symbol editor defaults.
Fixes https://gitlab.com/kicad/code/kicad/issues/9776
2021-12-24 23:25:07 +00:00
Jeff Young 03a2723b67 Improve GUI of lib item colors. 2021-12-24 21:21:11 +00:00
Jonathan Haas e2fc105201 Add custom fill color selection to shape properties dialog 2021-12-24 21:21:04 +00:00
Jonathan Haas 45d7f68f38 Use actual custom fill color for painting 2021-12-24 21:20:59 +00:00
Jonathan Haas 80e7b6eb1f Save and load fill color of SHAPE_T objects properly 2021-12-24 21:20:54 +00:00
Jeff Young 3b04fc7dca Use real text measurement for pin bounding boxes. 2021-12-24 21:10:28 +00:00
Jeff Young 29c942816e Reduce duplication of settings. 2021-12-24 21:10:28 +00:00
Jeff Young 24ce4d8aa2 Improve help text now that we're past string freeze. 2021-12-24 18:13:26 +00:00
Jeff Young e48d4a653a Pick better auto-generated netnames.
Fixes https://gitlab.com/kicad/code/kicad/issues/4312
2021-12-24 18:13:16 +00:00
Jeff Young c3552a940a Make sure standard OK/Cancel buttons respond to current language.
Fixes https://gitlab.com/kicad/code/kicad/issues/9635
2021-12-24 18:13:11 +00:00
Jeff Young af13533b42 Add show/hide controls for ERC markers.
ADDED show/hide controls for ERC warnings, ERC errors and ERC exclusions.

Fixes https://gitlab.com/kicad/code/kicad/issues/7270
2021-12-24 17:38:50 +00:00
Jeff Young a6dd1bf09b Implement Reset to Defaults for all preferences panels. 2021-12-24 17:38:39 +00:00
Jeff Young 4cf3f44532 More consistency with hint messages. 2021-12-24 17:23:41 +00:00
Jeff Young 9de62d1dd4 Promote to cell selection for spreadsheet-style paste.
Fixes https://gitlab.com/kicad/code/kicad/issues/9211
2021-12-24 16:29:23 +00:00
Jeff Young 889970a449 SCH_NETCLASS_FLAGs and SCH_FIELDs for labels.
ADDED: a new label type for netclass flags.
ADDED: the ability to define fields on labels.
2021-12-24 16:13:27 +00:00
Jeff Young f7721dd274 Add highlight shadows for highlighted nets.
Fixes https://gitlab.com/kicad/code/kicad/issues/8817
2021-12-24 15:43:28 +00:00
Jeff Young 9ee28ea8f5 Flatten out some more preferences. 2021-12-24 15:43:20 +00:00
Jeff Young 68d2630d08 Flatten a layer of indirection out of 3D config settings. 2021-12-24 13:08:54 +00:00
Jeff Young d28714167c All the preferences, all the time.
Fixes https://gitlab.com/kicad/code/kicad/issues/7877

Fixes https://gitlab.com/kicad/code/kicad/issues/5153
2021-12-24 13:08:44 +00:00
Jeff Young f1410f0240 Line styles for PCBNew shapes.
Fixes https://gitlab.com/kicad/code/kicad/issues/2150
2021-12-24 12:36:59 +00:00
Jeff Young e92efebb5f Formatting. 2021-12-24 11:39:57 +00:00
Jeff Young 295a6408c3 User-configureable dash styles (and dash-dot-dot).
ADDED: Schematic Setup properties for dash length and gap length.
ADDED: dash-dot-dot line style

Fixes https://gitlab.com/kicad/code/kicad/issues/2206
2021-12-23 20:36:24 +00:00
Jeff Young e26341d424 Cleanup. 2021-12-23 20:36:18 +00:00
Jeff Young 92e589b398 Use board maxError value, and return SH_ARC for unfilled circle. 2021-12-23 20:36:11 +00:00
Jeff Young 2bc86fa0a8 Shapes for schematic.
ADDED arc, circle and rectangle shapes for schematic.  Shapes support
line styles and fill colors.

CHANGED sheet background color in Edit Text & Graphics Properties to
fill color (and it now affects shapes).

Pushed STROKE_PARAMS down into common and moved all shapes to using it
for stroke descriptions.
2021-12-23 20:36:07 +00:00
Jeff Young f089cf44a7 Allow a 0 pin-symbol-size.
This is particularly important when reading legacy projects as 0 is
what signals the painter to use the old algorithm (1/2 pin name/number
size).

Fixes https://gitlab.com/kicad/code/kicad/issues/10100
2021-12-23 16:54:03 +00:00
Jeff Young 6e2460ad37 Add hot-updating of units in common wxGrids.
Fixes https://gitlab.com/kicad/code/kicad/issues/10020
2021-12-23 16:54:03 +00:00
Jeff Young 9af33cdfe8 Don't leave stranded symbols/footprints in editors when doc closes.
Fixes https://gitlab.com/kicad/code/kicad/issues/10026
2021-12-23 16:54:03 +00:00
Jeff Young ee5db73113 Use a bigger hammer to update adjacent segments.
Fixes https://gitlab.com/kicad/code/kicad/issues/9927
2021-12-23 16:54:03 +00:00
Jeff Young aa4dcb2bf1 Make sure undo/redo of pagesetup is done to correct sheet.
Fixes https://gitlab.com/kicad/code/kicad/issues/9999
2021-12-23 16:54:03 +00:00
Jeff Young 8b52e969d6 Restore units to a bunch of wxGrids.
Fixes https://gitlab.com/kicad/code/kicad/issues/10063
2021-12-23 16:54:03 +00:00
Jeff Young 160328abc7 Fix arc printing for flipped shapes. 2021-12-20 18:07:27 +00:00
dsa-t f2ad8bffe0 Fix a mistake in Altium parser
Fixes https://gitlab.com/kicad/code/kicad/-/issues/10011
2021-12-16 05:49:39 +03:00
Seth Hillbrand 40d44c94cd Fix single-threaded loads/connectivity
We cannot set thread counts to hardware_concurrency()-1 without
considering that single core machines will get a thread count of 0.
2021-12-14 17:18:46 -08:00
Jeff Young 1ca90f31bf Fix hidden column in DIALOG_SYMBOL_FIELDS_TABLE.
Fixes https://gitlab.com/kicad/code/kicad/issues/9987
2021-12-15 00:03:33 +00:00
Mikolaj Wielgus 2dbc6ef6ca If present, tune Spice_Model instead of Value
Fixes https://gitlab.com/kicad/code/kicad/issues/9880
2021-12-14 14:02:25 +01:00
Adam Wolf 4fd5c9cfa8 Adjust macOS BOM plugin Python path 2021-12-13 22:52:31 +00:00
Adam Wolf 5e2ca2aa2a Install kicad_utils.py BOM plugin helper 2021-12-13 22:52:31 +00:00
Wayne Stambaugh 755607b8f8 Fix a few wxUpdateUIEvent retrigger loops. 2021-12-13 15:46:13 -05:00
Jeff Young 653c7b78d7 Move NC pin logic so we set it before we need it.
Also fixes drawing the dangling symbol in the Pin Properties dialog
and when printing.

Fixes https://gitlab.com/kicad/code/kicad/issues/9962
2021-12-12 22:25:36 +00:00
Wayne Stambaugh 067fa65756 Eeschema: fix a multitude of LIB_FIELD object comparison and index bugs.
It is no longer acceptable to set a LIB_FIELD index to -1.  This was
trashing the sorting on load cause all kinds of false field comparison
failures.  There are now assertions when attempting to use -1 as a field
index.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/9811
2021-12-12 17:06:32 -05:00
dsa-t 4ccfc21324 Fix event id intersections when toggling some columns via popup.
Also increases maximum show/hide column count to 50.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/9765
2021-12-13 00:35:44 +03:00
Jeff Young 885979ba75 Fix selection logic to handle LIB_ITEM as well as SCH_ITEM.
Fixes https://gitlab.com/kicad/code/kicad/issues/9954
2021-12-12 17:38:38 +00:00
Jeff Young 88fc6d25a7 Correctly handle deleting multiple selections in some grids.
Fixes https://gitlab.com/kicad/code/kicad/issues/9952
2021-12-12 17:28:17 +00:00
Jeff Young d1e6c216e1 And the modify bit wasn't getting set either.
Fixes https://gitlab.com/kicad/code/kicad/issues/9926
2021-12-11 01:09:13 +00:00
Jeff Young 15d1abeeef Sigh. But addCorner() *does* need mapCoords().
And it's got an off-by-one error in it too.  I don't think this
ever worked at all.

Fixes https://gitlab.com/kicad/code/kicad/issues/9926
2021-12-11 01:06:36 +00:00
Jeff Young 1f126c5619 Hittesting already handles inverse coordinate system.
Fixes https://gitlab.com/kicad/code/kicad/issues/9926
2021-12-11 00:32:24 +00:00
Seth Hillbrand 91dace3e5e Update Eagle importer
Fixes arc orientation
Sets root schematic and page numbers

Fixes https://gitlab.com/kicad/code/kicad/issues/9907
2021-12-10 15:41:25 -08:00
Jeff Young 8c5dd46861 Undo for SCH add/remove corner.
(PCB_POINT_EDITOR uses a BOARD_COMMIT and so already handles undo.)

Fixes https://gitlab.com/kicad/code/kicad/issues/9925
2021-12-10 23:08:16 +00:00
Jeff Young 1b2a278de9 Don't put "exclude from board" symbols in CvPCB netlist.
Fixes https://gitlab.com/kicad/code/kicad/issues/9939
2021-12-10 23:00:50 +00:00
jean-pierre charras 65cbf2d2b7 Eeschema: fix draw issue for global labels in Cairo mode.
Fixes #9933
https://gitlab.com/kicad/code/kicad/issues/9933
2021-12-10 20:47:17 +01:00
Jeff Young 0ad0627bb0 Overhaul drag-select logic to handle children better.
Fixes https://gitlab.com/kicad/code/kicad/issues/6662
2021-12-10 18:44:07 +00:00
Jeff Young 4f60d7ac78 Don't use lib tree target if lib tree isn't shown.
Fixes https://gitlab.com/kicad/code/kicad/issues/9913
2021-12-10 00:34:22 +00:00
Jeff Young 832eb0d019 Fix off-by-one error in grid snapping.
Fixes https://gitlab.com/kicad/code/kicad/issues/9013
2021-12-09 16:35:11 +00:00
Wayne Stambaugh af280f80e0 Fix debug assertion in Altium and CADSTAR schematic importers. 2021-12-09 12:56:03 +00:00
Wayne Stambaugh b7af66e3f9 Eeschema: fix broken page numbers when renaming a sheet file name.
Always use full sheet paths when storing sheet instances.  Partial sheet
paths cannot be full resolved resulting in lost page numbers when renaming
sheet file name.

Fixes #9782
2021-12-09 12:56:03 +00:00
Seth Hillbrand f7fb756f78 All imported schematics need connectivity update
Fixes https://gitlab.com/kicad/code/kicad/issues/9907
2021-12-08 16:27:24 -08:00
dsa-t 9c619d8f4e Allow some navigation tools when selecting
Fixes https://gitlab.com/kicad/code/kicad/-/issues/9565
2021-12-07 23:00:39 +00:00
Jeff Young 3d97138d92 Bug fix for dangling symbols on pins.
Fixes https://gitlab.com/kicad/code/kicad/issues/9667
2021-12-07 21:39:06 +00:00
Jeff Young c4336de868 Bug fixes in new dangling symbol drawing code. 2021-12-07 21:31:42 +00:00
Seth Hillbrand 84cdc9701f Partially reverts d877f041
Based on discussion in https://gitlab.com/kicad/code/kicad/-/merge_requests/1029
we will keep the original behavior.  The new routines to get stock paths
are still useful (possibly in scripting) and are kept
2021-12-06 16:14:40 -08:00
Jeff Young 73b39e836d Set modify bit when editing page layout.
Fixes https://gitlab.com/kicad/code/kicad/issues/9891
2021-12-06 23:08:33 +00:00
Jeff Young 2e342ed8c9 Draw dangling symbols on a separate layer.
This allows us to draw them in front of wires, pins, and most
importantly, junction dots.

Fixes https://gitlab.com/kicad/code/kicad/issues/9667
2021-12-06 18:50:50 +00:00
Wayne Stambaugh a03e6e4926 Revert "Eeschema: fix broken page numbers when renaming a sheet file name."
This reverts commit a468a79948.
2021-12-06 07:47:18 -05:00
Wayne Stambaugh 5ae844ba93 Revert "Fix SCH_SHEET object assignment operator bug."
This reverts commit 37d53a7147.
2021-12-06 07:47:02 -05:00
Jon Evans a205595404 PROF_COUNTER -> PROF_TIMER
I want to add an event counter, and this one is a timer
2021-12-05 14:25:37 -05:00
Mikolaj Wielgus 10be483430 Make an exception for SCH_TEXT in SELECTION::GetCenter()
And undo the previous changes in SCH_TEXT::Rotate().

We continue hitting this with a wrench until it gets fixed or becomes
broken beyond any recognition.
2021-12-04 05:32:48 +01:00
dsa-t cb482eb8eb Symbol Fields Table: Highlight proper symbols even if they aren't annotated 2021-12-03 20:35:54 +00:00
Mikolaj Wielgus 9efbeaa064 Dark theme support for SPICE model editor 2021-12-03 03:41:32 +01:00
Mikolaj Wielgus 83162364e7 Restore old rotation behavior for SCH_LABEL
Fixes https://gitlab.com/kicad/code/kicad/issues/9861
2021-12-03 01:43:02 +01:00
Franck Bourdonnec d877f04198 fixe paths 2021-12-02 20:23:00 +00:00