Commit Graph

5032 Commits

Author SHA1 Message Date
Jeff Young e85701f405 Don't allow IS_NEW flag on created-line-segments to fool us.
When dragging we'll create new line segments between selection-edge
objects and things outside the selection that they're attached to.
These new lines have their IS_NEW flags set, but shouldn't fool us
into thinking that the selection contains pasted (or placed) items.
2019-12-28 11:58:33 +00:00
Jeff Young 87e163945e Items added to a selection for a drag should only be temporary.
After the drag, cancel, or undo, only the originally-selected items
should remain selected.
2019-12-28 11:58:33 +00:00
Mark Roszko 19ceb11ae7 Change more enums over to scoped enums 2019-12-28 00:55:11 +00:00
Wayne Stambaugh c67a52ffd8 Symbol editor: fix various crash and behavior bugs.
Abandon the previous behavior of always creating a new copy of the
buffered symbol which required a re-parenting of every derived symbol
to prevent accidentally orphaning a derived symbol parent symbol
pointers.

This change required something that should have been done a long time
ago by adding an assignment operator to LIB_PART.  The assignment
operator makes it possible to create a single copy of the symbol to
buffer which gets updated rather than deleting the last copy and
replacing it with a new copy.

Add a clear method to the MULTIVECTOR class so that existing LIB_PART
object draw items can be removed before assigning the draw items from
the part being assigned.

Fixes #3672

https://gitlab.com/kicad/code/kicad/issues/3672
2019-12-26 10:28:51 -05:00
Mark Roszko d3edeaec50 Fix "Properties" not appearing in right click menu for graphic line. 2019-12-26 15:15:34 +00:00
Ian McInerney 25a302758e Fix macos plist version string generation
Generate these resource files similar to how it is done one Linux.

Fixes mac-builder issue https://gitlab.com/kicad/packaging/kicad-mac-builder/issues/275
2019-12-26 12:42:25 +00:00
Ian McInerney e6e2cf47fd eeschema: Fix return ID check in annotate dialog
Fixes https://gitlab.com/kicad/code/kicad/issues/3708
2019-12-25 23:17:00 +00:00
jean-pierre charras 034b87dec0 Eeschema: connection_graph.cpp: clear old pointers to avoid using outdated or deleted data.
m_connected_bus_item and m_connected_bus_items pointers were not cleared when
rebuilding connection data.
So in some cases these pointers were not updated, and created a crash
once the old data was no longer available (deleted)
2019-12-23 14:55:47 +01:00
jean-pierre charras 7b80b2dc7b Eeschema: fix a crash that sometimes happens with bus entries,
connected to the same point on a bus.
The pointers used in previous code could be null, but they were not tested.
The pointer validity is now tested.
2019-12-22 16:19:05 +01:00
jean-pierre charras b53501d8cf Eeschema: very minor change: make a string shorter to reduce the panel size
This is not noticeable in English, but noticeable in translated language.
Frequently, strings are longer once translated.
2019-12-21 11:19:08 +01:00
Mark Roszko 11ff16be4e Switch to scoped enums 2019-12-20 14:11:39 +00:00
Ian McInerney b24fc4e2e1 Remove unused variables 2019-12-19 15:38:15 +00:00
Ian McInerney b9d8849b28 Unify unsaved changes detection logic in all frames
Create an IsContentModified() function in each frame
that provides if the content has been modified, and
use that instead of always copying the checks.
2019-12-19 15:34:01 +00:00
Mark Roszko 686b768a3d Add shutdown blocking on Windows for pcbnew, eeschema and pleditor
ADDED: Block shutdown/logoff on Windows when contents have been modified
2019-12-19 14:11:11 +00:00
Ian McInerney 3ca231aa78 Rename lib viewer frame files to use the class name 2019-12-19 14:05:46 +00:00
jean-pierre charras d9de28de35 Eeschema: usability enhancement.
ADDED: a config option to select (when clicking on a pin) the parent symbol
or only the pin.

Previously, when cliking on a pin, the parent symbol was selected.

Allowing the pin selection is mandatory in cross probing, and to display the pin
characteristics in some cases, for instance if a pin is flagged by the ERC tooL.
2019-12-19 12:41:51 +01:00
jean-pierre charras a049348576 Eeschema: fix null pointer use.
Fixes #3694 | https://gitlab.com/kicad/code/kicad/issues/3694
2019-12-19 09:11:34 +01:00
Wayne Stambaugh 879ec7d8e6 KiCad: fix crash bug when editing symbol library table.
Do not check the connection graph when editing the symbol library table
from KiCad because the connection graph object is no valid when the
schematic editor is not open.

