Commit Graph

5009 Commits

Author SHA1 Message Date
Jeff Young 7208ef481f Don't confuse a pasted pin with being synchronized.
It's only at the same location because it was copied from there.

Fixes: lp:1834377
* https://bugs.launchpad.net/kicad/+bug/1834377
2019-06-27 00:24:42 +01:00
Jeff Young 5e40de9357 Clear IS_NEW flag after placing pin so the tool knows we're no longer drawing.
Fixes: lp:1834376
* https://bugs.launchpad.net/kicad/+bug/1834376
2019-06-27 00:02:13 +01:00
Jeff Young f11de08fa9 Clarify that default text size is for schematic text.
Fixes: lp:1818668
* https://bugs.launchpad.net/kicad/+bug/1818668
2019-06-26 21:54:03 +01:00
Jeff Young 7292ce6a8b Improve eeschema selection disambiguation logic. 2019-06-26 21:54:03 +01:00
Jeff Young fa84babefe Re-implement sch->pcb cross-probing using net highlighting architecture.
Fixes: lp:1827853
* https://bugs.launchpad.net/kicad/+bug/1827853
2019-06-26 21:54:03 +01:00
Jeff Young c77d214c5f Clear annotation of pasted sheets only when they already exist in the current hierarchy.
Fixes: lp:1833205
* https://bugs.launchpad.net/kicad/+bug/1833205
2019-06-26 21:54:03 +01:00
Jeff Young 15cd13ba6e Don't tie generic validators to a specific field.
Fixes: lp:1834103
* https://bugs.launchpad.net/kicad/+bug/1834103
2019-06-26 01:13:15 +01:00
Jeff Young cb1fd069f0 Fix inadvertant check-in of debugging code. 2019-06-26 00:51:33 +01:00
Jeff Young 89d1d3d299 Real-time highlighting for PlEditor delete tool. 2019-06-25 21:10:21 +01:00
Jeff Young 4eaba20cd3 Real-time highlighting for Pcbnew and ModEdit delete tools. 2019-06-25 21:10:21 +01:00
jean-pierre charras 31c254d8c1 SCH_EDIT_FRAME::FixupJunctions(): avoid flagging schematics as modified, when no junction is added. 2019-06-25 18:23:28 +02:00
jean-pierre charras 1cc05f19b5 SCH_EDIT_FRAME::FixupJunctions(): do not change the opened sheet after running the code. 2019-06-25 17:30:37 +02:00
Wayne Stambaugh 288982b15d Symbol and footprint library table editor fix.
Prevent the symbol and footprint library table editors from substituting
the current project path (${KIPRJMOD}) when adding libraries to the global
library table.  This will almost assuredly fail when opening a different
project.  We still allow users to manually use ${KIPRJMOD} in global table
paths under the assumption that if they are typing this in then they most
likely understand environment variable substitution.

Fixes lp:1830694

https://bugs.launchpad.net/kicad/+bug/1830694
2019-06-25 08:36:32 -04:00
Jeff Young f9702aab87 Immediate actions for PlEditor, PcbNew, etc. 2019-06-25 11:34:28 +01:00
Jeff Young f088d4d762 Add env-var setting to CommonSettingsChanged().
Fixes: lp:1804925
* https://bugs.launchpad.net/kicad/+bug/1804925
2019-06-25 11:34:28 +01:00
jean-pierre charras 70ff2e14a5 Eeschema: avoid crashes when the tool highlight or delete is activated and clicking in a empty schematic.
Was a nullptr not tested.
2019-06-25 08:31:22 +02:00
Seth Hillbrand 98124e68c7 Update exit strategy to match UI guidelines
In singletop mode, all frames show the "Quit" option in the file menu
and will quit on Ctrl-Q.  When launched from the main KiCad interface,
sub-programs show the "Close" option instead and will close with Ctrl-W.
In this mode, Ctrl-Q will instruct the main program to exit.

Fixes: lp:1779938
* https://bugs.launchpad.net/kicad/+bug/1779938
2019-06-24 21:46:42 -07:00
Tomasz Włostowski d7fe307913 eeschema: automatically insert junctions at pin connections if needed during file load
EEschema optimizes wires by merging colinear segments. If a schematic opened without a valid
cache library or missing installed libraries and later saved, this optimization can cause connectivity
errors. In order to fix that we check each pin-wire connection and junctions if necessary.
2019-06-25 01:06:25 +02:00
jean-pierre charras 710a82bc51 Eeschema: fix an issue in netlists when using "<root sheet>" as root sheet path name.
Netlists do not accept any char in netnames (especially spice).
They must use only "/" as root sheet path name.

Especially _( "<root sheet>" ) breaks netlists because:
- there is a space in name, and special chars (< and >)
- it is a translatable name. so the actual name cannot be managed.
- most of netlist code in Kicad expects a "/" as root path.
2019-06-23 19:37:41 +02:00
Seth Hillbrand 39c2745f55 eeschema: Allow spaces in label names for multilabeling
This adds the functionality to add multiple labels to your schematic at
once by using spaces in the original label name.

Fixes: lp:1095113
* https://bugs.launchpad.net/kicad/+bug/1095113
2019-06-20 16:21:49 -07:00
jean-pierre charras e1a2cbbea1 Eeschema: fix for root sheet plot filename, in non English languages. 2019-06-20 17:00:06 +02:00
Jeff Young 485d436860 Clear ctx-menu before rebuilding; don't veto ctx-menu mousewarp for non-ctx-menu dialog.
Fixes: lp:1833312
* https://bugs.launchpad.net/kicad/+bug/1833312
2019-06-19 21:17:56 +01:00
Jeff Young 4054d7ddf7 Don't try an intertwine deletion and junction fixup.
Fixes: lp:1833224
* https://bugs.launchpad.net/kicad/+bug/1833224
2019-06-19 19:30:38 +01:00
Jeff Young eb95202708 Fix grid update when edited from menubar.
Fixes: lp:1833399
* https://bugs.launchpad.net/kicad/+bug/1833399
2019-06-19 18:35:17 +01:00
Jeff Young 730b89af6d Another round of changes for immediate actions. 2019-06-19 18:35:17 +01:00
Jeff Young 3a0256aade Add handle-based editing for eeschema bitmaps.
Also cleans out a bunch of duplicated functionality from the image
editor dialog.

Fixes: lp:1828722
* https://bugs.launchpad.net/kicad/+bug/1828722
2019-06-19 18:35:17 +01:00
Seth Hillbrand e16bf40e60 eeschema: Insert junctions when repeating
This is the v6 analog to 697234dd5

Fixes: lp:1832253
* https://bugs.launchpad.net/kicad/+bug/1832253
2019-06-18 20:12:08 -07:00
Jeff Young b8dfc1f26a Fix import sheet pin.
Fixes: lp:1829314
* https://bugs.launchpad.net/kicad/+bug/1829314
2019-06-18 22:44:22 +01:00
Jeff Young 581b5257e1 One more try getting <ESC>/PopTool behaviour right. 2019-06-18 22:34:31 +01:00
Jeff Young b0c1c1ad2b Select both ends of wires in block select.
Fixes: lp:1830717
* https://bugs.launchpad.net/kicad/+bug/1830717
2019-06-18 20:24:15 +01:00
Jeff Young dcbd897a95 Push/pop tools even when selected from the toolbar. 2019-06-18 20:24:15 +01:00
Jeff Young 7dd247f1dc Make better use of TOOL_EVENT parameters. 2019-06-18 20:24:15 +01:00
Seth Hillbrand 42e3c13820 Eeschema: Plot in same order as drawing
This ensures the junctions are on top and the bitmaps are on bottom

(cherry picked from commit ddbc25077c)
2019-06-17 14:59:38 -07:00
Jeff Young 9e464f9f5b Implement rollover highlighting for Eeschema delete tool. 2019-06-17 22:15:20 +01:00
Jeff Young 7cfe19d9fd Cleanup. 2019-06-17 22:15:20 +01:00
Wayne Stambaugh 7235da0979 Eeschema: fix sheet plotting bug.
Prefix the sheet name with "Sheet: " and the sheet file name with "File: "
when plotting so that it matches the display sheet rendering.

Improve the root sheet plot file name.

Fixes lp:1832081

https://bugs.launchpad.net/kicad/+bug/1832081
2019-06-17 17:01:05 -04:00
Wayne Stambaugh d74ec1a1b2 Eeschema: allow empty field strings in field table editor.
The grid apply code was always preventing empty fields.  Change this the
broken behavior to allow any field to be empty except the reference and
value fields.

Fixes lp:1832722

https://bugs.launchpad.net/kicad/+bug/1832722
2019-06-17 15:05:11 -04: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 4eab89d9ef Fix OSX button order issue in Unsaved Changes dialog.
Also changes the presentation of the string when the checkbox appears
so that the "Changes will be lost" warning isn't hidden by the turndown.
This last part may require conditional compilation as it's undocumented.

Lastly, regularizes the Unsaved Changes strings between the apps.
2019-06-17 17:01:57 +01:00
Jeff Young 1f35ec5521 Beware of copying events and losing the m_passEvent flag.
Fixes: lp:1833031
* https://bugs.launchpad.net/kicad/+bug/1833031
2019-06-17 14:44:39 +01:00
Seth Hillbrand 875caa694c Eeschema: Allow junction dots to be hidden
Drawing junction dots at the line width allows users who do not like
them in their schematics to avoid having them drawn.

