Marek Roszko
bd30a4a406
Add selection lasso and window cursors
2020-10-08 21:25:21 -04:00
Marek Roszko
f5e0754f65
Use the setCursor lambda pattern and fix up the initial cursor states
2020-10-07 23:26:14 -04:00
Mark Roszko
d9485129c8
Implement more context specific cursors using both stock and custom cursors.
2020-10-08 00:50:28 +00:00
jean-pierre charras
0b23cb7dbb
more cleanup about removing useless include
2020-10-03 15:26:03 +02:00
Seth Hillbrand
e840ac1c0c
Adding pledit and cvpcb zoom to fit
2020-09-22 23:21:44 +00:00
Seth Hillbrand
f493e270ea
ADDED: Menu option to enable/disable snap to grid
...
You can now enable and disable snap to grid when drawing/editing across
all apps. You can also tie snap to grid to the visibility of the grid
to allow rapid enable/disable via grid display.
2020-09-10 20:09:30 -07:00
Seth Hillbrand
4026904cc4
Make grid snapping depend on grid visibility
...
Turning the grid view on enables snapping to the grid. Turning it off
removes the snap and allows free draw
2020-09-09 10:18:15 -07:00
Seth Hillbrand
173b4ff588
Add snapping to eeschema
...
This generalizes both the SetPosition() function and ORIGIN_VIEWITEM
class away from the pcbnew-centric.
2020-09-09 10:18:15 -07:00
Jeff Young
1138c32bf3
Don't pass Cancel event where there was a specific action cancelled.
...
For instance, if during a move the user hits ESC they only want the
move cancelled, not (for instance) the selection dropped.
Fixes https://gitlab.com/kicad/code/kicad/issues/5356
2020-08-25 12:54:40 +01:00
Ian McInerney
75bc1ef6a7
pleditor: Remove background color toggle action
...
The new color theme system replaces the need to toggle the background
color in the editor.
Fixes https://gitlab.com/kicad/code/kicad/issues/5050
2020-08-16 19:10:25 +00:00
Ian McInerney
3b05d7cddd
Move more frames to the new UI condition framework
...
* Frames moved: cvpcb, cvpcb footprints frame, gerbview, pagelayout editor
This also introduces new EDITOR_CONDITIONS that are used to set the
conditions of very common editor settings.
Also, some IDs were converted to tools in the pagelayout editor.
2020-08-16 19:10:25 +00:00
Mikołaj Wielgus
bd8de15f2f
Add "Select All" option to disambiguation menu in page layout editor
2020-08-10 13:24:40 +00:00
Jon Evans
261614d469
Fix double free in PL_EDIT_TOOL
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4887
2020-07-16 18:56:30 -04:00
Jeff Young
7340c97ef9
Undo for schematic-wide operations.
...
Editing value/footprint fields of multi-unit components.
Find/Change.
Annotation.
Back annotation.
Fixes https://gitlab.com/kicad/code/kicad/issues/2122
Fixes https://gitlab.com/kicad/code/kicad/issues/4869
Fixes https://gitlab.com/kicad/code/kicad/issues/3933
Fixes https://gitlab.com/kicad/code/kicad/issues/4871
Fixes https://gitlab.com/kicad/code/kicad/issues/3899
2020-07-13 12:32:17 +01:00
Seth Hillbrand
7cea4b23f1
ADDED: Expand selection in context menu
...
Break out the context menu with heuristically limited choices being
appended to the main list rather than re-selecting
Fixes https://gitlab.com/kicad/code/kicad/issues/4799
2020-07-07 14:18:35 -07:00
Jeff Young
5d52378b80
Decrease hittest region so we don't get long clarification lists.
2020-05-30 11:25:52 +01:00
Ian McInerney
e662e33104
Store the current filename in the history on close
2020-05-17 00:12:49 +01:00
Jeff Young
1535c83b88
Lay some groundwork for adding distances to DRC errors.
...
modified: eeschema/lib_rectangle.cpp
2020-04-24 14:46:22 +01:00
Ian McInerney
b1240b5b1e
Gracefully shutdown tools when frames are closed
...
If the tools are not gracefully exited, then the stack variables are
never destroyed, so variable lifetime issues can occur.
Fixes https://gitlab.com/kicad/code/kicad/issues/1753
2020-02-05 22:23:24 +00:00
Jeff Young
3d8150032f
Fix some uninitialized variables found by Coverity.
2020-01-11 21:29:25 +00:00
Seth Hillbrand
7c28c3838a
Comment-only changes
...
Makes class comments conform to coding standards
2020-01-10 16:43:01 -08:00
Jeff Young
8fed9df1d0
Fix uninitialized variable (from Coverity scan).
2020-01-11 00:18:27 +00:00
Ian McInerney
13b6028e1b
Refactor all math into a new kimath library
...
* Split up the thirdparty code into the thirdparty folder (#3637 )
* Create a new kimath static library containing all the math functions
This is part of cleaning the build system for #1906 .
2020-01-07 17:12:59 +00:00
Jeff Young
44a1cf9f1b
Implement quiet-mode for selection clearing.
...
Also adds comments for exising quiet-mode calls.
Fixes: lp:1843177
* https://bugs.launchpad.net/kicad/+bug/1843177
2019-09-08 19:45:35 +01:00
Jeff Young
66f0bd4f6a
Don't try to start another move when one is in progress.
...
Fixes: lp:1842623
* https://bugs.launchpad.net/kicad/+bug/1842623
2019-09-05 21:02:29 +01:00
Jeff Young
a25368cc6b
Improve spelling.
...
The groundwork here is thanks to kunda1.
Fixes: lp:1831510
* https://bugs.launchpad.net/kicad/+bug/1831510
2019-08-20 19:14:05 +01:00
Jeff Young
3cdf88f2c6
CERN copyrights for work packages.
2019-08-14 09:35:15 +01:00
Michael Kavanagh
4c2ea8879f
Bit more ACTIONs cleanup
2019-08-12 13:49:55 -04:00
Michael Kavanagh
b414cbfada
Cleanup doDelete ACTIONs
2019-08-12 13:49:55 -04:00
Michael Kavanagh
79b2ff7551
Refactor deleteTool ACTION removing duplicates
2019-08-12 13:49:55 -04:00
Ian McInerney
c258ad7e3c
pleditor: Fix menubar actions and display
...
* Move the preview settings to view and make the menu item work
* Fix bug with preferences menu not displaying on GTK
* Implement quit command and make it similar to the other programs
Fixes: lp:1832139
* https://bugs.launchpad.net/kicad/+bug/1832139
2019-08-02 14:32:49 -06:00
Jeff Young
77334628c4
Change default tool behaviour to skip unhandled events.
...
The problem is that wxEVT_CHAR_HOOK doesn’t do the key translation
properly. wxEVT_CHAR does, but we only get to that if we skip the
event at the end of the tool’s event processing loop, which most tools
don’t do. (Selection tools, point editors, pickers, and a couple of
others do skip, which is probably why this didn’t get reported earlier.)
I played around with a couple of ways to fix wxEVT_CHAR_HOOK. Most of
them don’t work, and the few egregious hacks I tried weren't cross-
platform.
So I’m changing it so that most tools now skip at the end of their
event loops. I left out a couple that I felt were high risk (length
tuning, for instance). But there’s still enough risk that I’m 100%
sure it will break something, I just haven’t a clue what.
Fixes: lp:1836903
* https://bugs.launchpad.net/kicad/+bug/1836903
2019-07-26 12:21:24 -06:00
Jeff Young
815602d1af
Fix missing AF_ACTIVATE flags on some tools.
...
Fixes: lp:1813659
* https://bugs.launchpad.net/kicad/+bug/1813659
2019-07-26 12:21:24 -06:00
Jeff Young
0b08e4dcd2
Deactivate other tools when running one based on a PICKER.
...
In particular, if the last one was a PICKER tool, then we're going
to assert on "click-handler-already-set".
Fixes: lp:1836673
* https://bugs.launchpad.net/kicad/+bug/1836673
2019-07-19 15:29:10 -06:00
Jeff Young
e816a0c29d
Push Eeschema & PLEditor PICKER_TOOLs down into common.
...
Also implements a more robust push/pop tool strategy for pickers.
2019-07-16 00:44:01 +01:00
Jeff Young
58ca5b71a9
A more robust fix for 36f1d023f0
.
...
This one also handles when the events get out-of-order due to them
starting out in the Simulation window and not getting dispatched until
the mouse goes over the Schematic window.
Fixes: lp:1835907
* https://bugs.launchpad.net/kicad/+bug/1835907
Fixes: lp:1836544
* https://bugs.launchpad.net/kicad/+bug/1836544
2019-07-15 14:15:24 +01:00
Jeff Young
2d17d2b91f
Cleanup and commenting.
2019-07-14 10:36:48 +01:00
Jeff Young
7159f6e48a
MRU for page size and orientation, and clearer info that this is all preview data only.
...
Fixes: lp:1662239
* https://bugs.launchpad.net/kicad/+bug/1662239
2019-07-10 23:17:50 +01: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
36f1d023f0
Make sure Push/PopTool() go in the right order.
...
Because the pickers are called with an Activate()/Wait() pair, any
usurping tool gets in between the picker handling the cancel (due
to activation) and the picker client doing a PopTool(). The new
tool is therefore pushed before the old tool is popped.
Fixes: lp:1835907
* https://bugs.launchpad.net/kicad/+bug/1835907
2019-07-09 15:03:23 +01:00
Jeff Young
772dff7a01
Removed post-page-settings ZoomFitToScreen() calls.
...
Fixes: lp:1834608
* https://bugs.launchpad.net/kicad/+bug/1834608
2019-07-08 00:06:28 +01:00
Jeff Young
a9c66e15ea
Common-ize EE_ACTIONS::refreshPreview and use it after cursor actions.
...
Fixes: lp:1818667
* https://bugs.launchpad.net/kicad/+bug/1818667
2019-07-05 14:45:15 +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
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
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
89d1d3d299
Real-time highlighting for PlEditor delete tool.
2019-06-25 21:10:21 +01:00
Jeff Young
f9702aab87
Immediate actions for PlEditor, PcbNew, etc.
2019-06-25 11:34:28 +01:00
jean-pierre charras
b8d2fef079
pl_editor: fix a crash when cancelling the "add bitmap dialog" by escape key.
2019-06-20 13:05:23 +02: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
Jeff Young
581b5257e1
One more try getting <ESC>/PopTool behaviour right.
2019-06-18 22:34:31 +01:00
Jeff Young
dcbd897a95
Push/pop tools even when selected from the toolbar.
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
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
0f4bdbd184
Tighten down the POINT_EDITORs a bit more.
2019-06-16 01:33:39 +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
jean-pierre charras
6dc8e96a34
pl_editor rework: add a design inspector (similar to what was existing previously, but as a dialog)
...
Wip.
2019-06-14 20:48:50 +02:00
Jeff Young
8f84c3ec4f
Grid rid of GetCanvas/GetGalCanvas distinction now that there's only gal.
2019-06-13 19:58:37 +01:00
jean-pierre charras
54b22b1851
pl_editor: fix missing view full rebuild after importing a .kicad_wks file.
2019-06-13 15:53:42 +02:00
Jeff Young
7726b039b2
Re-jigger standard submenus so they both link AND work.
2019-06-11 18:03:16 +01:00
Jeff Young
6623ab91a8
Fix issue with picker tool activation.
2019-06-11 00:25:38 +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
jean-pierre charras
56e3e988ff
Pl_editor: fix missing hotkeys
2019-06-04 14:38:35 +02:00
jean-pierre charras
c977895412
Pl_editor: avoid flickering of the Properties Frame when moving an item.
2019-06-04 10:55:14 +02:00
Jeff Young
1bf04d1722
More ACTIONs work.
2019-06-04 00:51:16 +01:00
Jeff Young
9f1e2e34b7
Move some dupicated tools to common tools.
2019-06-03 21:08: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
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
db90e97d0b
fixup! Implement undo for Page Settings in PlEditor, Eeschema and PCBNew.
2019-05-27 14:12:20 +01:00
Jeff Young
21c216556b
Cut/copy/paste for PlEditor.
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
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
8518c373d1
Move PLEditor to common actions for file ops.
2019-05-25 01:34:44 +01:00
Jeff Young
71f188f3de
Hook up import-page-layout and change-background-color actions.
2019-05-24 19:49:10 +01:00
Jeff Young
2901fee9a0
Improve property panel <> selection synchronization.
2019-05-24 19:49:09 +01:00
Jeff Young
85f984ccd9
Add point-editor activation for immediate-mode drawing.
2019-05-24 19:49:09 +01:00
Jeff Young
09424db68f
Restore selection around undo/redo.
2019-05-24 19:49:09 +01:00
Jeff Young
431eae0492
Implement undo for PageLayout drawing tools.
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