Fixes kicad/code/kicad#3682
2019-12-17 18:42:43 -05:00
Ian McInerney 0c63936aed Initialize starting value in libedit deduplicate function 2019-12-17 16:09:59 +00:00
Wayne Stambaugh 2b920ffa04 Symbol editor: inheritance symbol editing bug fixes.
There is no need to create a new root symbol and re-parent all derived
symbols when renaming a root symbol.  Just rename the buffered root
symbol.

Test for duplicate symbol names when validating the properties dialog
information to prevent broken symbol pointers.

Fix a field drawing bug when editing derived symbols.

Fix bug to insure duplicate symbol names cannot exist in a library.

Fixes kicad/code/kicad#3654

Fixes kicad/code/kicad#3672
2019-12-16 10:11:06 -05:00
Wayne Stambaugh 965478365a Eeschema: minor fix loading inherited symbol fields. 2019-12-14 08:28:43 -05:00
jean-pierre charras 74caf3b7cb Sch validator: make error messages translatable.
The fix avoid ridiculous sentences, once translated.
2019-12-14 11:40:37 +01:00
Wayne Stambaugh 3e431d0d39 Symbol editor: fix inherited symbol editing bug.
The library manager update part function was orphaning the root symbol
of derived symbols when the root symbol was edited.  Re-parent the
inherited symbols when updating a root symbol.

Update the mandatory field attributes whenever the parent is set for
derived parts.  This will show the fields with the correct attributes
in the symbol editor and viewer.

Using std::unique_ptr to hold the current symbols was deleting the
pointer on symbol selection changes causing the pointer in the library
manager buffer to be stale in some cases.  Revert back to using a
simple pointer and manual clean up as required.

Prevent derived symbols from being saved to a different library to
prevent orphaned symbols.

Fixes kicad/code/kicad#3649
2019-12-13 16:51:59 -05:00
Seth Hillbrand e9323fff82 Eeschema: Move SCH_LINE_WIRE_BUS_TOOL to class
The remaining static elements of SCH_LINE_WIRE_BUS_TOOL are moved into
the class and passed elements eliminated in favor of held class
elements.
2019-12-13 12:41:57 -08:00
Seth Hillbrand cda291adae eeschema: Clean bits of DLIST
Removes the extra DLIST manipulation from SCH_LINE_WIRE_BUS_TOOL and
moves the static storage into class storage
2019-12-13 11:22:18 -08:00
Seth Hillbrand ac7538cc22 Add default VECTOR2D constructor for SCH_LINE 2019-12-13 11:22:18 -08:00
Wayne Stambaugh b66ecf141f Eeschema: fix sheet file name case sensitivity test.
Fix overzealous test if the new file name is the same as an existing
file name.

Fix a potential comparison bug due to missing file extension.
2019-12-12 15:36:57 -05:00
Wayne Stambaugh 20836261d7 Fix minor coding policy violations. 2019-12-12 14:55:35 -05:00
Wayne Stambaugh c4d1cebbdd Symbol editor: fix a compiler warning in the library manager code.
Fixes kicad/code/kicad#3651
2019-12-12 14:36:29 -05:00
Wayne Stambaugh bcaa15e54c Eeschema: fix yet another symbol inheritance crash.
The schematic symbol swap function still had the old pin map swapping
code which overwrote the correct pin maps that were rebuild after the
library symbol was update.  Duh!

Fixes kicad/code/kicad#3661
2019-12-12 12:59:01 -05:00
Wayne Stambaugh a18d7a8495 Eeschema: fix a selection bug created in commit bec87864.
Apparently the schematic and symbol library editors now have common
selection filtering so checking for a valid LIB_EDIT_FRAME when
filtering for the  schematic editor frame prevented all schematic
object from being selected.
2019-12-12 11:42:11 -05:00
Wayne Stambaugh bec878640c Symbol editor: fix crash caused by broken root symbol name.
The symbol editor selection criteria did not include LIB_FIELD objects
which allowed the root symbol name to be changed causing broken derived
symbol links.  Disable the symbols fields from being edited when a
derived part is shown in the editor to prevent this.

Add a missing warning that deleting a root symbol used to derive other
symbols would also delete all derived symbols from a library.  Give the
user a chance to cancel the delete operation in this case.