(cherry picked from commit 75b5324762)
2019-06-17 05:01:28 -07:00
Jeff Young 5d7739a662 Handle '&'s in menu labels.
Fixes: lp:1832904
* https://bugs.launchpad.net/kicad/+bug/1832904
2019-06-17 10:45:23 +01:00
Jeff Young e6d5110ccf Implement I18N for ACTIONs.
It's a bit of a hack because they're statically initialized and
so we can't make use of the _() macro.  We do still want it in the
code, however, because the string harvesting is based off of it.

Fixes: lp:1833000
* https://bugs.launchpad.net/kicad/+bug/1833000
2019-06-17 10:45:23 +01:00
Wayne Stambaugh 418bd28347 Fix build error. 2019-06-16 18:31:10 -04:00
Jeff Young dd3617cfda Fix compile issue. 2019-06-16 22:46:35 +01:00
Jeff Young de67f3f1e9 Move a few more things to ACTIONs. 2019-06-16 19:53:30 +01:00
Jeff Young 909aeba3d9 Transition some more stuff from the MVC view to the controller. 2019-06-16 19:53:30 +01:00
Jeff Young c7bfa9857e Use more reflective naming of what the tool does. 2019-06-16 19:52:07 +01:00
jean-pierre charras 66d2060942 Partial fix for missing language selection menu.
The fix is partial because in the list of languages the menuitem corresponding to the selected language is not checked.
2019-06-16 20:35:57 +02:00
Wayne Stambaugh be8fe3884f Fix spelling error in symbol library table warning string. 2019-06-16 12:26:47 -04:00
Wayne Stambaugh 77bf575742 CvPcb: fix save changes dialog layout issue.
DIALOG_EXIT was not being laid out correctly after setting the dialog
message.  Rather than fix our custom DIALOG_EXIT, wxMessageDialog and
wxRichMessageDialog were substituted as direct replacements for all
of the variants of DIALOG_EXIT.  This make message dialogs appear more
consistent because wxMessageDialog uses the default platform message
dialog and wxRichMessageDialog uses the default platform rich message
dialog on windows.

Remove DIALOG_EXIT_BASE as it is no longer required.

Fixes lp:1832899

https://bugs.launchpad.net/kicad/+bug/1832899
2019-06-16 12:10:24 -04:00
Jeff Young e4fbd003e0 Make m_passEvent event-specific rather than global.
If a tool called something like clearSelection while processing a
MOUSE_CLICK, the SELECTION_TOOL will pass the clearSelection
COMMAND_EVENT because it handles it as a transition, not as an
event. Because m_passEvent is effectively global, the tool manager
would then interpret that as passing the MOUSE_CLICK and we'd end
up processing the click by multiple tools.
2019-06-16 12:06:49 +01:00
jean-pierre charras 6a8e69f9c9 Fix a compil warning. 2019-06-16 09:12:32 +02:00
Jeff Young 0f4bdbd184 Tighten down the POINT_EDITORs a bit more. 2019-06-16 01:33:39 +01:00
Jeff Young 18ebced8f4 Code hygiene. 2019-06-15 20:43:52 +01:00
Jeff Young 19aba615c2 Remove selection condition from conditional menu separators.
We don't allow duplicate separators anyway so all they really do
is complicate the code.
2019-06-15 20:43:51 +01:00
Jeff Young 5610261dce Immediate-action hotkeys (and context menu actions) for eeschema. 2019-06-15 20:43:51 +01:00
Jeff Young 83ee51370c Cancel interactive editing when switching sheets.
Fixes: lp:1819278
* https://bugs.launchpad.net/kicad/+bug/1819278
2019-06-14 16:54:46 +01:00
Maciej Suminski 7d69a917b9 Fixed a crash in EE_SELECTION_TOOL::SelectPoint()
The for loop is continued after an item removal, so the removed item
is not accessed anymore.
2019-06-14 13:00:39 +02:00
Seth Hillbrand fb3d1bdb59 Clear some compile warnings 2019-06-13 15:16:54 -07:00
Jeff Young 8cc1e2b5e7 Fix breakage in wire moving/dragging/etc.
Fixes: lp:1832750
* https://bugs.launchpad.net/kicad/+bug/1832750
2019-06-13 19:58:37 +01:00
Jeff Young 8f84c3ec4f Grid rid of GetCanvas/GetGalCanvas distinction now that there's only gal. 2019-06-13 19:58:37 +01:00
Steven A. Falco 1edeba7fb4 Show the current grid setting. 2019-06-13 14:34:39 -04:00
Jeff Young ce1f35a1be Cleanup some left-over vestiages of the legacy canvas architecture. 2019-06-13 15:51:32 +01:00
Jeff Young 4043a15482 When pasting a sheet link to existing copy if it already appears in the hierarchy.
Fixes: lp:1830633
* https://bugs.launchpad.net/kicad/+bug/1830633
2019-06-13 15:51:32 +01:00
Wayne Stambaugh 028973d182 LibEdit: fix library tree refresh issue when library is removed.
A bug in LIB_MANAGER::LibraryExists() prevented a library removed from
the symbol library table from being removed from the tree view.  Add the
proper check to SYMBOL_TREE_SYNCHRONIZING_ADAPTER::Sync().

This exposed another issue with synchronization between the library
table editor and the tree view which could lead to orphaned library
modifications and/or a segfault when the currently selected library was
removed from the symbol library table.  Give the user a chance to save
or revert any changes before allowing changes to the symbol library
table.

Fixes lp:1821691

https://bugs.launchpad.net/kicad/+bug/1821691
2019-06-13 07:45:03 -04:00
Seth Hillbrand e52afd93a3 Remove Legacy options for overlay/context
These options were used to support the legacy canvas when drawing on
MacOS and GTK3.  With the move to 100% GAL, they are extraneous.  This
moves all DC over to "COPY" as we only use this for printing support in
Eeschema at the moment, so there is a single draw command (no erasing)
for the canvas.
2019-06-12 06:01:03 -07:00
Seppe Stas 455ee4c08c Set KiCad version in MacOS apps
Uses CMake's configure_file function [1] to automaticaly set the
CFBundleShortVersionString [2] value in every app's Info.plist file.

Also updates the CFBundleLongVersionString and CFBundleVersion with the
extended KiCad Version

[1]: https://cmake.org/cmake/help/latest/command/configure_file.html
[2]: https://developer.apple.com/documentation/bundleresources/information_property_list/cfbundleshortversionstring
2019-06-12 04:40:03 -07:00
Jeff Young c0e1f7a17a Add dragging of wire ends, corners and junctions.
Fixes: lp:1830007
* https://bugs.launchpad.net/kicad/+bug/1830007
2019-06-11 21:20:19 +01:00
Jeff Young b1b7408cf2 Accidentally checked in some debugging stuff. 2019-06-11 18:53:36 +01:00
Jeff Young 7726b039b2 Re-jigger standard submenus so they both link AND work. 2019-06-11 18:03:16 +01:00
Jeff Young 05652d4787 Rework the preparation for eeschema's move-tool.
There are a whole bunch of cases which all have to work:
 regular move
 move followed by drag
 drag followed by move
 move followed by duplicate
 duplicate
 paste
and all both with and without Warp Mouse on Move checked.
2019-06-11 18:03:16 +01:00
Jeff Young e4d16abcbd Fix overly-generic flag test when synchronizing pins.
Fixes: lp:1832170
* https://bugs.launchpad.net/kicad/+bug/1832170
2019-06-11 09:29:30 +01:00
Jeff Young 09a3c5b280 Update pasted items' parent pointers.
Fixes crashes when trying to manipulate the item after the paste,
and weird redraw behaviour with pins.

Fixes: lp:1832178
* https://bugs.launchpad.net/kicad/+bug/1832178
2019-06-11 09:22:56 +01:00
Jeff Young 6623ab91a8 Fix issue with picker tool activation. 2019-06-11 00:25:38 +01:00
Jeff Young e9017ce0b1 Update status bar when selected items are modified.
Fixes: lp:1831801
* https://bugs.launchpad.net/kicad/+bug/1831801
2019-06-10 23:46:01 +01:00
Jeff Young b3e30e50c8 Cleanup. 2019-06-10 23:46:01 +01:00
Jeff Young b0e8443383 Sync-ing of menu has been done in CONDITIONAL_MENU for some time now. 2019-06-10 23:46:01 +01:00
Jeff Young a568e70b99 Follow naming conventions. 2019-06-10 23:46:01 +01:00
Jeff Young 5e49517781 Move hotkeys to ACTION architecture. 2019-06-10 23:46:00 +01:00
Jeff Young 6025256e07 Push KIWAY_HOLDER down a level so we can move a bunch of stuff that doesn't belong there out. 2019-06-10 23:46:00 +01:00
Jeff Young 765606012f Convert separate-compilation of selection.cpp to polymorphism. 2019-06-10 23:46:00 +01:00
Jeff Young e606587ff6 Move remaining Symbol Tree ctx menu cmds to ACTIONS.
Also moves the various Player instantiators down into COMMON_TOOLS
for better sharing.
2019-06-10 23:46:00 +01:00
John Beard 7ebda0247f Common: Remove legacy_gal library, fold into common
Return the EDA_DRAW_FRAME class back to common, whence it came (before it was
duplicated into legacy_wx and legacy_gal). Now there is only one
implementation (the GAL one), it doesn't need to be in a separate library.

