Commit Graph

73 Commits

Author SHA1 Message Date
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
Mike Williams e51ab86225 Schematic Drag: fixes and improvements
Fixes:
* Various special cases around junctions on pins and dragging.

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

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

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

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

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

* Fix mistaken clearing of START_POINT and ENDPOINT.

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

* Don't show dangling end warnings on new lines
2022-03-28 16:02:48 -04:00
Jeff Young 343b2681d4 Midpoints for eeschema rectangles and text boxes.
Fixes https://gitlab.com/kicad/code/kicad/issues/10362
2022-03-28 11:16:39 +01:00
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 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
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
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
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 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 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
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
Mikolaj Wielgus 9bb370e6b4 SCH_SHEET_PIN: Rename GetEdge, SetEdge to GetSide, SetSide 2021-11-28 20:07:06 +01:00
Jeff Young 7bda077f69 Disable EE_POINT_EDITOR for uneditable symbol graphics.
Fixes https://gitlab.com/kicad/code/kicad/issues/9675
2021-11-18 15:38:46 +00:00
Jeff Young 9f806d9304 Don't assume the grid size.
Fixes https://gitlab.com/kicad/code/kicad/issues/9013
2021-11-01 15:26:39 +00:00
Jon Evans d426abafd7 Handle empty shape in removeCornerCondition
Fixes https://gitlab.com/kicad/code/kicad/-/issues/9495
2021-10-30 13:10:12 -04:00
Jeff Young f9861b4a6c Finish arc rework and push out to file formats. 2021-10-15 12:45:43 +01:00
Jeff Young b52529521e Replace individual LIB_* shapes with LIB_SHAPE (based on EDA_SHAPE).
Also moves to more capable FILL_T model that can be shared.
2021-10-15 12:45:43 +01:00
Seth Hillbrand 2c7da5e2bd Handle deleting segment
Edited point needs to clear to allow us to use the click timer for
left-click after the drawing is deleted.

Fixes https://gitlab.com/kicad/code/kicad/issues/9320
2021-10-06 10:21:04 -07:00
Wayne Stambaugh cb72da294a More NULL expunging. 2021-07-16 16:13:41 -04:00
luz paz f968fc8719 Fix source comment / documentation typos 2021-06-09 19:32:58 +00:00
Marek Roszko 3ac5aa5369 enum class SHEET_SIDE 2021-05-30 21:23:46 -04:00
Jeff Young 7356f9568d Move grid disable modifier from ALT to CTRL.
Also had to move the H/V/45 disable modifier from CTRL to SHIFT.

Fixes https://gitlab.com/kicad/code/kicad/issues/8124
2021-05-09 20:17:40 +01:00
Wayne Stambaugh 2b86b34124 Eeschema: split out SCH_SHEET_PIN declarations into separate header. 2021-04-06 17:15:49 -04:00
Jeff Young 7e682e9948 Don't allow pins on corners.
Fixes https://gitlab.com/kicad/code/kicad/issues/7917
2021-03-16 22:03:08 +00:00
Jeff Young 30fdba4cbb Finish grid-snapping impl. 2021-03-16 22:03:08 +00:00
Jeff Young f3047829e5 Mark document dirty after drag; don't wait for point editor deactivation.
Fixes https://gitlab.com/kicad/code/kicad/issues/7285
2021-01-26 19:01:31 +00:00
Jon Evans 8ad448cbbc Don't leave point editor running when moving things in eeschema
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7227
2021-01-24 12:59:42 -05:00
Jeff Young 3ad5bce67f Rewrite connected-lines dragger to not use EDA_ITEM flags.
We had some spurious bugs where both ends would get dragged to a
single point (making them disappear).  While I never caught it
in the debugger, I'm guessing that the flags weren't getting
cleared properly or were getting overwritten or something.  Anyway,
it now uses std::pair instead.

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

Fixes https://gitlab.com/kicad/code/kicad/issues/6431
2020-11-30 19:30:03 +00:00
Jeff Young 6e6e0aa644 Naming conventions (including some component -> symbol). 2020-11-15 20:23:15 +00:00
Jeff Young 92d6988f10 Keep pin positions stable when resizing sheet.
Fixes https://gitlab.com/kicad/code/kicad/issues/6196
2020-10-31 11:49:07 +00:00
Jeff Young bddc97df30 LibEdit -> SymbolEditor 2020-10-31 10:28:21 +00:00
Jeff Young 9065908859 Update SCH_SCREEN's RTree when moving items.
Or when modifying geometric shape/properties.

Fixes https://gitlab.com/kicad/code/kicad/issues/5922
2020-10-30 15:26:07 +00:00
Mark Roszko d9485129c8 Implement more context specific cursors using both stock and custom cursors. 2020-10-08 00:50:28 +00:00
Mark Roszko 1082402b33 Convert UNDO_REDO_T to an enum class 2020-08-26 18:04:32 +00:00
Jeff Young fe3e0307d8 Move sheet name and filename to SCH_FIELD architecture.
Only internal storage architecture has changed (so far).
2020-03-06 16:23:44 +00:00
jean-pierre charras ba9dedaaf3 Eeschema, point editor: constraint corners of a SHEET symbol to stay on 50 mil grid
Fixes #3867
https://gitlab.com/kicad/code/kicad/issues/3867
2020-02-07 10:06:01 +01:00
Jeff Young 836c1ea56e Fix a bunch of un-caught boost::bad_pointer exceptions.
This also removes vector cover types which do nothing except obfuscate
the underlying implementation.

Mainly changes SCH_SHEET_PINS and CONFIG_PARAM_ARRAY (which will soon
be replaced by Jon's new stuff).
2020-01-12 19:55:00 +00:00
Seth Hillbrand 6e5e453d0d Replace EESchema DLIST
This moves EESchema DLIST structures to rtree.  These changes are more
fundamental than the pcbnew changes from 9163ac543 888c01d11 d1877d7c1
and 961b22d60 as eeschema operations were more dependent on passing
drawing list references around with SCH_ITEM* objects.
2020-01-10 06:37:08 -08:00
Jeff Young a5a237ac32 Improve readability of flag checking. 2019-08-27 19:23:07 +01:00
Jeff Young 3cdf88f2c6 CERN copyrights for work packages. 2019-08-14 09:35:15 +01:00
jean-pierre charras 6b031d9b9e Symbol editor: fix an issue when editing LIB_RECTANGLE graphic items.
The point editor expects rectangles with a height and width > 0.
Previously, this constraint did not exist,
so some LIB_RECTANGLE graphic items can create issues when trying to move a corner.
Now, the LIB_RECTANGLE graphic item is normalized before trying to move a corner.
2019-07-26 10:40:40 +02:00
Jeff Young 7d10b29592 Cleanup unused includes. 2019-07-16 01:15:33 +01:00
Jeff Young 3069fd5974 Exit point editor after an <esc> while dragging.
Fixes: lp:1836652
* https://bugs.launchpad.net/kicad/+bug/1836652
2019-07-16 01:09:49 +01:00
Jeff Young 9effd24f3a Allow move tool to run on top of other tools.
Fixes: lp:1784480
* https://bugs.launchpad.net/kicad/+bug/1784480
2019-07-01 22:15:25 +01:00