Fixes kicad/code/kicad#3654
2019-12-12 10:45:12 -05:00
Wayne Stambaugh ed025972ab Eeschema: fix crash caused by stale symbol library object pointers.
The new symbol library changes left stale pointers in the connection
graph because the SCH_COMPONENT object pins were not always getting
updated when a new copy of the library symbol was updated.

Force a full update of the connection graph whenever the schematic
library symbol links are refreshed.  This seems like overkill but it
ensures that there a no stale libraries items left in the connection
graph.

Fixes kicad/code/kicad#3658
2019-12-11 18:53:29 -05:00
Jeff Young c5df98a170 Clean up spacing in Eeschema Display Options.
Also adds a note for editing highlight color.
2019-12-11 20:50:38 +00:00
Jonatan Liljedahl 90d2ea5dd5 Eeschema: simulator: add keyboard shortcuts for add signal, etc
(cherry picked from commit bc4caa8913ceff15391f6347a9edb8acbc60172e)
2019-12-11 04:34:22 +00:00
Seth Hillbrand e39586e157 Eeschema: Catch error on init
Some windows systems will not fall back correctly on our standard
initialization step, so we need the additional std:: error fall back to
catch them.

Fixes #2620 | https://gitlab.com/kicad/code/kicad/issues/2620
2019-12-10 13:48:13 -08:00
Jonatan Liljedahl 25abdd9e9c eeschema: Fix refreshing of selection shadow on text fields when zooming.
Fixes #3652 | https://gitlab.com/kicad/code/kicad/issues/3652
2019-12-10 13:10:26 +01:00
Wayne Stambaugh 30da2b31ea Eeschema: fix multiple symbol rescue bug caused by commit 54f066fe.
Use the root symbol when comparing against the cached symbol when
checking to see if a symbol changed.  When the original symbol is
a derived symbol, the test will always fail.

Force a symbol link refresh on a rescue to prevent stale links from
crashing the connection graph refresh when running the project rescue
on demand.

Force a symbol link refresh on project load to prevent stale links from
symbol link changes from crashing the connection graph when the project
rescue in invoked.

Fixes kicad/code/kicad#3645
2019-12-09 14:47:29 -05:00
Mark Roszko a130ed9968 Fix improper SetValue usage on radio buttons 2019-12-09 00:40:08 -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
Jean-Pierre Charras 97b0b20a65 Fix properties dialog bug in symbol library editor.
Remove unused panel rather than calling Hide() method which draws the
hidden page as a background of the shown page.
2019-12-06 11:33:52 -05:00
Wayne Stambaugh 9fe2c4b21f Fix a few more symbol library inheritance bugs.
Replace some C casts with C++ dynamic_cast.

Fix iterator bug when deleting inherited symbols from legacy file format
symbol library cache.

Remove unnecessary const when return wxString object instead of reference.
2019-12-06 11:33:52 -05:00
Wayne Stambaugh 8e150521a2 Fix a few minor symbol library inheritance bugs.
Don't clobber value file when load aliases in legacy symbol library cache
parser.

Use actual symbol library LIB_PART pointer rather than a flattened copy
of the symbol.  This fixed a bug when displaying the parent field in the
message panel for derived symbols.

Simplify the flatten code by copying the parent and updating the lesser
information from the inherited symbol.
2019-12-06 11:33:52 -05: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
Seth Hillbrand 6983c56cf8 Use const references where possible
This avoids copy cost on local vars where we only read.
2019-12-05 14:40:22 -08:00
Seth Hillbrand c6f5df134c Minor speed cleanup
This adjusts iterators to use const reference when only used for
copy.  It also ensures pre-allocation of vectors when size is known
ahead of time.
2019-12-05 14:20:59 -08:00
Seth Hillbrand b5f021ff9f Cleanup: Replace push_back with emplace_back
In cases where we create a new item and immediately push into a
container, the emplace idiom is faster and more efficient.
2019-12-05 13:41:21 -08:00
Seth Hillbrand 4d2e953f42 Cleanup: Replace C-only deprecated headers
This replaces headers deprecated by C++14 with their equivalent
replacement
2019-12-05 11:03:15 -08:00
Jeff Young 089ce90de3 Fix some issues with the previous commit. 2019-12-02 23:35:19 +00:00
Jeff Young 9b36489270 Make sure that libraries are always sorted consistently.
Fixes #1847481 | https://gitlab.com/kicad/code/kicad/issues/1847481
2019-12-02 21:52:50 +00:00
Jeff Young d4816d843d Check /all/ libraries when toggling the Save All toolbar button. 2019-12-02 20:48:22 +00:00
Jeff Young 3af3bf894c Make sure the IS_MOVED flag gets set when breaking out of a bus.
This (among other things) causes an update-preview event to be sent
when modifying it (such as rotating).

