Jeff Young
0eed5175cc
Fix crash in Pcbnew drawing tools.
...
Couple of typos: return !cancelled instead of cancel, and some breaks
on the wrong side of the braces.
Fixes: lp:1835172
* https://bugs.launchpad.net/kicad/+bug/1835172
2019-07-03 11:44:30 +01:00
Jeff Young
d03041b565
Cleanup.
2019-07-02 21:36:42 +01:00
Seth Hillbrand
9460f207f5
Fix misc build warnings
...
This removes unused static function in page layout editor, unused
variable in pcb_painter and restors the gcc unitialized fix for
pcbnew's drawing_tool.
2019-07-02 10:32:49 -07:00
Jeff Young
da71a51029
Cleanup.
2019-07-02 00:48:05 +01:00
Jeff Young
faa730dfb1
Fix highlight bug.
...
Fixes: lp:1834960
* https://bugs.launchpad.net/kicad/+bug/1834960
2019-07-01 22:15:25 +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
ad26ece8d4
Add Global Edit Text and Graphics Properties to Eeschema.
...
Fixes: lp:1801150
* https://bugs.launchpad.net/kicad/+bug/1801150
2019-07-01 22:15:25 +01:00
Seth Hillbrand
743c650129
Move zone refill to action
...
This unifies the zone refill across architecture into the tool-based
architecture. Also provides ZONE_FILLER-based progress managment for
tools.
(cherry picked from commit be9cd98cb1
)
2019-07-01 09:27:04 -07:00
Jeff Young
a498d7e9c5
Try out a new arc-editing paradigm for LibEdit.
...
This is based on the notion that in Kicad the start and end-points
are far more important (as they usually connect to other segments)
than the center is.
2019-06-29 16:10:58 +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
e175eb25b8
Fix bug with accidental modification of legacy hotkey name.
2019-06-27 11:29:05 +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
e785c140b9
Eradicate globals for PCB_GENERAL_SETTINGS.
...
Fixes: lp:1832896
* https://bugs.launchpad.net/kicad/+bug/1832896
2019-06-26 21:54:03 +01:00
Jeff Young
4eaba20cd3
Real-time highlighting for Pcbnew and ModEdit delete tools.
2019-06-25 21:10:21 +01:00
Jeff Young
7ce38ee6f8
Performance enhancements to zone filling & track DRC.
...
Significant improvement in fetch time for item clearances. On large
boards with lots of nets, maybe 10% faster zone fills and about
2x speedup on track-to-track DRC.
2019-06-25 11:34:28 +01:00
Jeff Young
f9702aab87
Immediate actions for PlEditor, PcbNew, etc.
2019-06-25 11:34:28 +01:00
Jeff Young
a19c668891
Add tooltip for local ratsnest tool.
2019-06-25 11:34:27 +01:00
Jeff Young
f70ab6203b
Make all inner layers available for hotkey assignments.
...
Fixes: lp:1787073
* https://bugs.launchpad.net/kicad/+bug/1787073
2019-06-25 11:34:27 +01:00
Jeff Young
ba7cf09ad5
Add zone display mode toggle action.
...
Fixes: lp:1759574
* https://bugs.launchpad.net/kicad/+bug/1759574
2019-06-25 11:34:27 +01:00
Seth Hillbrand
4a18f9db3a
pcbnew: Enforce maximum movement in Move Exact
...
This checks the movement against a maximum value that would place the
selection outside of the valid area for the footprint or board.
Fixes: lp:1833478
* https://bugs.launchpad.net/kicad/+bug/1833478
(cherry picked from commit 845833e8fd
)
2019-06-20 06:40:33 -07:00
Jeff Young
c8f254ff92
Don't deselect on activate event; only cancel events.
...
Fixes: lp:1833268
* https://bugs.launchpad.net/kicad/+bug/1833268
2019-06-19 00:19:45 +01:00
Jeff Young
aaa7661b94
Check that there's something selected in the tree before exporting.
...
Fixes: lp:1833295
* https://bugs.launchpad.net/kicad/+bug/1833295
2019-06-18 21:50:53 +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
Jeff Young
7cfe19d9fd
Cleanup.
2019-06-17 22:15:20 +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
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
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
6d335f2a82
While Seth fixed the main issue, repeated Activate() calls probably still aren't a good idea.
...
(The main issue was addressed here: 552815d48617c08a6ec29f22c7ecdf1906988e11.)
2019-06-16 11:03:56 +01:00
Jeff Young
0f4bdbd184
Tighten down the POINT_EDITORs a bit more.
2019-06-16 01:33:39 +01:00
Jeff Young
945eaceb91
Try and keep POINT_EDITOR and SELECTION_TOOL from fighting with drawing tool.
...
Set the IS_NEW flags so the POINT_EDITOR doesn't try an poke its head
in, and apply the EE_SELECTION_TOOL hack for mouse clicks leaking
through to the underlying tools.
Fixes: lp:1832911
* https://bugs.launchpad.net/kicad/+bug/1832911
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
Seth Hillbrand
77643fe9b6
pcbnew: Restore select items filter
...
This restores the distinction between selecting tracks and selecting
items in the expand call. It does not yet fully address lp:1832902
2019-06-15 10:08:36 -07:00
Seth Hillbrand
2dd82cbca7
Revert the ClearIfOutside logic.
...
This workflow needs better indicators before it will be anything but
confusing.
Fixes: lp:1832714
* https://bugs.launchpad.net/kicad/+bug/1832714
2019-06-14 20:10:04 -07: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
f0cd7a5fd9
Clean up duplicted Find action processing.
2019-06-13 15:51:32 +01:00
Jeff Young
ce1f35a1be
Cleanup some left-over vestiages of the legacy canvas architecture.
2019-06-13 15:51:32 +01:00
Jeff Young
df08f9921f
Make place drill origin and place grid origin one-shot commands.
...
Fixes: lp:1751747
* https://bugs.launchpad.net/kicad/+bug/1751747
2019-06-13 15:51:32 +01:00
Jeff Young
ae8daee83c
Don't let point editor interrupt other operations.
...
Fixes: lp:1832416
* https://bugs.launchpad.net/kicad/+bug/1832416
2019-06-13 15:51:32 +01:00
Seth Hillbrand
daad58e511
pcbnew: Add option to show ratsnest while moving
...
Re-works ratsnest display options in the configuration parameters rather
than the board file. Moves ratsnest options to central preferences
location.
Fixes: lp:1826440
* https://bugs.launchpad.net/kicad/+bug/1826440
Fixes: lp:1821183
* https://bugs.launchpad.net/kicad/+bug/1821183
2019-06-12 17:36:02 -07:00
Seth Hillbrand
0571ff6ce2
pcbnew: Centralize selection clearing
...
Also adds check for items before getting BBox.
Fixes: lp:1832601
* https://bugs.launchpad.net/kicad/+bug/1832601
2019-06-12 09:06:23 -07:00
Seth Hillbrand
e691704a82
pcbnew: Edit when cursor in in selection
...
Prevents certain edit tools from handling the action unless the cursor
remains inside the selection bounding box.
For now this is a UX test but the behavior may be expanded into Eeschema
as well.
Fixes: lp:1827242
* https://bugs.launchpad.net/kicad/+bug/1827242
2019-06-12 05:28:48 -07:00
Jeff Young
2348537769
Add a command to toggle between last two highlighted nets.
2019-06-12 12:43:12 +01:00
Seth Hillbrand
60b98a8b4f
Suppress non-Mac warning
...
The return variable is unused, so passing the pointer to a null lambda
drops the warning without incurring compile penalty.
2019-06-11 10:12:00 -07:00
Seth Hillbrand
32052d953f
pcbnew: Fix STL blunder when deleting
...
Deleting objects from a container will invalidate the iterator that
contains the object. Correct deleting requires capturing the iterator
returned by the erase function.
Fixes: lp:1832331
* https://bugs.launchpad.net/kicad/+bug/1832331
2019-06-11 10:12:00 -07:00
Jeff Young
7726b039b2
Re-jigger standard submenus so they both link AND work.
2019-06-11 18:03:16 +01:00
John Beard
9625cea57f
Fix hotkey debug spew
...
Two issues:
* Unassigned hotkeys were being passed to WX in the menu strings as
"<unassigned>". WX doesn't recognise this, and prints debug each time.
Unassigned hotkeys are no longer rare or naughty, so we shouldn't provoke
debug spew. Suppress by not appending hotkey strings for actions with 0
(i.e. unassigned) hotkey IDs.
* The zone cutout tool uses GR_KB_SHIFT, not MD_SHIFT. This causes
"unknown hotkey" spew from WX.
2019-06-11 14:40:57 +01:00
Jeff Young
b36f982272
Fix typo introduced in DLIST erradication.
...
Fixes: lp:1832030
* https://bugs.launchpad.net/kicad/+bug/1832030
2019-06-11 01:00:43 +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
31ee95c683
Reconcile tool and menu for Enumerate Pads.
...
Fixes: lp:1831950
* https://bugs.launchpad.net/kicad/+bug/1831950
2019-06-10 23:46:01 +01:00
Jeff Young
bb96255a03
Fix dangerous static_cast-ing to wrong type.
2019-06-10 23:46:01 +01:00
Jeff Young
1f6a5c92d7
Make sure placement menu has a pointer back to its tool.
...
Fixes: lp:1831730
* https://bugs.launchpad.net/kicad/+bug/1831730
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
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
Seth Hillbrand
81c5ba257b
pcbnew: Ensure cursor remains set during tool activity
...
Mouse capture end is called by some actions such as save board. This
resets the cursor image but doesn't change the current tool. Resetting
the cursor image during action prevents this.
(cherry picked from commit 35e87128f5
)
Fixes: lp:1831888
* https://bugs.launchpad.net/kicad/+bug/1831888
2019-06-08 10:25:24 -07:00
jean-pierre charras
f1f26a9197
drc_clearance_test_functions.cpp: remove a stupid "optimization code" that creates broken tests (sorry to be rude)
...
Fixes: lp:1831776
https://bugs.launchpad.net/kicad/+bug/1831776
2019-06-06 13:13:37 +02: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
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
15241b7fcf
ACTION-ize toolbar/palette control.
2019-06-04 22:31:42 +01:00
Jeff Young
1222f3cc72
ACTION-ize fab outputs.
2019-06-04 22:31:42 +01:00
Jeff Young
1ea5b04e22
More ACTIONS work. Nearly done now.
2019-06-04 22:31:42 +01:00
Jeff Young
4e11dcfa31
Better error reporting for board edge collisions.
2019-06-04 13:56:54 +01:00
Jeff Young
fbfbb64387
A bit of cleanup of stale DRC code.
2019-06-04 13:56:54 +01:00
Jeff Young
1bf04d1722
More ACTIONs work.
2019-06-04 00:51:16 +01:00
Jeff Young
584ed9e204
Add files accidentally left out of last commit.
2019-06-04 00:51:16 +01:00
Jeff Young
59a01789ff
Show board info in status bar when seleciton isn't a single object.
...
Fixes: lp:1831402
* https://bugs.launchpad.net/kicad/+bug/1831402
2019-06-03 21:52:59 +01:00
Jeff Young
3912c7407f
Move global commands to ACTIONs.
...
Also fixes a crash bug opening Edit Tracks and Vias dialog.
2019-06-03 21:08:30 +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
jean-pierre charras
be54f357eb
Better tooltip, more easy to translate
2019-06-03 18:27:17 +02:00
Seth Hillbrand
95ab0b1813
pcbnew: Hide dynamic ratsnest after canceling edit
...
The dynamic ratsnest is shown while moving items but this needs to be
hidden after cancelling. Previously this was handled by the
SelectionClear event but we've changed this to (correctly) keep the
previous selection when canceling.
Fixes: lp:1831350
* https://bugs.launchpad.net/kicad/+bug/1831350
2019-06-02 20:25:02 -07:00
Seth Hillbrand
1f30d0c803
pcbnew: remove the last dlist components from pcbnew
2019-06-02 20:06:11 -07:00
Seth Hillbrand
99756efea5
Use GetFirstModule() for call that can be NULL
2019-06-02 20:06:11 -07:00
Ian McInerney
cbea5149cb
pcbnew: Cleanup context menu ordering
2019-06-02 21:10:56 +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
Jeff Young
6ac273264d
Move Show3DViewer to common action.
2019-06-02 16:21:44 +01:00
Ian McInerney
208a8553a5
pcbnew: Add context menu to measure tool
...
Fixes: lp:1831063
* https://bugs.launchpad.net/kicad/+bug/1831063
2019-06-02 07:55:29 -07:00
Seth Hillbrand
6a45446496
pcbnew: Remove the last dlist from modules/pcbnew
2019-06-01 20:55:32 -07:00
Seth Hillbrand
9163ac543a
pcbnew: Move pads to std::deque
2019-06-01 16:23:54 -07:00
Seth Hillbrand
888c01d11b
pcbnew: Move tracks to std::deque
2019-06-01 09:53:23 -07:00
Seth Hillbrand
d1877d7c1b
Moving modules from DLIST to std::deque
2019-06-01 09:53:23 -07:00
Seth Hillbrand
961b22d603
pcbnew: Changing drawings from dlist to std::deque
2019-06-01 09:51:57 -07:00
Jeff Young
f67df4bf11
Collapse ARRAY_CREATOR into single class now that legacy instance is gone.
...
Also removes AllowLegacyCanvas ADVANCED_CONFIG option.
2019-06-01 16:29:12 +01:00
Jeff Young
c1298570cb
Remove legacy routing options.
2019-06-01 16:29:12 +01:00
Jeff Young
7553cc2651
Clean up some dangling legacy odds and ends.
2019-06-01 01:17:46 +01:00
jean-pierre charras
30ad8e9369
Pcbnew, file menu: fix missing initialization of Append Board menuitem
2019-05-31 18:28:31 +02:00
Jon Evans
d0926cce58
PcbNew: prevent crash in point editor if selection gets invalidated
2019-05-29 21:27:59 -04:00
Jeff Young
1e9da7f57b
Remove CurItem() architecture and legacy routers and drawing code.
2019-05-29 00:26:30 +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
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
Jon Evans
638ac3838c
PcbNew: Fix layer alpha overrides being overwritten by color changes
...
Fixes: lp:1827518
* https://bugs.launchpad.net/kicad/+bug/1827518
(cherry picked from commit cb3edf2607
)
2019-05-26 20:20:53 -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
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