Jeff Young
3996a490a1
Re-allocating a std::vector invalidates its iterators.
...
When we add enough SHEET_PINs that the vector has to grow, it
re-allocates the vector causing our for-loop to get its knickers
tied in a knot.
Fixes: lp:1842394
* https://bugs.launchpad.net/kicad/+bug/1842394
2019-09-04 11:50:56 +01:00
Jeff Young
8bbbc66e46
Another attempt to fix the crash-on-selection bug.
...
Fixes: lp:1842394
* https://bugs.launchpad.net/kicad/+bug/1842394
2019-09-03 22:29:05 +01:00
Jeff Young
54a85cfaa2
Not everything in a VIEW_GROUP is an EDA_ITEM.
...
Fixes: lp:1842394
* https://bugs.launchpad.net/kicad/+bug/1842394
2019-09-03 17:24:50 +01:00
Seth Hillbrand
83b2332f1f
eeschema: Check for proper type before dereference
...
When bundling a selection, we need to ensure that we have correct types
before attempting to dereference.
Fixes: lp:1841919
* https://bugs.launchpad.net/kicad/+bug/1841919
2019-08-29 08:47:26 -07:00
Jeff Young
5348f88a8f
Add sheet pins to candidate list by hand (as they're not in the view).
...
Fixes: lp:1841555
* https://bugs.launchpad.net/kicad/+bug/1841555
2019-08-27 21:08:36 +01:00
Jeff Young
a5a237ac32
Improve readability of flag checking.
2019-08-27 19:23:07 +01:00
Jeff Young
8ba7d4570c
Move warp-mouse-on-move setting from Eeschema settings to common settings.
...
It's also used by the Symbol Editor, and will likely be used by
Pcbnew and friends in the future.
2019-08-15 12:53:04 +01:00
Jeff Young
b4c8657904
Fix non-visible-part or conversion items from getting selected.
...
Also renames lib_draw_item to lib_item to match the class.
Fixes: lp:1840170
* https://bugs.launchpad.net/kicad/+bug/1840170
2019-08-15 10:00:23 +01:00
Jeff Young
3cdf88f2c6
CERN copyrights for work packages.
2019-08-14 09:35:15 +01:00
Jeff Young
03a33b6b56
Selection fixes for multi-part lib items.
...
1) Don't select pins from other units/conversions
2) Don't delete pins from other units/conversions
Fixes: lp:1838511
* https://bugs.launchpad.net/kicad/+bug/1838511
2019-07-31 22:34:24 -06:00
Jeff Young
483dc24e87
Homogenize selection tools around our HIG.
...
In particular make addative and exclusive-or selections work the
same way.
Also give Highlight Net a hotkey now that it can't use ctrl-click
anymore.
2019-07-09 21:59:46 +01:00
Jeff Young
9effd24f3a
Allow move tool to run on top of other tools.
...
Fixes: lp:1784480
* https://bugs.launchpad.net/kicad/+bug/1784480
2019-07-01 22:15:25 +01:00
Jeff Young
232e21cb37
Restore selection properly after an undo.
2019-06-29 20:03:08 +01:00
Jeff Young
2ed3bf47bb
Improve hittesting for Eeschema and LibEdit delete tools.
2019-06-28 22:18:30 +01:00
Jeff Young
981072598b
Overhaul cursor code for new tool/action framework.
...
Includes the addition of an onSetCursor() handler which must be called
from both the GAL canvas AND the GAL backend (at least on OSX) to prevent
cursor flickering between (for instance) pencil and arrow.
Also includes new architecture for point editors which allows them to
coordiate cursors with the editing tools (so we can switch to an arrow
when over a point).
2019-06-27 22:37:11 +01:00
Jeff Young
2f23aa9556
Implement a more robust tool stacking architecture.
...
We were running into various corner conditions where a tool's event
loop would exit while the tool was still active, or the tool would
get popped while we were still in the event loop. (A lot of these
had to do with the POINT_EDITOR's, but not all of them.)
The new architecture:
1) tools always do a Push()/Pop()
2) everyone is responsible for their own pops; no more stack-clearing
on a cancel
3) CancelInteractive events go to all tools to facilitate (2)
2019-06-27 17:01:31 +01:00
Jeff Young
7292ce6a8b
Improve eeschema selection disambiguation logic.
2019-06-26 21:54:03 +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
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
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
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
Jeff Young
c7bfa9857e
Use more reflective naming of what the tool does.
2019-06-16 19:52:07 +01: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
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
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
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
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
7726b039b2
Re-jigger standard submenus so they both link AND work.
2019-06-11 18:03:16 +01:00
Jeff Young
5e49517781
Move hotkeys to ACTION architecture.
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
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
9f1e2e34b7
Move some dupicated tools to common tools.
2019-06-03 21:08:30 +01:00
Jeff Young
d7774b94fc
Fix regression with switching between drag and move operation.
2019-05-31 21:56:35 +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
jean-pierre charras
b8e2054b23
Activate context menu in LIB_VIEW_FRAME canvas.
2019-05-25 10:13:27 +02: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
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
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
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
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
Jeff Young
813de6a1f3
Implement brightening for Eeschema Find/Replace.
2019-05-18 14:28:22 +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
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
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
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