Fixes: lp:1854456
* https://bugs.launchpad.net/kicad/+bug/1854456
2019-12-02 20:01:44 +00:00
jean-pierre charras 4bf7ca49b8 Commit test 2019-11-30 20:21:17 +01:00
Seth Hillbrand d20d310fcc Fix compile error on Linux
The wxArrayString doesn't have a standard assignment operator to
std::vector<wxString> so we iterate over the members.

Fixes: lp:1854562
* https://bugs.launchpad.net/kicad/+bug/1854562
2019-11-30 05:24:35 -08:00
Jon Evans 8b87dc7e0f A slightly better ERC check for hierarchical labels
Fixes: lp:1839822
* https://bugs.launchpad.net/kicad/+bug/1839822
2019-11-29 21:11:44 -05:00
Jon Evans 972d765aea Use direct call to update highlighting on new sheet load 2019-11-29 21:11:44 -05:00
Jon Evans 78add8f4bd Mark ERC compare operators as const
Not including these is a compile error on MSW/VC
2019-11-29 21:11:44 -05:00
Jon Evans f23e151b90 Use wxArrayString instead of vector<wxString> in BUS_ALIAS
Fixes linker errors on Windows/VC
See: https://trac.wxwidgets.org/ticket/10884
2019-11-29 21:11:44 -05:00
Jeff Young 102b530162 Fix library tree updating bug present at least on OSX. 2019-11-29 17:55:01 +00:00
Seth Hillbrand ffcf3b01fc Fixup issue with adding junctions
Segfault when we pass a component to the routine as it expects to see a
selection.
2019-11-27 11:13:01 -08: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
Franck Jullien a5f8340654 eechema: add junction if needed when component is placed
Fixes: lp:1849376
* https://bugs.launchpad.net/kicad/+bug/1849376
2019-11-26 19:23:02 -08:00
Jonatan Liljedahl 7c7d9c3e3f Eeschema: simulator plot: allow standard mac pan and pinch to zoom 2019-11-25 09:24:31 -05:00
Ian McInerney 10ccc6da2a libedit: Disable editing toolbar items when no part is loaded 2019-11-24 12:24:49 +00:00
Ian McInerney 087a90cf99 eeschema: Update titlebar when searching schematics
Fixes: lp:1851641
* https://bugs.launchpad.net/kicad/+bug/1851641
2019-11-24 01:25:00 +00:00
Ian McInerney 7339eb31eb eeschema: Allow bus entry labels to rotate and mirror
Fixes: lp:1853079
* https://bugs.launchpad.net/kicad/+bug/1853079
2019-11-23 23:35:21 +00:00
Ian McInerney 99b9354a51 Add clear recent files action to the menus
ADDED: Menu item to allow the recent file lists in each program to be
cleared

Fixes: lp:1821685
* https://bugs.launchpad.net/kicad/+bug/1821685
2019-11-23 23:35:21 +00:00
jean-pierre charras 71cd8c57bf ADDED: Pcbnew, add "pin function" (pin name in eeschema) to pads.
The pin name defined in Eeschema is now available as pad info.
Useful for the board designer (the pin function is displayed in the message panel).
Needed for the Gerber P&P files.
2019-11-23 09:12:43 +01:00
jean-pierre charras e6346c7408 Pcbnew: fix crash on Linux (when opening Edit Spice model in component properties)
It happens when the spice library model shown in dialog is a large file.
Looks like the wxTextCtrl used to displays the library content
creates the crash ( GKT bug?) for large texts.

The fix is to replace this wxTextCtrlt by a wxStyledTextCtrl.
It has advantages (does not crash... and much faster display) and
inconvenients (cannot disable editing).