This simplifies the dependencies for common lib users.
2019-06-10 18:56:57 +01:00
jean-pierre charras beb4348016 Eeschema: fix incorrect saving in prj config on the default netlist format.
It was not always saved, and this was not the default, but the last used format.
2019-06-10 18:44:46 +02:00
Seth Hillbrand bc096dc4ee Eagle: Fix stacked NC pin import
Since Eagle does not connect stacked NC pins but KiCad will if the pins
are coincident, we choose to only import the first of the stacked NC
pins.  While this creates symbols that are slightly different in pin
count from the Eagle version, it keeps the schematic and netlist
functionally correct relative to the Eagle version.

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

(cherry picked from commit 370109b868)
2019-06-09 17:03:44 -07:00
jean-pierre charras bc27b0ed5f Sim spice: fix unescaped netnames in spice netlist and simulator dialogs.
Net names in eeschema that include '/' are escaped ('/' replaced by "{slash}")
Escaped netnames are only for internal use, and must be unescaped in spice netlist and dialogs.
2019-06-09 17:48:01 +02:00
jean-pierre charras df5c5c23ca Eeschema: fix incorrect handling of '/' in graphic texts.
It was escaped (replaced by "{slash}") in dialog.
This is right for labels, not for texts.
A consequence was the directives in spice simul can be broken.
Now the graphic text is not escaped.
2019-06-08 17:32:49 +02:00
Seth Hillbrand 598b140112 eagle: Strip newlines from description
Eeschema old format is line-terminated so the newlines in descriptions
will break the schematic file if saved.

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

(cherry picked from commit fb85612f81)
2019-06-07 22:08:58 -07:00
Jon Evans 607650be22 Connectivity: don't consider neighbor propagation when types don't match
Fixes: lp:1831608
* https://bugs.launchpad.net/kicad/+bug/1831608
2019-06-05 22:26:44 -04:00
Jon Evans 1142eb259b Eagle: properly translate group buses now that we support them 2019-06-05 22:09:09 -04:00
Jon Evans 42887544c9 Connectivity: ensure globally-labeled buses are always propagated
Fixes: lp:1822964
* https://bugs.launchpad.net/kicad/+bug/1822964
2019-06-05 21:33:20 -04:00
Jon Evans 8d8c743f97 Connectivity: remove unused method 2019-06-05 21:27:56 -04:00
Jeff Young b9927a0655 Don't put standard menu items into symbol tree context menu. 2019-06-05 23:33:15 +01:00
Jeff Young 469fc3b572 Finish moving symbol editor tree context menu to ACTIONs. 2019-06-05 23:29:59 +01:00
Jeff Young 6fab7cc025 Remove a bunch of ugly mutex hacks now that we don't use wxString's UTF8 mode anymore. 2019-06-05 21:23:41 +01:00
Seth Hillbrand c6af38477d CMake: Handle custom_target indirection
Building custom targets that depend on custom commands such as our
keyword lexer requires two layers of indirection to pick up changes
properly and not overwrite the same file in parallel builds.

Fixes: lp:1831643
* https://bugs.launchpad.net/kicad/+bug/1831643
2019-06-05 13:05:43 -07:00
Jeff Young 2d40425e4d Move footprint & symbol tree context menus to tool infrastructure.
Fixes: lp:1831692
* https://bugs.launchpad.net/kicad/+bug/1831692
2019-06-05 20:16:48 +01:00
Jeff Young 1ea5b04e22 More ACTIONS work. Nearly done now. 2019-06-04 22:31:42 +01:00
Jeff Young dfcffddbe4 Fix destruction order in Symbol Properties grid table.
wxGrid is VERY cranky about this.  I've only found one recipie that works,
and it must be applied strictly.

Fixes: lp:1831317
* https://bugs.launchpad.net/kicad/+bug/1831317
2019-06-04 15:02:42 +01:00
Jeff Young 1fe848f37c Minor performance enhancements. 2019-06-04 13:56:54 +01:00
Jeff Young 1ea001d497 Go back to event-loop zooming for new frames.
The immediate mode appears to have made things worse not better.
2019-06-04 13:56:54 +01:00
Jeff Young 7c337ec45d Make sure the current desc is shown for parts being edited.
Fixes: lp:1820298
* https://bugs.launchpad.net/kicad/+bug/1820298
2019-06-04 13:56:54 +01:00
Jon Evans 1721cc1700 Ensure pasted sheets get parents set properly for screen discovery
Fixes: lp:1831460
* https://bugs.launchpad.net/kicad/+bug/1831460
2019-06-03 20:30:35 -04:00
Jeff Young 1bf04d1722 More ACTIONs work. 2019-06-04 00:51:16 +01:00
Jeff Young 568c8c336b Move DRC control to a tool; move assorted commands to ACTIONS. 2019-06-03 21:08:30 +01:00
Jeff Young 9f1e2e34b7 Move some dupicated tools to common tools. 2019-06-03 21:08:30 +01:00
Jeff Young e517199794 Move ConfigurePaths and LibTable management to common ACTIONs. 2019-06-03 21:08:30 +01:00
Jeff Young da4fe27447 More ACTIONS work. 2019-06-02 21:10:56 +01:00
Jeff Young 33773bad4d Yet more command conversions to ACTIONs. 2019-06-02 21:10:56 +01:00
Jon Evans 256d7b0714 ERC: Use local paths for bus<>bus entry testing
Fixes: lp:1831365
* https://bugs.launchpad.net/kicad/+bug/1831365
2019-06-02 11:34:15 -04:00
Jeff Young dfc2fe3929 Don't try to post-process an empty clipboard paste.
Fixes: lp:1831364
* https://bugs.launchpad.net/kicad/+bug/1831364
2019-06-02 16:21:44 +01:00
Jeff Young 45a9544726 Instantate a default menu from no selection when menu is first built.
This might resolve some of the GTK menu anomalies.
2019-06-02 12:58:08 +01:00
Jeff Young 6c93cccb70 Implement enable/disable of LibEdit save icon.
Fixes: lp:1831314
* https://bugs.launchpad.net/kicad/+bug/1831314
2019-06-01 23:24:17 +01:00
Jeff Young 7f1ed30ff5 Move DeMorgan handling to ACTIONs. 2019-06-01 23:03:24 +01:00
Jeff Young 39b91c90dd Moved more operations to ACTIONs. 2019-06-01 23:03:24 +01:00
Jeff Young 3777c5270b Move some more Eeschema operations to ACTIONs. 2019-06-01 16:29:12 +01:00
Jeff Young 74e10791ff Fix some Mac-specific issues with the Preferences... menu item. 2019-06-01 16:29:12 +01:00
Jon Evans 27a2b840ec Eeschema: Fix multiple net label ERC after sorting changes
Fixes: lp:1831003
* https://bugs.launchpad.net/kicad/+bug/1831003
2019-05-31 21:55:54 -04:00
Jeff Young f1076c0f48 Fix missing reference keeping history from getting saved.
Fixes: lp:1830185
* https://bugs.launchpad.net/kicad/+bug/1830185
2019-05-31 23:38:15 +01:00
Jeff Young c7fa5c567f Load sheet content after a paste.
Fixes: lp:1830633
* https://bugs.launchpad.net/kicad/+bug/1830633
2019-05-31 23:38:15 +01:00
Jeff Young 1dd1ddf83b Try an "add wires" strategy instead of trying to figure out what to pick up and what to anchor.
Fixes: lp:1831199
* https://bugs.launchpad.net/kicad/+bug/1831199
2019-05-31 21:56:35 +01:00
Jeff Young d7774b94fc Fix regression with switching between drag and move operation. 2019-05-31 21:56:35 +01:00
Jeff Young ead1914b1d Don't autopan until mouse moves. 2019-05-31 21:55:30 +01:00
Jeff Young c2662b0e11 Retire EDA_DRAW_PANEL and legacy_wx/EDA_DRAW_FRAME. 2019-05-31 21:55:30 +01:00
Jeff Young d6e9bdf07b Convert remaining legacy drawing code to print code. 2019-05-31 21:54:22 +01:00
Jeff Young 03bab2f4a9 Remove some more legacy drawing stuff. 2019-05-31 21:54:22 +01:00
Jeff Young 0a01277808 Fix issues with schematic find/change.
Fixes: lp:1831006
* https://bugs.launchpad.net/kicad/+bug/1831006
2019-05-31 21:54:22 +01:00
Jeff Young d2daab808c Remove some legacy cursor handling stuff. 2019-05-31 21:54:22 +01:00
Jeff Young edc8438ef0 Start the process of removing the legacy draw panel. 2019-05-31 21:54:21 +01:00
jean-pierre charras 4842c73530 Fix minor compil warnings. 2019-05-31 21:38:30 +02:00
jean-pierre charras 611878351a BOM and Netlist dialogs: replace "plugin" by "generator" and/or "script".
The "plugins" in these dialogs are not plugins.
They are external scripts (or applications) run from Eeschema.
2019-05-31 11:06:23 +02:00
Jeff Young 1e9da7f57b Remove CurItem() architecture and legacy routers and drawing code. 2019-05-29 00:26:30 +01:00
Jeff Young 9d29e94cb5 Remove some more legacy code. 2019-05-29 00:26:29 +01:00
Jeff Young 0260b32125 Push resetLocalCoords down into COMMON_TOOLS.
Fixes: lp:1830693
* https://bugs.launchpad.net/kicad/+bug/1830693
2019-05-29 00:26:29 +01:00
Jeff Young a27e4246e0 Move some more menu commands to ACTIONs. 2019-05-29 00:26:29 +01:00
Jeff Young c0909611d3 Remove a bunch more legacy editing code. 2019-05-29 00:26:29 +01:00
Wayne Stambaugh 133ff9b552 Eeschema: fix broken symbol library links after sheet edit.
Refresh the currently edit sheet screen symbol links when the sheet file
name is changed.

