Commit Graph

8019 Commits

Author SHA1 Message Date
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