Fixes: lp:1853161
https://bugs.launchpad.net/kicad/+bug/1853161
2019-11-21 13:13:15 +01:00
Wayne Stambaugh 773f45aae3 Eeschema: fix sheet file name case sensitivity bug.
Apparently there are some issues with wxString::CmpNoCase() that was
causing the sheet file name case sensitivity test to incorrectly fail.
Converting the name strings to lower case before comparing resolved
the issue.
2019-11-19 16:06:36 -05:00
Wayne Stambaugh d4cea0f2b7 Eeschema: fix multiple sheet file name bugs.
Add missing check for root sheet when searching sheet hierarchies for
already loaded schematics.  This prevents the root sheet from being
omitted when adding new sheets using the root sheet file name.

CHANGED: Make file name tests case sensitive so that schematic sheet
file names on non-Windows systems can be uses as expected.

Warn users when attempting to use schematic file names that only vary
by case sensitivity that doing so will result in a project that is not
portable to Windows.

Fixes lp:1843415

https://bugs.launchpad.net/kicad/+bug/1843415
2019-11-18 07:59:30 -05:00
Jeff Young fb52124426 Fix several issue with bus entry connectivity.
When dragging a bus the entry is connected to the bus so the wire
connected to the entry (if any) needs to stretch.

While an entry can connect in the middle of bus, it cannot connect
in the middle of a wire.

Fixes: lp:1849973
* https://bugs.launchpad.net/kicad/+bug/1849973
2019-11-18 11:36:30 +00:00
jean-pierre charras c5290de6ec housekeeping:
Remove not used files:
- markdown2html is not used (we are using "Sundown" tool)
- newstroke_font_without_CJK.cpp is removed.
Due to code optimization the full font works fine without memory issues
-fix also a few very minor compil warnings
2019-11-16 09:39:36 +01:00
Ian McInerney 1df7b718d9 eeschema: Allow labels to rotate on bus unfold 2019-11-15 20:43:56 +00:00
Seth Hillbrand a89dc98e07 Eeschema: Tokenize in UTF8
wchar tokenization breaks for wxWidgets on some platfoms.

Fixes: lp:1852595
* https://bugs.launchpad.net/kicad/+bug/1852595
2019-11-15 10:37:39 -08:00
Ian McInerney 39ef514ff9 Eeschema: Don't give a default filename to schematics in standalone
CHANGED: No longer call schematics noname.sch in standalone mode,
instead don't given them any name so the user can choose on save.

Fixes: lp:1852607
* https://bugs.launchpad.net/kicad/+bug/1852607
2019-11-15 11:29:57 +00:00
Seth Hillbrand 9f8eb350f7 eeschema: One more sort case
This fixes the same issue as f4a1fef3b requiring an absolute inversion
when sorting ascending vs descending
2019-11-13 11:48:22 -08:00
Jeff Young 7a8f2a5623 Simplify eeschema's plot filename algorithm.
We have different requirements than sheet paths for netlists,
so going through that code and then doing a lot of conversions
just ends up with a mess.

We now generate the path directly from the SCH_SHEET_PATH.

Fixes: lp:1852353
* https://bugs.launchpad.net/kicad/+bug/1852353
2019-11-13 19:16:09 +00:00
Seth Hillbrand f4a1fef3b0 Adjust pin table sort
The sort routine requires the value to be true with a is strictly lower
than b.  But just inverting the '<' doesn't yield strictly lower, it
includes '>='.  This causes items to jump in the list.
2019-11-12 17:24:57 -08:00
Seth Hillbrand 42f5c944b3 libedit: When pasting keep original multi-unit
Copy/Paste should keep the original items' designation for all units and
conversion type.  If it was specified in the original copy, we should
keep the same specification when pasting (but update for the current
frame)
2019-11-12 16:11:08 -08:00
Jeff Young 04b0feb365 Fix a couple of issues in new Save As command.
Handle symbols as well as strings in the "source" lists of
netlist files.

Handle Protex gerber file extensions.

Check for project_name-whatever pattern for files that we
don't recognize (such as project_name-NPTH-drl_map.ps)
2019-11-11 20:36:48 +00:00
Jonatan Liljedahl fa14d5b9fa Eeschema: simulator: more trace colors, smarter color allocation
NEW: The simulator plot now avoids colors already in use, if possible.
The palette is replaced with a larger one with less saturated colors.

Fixes: lp:1851372
* https://bugs.launchpad.net/kicad/+bug/1851372
2019-11-11 17:20:56 +00:00
Jonatan Liljedahl c71202d143 Eeschema: simulation: allow adding signals by name like V(/out) or I(R1)
NEW: A text entry allows adding signals by name. This includes vectors
not in the signal list, which is useful for plotting calculated vectors
like `let AB=V(a)*V(b)`. It's also a faster way to add a signal if you
know its name already.

