Commit Graph

399 Commits

Author SHA1 Message Date
Jeff Young f35a88ce0b Cache LIB_PIN text extents for performance.
Also fixes a bug where we didn't triangulate at all when the char
count didn't warrant the likely overhead of spinning up a
thread_pool.

And fix another bug where EDA_TEXT::GetRenderCache() wasn't using
the given font.

Also reverts using the cache for drawing-sheet text.  The text
items are created from scratch from the data items each time
they're drawn, so there's never an existing cache to make use of.
Instead, we now check that the item is in the view, using a very
approximate bounding box generator (because even generating a
real bounding box shows up large in profiles).

And, lastly, fixes a bug where EndPos was never considered in
DS_DATA_ITEM::IsInsidePage().

Fixes https://gitlab.com/kicad/code/kicad/-/issues/14822
2023-05-27 16:32:11 +01:00
Jeff Young 6e127829f8 Cleanup formating and includes. 2023-05-26 18:44:33 +01:00
Seth Hillbrand 0de24bfd59 Cleanup text alignment between version 6 and 7
Version 7 text alignment changed subtly for stroke fonts from version 6.
Additionally, the output has been different between screen and plotting,
leading to offset text in plotted output relative to the text shown on
screen.

This introduces a fudge factor in FONT::getLinePositions to correct the
offset in the plotting output relative to v6.

This also changes the SCH_PAINTER and PCB_PAINTER to correct the
relative offsets between GAL and PLOTTER classes.  The source of these
offsets is atm unclear.

Fixes https://gitlab.com/kicad/code/kicad/issues/14755
2023-05-17 13:33:49 -07:00
Mike Williams 5d116245c6 sch_symbol: always require sheet path for text variable resolution 2023-05-06 14:30:06 -04:00
Jeff Young b41d446f58 Fix a bunch more issues with sheetpaths and allowExtraText.
A sheetpath is required to correctly resolve text variables.
Depending on currentSheet is rife with bugs.

There are many places where we do *not* want to be prepending
field names to the field values, such as netlisting,
building PDF hypertext menus, etc.

Also, Find/Replace needs to work on unresolved text, as
that's what we're going to display (and if replace nuked
your variable references you wouldn't be happy).
2023-05-05 17:23:52 +01:00
Jeff Young e1b39946fe ADDED: show/hide controls for directive labels. 2023-04-28 00:32:49 +01:00
Jeff Young 7e5fedef6a Markup fixes.
1) allow escape sequences inside markup sequences
2) keep overbar when inside nested markup
3) always place overbar at full height, not sub/superscript height

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

Fixes https://gitlab.com/kicad/code/kicad/issues/13449
2023-04-17 17:56:54 +01:00
Jeff Young c9351dfd67 Drawing improvements for symbol & footprint diffs.
Moves forced-transparency setting down into VIEW_ITEM so that it can
be used to place forced-transparent objects in a different target.
This keeps EnableDepthTest() from equalizing the alpha values between
the two symbols (or two footprints).
2023-03-11 12:45:16 +00:00
Jeff Young bc0d59801a Graphical diff for schematic vs library symbols.
Fixes https://gitlab.com/kicad/code/kicad/issues/13736
2023-03-09 18:04:52 +00:00
Jeff Young a1ceb585c7 Always highlight children when they're selected on their own.
Fixes https://gitlab.com/kicad/code/kicad/issues/13876
2023-02-28 13:39:07 +00:00
Mike Williams dd461d6ad6 Power Symbols: drop requirement for invisible pins 2023-02-22 18:01:47 +00:00
Marek Roszko aacc9746e3 Yeet the last of wxSize/wxPoint to stop leaking gdicmn everywhere 2023-02-18 22:57:18 -05:00
Jon Evans fc68b8d71a Make selected background layers translucent
We can't render them underneath other objects, but we can at least
make it possible to see other objects through them.
2023-02-16 22:45:29 -05:00
Seth Hillbrand a761b0e860 Force DNP X to foreground 2023-02-15 11:35:24 -08:00
Seth Hillbrand 9f8b25a0b0 Don't desaturate the selection shadow
Selection shadows are helpful when showing which elements are selected
and there is no benefit (and some downside) to having their color
removed.

Fixes https://gitlab.com/kicad/code/kicad/issues/13878
2023-02-14 10:22:05 -08:00
Jeff Young be0a9e2738 Handle SPICE prefixes for operating point data.
Also adjusts the min-pin lenght as some symbols have very short pins.
2023-02-13 18:38:43 +00:00
Jeff Young bc108023b3 ADDED operating point overlay for SCH_EDIT_FRAME.
Fixes https://gitlab.com/kicad/code/kicad/issues/11253
2023-02-11 21:11:07 +00:00
Jeff Young 2e9ed67e05 Don't dirty connectivity when moving non-reference SCH_FIELD. 2023-02-11 20:43:00 +00:00
Seth Hillbrand 418f8e6f14 Re-add outline shadows to stroke fonts
If we draw using stroke fonts, we can still use the legacy shadow
routine to show nice highlights
2023-01-30 22:42:26 +00:00
Jeff Young 26c821962f Simplify and regularize text variable substitution architecture.
EDA_ITEMs are responsible for giving their parent a crack at it if
they failed to resolve it.  This recurses all the way up to the schematic/
board, and then to the project.

