Seth Hillbrand
77c60d9655
Remove the last vestiges of dlist
...
It served us (mostly) well for more than a decade. It helped KiCad grow
before the std:: came into decent shape or speed. It was a good little
list.
RIP DLIST 2008-2020
2020-01-10 06:37:08 -08: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
jean-pierre charras
3f161965cd
Eeschema: Draw selected global labels:fix incorrect text drawing.
...
Happens only on Cairo.
Was due to the fact on cairo the shape area was deleted after the shadow
text was drawn, and only the second text was seen.
Fixes #3745
https://gitlab.com/kicad/code/kicad/issues/3745
2020-01-09 14:43:46 +01:00
Mark Roszko
ca34ade00c
Make global labels have the same spin style as net/hierarchical labels
...
For legacy reasons, it stored left and right "spin" as flipped integers in the file format.
But the code handled the flip in multiple locations rather than just doing it on file io.
This change unifies the internal code and does the mapping in the file I/O.
2020-01-08 19:07:55 +00:00
Ian McInerney
13b6028e1b
Refactor all math into a new kimath library
...
* Split up the thirdparty code into the thirdparty folder (#3637 )
* Create a new kimath static library containing all the math functions
This is part of cleaning the build system for #1906 .
2020-01-07 17:12:59 +00:00
Jonatan Liljedahl
2f52ef33b4
Convert selection shadow width to internal units.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/3740
2020-01-06 14:42:03 +00:00
Wayne Stambaugh
aeb3281e27
Convert Schematic Internal Units to 100nm
2019-12-30 18:28:00 +00:00
Mark Roszko
19ceb11ae7
Change more enums over to scoped enums
2019-12-28 00:55:11 +00:00
Wayne Stambaugh
20836261d7
Fix minor coding policy violations.
2019-12-12 14:55:35 -05:00
Jonatan Liljedahl
034bfb0919
eeschema: More work on selection highlight thickness
...
Bring back old zoom-level factor scaling constant and
change selection width to absolute unit instead of
floating point multiplier.
2019-12-07 09:33:32 +00:00
Jonatan Liljedahl
681f6bc707
Eeschema: Add option for selection highlight thickness
...
ADDED new option to set selection highlight thickness.
Also change selection shadow width constants to
make the selection thickness change less drastically
with the zoom level.
2019-12-07 09:33:32 +00:00
Wayne Stambaugh
54f066fed7
Implement simple inheritance for library symbols.
...
This change completely removes the LIB_ALIAS design pattern an replaces
it by allowing LIB_PART objects to inherit from other LIB_PART objects.
The initial implementation only allows for single inheritance and only
supports the mandatory fields in the derived part because that is all
that the current symbol library file format will support. Once the new
file format is implemented and saving to the old file format is deprecated,
more complex inheritance will be added. The LIB_ALIAS information saved
in the document files was move into the LIB_PART object. This change
impacts virtually every part of the schematic and symbol library editor
code so this commit message is woefully incomplete.
REMOVE: Removed the symbol aliases concept from the schematic and symbol
editors and the symbol viewer.
NEW: Replace the symbol alias concept with simple inheritance that allows
a library symbol to be derived from another library symbol.
2019-12-06 11:33:52 -05:00
Jonatan Liljedahl
e517069a51
Eeschema: Add options for selection appearance
...
ADDED: Three new options that affects selection appearance:
- Draw selected text items as box
- Draw selected child items
- Fill selected shapes
2019-11-26 19:57:11 -08:00
Jeff Young
caf5d01530
Promote found items to visible during find & replace.
...
Fixes: lp:1849875
* https://bugs.launchpad.net/kicad/+bug/1849875
2019-11-05 17:22:51 +00:00
Jeff Young
35c8d64f98
Add super- and subscript support to Eeschema.
...
Note that since the markup might exist for other reasons, it has
to be turned on with a preference setting. (It goes through a set
of bitflags so the same architecture can be used for other markup
structures that we might want to support in the future.)
Note also that this is more about engineering nomenclature than
visual formatting. In that respect it's more similar to overbar
than italic or bold.
2019-11-05 17:22:51 +00:00
jean-pierre charras
36e986629a
Eeschema: fix issues with pin shapes related to clock input pin shapes.
...
* Fix not drawn shapes for clock low, inverted clock and broken shape for falling edge clock
* Especially, shape for falling edge clock was a not existing shape, therefore useless.
* now falling edge clock and clock low shape are similar.
Fixes: lp:1846901
https://bugs.launchpad.net/kicad/+bug/1846901
2019-10-06 13:24:56 +02:00
Jeff Young
359ef0372c
Check all item layers before bailing.
...
Fixes: lp:1840986
* https://bugs.launchpad.net/kicad/+bug/1840986
2019-08-27 20:52:25 +01:00
Jeff Young
a5a237ac32
Improve readability of flag checking.
2019-08-27 19:23:07 +01:00
Seth Hillbrand
548dbb7c29
eeschema: Add highlight color to configurable list
...
The highlight color chosen from the system highlight doesn't always show
against the schematic sheet background color. Allowing the user to
customize with their KiCad theme makes it configurable on par with other
colors. This is stop-gap until we get full color schemes from
lp:1678345
2019-08-27 10:43:59 -07:00
Jeff Young
b4c8657904
Fix non-visible-part or conversion items from getting selected.
...
Also renames lib_draw_item to lib_item to match the class.
Fixes: lp:1840170
* https://bugs.launchpad.net/kicad/+bug/1840170
2019-08-15 10:00:23 +01:00
Jeff Young
8db8119564
Redraw selection halos after zooming.
...
Fixes: lp:1838869
* https://bugs.launchpad.net/kicad/+bug/1838869
2019-08-08 13:51:23 +01:00
Jeff Young
56bf72cc5d
OpenGL context must be saved/restored around a translation.
...
Also includes a bunch of code cleanup.
Fixes: lp:1838655
* https://bugs.launchpad.net/kicad/+bug/1838655
2019-08-07 19:25:03 +01:00
Jeff Young
23d824de66
Simulator improvements.
...
1) Add highlighting to simProbe and simTune tools.
2) Probe tool should accept wires and pins, not wires and components.
3) Give simulator window a flat look to match rest of Kicad.
4) Collapse whitespace out of simulator window.
5) Add some error messages.
6) Add some whitespace to simulation setting dialog.
2019-08-05 16:48:18 -06:00
Jeff Young
5503727d3d
Fix some placement bugs with selection haloes on text.
...
Fixes: lp:1838841
* https://bugs.launchpad.net/kicad/+bug/1838841
2019-08-03 17:20:54 -06:00
Jeff Young
2738848336
Improve selection halo scaling so it's not hard to see at large zooms.
2019-08-01 20:36:59 -06:00
Seth Hillbrand
643c7f25f5
eeschema: Properly map edge cases of legacy onto GAL
...
While we do not generate these arcs internally, some external tools
generate arcs that are technically valid but display correctly only
because of an oddity in the degeneracy mapping.
Fixes: lp:1838557
* https://bugs.launchpad.net/kicad/+bug/1838557
(cherry picked from commit cf949609b2
)
2019-08-01 11:57:53 -07:00
jean-pierre charras
9dcf3b862c
Eeschema: fix the bounding box size drawn around the bitmap when selected.
...
Images have a scale factor and this factor was taken in account twice
For image having a scale factor not equal to 1.0, the bounding box was too big (or too small)
2019-08-01 08:48:01 +02:00
Jeff Young
cd4983f092
Switch selection color to platform selection color.
2019-07-31 22:52:22 -06:00
Jeff Young
6bf1ac45e3
New selection highlighting model for eeschema.
2019-07-29 19:57:41 -06:00
Jeff Young
cd1a1a67fb
Add seleciton/brightening/highlighting to images.
2019-07-10 01:14:28 +01:00
Jeff Young
51479c2042
Fix several bugs in selection exhibited by 74LS02.
...
1) Use PenWidth() (which is clipped at 0) instead of Width()
2) Implement an interior HitTest when a PolyLine is filled
3) Brighten background objects as well as foreground
4) Don't HitTest last segment when PolyLine is not filled
Fixes: lp:1834703
* https://bugs.launchpad.net/kicad/+bug/1834703
2019-06-29 20:03:08 +01:00
Jeff Young
9e464f9f5b
Implement rollover highlighting for Eeschema delete tool.
2019-06-17 22:15:20 +01:00
jean-pierre charras
15a67fc358
Eeschema: fix incorrect size of junctions on screen.
...
Fixes: lp:1831931
https://bugs.launchpad.net/kicad/+bug/1831931
2019-06-17 18:06:56 +02:00
Jeff Young
d6e9bdf07b
Convert remaining legacy drawing code to print code.
2019-05-31 21:54:22 +01:00
Jeff Young
67cc2aac2e
Rework Eeschema find/replace for modern toolset.
...
Fixes: lp:1827274
* https://bugs.launchpad.net/kicad/+bug/1827274
Fixes: lp:1827240
* https://bugs.launchpad.net/kicad/+bug/1827240
2019-05-22 21:48:04 +01:00
Jeff Young
952108dd43
Implement SCH_SHEET_PIN selection, rotation and mirroring.
...
Fixes: lp:1829521
* https://bugs.launchpad.net/kicad/+bug/1829521
2019-05-18 00:23:12 +01:00
jean-pierre charras
0961614df2
Eeschema: fix incorrect position of fields of a hierarchical sheet when rotated
...
Fixes: lp:1829048
https://bugs.launchpad.net/kicad/+bug/1829048
2019-05-17 08:30:16 +02:00
Jeff Young
792c4328aa
Cleanup.
2019-05-10 21:40:08 +01:00
Jeff Young
f6e07f575a
Rename for clarity.
...
SetOffset() didn't set anything; it performed an action.
Move() suggests a delta, when it in fact does a SetPosition().
2019-05-10 16:11:57 +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
2244dcd567
Move show datasheet to SCH_INSPECTOR_TOOL and add show marker info.
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
f200c61897
Start transitioning block operations to modern toolset.
2019-05-05 17:12:59 +01:00
Jon Evans
62811d3209
Squish some warnings
2019-04-22 21:18:47 -04:00
Jeff Young
5e2cf51309
Improve robustness of SCH_PIN storage architecture.
...
In particular, allow short-term storage of pointers to SCH_PINs.
2019-04-22 11:19:43 +01:00
jean-pierre charras
6e8dd598c0
Minor fixes in translatable strings. Fix also a minor compil warning.
2019-04-22 09:34:28 +02:00
Jeff Young
f2d9887409
Make usage of BRIGHTENED consistent (m_Flags, not m_Status).
2019-04-19 17:19:41 +01:00
Jeff Young
954998ec9a
Lay the foundation for handling selected SCH_ITEMs.
2019-04-19 16:54:29 +01:00
Jeff Young
460909ea9a
Move click-to-place tools to modern toolset.
2019-04-16 16:20:52 +01:00
Jeff Young
3ace73fbdd
Fold various SCH pin shadow data structures into SCH_PIN.
2019-04-03 10:18:11 +01:00
Jeff Young
52246121b9
Add pins to net highlighting.
...
Fixes: lp:1763873
* https://bugs.launchpad.net/kicad/+bug/1763873
2019-04-03 10:18:11 +01:00
Jon Evans
464fa820b1
Support bus entries with highlighting
2019-03-31 19:55:30 -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
jean-pierre charras
d6f565e452
Eeschema: do not draw dangling symbol (circle) for PIN_NC pin types.
...
These pins are never connected, so a dangling symbol makes no sense.
Fix also a fex minor coding style issues.
2019-03-17 20:50:18 +01:00
Seth Hillbrand
c61ec8ee3b
GAL: Handle negative line widths
...
When displaying negative line width elements, the outline of the item
should be hidden rather than displayed.
Fixes: lp:1819247
* https://bugs.launchpad.net/kicad/+bug/1819247
2019-03-11 12:08:16 -07:00
Seth Hillbrand
f002382b4a
eeschema: Set modifying transparency on edits
...
While modifying elements in eeschema/libedit, they are overdrawn on the
rest of the schematic. This prevents alignment with existing elements
as the underlying elements are not visible. We set a slight
transparency on elements while being modified to allow the user to view
existing elements at the same time.
Fixes: lp:1817233
* https://bugs.launchpad.net/kicad/+bug/1817233
2019-02-23 08:19:50 -08:00
Tomasz Włostowski
9a8afdf6fd
eeschema: SCH_PAINTER should draw LIB_BEZIERs too!
2019-02-19 10:42:23 +01:00
jean-pierre charras
24185f45f2
Symbol editor: fix bug: Italic style ignored when drawing fields.
...
Fixes: lp:1815997
https://bugs.launchpad.net/kicad/+bug/1815997
2019-02-15 15:56:41 +01:00
Seth Hillbrand
e2b3a1118d
Eeschema: Filled labels
...
Fill label bg for clearer schematic view
2019-01-28 08:58:10 -08:00
jean-pierre charras
db7dba96ad
Fix a few Coverity warnings.
...
Mainly not initialized members, and replace not tested dynamic_cast by static_cast.
2019-01-04 09:49:21 +01:00
Tomasz Włostowski
c777eac000
eeschema: improved highlighting of PCB->SCH cross-probed components/labels/pins
...
Fixes: lp:1796990
* https://bugs.launchpad.net/kicad/+bug/1796990
2018-12-24 15:35:25 +01:00
jean-pierre charras
83d851956c
classes MARKER rework: remove duplicate code. Better HitTest code (HitTest takes in account the actual shape)
2018-12-19 19:53:27 +01:00
jean-pierre charras
15843ae01a
class MARKER rework: fix a few minor issues, remove duplicate code and add comments.
2018-12-19 15:13:31 +01:00
jean-pierre charras
638b4384ec
eeschema: fix issue: Moving a hierarchical pin slightly move also other hierarchical pins
...
Fixes: lp:1808687
https://bugs.launchpad.net/kicad/+bug/1808687
2018-12-16 15:31:31 +01:00
Frank Severinsen
e2ed0e6557
Move sheet pins in front of sheetedge & move them in by ½ line width
2018-12-15 20:15:19 +00:00
Jeff Young
18dc618a13
Set color before drawing dangling symbols.
...
Fixes: lp:1804003
* https://bugs.launchpad.net/kicad/+bug/1804003
2018-11-19 20:29:48 +00:00
Jeff Young
bcc8c64256
Consider edge cuts items to have zero width when filling zones.
...
Fixes: lp:1797787
* https://bugs.launchpad.net/kicad/+bug/1797787
2018-11-14 23:45:32 +00:00
Jeff Young
d65bb73d4e
Finish up remaining block operation inconsistencies.
...
In particular, don't move block back to start when duplicating,
and don't move crosshair back to start when doing a cut, copy, or
paste.
Also fixes undo for libEdit block duplicate.
Fixes: lp:1740138
* https://bugs.launchpad.net/kicad/+bug/1740138
2018-11-14 23:45:32 +00:00
jean-pierre charras
d465af65a7
LIB_FIELD: fix incorrect text thickness for small sized texts.
...
Also remove duplicate code.
2018-11-02 11:36:07 +01:00
Jeff Young
4742c52250
Highlight symbol fields when selected.
2018-10-30 13:09:20 +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
Jeff Young
4fc1f4db3e
LIB_ITEMs won't have parent in LibEdit.
2018-10-28 17:45:11 +00:00
Jeff Young
a8c7bb0c92
Move library text items to LAYER_DEVICE. Only sch text items belong on LAYER_NOTES.
...
Fixes: lp:1800350
* https://bugs.launchpad.net/kicad/+bug/1800350
2018-10-28 17:45:11 +00:00
Jeff Young
4f11dc54fa
Draw selected child items in brightened colors.
...
Fixes: lp:1800114
* https://bugs.launchpad.net/kicad/+bug/1800114
2018-10-26 23:02:05 +01:00
jean-pierre charras
3bf1dd7671
Eeschema, Hierarchical sheet: fix missing pen width call in draw function.
...
The hierarchical sheet was drawn (outline and texts) with a line thickness
that in fact the line thickness of the previously drawn item.
2018-10-25 15:12:34 +02:00
Jeff Young
4524dce9bb
Tie up some loose ends from JP's SHEET_PIN fixes.
...
Fixes: lp:1799606
* https://bugs.launchpad.net/kicad/+bug/1799606
2018-10-24 22:00:50 +01:00
Jeff Young
96e65c7f23
Hide existing object when displaying moving preview.
...
Fixes: lp:1799478
* https://bugs.launchpad.net/kicad/+bug/1799478
2018-10-23 20:54:42 +01:00
Jeff Young
9f350820ad
Add field umbilical lines to GAL renderer.
2018-10-23 20:54:42 +01:00
Jeff Young
1606329855
AdvanceDepth() strategy has been replaced with layer depths.
...
This is just a little bit of clean-up after-the-fact.
2018-10-23 20:54:42 +01:00
Jeff Young
f17c18bcce
Remove AdvanceDepth() hacks in favour of proper layers.
...
Also removes the bounding-box cache since the last big merge
should have sorted out the Update(GEOMETRY) calls.
Fixes: lp:1797271
* https://bugs.launchpad.net/kicad/+bug/1797271
Fixes: lp:1797268
* https://bugs.launchpad.net/kicad/+bug/1797268
Fixes: lp:1797075
* https://bugs.launchpad.net/kicad/+bug/1797075
2018-10-21 15:55:56 +01:00
jean-pierre charras
dafeb96765
Page layout bitmap size wrong in modern/GAL canvases.
...
The image scale set by pl_editor was not taken in account when drawing the page layout.
Fixes: lp:1798685
https://bugs.launchpad.net/kicad/+bug/1798685
2018-10-20 18:24:22 +02:00
Jeff Young
5fe523f534
Place object borders in front of background fills.
...
This is required when rendering from the cache as the hardware
doesn't necessarily draw in the same order.
2018-10-15 19:59:47 +01:00
Tomasz Włostowski
d66e0d4f7a
eeschema-gal: implemented EnableDepthTest() in GAL, fixed drawing order in eeschema
2018-10-15 00:09:59 +02:00
jean-pierre charras
fff739631c
EEschema: fix wrong pin rendering for pin style PINSHAPE_OUTPUT_LOW
...
Fixes: lp:1797750
https://bugs.launchpad.net/kicad/+bug/1797750
2018-10-14 12:36:02 +02:00
Jeff Young
275d5e336f
Fix issue with component children disappearing when canvas origin not in view.
2018-10-13 20:54:50 +01:00
jean-pierre charras
650478f757
Eeschema, highlight connection: show selected junctions and labels in highlight color
...
Previously, only wires were shown in highlight color.
2018-10-13 16:12:36 +02:00
jean-pierre charras
0dfd0c5f52
Minot cosmetic enhancement
2018-10-11 11:26:59 +02:00
Jeff Young
6e2b7521d0
Coding style and lint fixes.
2018-10-09 11:08:56 +01:00
Jeff Young
637029c292
Remove polygon fix as it causes more issues than it solves.
2018-10-09 11:08:56 +01:00
Jeff Young
5a910e9ee3
Make sure filled polygons are closed when rendering.
2018-10-09 11:08:56 +01:00
Jeff Young
9dfcc839a4
Fix color issues with cursor and sheet pins.
2018-10-09 11:08:56 +01:00
jean-pierre charras
4a92a5e628
Fix a Eeschema crash when using a SYMBOL_PREVIEW_WIDGET. Fix also a few draw artifacts.
2018-10-09 11:08:56 +01:00
jean-pierre charras
a6d014d959
Fix some artifacts when drawing items, both on Cairo and Opengl.
...
Fix also incorrect selection of De Morgan style selection in SYMBOL_PREVIEW_WIDGET.
2018-10-09 11:08:56 +01:00
jean-pierre charras
88cdce8d62
Make SYMBOL_PREVIEW_WIDGET working, and using the canvas type of the caller. Fix an issue with F3 zoom key in libedit.
2018-10-09 11:08:56 +01:00
Jeff Young
97c83766db
Refresh issues around sheet pins.
2018-10-09 11:08:56 +01:00
Jeff Young
96724af2c4
Ensure junctions and no-connects are visible even on fat wires.
...
Also adds a preference for junction size.
Fixes: lp:1545422
* https://bugs.launchpad.net/kicad/+bug/1545422
2018-10-09 11:08:56 +01:00
Jeff Young
8e09aa554a
Improve dangling pin drawing logic.
2018-10-09 11:08:56 +01:00
jean-pierre charras
1a0f3b79cc
Fix SCH_BITMAP handling in gal.
2018-10-09 11:08:56 +01:00
Jeff Young
fee52e127f
Add line style drawing.
2018-10-09 11:08:56 +01:00
Jeff Young
0063f2c12d
Stroke rectangles after filling so fill doesn't cover 1/2 of stroke.
2018-10-09 11:08:55 +01:00