Commit Graph

140 Commits

Author SHA1 Message Date
Jeff Young d03041b565 Cleanup. 2019-07-02 21:36:42 +01:00
Seth Hillbrand 0b629b4bd4 eeschema: Limit normalization on load
When loading a new file, we do not want to add junctions where they did
not exist before.  This could generate invalid netlists by breaking a
wire at a pin connection point.

We do break/add connections when the user modifies the schematic but
this happens while the user is actively working with the component and
sees the action.

Fixes: lp:1830411
* https://bugs.launchpad.net/kicad/+bug/1830411
2019-05-28 13:29:20 -07:00
Jeff Young 25209516a6 Adjust net highlighting after edits.
Fixes: lp:1800291
* https://bugs.launchpad.net/kicad/+bug/1800291
2019-05-12 18:20:41 +01:00
Jeff Young 7995b5cc3c Restore selection on abort and undo/redo.
Also includes a related bug fix to not create an undo record for
the initial schematic cleanup.

Fixes: lp:1825975
* https://bugs.launchpad.net/kicad/+bug/1825975
2019-05-11 15:38:49 +01:00
Jeff Young c1539ae014 Naming changes to reflect sharing between SchEdit and LibEdit. 2019-05-10 19:56:20 +01:00
Jeff Young b97d65e791 Fix crash bug when deleting sheet pin and disappearing bug when moving them.
Fixes: lp:1827890
* https://bugs.launchpad.net/kicad/+bug/1827890
2019-05-06 16:31:02 +01:00
Jeff Young 6e695aac25 Move bus unfold and symbol unit selection to modern toolkit. 2019-05-05 17:14:30 +01:00
Jeff Young f4b92e6acf Refactor as SCH_DRAWING_TOOL was getting too big. 2019-05-05 17:14:30 +01:00
Jeff Young 902be18a04 More modern toolset context menu work.
Text/label type changes and bus entry shape changes.  And some
context menu bug fixing.
2019-05-05 17:12:59 +01:00
Jeff Young eacc3e67a5 Implement repeatDrawItem in modern toolkit and fix bugs.
Fixes moving of SCH_FIELDS.
Fixes undo operations around SCH_FIELDS and SCH_PINS.
2019-05-05 17:12:59 +01:00
Jeff Young a461eae8b9 Fix 100s of usages of GetFlags() which conflated != 0 with being edited.
While this was true long ago, many flags have been added since which
have nothing to do with editing (HIGHLIGHTED, BEGIN_ONPAD, etc.)
2019-04-22 09:58:06 +01:00
Jeff Young c88fd514a0 Implement drawing tools in modern toolset.
Fixes: lp:1825192
* https://bugs.launchpad.net/kicad/+bug/1825192
2019-04-17 21:49:50 +01:00
Seth Hillbrand 3e7969ab8d eeschema: Place bus unfold on the stack
When activating a bus unfold, the results should be placed with the new
line generation to allow proper undo ordering.
2019-04-13 07:28:22 -07:00
Seth Hillbrand 3bdd69ad6b eeschema: Fix undo stacking for break wire
The break wire command is actually two commands: modify the existing
wire and add a new wire.  This means that the command must append to the
previous commit to avoid breaking the undo stack

Fixes: lp:1824251
* https://bugs.launchpad.net/kicad/+bug/1824251
2019-04-13 07:11:24 -07:00
Seth Hillbrand 822cd9c6ef eeschema: Remove UR_WIRE_IMAGE
The wire image undo/redo option required special handling and was only
used in a single location.  Replacing with single change handling
reduces the code complexity
2019-04-13 07:11:24 -07:00
Jon Evans 232b1c799f Add a workaround for bus unfolding without real-time connectivity
Fixes: lp:1822728
* https://bugs.launchpad.net/kicad/+bug/1822728
2019-04-11 00:17:22 -04:00
Jon Evans 9589427960 Refactor how at-load schematic normalization is called
Don't prepend "/" for nets at the top level

Revert "Don't prepend "/" for nets at the top level"

This reverts commit fa9533222f7d33eee5f3fa2320bd9f3167e28076.
2019-03-31 19:57:00 -04:00
Jon Evans 4bc7e6fdfa Add missing junctions during schematic cleanup 2019-03-31 19:56:54 -04:00
Jon Evans 3c714f1d8c Fix undo handling of SchematicCleanUp 2019-03-31 19:55:57 -04:00
Jon Evans 83c7e7fc65 New connectivity algorithm and bus upgrades
Bus upgrades: core new connectivity code