https://bugs.launchpad.net/kicad/+bug/1830315

Fixes lp:1830315
2019-05-28 17:31:54 -04: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
Jon Evans 5287ab6e4f Eeschema: improve simulator behavior for two-source DC analysis
Fixes: lp:1830478
* https://bugs.launchpad.net/kicad/+bug/1830478

(cherry picked from commit 356ccd0314)
2019-05-27 18:23:56 -04:00
Jeff Young 718ad77891 Fix a bug introduced when UseGalCanvas() no longer switches.
We still need to setup the viewport the first time.
Also removes some more legacy editing code.
2019-05-27 18:47:20 +01:00
Jeff Young 9d9745b555 Remove more legacy editing code. 2019-05-27 18:47:20 +01:00
Jeff Young db90e97d0b fixup! Implement undo for Page Settings in PlEditor, Eeschema and PCBNew. 2019-05-27 14:12:20 +01:00
Jeff Young d24a2afaca Fix duplicate to work like paste to keep pins from getting duplicated.
Also fixes the post-duplicate move to start at the cursor pos.
Also fixes the fact that duplicate wasn't getting its hotkey.

Fixes: lp:1830596
* https://bugs.launchpad.net/kicad/+bug/1830596
2019-05-27 11:58:56 +01:00
Jeff Young 800cc1a11c Fix intial drag point for paste in LibEdit. 2019-05-27 11:58:56 +01:00
Jeff Young e9e28b9aac Retire legacy block architecture. 2019-05-27 11:58:56 +01:00
Jeff Young 927d2a645c Move LibEdit Save operations to ACTIONS. 2019-05-27 11:58:55 +01:00
Jeff Young 2502bce987 Move quit back to wxIDs. wxWidgets like to muck around with the location on OSX. 2019-05-27 11:58:55 +01:00
Jeff Young 6936effaa7 Implement undo for Page Settings in PlEditor, Eeschema and PCBNew.
Fixes: lp:1820059
* https://bugs.launchpad.net/kicad/+bug/1820059
2019-05-27 11:58:55 +01:00
Jeff Young bdd44ce88c Use consistent PageLayout data structure names. 2019-05-27 11:55:58 +01:00
Seth Hillbrand 0e5cc54ec9 Eagle: Fix crash when importing Eagle V6
This fixes multiple issues when importing Eagle V6 files.

Crashes occured when arcs of 0-length were found and when parts were
referenced in the schematic that were not found in the library.  This
could happen if the library and schematic were different cases.

Fixes: lp:1830564
* https://bugs.launchpad.net/kicad/+bug/1830564
2019-05-26 20:31:55 -07:00
Jon Evans d2a2dea9c4 Eeschema: fix worksheet and background color for printing
Fixes: lp:1820611
* https://bugs.launchpad.net/kicad/+bug/1820611

(cherry picked from commit 720b26d11e)
2019-05-26 14:26:26 -04:00
Jon Evans b40289c1bd Eeschema: use worksheet color when plotting
Fixes: lp:1825568
* https://bugs.launchpad.net/kicad/+bug/1825568

(cherry picked from commit e35be13b23)
2019-05-26 13:03:23 -04:00
jean-pierre charras 568d4e2b19 Avoid including id.h in a lot of files that do not use it. 2019-05-26 08:14:25 +02:00
jean-pierre charras b8e2054b23 Activate context menu in LIB_VIEW_FRAME canvas. 2019-05-25 10:13:27 +02:00
Jeff Young a3dfce5adb Implement common file menu actions and move Eeschema over. 2019-05-25 01:14:21 +01:00
Jeff Young 94c8e84d3b Make sure PCB document is opened when doing an update.
Fixes: lp:1830256
* https://bugs.launchpad.net/kicad/+bug/1830256
2019-05-24 21:23:26 +01:00
jean-pierre charras 057366e97e Viewlib frame: make toolbar menu "List Hotkeys" working 2019-05-24 21:01:49 +02:00
Jeff Young 85f984ccd9 Add point-editor activation for immediate-mode drawing. 2019-05-24 19:49:09 +01:00
Jeff Young 323bb0f8e1 Moving PageLayout editor to GAL canvas and modern toolset. 2019-05-24 19:49:09 +01:00
Michael Kavanagh 43a5bb72ca Fix swapped mirror icons in eeschema context menu
Fixes: lp:1828631
* https://bugs.launchpad.net/kicad/+bug/1828631
2019-05-24 13:12:58 -04:00
jean-pierre charras 40382f4d52 Viewlib: menubar/view menu: make grid select working
Set also a better icon for this menu item
2019-05-24 15:49:51 +02:00
jean-pierre charras 944ecc8913 Remove unused vars. 2019-05-24 15:21:40 +02:00
jean-pierre charras 4ae5a006d0 Viewlib: fix minor issues. 2019-05-24 12:54:11 +02:00
jean-pierre charras e3815381ab Viewlib: register missing EE_SELECTION_TOOL.
This tool is needed to manage the View menu.
2019-05-24 11:28:39 +02:00
Jon Evans 4c33320cbc Stop erroneously accepting bus alias labels without curly braces 2019-05-23 23:06:51 -04:00
Jon Evans 4e6c9ac7b1 Remove defunct junction code that left some isolated
Fixes: lp:1828716
* https://bugs.launchpad.net/kicad/+bug/1828716
2019-05-23 22:58:46 -04:00
Jon Evans 8c89847627 Properly handle tildes at the end of bus vector names
Fixes: lp:1825532
* https://bugs.launchpad.net/kicad/+bug/1825532
2019-05-23 22:47:01 -04:00
Jon Evans ab3ada5200 Clear moving flag for second-click-placed items
Fixes: lp:1830227
* https://bugs.launchpad.net/kicad/+bug/1830227
2019-05-23 21:51:14 -04:00
Jeff Young 924736c6f3 Make sure PCBNew is open when running F8.
Fixes: lp:1830256
* https://bugs.launchpad.net/kicad/+bug/1830256
2019-05-23 22:57:53 +01:00
Jeff Young 39bb4b639f Fix crash with opening find dialog twice.
Fixes: lp:1830224
* https://bugs.launchpad.net/kicad/+bug/1830224
2019-05-23 22:57:53 +01:00
Jeff Young ebd8c44eee Don't confuse SCH_ITEMs and LIB_ITEMs.
Fixes: lp:1829826
* https://bugs.launchpad.net/kicad/+bug/1829826
2019-05-23 22:57:53 +01:00
jean-pierre charras 872c8ca37b Remove a duplicate icon. 2019-05-23 16:21:06 +02:00
Wayne Stambaugh c52ff1ca23 Symbol Editor: fix datasheet field bug loading old symbol libraries.
This only applies to the root symbol when the datasheet field is not
empty and the datasheet for root symbol alias in the document file is
empty.  Use the root symbol datasheet field value when adding a new
symbol that meets this criteria.

The root symbol datasheet field gets copied to the root symbol alias
datasheet member variable so if the symbol is modified and saved, the
datasheet information is saved in the .dcm file.

https://bugs.launchpad.net/kicad/+bug/1830078

Fixes lp:1830078
2019-05-23 09:00:50 -04:00
Wayne Stambaugh 300f5cb082 Eeschema: fix datasheet field bug loading old symbol libraries.
This only applies to the root symbol when the datasheet field is not
empty and the datasheet for root symbol alias in the document file is
empty.  Use the root symbol datasheet field value when adding a new
symbol that meets this criteria.

https://bugs.launchpad.net/kicad/+bug/1830083

Fixes lp:1830083
2019-05-23 07:25:16 -04:00
John Beard 0617bffce0 Eeschema: build with object libraries
This is done to allow access to the eeschema library
internals for purposes of test and script access, as the
DLL library has highly restrictive -fvisibility settings
that otherwise prevent the tests being able to access 99.9%
of the eeschema library functions (only a single function
is APIEXPORT'ed, therefore that's the only test we can do).

Using object libraries is a bit of a hack, and makes for
a slower link when done for multiple targets, but with the currently
supported CMake versions, it's about as good as we can get.

A better solution in the longer term may be to break eeschema_kiface(_objects)
into many smaller libraries, each of which has a much more defined scope,
rather than one big interlinked amorphous lump. This has the advantage that
each module is testable in isolation, and we get better organisation of
inter-dependencies in the codebase.

Then, the kiface DLL will gather these sub-libs and present what
is needed on the visible DLL API. Thus, we get both a testable
suite of library functions, and a restricted kiface DLL interface.
2019-05-23 11:29:28 +01:00
John Beard e1f6230e8c Do not statically construct wxTimer
If you construct wxTimer statically, it will be constructed
before WX init, which means you might get assertions about
missing m_impl's within the timer class.