Cross-reference handling is also move to the EDA_ITEMs.  It must be done
before bubbling up so that we don't end up in loops.  (The aDepth parameter
will break the loop, but without having done anything useful.)

Fixes https://gitlab.com/kicad/code/kicad/issues/13541
2023-01-17 17:05:41 +00:00
Jeff Young a3a01a87e8 Resolve text variable references in LIB_TEXT and LIB_TEXTBOX.
Fixes https://gitlab.com/kicad/code/kicad/issues/13558
2023-01-16 16:01:45 +00:00
Jeff Young 06a2e950fd Add sheet field layers to SCH_LAYER_ORDER.
Fixes https://gitlab.com/kicad/code/kicad/issues/13518
2023-01-14 20:38:12 +00:00
Seth Hillbrand a206f6717d Desaturate the symbols in DNP for print/plot
The desaturation should match screen display

Fixes https://gitlab.com/kicad/code/kicad/issues/13481
2023-01-11 13:44:08 -08:00
Seth Hillbrand 8a26bf6c41 Tweak DNP display settings
Use ERC error color
Make lines 3 * default line width (instead of 4 *)
2023-01-11 11:29:46 -08:00
Seth Hillbrand f99e374559 Make DNP more visible
Adds red cross to the DNP display.  Allows showing the DNP even when
plotting black/white

Fixes https://gitlab.com/kicad/code/kicad/issues/13456
2023-01-09 15:31:50 -08:00
Mike Williams bd5d10cd7b Schematic: remove more extraneous dangling symbols 2023-01-04 11:07:23 -05:00
Mike Williams b82833200a Schematic: correct bus entry shadows size and selections 2022-12-27 10:09:45 -05:00
Mike Williams 1ad373f2b2 Schematic: don't show unselected ends on bus entries 2022-12-27 09:37:21 -05:00
Jeff Young d0d6dc6ce0 Clang-tidy warnings reduction. 2022-12-22 22:35:09 +00:00
Mike Williams fe01c65794 Schematic Lines: add marker for unselected, connected line ends
Smaller, subtler version of the marking used for unconnected line ends.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/13126
2022-12-12 14:45:06 -05:00
Mike Williams 78b5dbead6 Schematic: show partial selection of graphic lines
Use the same inverted-dangling-shadow as regular wires

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/13095
2022-12-08 14:12:12 -05:00
Jeff Young adc5c9eb20 OpenGL render order appears to be the inverse of the drawing order.
Fixes https://gitlab.com/kicad/code/kicad/issues/13070
2022-12-04 11:51:44 +00:00
Jeff Young 2dac73e421 Remove dangerous SCH_FIELD::IsVoid() call.
This call didn't differentiate between GetText() and GetShownText() and
was used in instances where the difference matters.
2022-11-03 17:19:59 +00:00
Jeff Young 7f0ebf9e3b Outline font adjustment is only for SCH_TEXT, not labels.
Fixes https://gitlab.com/kicad/code/kicad/issues/12746
2022-10-25 16:51:21 +01:00
Jeff Young cef7cd8f7c Move default font to RENDER_SETTINGS.
Fixes https://gitlab.com/kicad/code/kicad/issues/12723
2022-10-22 21:32:42 +01:00
Jeff Young 0de540594a Used dimmed setting for pin texts and textbox borders.
Fixes https://gitlab.com/kicad/code/kicad/issues/12705
2022-10-21 22:42:44 +01:00
Jeff Young bad410948d Don't assume text is on LAYER_DEVICE.
Fixes https://gitlab.com/kicad/code/kicad/issues/12707
2022-10-21 22:03:54 +01:00
jean-pierre charras 4611817f25 Eeschema: fix a crash when invoking eeschema.exe with 2 filenames to open
Fix also a minor compil warning
2022-10-04 16:56:13 +02:00
Jeff Young 5fc02a63a3 Use netclass colours for label graphics, text and fields.
Fixes https://gitlab.com/kicad/code/kicad/issues/4984
2022-09-24 23:51:40 +01:00
Marek Roszko 66e8931405 Remove IU_PER_MM thats standalone 2022-09-16 21:09:27 -04:00
Marek Roszko 61e11d6896 Strip out Mils2Iu 2022-09-16 21:09:27 -04:00
Marek Roszko e6ed275c25 Repoint IU_PER_MILS 2022-09-16 21:09:26 -04:00
Marek Roszko a8613ee80f Combine Iu2Millimeter & remove PcbMm2iu 2022-09-16 21:09:26 -04:00
Seth Hillbrand 524b129c64 ADDED: Support for explicit DNP field
Dims elements shown as DNP.  Adds property `dnp` to explicitly denote
parts that should not be populated. These parts are not included in X/Y
files
2022-09-16 22:26:16 +00:00
Jeff Young 83615de81f Move FILL_WITH_COLOR from background to device layer.
Fixes https://gitlab.com/kicad/code/kicad/issues/12393
2022-09-10 10:27:49 +01:00
Jeff Young 6f5281258e Separate text-thickness clamping into strict and lenient modes.
We used to use the bold setting, but since PCBNew allows you to
directly define the width you end up with settings in between normal
and bold that get clamped to the normal max.