Fixes: lp:1851373
* https://bugs.launchpad.net/kicad/+bug/1851373
2019-11-11 09:05:37 -05:00
Wayne Stambaugh bf8bb17f42 Fix missing symbol and footprint viewer about dialog names. 2019-11-11 08:25:58 -05:00
Jeff Young 9d288968e7 Be more explicit about extent of schematic cleanups.
The new connectivity algorithm had a tendency to cleanup
globally, but that could insert undo records from other sheets
into the current screen's undo stack.  Needless to say, this
was a recipie for segfaults.

Fixes: lp:1846247
* https://bugs.launchpad.net/kicad/+bug/1846247
2019-11-10 23:25:54 +00:00
Jeff Young 10abc6097f Cleanup, commenting, etc. 2019-11-10 14:52:01 +00:00
jean-pierre charras 4de6ed6206 Fix issues created by Adds Save As... to the Kicad manger.
Mainly replacing std::string by wxString to manage filenames.
On Windows, a sdt::string cannot manage a filename, unless using
in many places TO_UTF8 and FROM_UTF8.
So the best way is to use a wxString for filenames and error messages.
2019-11-10 09:37:39 +01:00
Jeff Young b5904b0401 Installment one of project Save As... feature.
ADD: Adds Save As... to the File menu for the project window.

Fixes: lp:594051
* https://bugs.launchpad.net/kicad/+bug/594051
2019-11-09 20:22:44 +00:00
Seth Hillbrand 81ce588a00 eeschema: Set sheet unit number when setting unit
The auto increment needs to ensure the unit number is updated in two
places.  Hierarchy and draw list.

Fixes: lp:1851431
* https://bugs.launchpad.net/kicad/+bug/1851431
2019-11-05 14:04:01 -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 984c64677e Hook up rotate & flip to bus entries when drawing them.
Also adds support for the bus entry shape hotkeys while drawing.

Fixes: lp:1849967
* https://bugs.launchpad.net/kicad/+bug/1849967
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 1dcd442156 minor fix in a python script (kicad_netlist_reader.py)
Sort lists was incorrectly made.
2019-11-02 09:27:50 +01:00
Seth Hillbrand 47d7fea9be Fix bug in ReplaceDuplicateTimestamps
When more than one item has the duplicated timestamp, the update code
doesn't accurately change the duplicates as it only checks that a single
sort has not adjacent duplicates.

This adds all items to a set, ensuring that updated timestamps are
unique to the schematic, which prevents reseting or mangling the units
for duplicated components.
2019-10-29 16:49:15 -07:00
Seth Hillbrand bbf355a12f eeschema: Fix an issue with duplicate timestamps
Duplicating into a non-clone still doesn't get a new timestamp, so we
need to explicitly set it.
2019-10-29 16:48:19 -07:00
Seth Hillbrand 868ff5bb2c Right click gets a new object if the mouse has moved
Right click is a pointing operation combined with a request for the
context menu.  We need to highlight the user's intended object when they
have moved their mouse to a new element instead of showing the context
menu for the selected object.

However, in cases where the selection is difficult to make, it is
sometimes helpful to select the item first, then right-click.  In these
cases, we keep the selection where the mouse remains inside the selected
object's bounding box.
2019-10-29 16:11:06 -07:00
Seth Hillbrand 7b2d6ab40e eeschema: Allow mult-part placement option
When placing a new component in the schematic, this allows the user to
iterate through all units in the selected component without re-opening
the choose part dialog.  It also allows the optional addition of
multiple copies of the same component to be placed in the schematic.

Fixes: lp:1806217
* https://bugs.launchpad.net/kicad/+bug/1806217
2019-10-29 12:20:14 -07:00
Seth Hillbrand e533ea4ae6 eeschema: Keep selection with only components
Adding a field to a selection changes the bounding box and count for
rotation.  This can cause odd offsets when the field is rotated against
the selection center rather than the bounding box as well as with the
component.

Fixes: lp:1849078
* https://bugs.launchpad.net/kicad/+bug/1849078
2019-10-28 10:50:26 -07:00
Seth Hillbrand 4f594550a2 eeschema: Respect multi-unit sheet numbering
When we are numbering by sheet, don't continue multi-unit parts across
sheets.
2019-10-26 07:52:57 -07:00