The solution is to construct the wxTimer at run time. In this
case, static within the function will be constructed only after
the function is called (and actually the scope only needed to be
this function anyway).
2019-05-23 11:28:11 +01:00
Jeff Young d3777eaddf Don't double-launch selection tool.
Fixes: lp:1829741
* https://bugs.launchpad.net/kicad/+bug/1829741
2019-05-23 01:56:06 +01:00
Jeff Young 1f2bdf895e Not all SCH_DRAW_PANELs have a selection tool.
Fixes: lp:1829981
* https://bugs.launchpad.net/kicad/+bug/1829981
2019-05-23 00:27:53 +01:00
Jeff Young 0047f88f82 Mark unfold bus menu as clean so it doesn't get generated a second time.
Fixes: lp:1829878
* https://bugs.launchpad.net/kicad/+bug/1829878
2019-05-23 00:27:53 +01:00
Jeff Young 1636405b66 Set a reference point for all selection sizes.
Fixes: lp:1829833
* https://bugs.launchpad.net/kicad/+bug/1829833
2019-05-23 00:27:53 +01:00
Tomasz Włostowski ecb81426a4 eemodern: fixed use-after-free in SCH_DRAWING_TOOLS::DrawSheet(). 2019-05-23 00:28:58 +02:00
Jeff Young 323ecada8d Generate refresh preview events when objects are moving.
Fixes: lp:1829683
* https://bugs.launchpad.net/kicad/+bug/1829683
2019-05-22 21:48:04 +01:00
Jeff Young fbffb9ae1e Don't put KICAD_T arrays on stack and expect them to be there when you need them.
Fixes: lp:1829748
* https://bugs.launchpad.net/kicad/+bug/1829748
2019-05-22 21:48:04 +01:00
Jeff Young 67f7571f04 Don't call VIEW::Redraw() from within the tool.
Fixes: lp:1828824
* https://bugs.launchpad.net/kicad/+bug/1828824
2019-05-22 21:48:04 +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
Tomasz Włostowski 2b38b23a5e eemodern: fixed use-after-free crash in LIB_EDIT_TOOL::DoDelete() 2019-05-22 21:35:03 +02:00
jean-pierre charras f18807ea0f Eeschema: Ensure axis are always drawn in libedit and viewlib
Fixes: lp:1822408
https://bugs.launchpad.net/kicad/+bug/1822408
2019-05-22 10:04:34 +02:00
jean-pierre charras 459a972116 Remove unused vars. 2019-05-22 08:27:48 +02:00
Seth Hillbrand e1373d70ae libedit: Ensure proper dereference in shared tools
Fixes: lp:1829826
* https://bugs.launchpad.net/kicad/+bug/1829826
2019-05-21 19:43:15 -07:00
Seth Hillbrand b53b29399d eeschema: Ensure conn is updated after import
After importing Eagle files, we need to make sure that the connectivity
network is updated before the system requests a new netlist.  Otherwise,
we end up with different results from the first to second updates.
2019-05-21 19:31:59 -07:00
Seth Hillbrand 68451a2a9c eeschema: Don't free pointers held by undo stack 2019-05-21 16:19:48 -07:00
Seth Hillbrand a62a89eac3 EAGLE: Prevent numeric-only component references
KiCad does not allow references to be numeric only.  This prefixes such
references with "UNK" to note that the reference designator type is
unknown.
2019-05-21 13:49:18 -07:00
Wayne Stambaugh 691f05273e Eeschema: replace invalid characters when converting from text to label.
Fixes lp:1829664

https://bugs.launchpad.net/kicad/+bug/1829664
(cherry picked from commit 0403437ad0)
2019-05-21 07:36:21 -04:00
jean-pierre charras 62a5302bc4 Fix issues created by commit cbb0d74bd5.
This commit redirected too many menuitem IDs to the tool manager.
Only some context menu items have to be redirected, not all inside ACTION_EVENT events.

This hack is not perfect. It needs a better handling of ACTION_EVENT handling.
2019-05-21 12:48:37 +02:00
Jon Evans c5f8a6b26e Add a nicer bus / net name validator 2019-05-20 22:52:39 -04:00
Jon Evans 1401d8a8ea Revert "Allow commas in group bus signal lists"
This reverts commit cc290715a2.

(pushed accidentally; then decided behavior should be different)
2019-05-20 19:28:32 -04:00
Tomasz Włostowski bc52f0a03b eemodern: clean printf debug gibberish, implement inline drag, move & cursor warp/reference point options 2019-05-20 21:04:46 +02:00
Tomasz Włostowski af30eca3cb eemodern: hover selection should autoclear after invoking properties dialog 2019-05-20 21:04:46 +02:00
Tomasz Włostowski aff3243f3b eeschema: fix use-after-free crash in GetScreen()/GetCurrentSheet() 2019-05-20 21:04:46 +02:00
Tomasz Włostowski 034669bf30 eemodern: implement drag-related settings in the Preferences window 2019-05-20 21:04:46 +02:00
Tomasz Włostowski 5ea46e8b78 eemodern: initial attempt at inline drag/move actions 2019-05-20 21:04:46 +02:00
Jon Evans 9d56102210 Prevent unannotated components from driving connectivity
Fixes: lp:1829301
* https://bugs.launchpad.net/kicad/+bug/1829301
2019-05-19 11:40:24 -04:00
Jon Evans cc290715a2 Allow commas in group bus signal lists 2019-05-19 11:09:25 -04:00
Jeff Young 813de6a1f3 Implement brightening for Eeschema Find/Replace. 2019-05-18 14:28:22 +01:00
Jeff Young 21a7621ddb Fix issues with multiple M or G commands in a row. 2019-05-18 14:11:19 +01:00
Jeff Young 7d9a0b06e0 Push help menu down into EDA_BASE_FRAME. 2019-05-18 13:14:08 +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
Jeff Young 5f851a4bad Add AutoplaceFields to symbol tool context menu. 2019-05-18 00:21:49 +01:00
Jeff Young 7c25001622 Implement immediate actions for adding and importing sheet pins.
Fixes: lp:1829314
* https://bugs.launchpad.net/kicad/+bug/1829314
2019-05-18 00:21:49 +01:00
Jeff Young 38cdafd407 Remove vestiges of legacy BLOCK architecture from eeschema. 2019-05-18 00:21:49 +01:00
Jeff Young e33871fbf0 Make code easier to read/understand. 2019-05-18 00:21:49 +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 69339f341b Don't double-collect refs, values, etc. They were already collected in the fields case.
Fixes: lp:1828701
* https://bugs.launchpad.net/kicad/+bug/1828701
2019-05-17 01:42:24 +01:00
Jeff Young 6b3fe33d6f Improve selection logic for sloppy selections. 2019-05-17 00:48:39 +01:00
Jeff Young 5dd71b5563 Disable pin table and part properties when there's no part.
Fixes: lp:1828962
* https://bugs.launchpad.net/kicad/+bug/1828962
2019-05-16 23:53:33 +01:00
Jeff Young 68224e0fcd Don't double-add pins to parent part when pasting.
Also adds undo to paste operations in LibEdit.

Fixes: lp:1829355
* https://bugs.launchpad.net/kicad/+bug/1829355
2019-05-16 23:53:11 +01:00
Jeff Young 0dd1584394 Add import-sheet-pin error message and move messages to status popups.
Fixes: lp:1829314
* https://bugs.launchpad.net/kicad/+bug/1829314
2019-05-16 23:11:22 +01:00
Jeff Young 6630a7227d Constrain SHEET_PIN movement, and keep them attached when resizing SHEET.
Fixes: lp:1829314
* https://bugs.launchpad.net/kicad/+bug/1829314
2019-05-16 22:36:19 +01:00
Jeff Young fbb807f3bb Move some more menu & toolbar items to modern toolset. 2019-05-16 19:57:06 +01:00
Jeff Young eba892009d Improve hit-test logic by gradually increasing threshold.
Fixes: lp:1828222
* https://bugs.launchpad.net/kicad/+bug/1828222
2019-05-16 19:57:05 +01:00
John Beard 8378f97a78 Eeschema: enable grid change hotkey
Add the N/Shift+N hotkeys to the eeschema hotkey file.

Also adjust the COMMON_TOOLS::GridNext/Prev to work when
the screen's grid definitions do not have consecutive command
IDs (they do not in eeschema).