Fixes https://gitlab.com/kicad/code/kicad/issues/12367
2022-09-08 00:28:30 +01:00
Jeff Young b874aaac5e Add display options to Symbol Browser toolbar.
Particularly important on Mac where the menubar is disabled when the
frame is used in modal mode.

Also adds a display control to override the symbol's show pin numbers
setting.

Fixes https://gitlab.com/kicad/code/kicad/issues/7789
2022-09-08 00:28:30 +01:00
Jon Evans 4ea0a80df0 CHANGED: Fields may now optionally display their name before their value
Fixes https://gitlab.com/kicad/code/kicad/-/issues/11457
2022-09-03 17:03:37 -04:00
Jeff Young 2dc6300501 Move EDA_ITEM bounding boxes to BOX2I. 2022-08-31 10:16:55 +01:00
Jeff Young 5679b9dbdc Remove a few EDA_RECT instances. 2022-08-31 01:22:49 +01:00
Jeff Young 5ebc51bf63 Fix plotting colour of intersheet refs. 2022-08-29 11:53:04 +01:00
Jeff Young 122a6d7f46 Move hypertext linking to user-page-numbers.
Also moves most navigation code to SCH_NAVIGATION_TOOL.
Also changes page number href to anchor syntax ('#foo').
Also adds hypertext processing to SCH_TEXTBOXes.
Also adds combobox with schematic pages to text properties dialog.
2022-08-27 19:17:43 +01:00
Roberto Fernandez Bautista 20ed9b475b Configurable hyperlink hovering color 2022-08-27 19:17:42 +01:00
Jeff Young 4f0136db3b Attempt to fix std::initializer_list lifetime issue. 2022-08-21 20:54:41 +01:00
Jon Evans afab26d554 Don't paint hidden fields without a schematic context 2022-08-20 17:56:53 -04:00
Jeff Young aa2ad3b44c Move KICAD_T[] to std::initializer_list<KICAD_T>. 2022-08-20 10:28:11 +01:00
Lorenzo Marcantonio 593eaf7ea3 Fix graphic glitch in eeschema when moving a field
Fixes #12061
https://gitlab.com/kicad/code/kicad/issues/12061
2022-07-22 11:41:30 +02:00
Jeff Young 62cef3d830 Add LAYER_PRIVATE_NOTES for private text & graphics in symbol editor.
Fixes https://gitlab.com/kicad/code/kicad/issues/11957
2022-07-08 17:27:05 -06:00
Seth Hillbrand 939313088e Units are stored in the instance data
At the moment, units are stored in the instance data, so when loading
the file, all symbols will have bbox for the first unit.  After calling
`UpdateUnit()`, we need to recache the rtree bounding boxes to get
correct hit tests

Fixes https://gitlab.com/kicad/code/kicad/issues/11681
2022-06-30 14:59:17 -07:00
Jeff Young 45ab15dc95 Use unit references in status bar.
Fixes https://gitlab.com/kicad/code/kicad/issues/11854
2022-06-19 12:54:30 +01:00
jean-pierre charras 359c99991b Eeschema: do not leave a temporary flag set after use in draw symbol function.
Fixes #11617
https://gitlab.com/kicad/code/kicad/issues/11617
2022-05-15 18:35:07 +02:00
Jeff Young 38e5faf21b Overhaul bitmap text for performance.
Also adjusts metrics to better match stroke font.

Also removes text-halo highlighting as it's too expensive to re-render
when the zoom changes.

Fixes https://gitlab.com/kicad/code/kicad/issues/11460
2022-05-14 20:09:54 +01:00
Jeff Young 9fbf8e6f5d Respect default layer color for textbox borders.
Fixes https://gitlab.com/kicad/code/kicad/issues/11497
2022-04-29 14:10:48 +01:00
Jeff Young 85680886f8 Adjust outline font SCH_TEXT positioning so it better matches SCH_FIELD text. 2022-04-26 12:52:29 +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
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 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 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
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 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
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 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 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
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 944fe9637d Fix error that prevent drawing pin selection highlighting. 2022-02-17 19:02:51 +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 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 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 a1009d7899 Fix assertion failure for labels. 2022-02-01 12:01:04 +00:00
Jeff Young 4243d7b055 Bug fixes for color handling. 2022-02-01 00:21:08 +00: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
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
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
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 2defd8d911 Move show-bounding-boxes to a tool on the toolbars. 2022-01-17 11:56:40 +00:00
Jeff Young e61144d45a Finish with EDA_ANGLE. 2022-01-16 21:15:40 +00:00
Jeff Young e84c574830 Some more EDA_ANGLE cleanup. 2022-01-16 19:16:18 +00: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 e048e51f5d Improve SNR of EDA_ANGLE stuff. 2022-01-14 16:08:18 +00: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
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 8f7d2dd06a More VECTOR2D -> VECTOR2I and wxPoint cleanup. 2022-01-11 14:20:14 +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