Bus upgrades: eeschema integration and modifications

Bus upgrades: eeschema dialogs

Bus upgrades: netlist export

Bus upgrades: file format changes
2019-03-31 19:53:41 -04:00
Wayne Stambaugh 2447933b54 Eeschema: do not merge graphical lines with different attributes.
Fixes lp:1821728

https://bugs.launchpad.net/kicad/+bug/1821728
2019-03-28 13:46:05 -04:00
Jeff Young ae6989f3a1 Don't trim entire wires.
Fixes: lp:1804297
* https://bugs.launchpad.net/kicad/+bug/1804297
2018-11-20 21:44:35 +00:00
Jeff Young 4030eec939 Implement proper dangling end handling for block moves.
(Most of this is actually fixing the IsDanglingStateChanged() to
correctly indicate that it *updates* the dangling state, not just
tests it.)
2018-10-30 11:33:49 +00:00
Seth Hillbrand a3bbd32953 Fix minor compile warnings 2018-10-25 17:14:04 -07:00
Jeff Young 1f1bdc87bd Update GAL with wire dimensions before changing them. 2018-10-24 23:18:53 +01:00
Jeff Young 1114b5cfa9 Refresh item when its dangling state changes.
Fixes: lp:1797996
* https://bugs.launchpad.net/kicad/+bug/1797996
2018-10-16 17:07:59 +01:00
Jeff Young 97c83766db Refresh issues around sheet pins. 2018-10-09 11:08:56 +01:00
Jeff Young ca3751fbbb Add GAL refresh for some more commands and remove unused DC params. 2018-10-09 11:08:56 +01:00
Jeff Young cb8e6c0df5 Handle GAL view refresh for breaking wires. 2018-10-09 11:08:55 +01:00
Tomasz Wlostowski 90c7c60471 eeschema-gal: initial GALified version. Lots of stuff still to do! 2018-10-09 11:08:52 +01:00
Seth Hillbrand d2906f7975 eeschema: fix mistaken wire removal bug
The wire between two points should not be trimmed if it starts or ends
on one of the component's connection points.
2018-10-08 08:42:06 -07:00
Seth Hillbrand 618374db88 eeschema: Re-add auto-wire removal
Somewhere during v5 rc cycle, the trimming of wires laid over simple
components was removed.  The wires were still removed as soon as the
user moved the component again.  This corrects the first behavior to
intended action for simple components.

Fixes: lp:1794019
* https://bugs.launchpad.net/kicad/+bug/1794019

(cherry picked from commit 9831a14ef3)
2018-09-24 08:31:50 -07:00
Ronnie Gaensli 00d912f0b8 eeschema: fix dangling pin marker after adding NoConnect
Fixes: lp:1787858
* https://bugs.launchpad.net/kicad/+bug/1787858
2018-08-19 19:48:22 -07:00
Jeff Young 108dc20fba Keep first segment of wire attached to sheet pin horizontal.
If allowed to go vertical it's very hard to see on top of the
sheet boundary and liable to short out other pins.

Fixes: lp:1685508
* https://bugs.launchpad.net/kicad/+bug/1685508
2018-05-11 21:50:43 +01:00
Seth Hillbrand fddd5abef1 Merges a line after manually removing its junction.
Fixes: lp:1746998
* https://bugs.launchpad.net/kicad/+bug/1746998
2018-02-03 10:50:10 +01:00
jean-pierre charras 8022f1cc01 fix code after renamin files 2018-01-30 11:49:51 +01:00
Seth Hillbrand 7a2d9dff62 Sets additional conditions for when a wire is trimmed
This adds a set of conditions that will prevent a wire from being
automatically trimmed.  Wires that are currently being moved or are
newly created or are explicitly avoided will not be removed.  This also
adds a function to set a flag on items in a block.

Fixes: lp:1744632
* https://bugs.launchpad.net/kicad/+bug/1744632
2018-01-24 19:47:14 -05:00
Seth Hillbrand 2fa5c723d8 Don't cleanup schematic when symbols are rescued.
Schematic cleanup only makes sense after the libraries are fully updated
and loaded.  Before pin caching, this was a minor difference but once we
needed to update pin caches, schematic cleanup can remove junctions from
pin-wire connections incorrectly.