This is related to lp:1811018 (but doesn't constitute a fix).
* https://bugs.launchpad.net/kicad/+bug/1811018
2019-05-16 14:10:43 +01:00
Jeff Young 69afa27a5f Implement ACTION_TOOLBAR and update some of the menus to ACTION_MENU.
This gives us better separation of MVC in line with the design of
the modern toolset.  It also reduces a whole bunch of duplicated
data.
2019-05-15 17:50:52 +01:00
Jeff Young f9e4ee1fc9 CONTEXT_MENU -> ACTION_MENU. (Now used for menu-bar menus too.) 2019-05-15 17:50:52 +01:00
Jeff Young e850592587 Cleanup. 2019-05-15 17:50:52 +01:00
Jeff Young 053c26c96e Refresh shown_text cache when incrementing label name.
Fixes: lp:1828874
* https://bugs.launchpad.net/kicad/+bug/1828874
2019-05-15 17:50:52 +01:00
Wayne Stambaugh 6f27ef7f66 Fix library table editor dialog environment variable grid column names.
Fixes lp:1825977

https://bugs.launchpad.net/kicad/+bug/1828459
2019-05-14 07:57:58 -04:00
Jeff Young ef5c69167a Start moving some LibEdit and SchEdit menubar menus to actions.
Also includes a bunch of bug fixes that got intermingled.

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

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

Fixes: lp:1828793
* https://bugs.launchpad.net/kicad/+bug/1828793
2019-05-13 21:44:29 +01:00
Jeff Young d290154dd3 Fix rectangle resizing in LibEdit.
Fixes: lp:1828791
* https://bugs.launchpad.net/kicad/+bug/1828791
2019-05-13 21:44:29 +01:00
Wayne Stambaugh 3c4f8c1bf7 Fix frame name capitalization in all about dialogs.
This is a stop gap fix.  It should be possible to use the wxFrame title
string for this but some of the frame windows have appropriated the title
string for configuration file naming purposes which is less than ideal.

Fixes lp:1825977

https://bugs.launchpad.net/kicad/+bug/1825977
2019-05-13 15:40:44 -04:00
Jon Evans 7a715904ad Fix copy-paste error 2019-05-12 23:24:11 -04:00
Jon Evans ee095a6711 Make sure secondary drivers are followed-up on after absorption 2019-05-12 20:23:16 -04:00
Jon Evans 019f63cd95 Don't merge subgraphs by matching sheet pin names 2019-05-12 18:41:04 -04:00
Jeff Young 924a5e68f0 Fix missing superclass call. 2019-05-12 18:20:41 +01: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 f602ccd814 Insert EE_TOOL_BASE under SchEdit and LibEdit tools, and fix errant rename scope which clobbered PCBNew's PICKER_TOOL. 2019-05-12 13:47:08 +01:00
Jeff Young 5c39521149 Move Symbol Properties and Pin Table to actions.
Fixes: lp:1804273
* https://bugs.launchpad.net/kicad/+bug/1804273
2019-05-11 15:38:49 +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 76a915d472 Fix highlighting when initiated via ctrl-click.
Fixes: lp:1796755
* https://bugs.launchpad.net/kicad/+bug/1796755
2019-05-11 15:38:49 +01:00
jean-pierre charras 0a308c4584 Fix minor compil warnings 2019-05-11 11:12:39 +02:00
jean-pierre charras 17ac5b6d13 DIALOG_EDIT_COMPONENT_IN_LIBRARY: fix a dialog resize issue (grid not resized). 2019-05-11 10:07:30 +02:00
jean-pierre charras e19141bdc8 LIB_CIRCLE: fix missing transform of m_EndPos in mirror and rotate.
Fixes: lp:1828655
https://bugs.launchpad.net/kicad/+bug/1828655
2019-05-11 08:46:27 +02:00
Jeff Young 9cc3d6764f fixup! Fix some legacy set-to-idle statements. 2019-05-10 23:25:54 +01:00
Jeff Young b83dac68d0 Fix drag-select hit-testing of LibEdit items. 2019-05-10 23:24:27 +01:00
Jeff Young 5e08be7018 Fix some legacy set-to-idle statements. 2019-05-10 23:24:02 +01:00
Jeff Young 792c4328aa Cleanup. 2019-05-10 21:40:08 +01:00
Jeff Young a9f663d5ef Soften hit-testing in SchEdit and LibEdit a bit.
Old threshold was 0; new is 5 pixels.
2019-05-10 20:46:28 +01:00
Jeff Young 0c2ba94b16 More sharing between SchEdit and LibEdit. 2019-05-10 20:22:26 +01:00
Jeff Young 86d1592777 Fix bug with re-enting selection main loop. 2019-05-10 19:56:20 +01:00
Jeff Young c1539ae014 Naming changes to reflect sharing between SchEdit and LibEdit. 2019-05-10 19:56:20 +01:00
Jeff Young f3c95ad83c Clean up the RepeatItem architecture and finish deleting the UndoItem facility. 2019-05-10 19:56:20 +01:00
Jeff Young 7da2631b27 Check item before concluding that ConvertText has run.
Otherwise we set item from nullptr back to the selection, and then
we think we're dragging again which causes all kinds of grief.

Fixes: lp:1828067
* https://bugs.launchpad.net/kicad/+bug/1828067
2019-05-10 16:11:57 +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 ea0941cab3 Implement modern tools for LibEdit. 2019-05-10 16:11:57 +01:00
Jeff Young 40f41133b3 Move Circle, Arc, Rectangle and PolyLine tools to modern toolset. 2019-05-10 16:11:57 +01:00
Wayne Stambaugh ae54f34392 Eeschema: fix corrupted schematic and symbol library files.
Prevent user from pasting text with carriage return and/or line feed
characters in field value edit control in the schematic symbol and symbol
library properties dialogs.

Make all objects derived from GRID_CELL_TEXT_BUTTON use validators
correctly.

Add validators to FIELDS_GRID_TABLE object for field values other than
the mandatory fields.

Create a validator to check that a string is a valid LIB_ID.

Fixes lp:1828214

https://bugs.launchpad.net/kicad/+bug/1828214
2019-05-10 08:21:37 -04:00
Seth Hillbrand 589a37bfe8 eeschema: Don't segfault on empty drawlist 2019-05-09 15:11:36 -07:00
Seth Hillbrand 0e5f5d37d1 eeschema: Fix sign error in comparison 2019-05-09 14:10:53 -07:00
Seth Hillbrand 2f782ac7a4 eeschema: Prevent double-commit on duplicate/copy
When activating the move from a drag extension, we need to add
additional components to the commit.  This breaks for duplicate/copy
when we have already added the correct components
2019-05-09 13:46:35 -07:00
jean-pierre charras c716d66e53 Fix typo 2019-05-08 14:28:31 +02:00
Jon Evans 3e5005698c Add a bit of margin to line selection hit testing 2019-05-07 22:51:46 -04:00
Jon Evans c02777a721 Clean up some unnecessary header dependencies 2019-05-07 22:50:10 -04:00
Jon Evans 8341e3f972 Ensure prefixes and suffixes make it on to bus members 2019-05-07 22:48:25 -04:00
Jon Evans 1de5b83d82 Promote net names to higher in hierarchy when possible 2019-05-07 21:59:36 -04:00
Jon Evans 81993eef83 Ensure bus member links get updated in hierarchical situations 2019-05-07 21:31:53 -04:00
Jon Evans 3d3c280f22 Fix hierarchical linking if parent sheet has a weak driver 2019-05-07 21:31:53 -04:00
Jeff Young a40367ce17 Add a wire between direct-connect items when only is being dragged.
Fixes: lp:1798968
* https://bugs.launchpad.net/kicad/+bug/1798968
2019-05-07 20:39:46 +01:00
Jeff Young 469231ae15 Move Pin, Symbol Text and Symbol Anchor to modern toolset. 2019-05-07 20:39:46 +01:00
Jeff Young 2e4d948535 Fix some more hotkey issues.
Also reformatted the file to make it easier to see what is there and
what is missing.  Apologies to the 100-char-width folks, but we were
just missing to many command IDs in this file.

Fixes: lp:1828006
* https://bugs.launchpad.net/kicad/+bug/1828006
2019-05-07 20:39:46 +01:00
Jeff Young cf046e0548 Anchor a selected wire at the edge of a drag which is connected to a non-drag item.
Fixes: lp:1827846
* https://bugs.launchpad.net/kicad/+bug/1827846
2019-05-07 12:04:19 +01:00
Jeff Young f40408187e A couple of temp hacks for LibEdit <esc> processing while in transition.
Fixes: lp:1828004
* https://bugs.launchpad.net/kicad/+bug/1828004
2019-05-07 12:04:19 +01:00
Jeff Young 11ec7d4651 Invert the Y axis of SCH_PIN coords when hit-testing.
Fixes: lp:1827849
* https://bugs.launchpad.net/kicad/+bug/1827849
2019-05-07 12:04:19 +01:00
Jeff Young 2097411550 Refresh RequestSelection selection if all items were filtered out.
If you have, for instance a pin selected and do a cmd-E we'll filter
out the pin and then do nothing.  We should instead treat it as a
hover selection if everything got filtered.
2019-05-07 12:04:19 +01:00
jean-pierre charras 2c43d4d6bf Eeschema: fix incorrect display of the page number in a complex hierarchy.
When, inside a complex hierarchy, one switch from an instance of a sheet to an other instance of this sheet,
the page number shown in the worksheet was not updated on screen, and the initial number was displayed.

Fixes: lp:1827981
https://bugs.launchpad.net/kicad/+bug/1827981
2019-05-07 10:55:26 +02:00
Jon Evans 316be464ab Handle higher-priority connection drivers located in subsheets
Fixes: lp:1827850
* https://bugs.launchpad.net/kicad/+bug/1827850
2019-05-06 22:09:05 -04:00
Jeff Young f1a38a6d41 Respond to <esc> from selection tool.
Fixes: lp:1827917
* https://bugs.launchpad.net/kicad/+bug/1827917
2019-05-06 21:56:19 +01:00
Jeff Young cd2bd23c37 Fix a bunch of issues with hotkeys, IDs and event processing.
Fixes: lp:1827894
* https://bugs.launchpad.net/kicad/+bug/1827894
2019-05-06 21:42:00 +01:00
Jeff Young e5151ed639 Use parent's transform when moving SCH_FIELDs.
Fixes: lp:1827873
* https://bugs.launchpad.net/kicad/+bug/1827873
2019-05-06 21:41:44 +01:00
Jeff Young a76bcc204f Use parent's transform when moving SCH_FIELDs.
Fixes: lp:1827873
* https://bugs.launchpad.net/kicad/+bug/1827873
2019-05-06 16:59:23 +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 13beb344ca Fix LIB_FIELD selection bug. (It wasn't checking for convert == 0.) 2019-05-06 16:01:39 +01:00
Jeff Young d12eee9c98 Process new sheets after drawing. 2019-05-06 15:31:23 +01:00
Jeff Young 207900e4f9 Move libedit message panel updating to the Inspection Tool. 2019-05-06 15:31:23 +01:00
Jeff Young a12d769074 Code clarification and commenting.
Also renames toolbar files to reduce confusion with the modern toolset
tool files.
2019-05-06 15:31:23 +01:00
Jeff Young 8e75824d29 Use selection tool for locateItem. 2019-05-06 15:31:23 +01:00
Jeff Young f87d371b8b Move to shared COLLECTORS for sch and lib. 2019-05-06 15:31:23 +01:00
Jeff Young cc439f9ab0 Replace accidentally deleted mouse processing for LibEdit. 2019-05-06 03:30:51 +01:00
Jeff Young 49231ac08f Fix missing event processing for Leave Sheet button in toolbar. 2019-05-06 03:30:51 +01:00
Jon Evans 09c9db472e Properly handle buses that have been linked by net wires only
Fixes: lp:1825532
* https://bugs.launchpad.net/kicad/+bug/1825532
2019-05-05 19:48:55 -04:00
Jon Evans e9eacbc91c Ensure subgraphs with multiple labels get sorted 2019-05-05 19:09:05 -04:00
Jon Evans 019a731e03 Back-propagate from child sheets when two parents point to one child 2019-05-05 16:05:36 -04:00
Jeff Young b7e67073ef Fix bugs in bus unfold logic.
The worst of which left you in the bus unfold popup menu event loop
if you cancelled the menu by clicking outside it.
2019-05-05 19:48:11 +01:00
Jeff Young 0b2e1d00ea Don't allow motion between two clicks of a dblclick to spoil forceHV. 2019-05-05 18:38:49 +01:00
Jeff Young d881f4b21f When unfolding a bus from the selection tool, stay in that tool. 2019-05-05 18:36:18 +01:00
Jeff Young c4fac81dbb Transition from bus to wire tool when unfolding bus. 2019-05-05 17:14:30 +01:00
Jeff Young a42a4b0b52 Implement immediate bus unfold and add bus unfold to selection context menu. 2019-05-05 17:14:30 +01:00
Jeff Young fd546da640 Homogenize hit testing and selection return types.
Prep work for sharing SCH_SELECTION_TOOL with LibEdit.
2019-05-05 17:14:30 +01:00
Jeff Young 2d28ab7dd2 More cleanup. 2019-05-05 17:14:30 +01:00
Jeff Young 32765ebffd Do some refactoring in prep for sharing some sch tools with libedit. 2019-05-05 17:14:30 +01:00
Jeff Young ed0e6af66d Move to direct tool registration.
It was confusing that the primary frames registered their tools
differently than the other frames.  In addition, since the other
frames also added their own tools, foo_actions::RegisterAllTools()
didn't really register all tool but rather those used by the
principal frame (PCB_EDIT_FRAME, SCH_EDIT_FRAME, etc.)
2019-05-05 17:14:30 +01:00
Jeff Young dd9c426922 Cleanup a TODO. 2019-05-05 17:14:30 +01:00
Jeff Young b5fd7b9842 Move Leave Sheet to the top of the context menu. 2019-05-05 17:14:30 +01:00
Jeff Young 7e3ad4585a Fix issues with dragging, moving and rotating wires. 2019-05-05 17:14:30 +01:00
Jeff Young 2edb09e583 Double click action should enter sheet. 2019-05-05 17:14:30 +01:00
Jeff Young 4ccfa17ff9 Fix bugs in sheet duplicate & copy/paste.
Don't edit sheet during AddToScreenAndUndoList() call.  If it's
cancelled and we delete the item, callers will still own pointers
to the freed memory.  Do it in New and Paste instead.
2019-05-05 17:14:30 +01:00
Jeff Young 554094ada6 Fix de-reference of freed memory issue. 2019-05-05 17:14:30 +01:00
Jeff Young a825cdfa5a Fix new image drawing issue. 2019-05-05 17:14:30 +01:00
Jeff Young bcdc3ad90a Set IS_NEW flag on new images. And a bunch of cleanup of dead code. 2019-05-05 17:14:30 +01:00
Jeff Young 21b315f2af Finish removing GetCurItem() from eeschema. 2019-05-05 17:14:30 +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 2774af928a Remove extra Show Datasheet menu item. 2019-05-05 17:14:30 +01:00
Jeff Young 20b63174dc Support wire & bus drawing from selection tool. 2019-05-05 17:14:30 +01:00
Jeff Young f95f202f81 Restore Jon's change which I accidentally nuked. 2019-05-05 17:14:30 +01:00
Jeff Young f187f91f57 Seth's fixes to regex processing. 2019-05-05 17:14:30 +01:00
Jeff Young 1cc3055481 Allow rotation/mirroring of wires. 2019-05-05 17:14:30 +01:00
Jeff Young 4ca0f4da10 Fixes to the context menu logic around wire/bus drawing. 2019-05-05 17:14:30 +01:00
Jeff Young 7273748c57 Context menu cleanup for eeschema modern toolset. 2019-05-05 17:14:30 +01:00
Jeff Young 90a663facd Implement sheet cleanup in modern toolset. 2019-05-05 17:14:30 +01:00
Jeff Young 1e5334f5d4 Implement DeMorgan conversions in modern toolset. 2019-05-05 17:14:30 +01:00
Jeff Young 7c54fc9c46 Cleanup. 2019-05-05 17:14:30 +01:00
Jeff Young 29f1787af2 Logic improvements and fixes for wire segment selection states. 2019-05-05 17:14:30 +01:00
Jeff Young c09817e08c Context menus for labels. 2019-05-05 17:14:30 +01:00
Jeff Young 0ea156042b Fix over-zealous wire-grabbing for drag. 2019-05-05 17:14:30 +01:00
Jeff Young a61bbea4bd Fix issue with selection being inadvertantly cleared via ClearFlags().
Also fixes an undo bug when pick-component-rotate-place-undo.
2019-05-05 17:14:30 +01:00
Jeff Young 59af079cbd Fix some hotkey collisions. 2019-05-05 17:14:30 +01:00
Jeff Young 58ba573038 Handle cascading selections in placement.
See https://forum.kicad.info/t/call-for-testers-eemodern/16663/32
2019-05-05 17:14:29 +01:00
Jeff Young e9dd8542d1 Allow user to change from move to drag and vice versa.
Also fixes bugs when doing a duplicate in the middle of a move.
2019-05-05 17:14:29 +01:00
Jeff Young 0af7c87277 Add resize sheet to context menus. Fix bugs in it.
Also assign a bunch of icons that were missing.
2019-05-05 17:14:29 +01:00
Jeff Young bbd8659f69 Implement explicit cross-probing (mainly for sheets which are too slow to do automatically).
Also moves the message panel updaters to SCH_INSPECTION_TOOL.
2019-05-05 17:14:29 +01:00
Jeff Young 588d13a912 Fix gcc issue with temp variable and move some collection specs.
Having the collection specs localized with their code improves
encapsulation.

(Thanks to crasic for the original patch.)
2019-05-05 17:14:29 +01:00
Jeff Young 35e8a340ca Add enter/leave sheet to modern toolset. 2019-05-05 17:14:29 +01:00
Jeff Young 423d430b58 Replace deleteNode and deleteConnection with selectNode and selectConnection. 2019-05-05 17:14:29 +01:00
Jeff Young 1ff7869ec3 Move Edit with Symbol Editor to modern toolset context menu. 2019-05-05 17:12:59 +01:00
Jeff Young f81007f74b Some clean-up and moving message panel update to selection event. 2019-05-05 17:12:59 +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 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 ddbd92c274 Add some more context menu stuff to eeschema modern toolset. 2019-05-05 17:12:59 +01:00
Jeff Young b526461a8e Fix colliding hotkeys issue.
All grid commands need to be shared now as they're implemented
by a common tool.
2019-05-05 17:12:59 +01:00
Jeff Young f2474d074b Clean out stuff that's already been moved. 2019-05-05 17:12:59 +01:00
Jeff Young 42383ae871 Build out some of the modern toolkit context menus. 2019-05-05 17:12:59 +01:00
Jeff Young da988428cf Add modern toolset cut/copy/paste. They now use the system clipboard. 2019-05-05 17:12:59 +01:00
Jeff Young 2bd4a1b58c Implement properties dialogs in modern toolset. 2019-05-05 17:12:59 +01:00
Jeff Young 9e2bbcb8b6 Clean up delete and fix bug with juctions getting double-deleted. 2019-05-05 17:12:59 +01:00
Jeff Young de347998d1 Implement drag in modern toolset. 2019-05-05 17:12:59 +01:00
Jeff Young 57a491357f Improve encapsulation. SCH_LINE has no business knowing about drags. 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 4e0208dfba Move duplicate item and block to modern toolset. 2019-05-05 17:12:59 +01:00
Jeff Young a80f7432b7 Update dangling ends when dragging block. 2019-05-05 17:12:59 +01:00
Jeff Young 1c8461bec7 Transition mirroring to modern toolset. 2019-05-05 17:12:59 +01:00
Jeff Young 8c00dac3c7 Add modern toolset notification to eeschema undo/redo. 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 6d918ea1f1 A few fixes and refactors to connectivity propagation 2019-05-05 00:03:58 -04:00
Jon Evans 2f2d48938e Ensure connection sheet is properly reset at reinit time 2019-05-04 22:23:35 -04:00
Jon Evans e0ada1379f Allow clearing PcbNew highlight through cross-probing
Fixes: lp:1821486
* https://bugs.launchpad.net/kicad/+bug/1821486
2019-05-04 16:18:51 -04:00
Michael Kavanagh 2a09664ebc Clean up import and export menus
Fixes: lp:1822907
* https://bugs.launchpad.net/kicad/+bug/1822907
2019-05-02 12:25:59 -04:00
Jon Evans 839f0fbfcf Refactor and fix a few issues with bus unfolding 2019-05-01 22:29:02 -04:00
Jon Evans cbc8faf49b Restore start segment behavior to unfold bus action
This must have gotten lost in the move

Fixes: lp:1826682
* https://bugs.launchpad.net/kicad/+bug/1826682
2019-05-01 21:03:30 -04:00
Jon Evans efa0c97da9 Make sure net name prefixes carry through to netlist 2019-05-01 20:48:27 -04:00
Jon Evans 4efed8a4dd Ensure global labels get flagged as lonely in all circumstances
Fixes: lp:1827214
* https://bugs.launchpad.net/kicad/+bug/1827214
2019-05-01 20:15:21 -04:00
Wayne Stambaugh 7d803437e2 Eeschema: fix broken symbol library links.
Force the symbol library links whenever the symbol library table has been
modified.  This will use the cache as a fallback when a library has been
removed that contains links in the schematic rather than display.

Fix the SCH_COMPONENT symbol resolver when falling back to the cache.  The
resolver was using the LIB_ID ':' notation which was failing.  Replacing
':' with '_' fixed this issue.  This was also an issue when generating the
symbol message panel information.

Convert wxLogDebug to wxLogTrace in symbol resolver code path.  Add new
trace type KICAD_SYM_RESOLVE.

Fixes lp:1821606

https://bugs.launchpad.net/kicad/+bug/1821606
2019-04-30 13:05:27 -04:00
Jon Evans 9741b43dae Make lines and bus entries less frustrating to select 2019-04-29 21:28:53 -04:00
Jon Evans a5a2152ff4 Cache subgraphs by sheet path 2019-04-29 19:58:02 -04:00
Jon Evans c054944d67 Set real-time connectivity to on by default with a safety valve 2019-04-29 18:59:32 -04:00
John Beard 42d20cbd96 Pcbnew: use same null check as eeschema for recently used
When Pcbnew's add footprint browser is run up, it constructs
the recently used list without checking for nulls.

Although the DoAddLibrary call does internally check for
null, it's easier to filter these out before placing into
the vector in the first place.

The same logic in the symbol tree is already handled in the
same way.
2019-04-29 16:52:39 +01:00
Jon Evans 96d2fc840b A tiny optimization for SCH_CONNECTION 2019-04-28 23:36:41 -05:00
Jeff Young 3aaba79b87 Fix crash when unfolding bus.
Thanks to Julien Faucher for the investigation into the problem.
2019-04-28 18:41:17 +01:00
John Beard fcc4a84e0e GAL: add some trace to GAL display options config
This can be helpful when tracing where certain configurations
come from (some apps load from other apps' config basenames).
2019-04-27 14:57:14 +01:00
John Beard 33fe9a2761 Eeschema: Symbol preview widget needs common config for Hi-DPI
Currently, this widget doesn't read the common library settings.
This means it doesn't use the configured DPI scaling or anti-aliasing
settings.

Use the ReadConfig method on the GAL options to fix (rather than
only ReadAppConfig).

Fixes: lp:1825913
* https://bugs.launchpad.net/kicad/+bug/1825913
2019-04-27 14:57:09 +01:00
John Beard eccadd92fb Eeschema: fix resizing of pin table and edit symbol dialog
These dialogs had logic to avoid a table re-adjustment unless
the width changed. This was done to avoid spurious resizing
calls under GTK+3. This was commit
13249b723b, fixing bug lp:1817810.

However, by only calling event.Skip() when the width changed,
redraws were inhibited when only the height changed.

Placing the Skip() outside the width-change check fixes this,
and does not re-introduce the lp:1817810 bug (it is the column
adjust call that causes that).

Fixes: lp:1826615
* https://bugs.launchpad.net/kicad/+bug/1826615
2019-04-27 14:01:05 +01:00
Jeff Young 6536b4766c Move DeactivateTool until after the block items list has been updated.
Fixes: lp:1825855
* https://bugs.launchpad.net/kicad/+bug/1825855
2019-04-26 14:49:43 +01:00
Jeff Young 50a9a6e1f7 Fix bug with swapping pin data for undo. 2019-04-26 12:44:35 +01:00
Jeff Young 0844a5c478 Implement more robust pinMap.
In particular, one that doesn't suffer from pointers going stale
when the m_pins vector is re-sized.
2019-04-25 23:10:45 +01:00
Jeff Young f9dd1324da Cleanup problems with fighting event loops. 2019-04-25 22:58:58 +01:00
Jeff Young 8049c07a34 Add filtering to RequestSelection(). 2019-04-25 22:58:58 +01:00
Jeff Young e476cfcec5 Move SPICE tools to modern framework. 2019-04-25 22:58:58 +01:00
Jon Evans 3233bedc7a Ensure pin map pointers are valid after pin vector is filled 2019-04-25 16:04:01 -04:00
Jon Evans 0ce32f7be1 Remove UpdatePins call from connectivity calculation 2019-04-25 15:32:51 -04:00
Jon Evans 098102220e Fix detection of lonely local labels 2019-04-25 15:31:44 -04:00
Jon Evans f0376f1379 Improve ERC checking of labels
Fixes: lp:1824629
* https://bugs.launchpad.net/kicad/+bug/1824629
2019-04-25 15:10:39 -04:00
Jon Evans e06d37090a A few connectivity performance tweaks 2019-04-25 00:37:10 -04:00
Jon Evans ed27c50692 Improve handling of non-unique connections 2019-04-24 23:47:57 -04:00
John Beard 15bba27406 BITMAP_BASE: Add const image data accessor
This allows a const BITMAP_BASE to expose const image
data. This is currently done with const_casts, which is
"OK", only as long as the source image is not declared
const, in which case it's undefined behaviour.

Also immediately dereference the pointer to a reference
if it's not checked to make the non-null requirements
explicit at the point of access.
2019-04-24 17:31:22 +01:00
Jeff Young 5e556f0c6a Fix segfault when finishing a wire at a connection point. 2019-04-24 14:43:10 +01:00
Jeff Young e046e8f593 Fix crash when <esc>ing from Hierarchical Sheet drawing tool. 2019-04-24 13:43:46 +01:00
Jeff Young d281f051ed Move eeschema delete tool to modern toolset. 2019-04-23 14:19:55 +01:00
Jeff Young a967adbf26 Don't toggle selection twice when trying to select.
Also fixes issues with trying to use a CONTEXT_MENU as a wxMenu.
2019-04-23 14:19:55 +01:00
Jeff Young b6674e3bcb Prevent segfault when running selection disambiguation menu. 2019-04-23 10:59:07 +01:00
Jon Evans ff6a8cd537 Revert "Remove UpdatePins call from connectivity calculation"
This reverts commit b351e70d13.

Causes crashes on entering subsheets; don't have time to debug yet
2019-04-22 23:31:11 -04:00
Jon Evans 782b8227fa Clean up connection message panel info 2019-04-22 22:58:41 -04:00
Jon Evans b351e70d13 Remove UpdatePins call from connectivity calculation 2019-04-22 22:49:24 -04:00
Jon Evans 62811d3209 Squish some warnings 2019-04-22 21:18:47 -04:00
Jeff Young c994961ebf Fix for SCH_PIN operator= from Simon Richter. 2019-04-23 00:27:59 +01:00
Jeff Young b03e9061ff Have another go at fixing 'w' command when wire tool is already active. 2019-04-23 00:11:26 +01:00
Jeff Young 0445a9913f Deactivate tool on block action.
Fixes: lp:1825855
* https://bugs.launchpad.net/kicad/+bug/1825855
2019-04-23 00:11:19 +01:00
Jeff Young f6d0166584 Don't exit wire tool at end of wire.
Fixes: lp:1825871
* https://bugs.launchpad.net/kicad/+bug/1825871
2019-04-22 22:13:47 +01:00
Jeff Young 1a007c3e4b Implement SCH_SELECTION_TOOL (but still with legacy semantics). 2019-04-22 22:08:18 +01:00
Jeff Young 8e812c012d Second activation of wire or bus tool should start drawing.
Fixes: lp:1825871
* https://bugs.launchpad.net/kicad/+bug/1825871
2019-04-22 22:08:18 +01:00
Jeff Young 17b3b8f30d Fix wandering text problem.
Setting a variable on a temp copy doesn't do much of use.

Fixes: lp:1825853
* https://bugs.launchpad.net/kicad/+bug/1825853
2019-04-22 22:08:18 +01: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