Instead, we use the global OpenProjectFiles() schematic cleanup call to
be sufficient and not call a second time, prior to all libraries being
rescued and loaded.

Fixes: lp:1743148
* https://bugs.launchpad.net/kicad/+bug/1743148
2018-01-17 12:53:38 -05:00
Seth Hillbrand cfe20e22fb Eeschema: Correcting missing cleanup calls
Adds cleanup (wires and junctions) to two commands:
rotate/orient and drag without block.

Fixes: lp:1739951
* https://bugs.launchpad.net/kicad/+bug/1739951
2017-12-29 16:24:58 -05:00
Seth Hillbrand 1396ab0941 Eeschema: Consider buses for junctions
Allows buses to acquire junctions based on their connections.  Buses
can only have junctions with other buses.  Also allows buses to be
draggable junctions for collections
2017-12-21 11:04:46 -05:00
Seth Hillbrand a240f88785 Eeschema: Remove wire under a placed component
CHANGE: In Eeschema, when placing a component directly over an existing
wire, the wire is automatically removed where it shorted pins.

This helps workflow in Eeschema, allowing one to quickly add components
to existing lines.

Fixes: lp:1678449
* https://bugs.launchpad.net/kicad/+bug/1678449
2017-12-03 18:42:57 -05:00
jean-pierre charras 3109343b96 Fix a compil issue with gcc 4.8.4
Fixes: lp:1735909
https://bugs.launchpad.net/kicad/+bug/1735909
2017-12-02 14:22:43 +01:00
Seth Hillbrand 069448f20e Eeschema: Automatically manage junctions
CHANGE: eeschema automatically adds and removes junctions
when required by the schematic

Fixes: lp:593888
* https://bugs.launchpad.net/kicad/+bug/593888

Fixes: lp:1482111
* https://bugs.launchpad.net/kicad/+bug/1482111

Fixes: lp:1563153
* https://bugs.launchpad.net/kicad/+bug/1563153

Fixes: lp:1730219
* https://bugs.launchpad.net/kicad/+bug/1730219

Fixes: lp:1491052
* https://bugs.launchpad.net/kicad/+bug/1491052
2017-11-30 10:02:24 -05:00
Seth Hillbrand b5ec5f9a73 Eeschema: Moving BreakSegment into SCH_EDIT_FRAME
BreakSegment now breaks a known segment and BreakSegments
breaks all segments. This allows functions to break a
segment without needing to iterate through the whole list.
2017-11-30 10:02:15 -05:00
Seth Hillbrand e9a297de5b Eeschema: Removing DC dependencies 2017-11-30 10:02:05 -05:00
Seth Hillbrand bf32cc2555 Eeschema: Moving SchematicCleanup to SCH_EDIT_FRAME
SchematicCleanup function moved from SCH_SCREEN to
SCH_EDIT_FRAME to allow access to the undo stack as we
are changing the schematic.
2017-11-30 10:01:58 -05:00
Seth Hillbrand c6632bdded Eeschema: Remove zero-length wires in RemoveBacktracks
RemoveBacktracks call removes zero-length wires as well
2017-11-30 10:01:50 -05:00
Jon Evans a52250a91e Change from EDA_COLOR_T to COLOR4D globally; arbitrary color support
eeschema now supports arbitrary colors for all object types, and
pcbnew does in GAL canvas.  When switching from GAL to legacy canvas,
pcbnew will convert colors to the nearest legacy color.
2017-02-22 17:35:00 +01:00
Chris Pavlina 67b4ba0225 eeschema: improve RemoveBacktracks() algorithm (lp:1562521)
Still isn't perfect, but removes an actual bug. It's still possible to get
weird things if you try hard, but they're not corrupt and don't trip
assertions. Consider a temporary fix.
2016-03-29 20:25:15 -04:00
Wayne Stambaugh 9685b3812d Eeschema: decouple SCH_SCREEN::SchematicCleanUp() from wxDC and EDA_DRAW_FRAME.
* Remove wxDC and EDA_DRAW_FRAME parameters from SCH_SCREEN::SchematicCleanUp()
  function call.
* Update all code that calls SCH_SCREEN::SchematicCleanUp() with wxDC and/or EDA_DRAW_FRAME
  parameters.
* Fix a display refresh bug when incrementally inserting bus entries created in my last commit.
  IsDanglingStateChanged() appears to be broke for bus entries.
2016-02-20 09:59:42 -05:00