PJM
91db6a770c
Eeschema: Add missing tooltips to left toolbar buttons
...
CHANGED: The button in the left toolbar for hiding/showing hidden
pins, and the button for forcing/relaxing H&V only wire mode had
no tooltips. This MR adds them.
2020-10-11 13:55:36 +00:00
Marek Roszko
558f4b4b51
Add new place cursor, fix cursor hotpoints again
2020-10-10 23:45:21 -04:00
Marek Roszko
310786333d
Add missing cursors for bus, graphic lines, and hier labels
...
Fix #5949
2020-10-10 18:25:44 -04:00
Ian McInerney
5aa796b5fe
Cleanup compiler warnings
2020-10-10 15:24:35 +01:00
Franck Jullien
fc93a04751
eeschema: iref: use GetParentLabel instead of GetParent
2020-10-09 02:37:51 +00:00
Marek Roszko
bd30a4a406
Add selection lasso and window cursors
2020-10-08 21:25:21 -04:00
Marek Roszko
f238d05ead
Add COMPONENT cursor
2020-10-08 20:52:58 -04:00
Marek Roszko
6cf4016a64
Add net and global label cursors
2020-10-08 20:52:58 -04:00
Jeff Young
fd22fe8e37
Show preview item in drawing tool before mouse is moved.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5922
2020-10-08 19:56:09 +01:00
Jeff Young
4095edda07
Add Properties support to Junction and Bus Entry tools.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5907
2020-10-08 18:11:06 +01:00
Ian McInerney
2b839c6c9c
Ensure command events are passed when placing junctions
...
We only handle specific command events in the handler, so we
must pass the rest to allow other tools to work.
Fixes https://gitlab.com/kicad/code/kicad/issues/5922
2020-10-08 17:58:06 +01:00
Marek Roszko
7e974e5ccc
Use the snapped cursor position used for detection for the wire tool autostart
...
Fixes #5902
2020-10-07 23:57:26 -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
Jeff Young
809f4c2ffb
Finish single-click-place drawing tool on double-click.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5907
2020-10-07 18:30:55 +01:00
Jeff Young
4565631728
Finish moving eeschema assigned netclasses to sheet-path-relative.
...
Also adds code for the case where a new label is created on a net
with an existing netclass assignment.
Fixes https://gitlab.com/kicad/code/kicad/issues/5886
2020-10-07 16:31:55 +01:00
Jeff Young
63a0f537d8
Performance enhancement: check hierarchy validity only when necessary.
2020-10-05 13:49:29 +01:00
Jeff Young
c9096c7168
Re-enable selection of intersheet references.
...
Un-modified roll-overs and clicks still produce hypertext action, but
modified clicks and drag-selects will select.
2020-10-05 11:55:33 +01:00
Jeff Young
44580acee2
Clean up some compiler warnings.
2020-10-03 22:55:34 +01:00
Marek Roszko
676f3221cc
Fix symbol editor glitches due to autostart trying to start
2020-10-03 15:47:08 -04:00
Marek Roszko
0b2b8b150d
Use the event position always instead of the view cursor position
...
Fix #5850
2020-10-03 15:20:32 -04:00
jean-pierre charras
bda275de46
more cleanup about removing useless include
2020-10-03 11:48:16 +02:00
Marek Roszko
b0ffbcaba1
Fix #5850
2020-10-03 02:10:56 +00:00
Jeff Young
cc617b715f
Implement hypertext links for intersheet references.
2020-10-02 21:18:34 +01:00
Jeff Young
c1b34b02b5
Disallow selection of intersheet references.
2020-10-02 13:50:16 +01:00
Mark Roszko
c940a45937
ADDED: Autostart wires in eeschema
...
Allows wires to be automatically started by clicking over a connection point
2020-10-01 23:53:47 +00:00
Jon Evans
71ed7ee707
Revert "Drag preselected items even when "prefer selection to dragging" enabled"
...
This reverts commit d530e2c2cd
.
2020-10-01 18:23:30 -04:00
Franck Jullien
2fc49045d1
ADDED: eeschema: Add intersheets references function
...
Add a new function to place intersheets references next to
global labels.
2020-10-01 20:39:32 +00:00
Jon Evans
d530e2c2cd
Drag preselected items even when "prefer selection to dragging" enabled
...
Not being able to drag an already-selected item feels broken
2020-09-30 20:10:13 -07:00
PJM
b0e05ad9bf
Eeschema: Check for NULL pointer when using interactive delete tool
...
CHANGED: If you start the interactive delete tool and the mouse pointer
isn't near anything, Eeschema tries to use a null EDA_ITEM pointer
which throws an exception. This commit checks if the pointer is null
and exits if it is.
2020-09-30 23:05:29 +00:00
Ian McInerney
2c49c406a0
Remove ignore other projects option from back annotation
...
The new schematic format makes this option unneeded, and it isn't
used at all in the backannotation code - so it doesn't need to be
in the UI.
2020-09-30 23:34:04 +01:00
Jeff Young
e4bc1eb3bf
Fold Update Fields from Library into Update Symbol.
...
Also gives Change Symbol control over which fields to update.
Fixes https://gitlab.com/kicad/code/kicad/issues/5217
2020-09-27 14:09:11 +01:00
PJM
e77b7e3360
Make MMB double click perform 'Zoom to Fit'
...
ADDED: Make middle mouse button double click do a 'Zoom to Fit'
in Eeschema, Pcbnew, and Gerbview. Ctrl-MMB does a 'Zoom to Objects'
in Eeschema.
Fixes https://gitlab.com/kicad/code/kicad/issues/1988
2020-09-22 23:21:44 +00:00
Jeff Young
fdbb28aea2
Treat Reference and Unit as separate words when searching.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/4630
2020-09-20 18:57:33 +01:00
Jeff Young
39bdc547af
Smarten up the guess selection routine to pick closest item.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5697
2020-09-19 15:55:27 +01:00
Seth Hillbrand
4fa3de2211
Ensure we clear forced position
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5699
2020-09-18 16:10:09 -07:00
Jeff Young
d468618411
Don't eat commands that aren't ours in SCH_MOVE_TOOL.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5692
2020-09-18 16:45:41 +01:00
PJM
c8879d9034
Eeschema: Check if user wants to warp mouse to origin of moved object
...
CHANGED: When moving a footprint, Eeschema was always warping the mouse
when moving an item regardless of the state of the "Warp mouse to
origin of moved object" checkbox. This MR now honors the state of the
checkbox when moving schematic items.
NOTE: Issue 5279 originally only mentioned Pcbnew, but after the fix
for Pcbnew was submitted, a user pointed out it also happened in
Eeschema. Becuase of this, there are two MRs that "fix" the same issue.
Fixes https://gitlab.com/kicad/code/kicad/issues/5279
2020-09-18 02:49:59 +00:00
Seth Hillbrand
471f81742f
ADDED: Align to Grid function in Eeschema
...
Adds tool option to align selected elements to the current grid.
Fixes https://gitlab.com/kicad/code/kicad/issues/5481
2020-09-17 12:27:43 -07:00
Seth Hillbrand
67a7aa8ba4
Make snapping size grid-dependent
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5638
Fixes https://gitlab.com/kicad/code/kicad/issues/5588
2020-09-15 12:07:34 -07:00
Seth Hillbrand
1703657fb5
Decrease default snap range
...
The snap range needs tuning to preference and monitor resolution. This
shifts the default range down for users until the customization bits are
implemented.
2020-09-12 08:34:21 -07:00
Seth Hillbrand
d14c6ba71f
Keep snap line alignment before new snaps
...
Also fixes the alignment line that was supposed to be dashed and not
solid.
2020-09-11 14:22:41 -07:00
Seth Hillbrand
23a9df8a59
ADDED: Allow Eeschema dragging graphical corners
...
This separates the two options (drag/move) into different actions. Drag
will drag all graphical lines connected. Move will disconnect the
graphical lines when moving.
2020-09-11 09:31:38 -07: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
62433736bc
Snap Eeschema moves to nearest anchor
...
Fixes https://gitlab.com/kicad/code/kicad/issues/3803
2020-09-09 10:48:15 -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
Seth Hillbrand
02a5d47de9
Avoid passing references in EESchema
...
This returns the connection list by value. This allows easier Python
use
Also renames m_End() to GetEnd()
2020-09-08 06:29:27 -07:00
Jeff Young
7b05e456cc
Bug fixes for multiple symbol instances in complex hierarchies
...
1) use SCH_COMPONENT::GetRef(), GetValue() and GetFootprint() when
instance-specific info is needed
2) update UpdateAllScreenReferences() to handle value and footprint.
3) BACKANNO is CvPcb's handler, not back annotation's handler. Which
means it needs GUI behaviour, not back annotation behaviour.
Fixes https://gitlab.com/kicad/code/kicad/issues/5520
2020-09-06 13:57:14 +01:00
Jeff Young
d5fd09249b
Save instance info on clipboard and reapply it when keeping annotations.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5522
2020-09-06 11:32:28 +01:00
Jeff Young
be15053745
Allow back-annotation of differing values and footprints.
...
Also fixes a couple of bugs where resolving a textVar reference
to the refDes or unit wouldn't get the correct value in a
hierarchical schematic. (Unlogged.)
Fixes https://gitlab.com/kicad/code/kicad/issues/5397
2020-09-04 15:21:56 +00:00
jean-pierre charras
04ba129881
Add specific icon for save symbol to schematic.
...
Also update CMakeLists.txt to prepare compatibility with Inkscape 1.0
However the command line to invoke Inkscape is still for 0.92 version
2020-09-03 10:00:44 +02:00
Jeff Young
bd23d003d2
Bring Eeschema UI closer in line with Pcbnew for change terminology.
...
Also clears up the text & tooltip of the Remap Symbols function to
better explain why it's greyed out most of the time.
2020-09-02 15:21:51 +01:00
Jeff Young
fa8138ee5a
Rework Symbol Props to Footprint Props design.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/2286
Fixes https://gitlab.com/kicad/code/kicad/issues/5414
2020-09-02 15:21:51 +01:00
Wayne Stambaugh
c9fa46ace8
Eeschema: allow symbols to be edited in place.
...
ADDED: Support to allow schematic symbols to be edited in place.
2020-09-01 07:28:20 -04:00
Jeff Young
6e72f609f0
Make sure router and via tools update when sizes change.
...
Also adds a size menu to the context menu for the Via tool.
Fixes https://gitlab.com/kicad/code/kicad/issues/5321
2020-08-31 23:33:02 +01:00
Jeff Young
88635ee5b6
Clean up error messages.
...
Convert a lot of nags to InfoBar errors/warnings/messages, and some
that never should have been exposed to wxFAIL_MSGs.
2020-08-31 14:19:57 +01:00
Jon Evans
38a4e4ad5a
Remove the last bits of the old netlist system
2020-08-30 16:30:04 -04:00
Jon Evans
cf17a675b4
Port simulator probing to new connectivity info
2020-08-30 16:05:16 -04:00
Jeff Young
1bd7290309
Repair broken logic in ForceKeepAnnotations.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5382
2020-08-29 18:18:23 +01:00
Mark Roszko
1082402b33
Convert UNDO_REDO_T to an enum class
2020-08-26 18:04:32 +00:00
jean-pierre charras
a97f2fb22a
Eeschema: cosmetic enhancement: add 2 missing icons
2020-08-26 13:00:46 +02: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
2f7094b352
Cleanup some unused variables
...
* Make the app progress indicator only have the indeterminate state
when the taskbar indicator is used (causes an uused variable warning
on wx<3.1)
* Remove unused dry run variable in pcb_netlist.h
* Remove unused forceDropAnnotations from the paste special dialog
since the dialog only controls keeping them.
2020-08-24 01:51:23 +01:00
Jeff Young
97c34e2516
ADDED alternate pin definitions and assignments.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/2002
2020-08-21 18:29:36 +01:00
Seth Hillbrand
7565a08396
eeschema: Add select all to schematic and library editor
...
Fixes https://gitlab.com/kicad/code/kicad/issues/2497
2020-08-20 16:07:10 -07:00
Wayne Stambaugh
ede39780e2
Remove all debugging output that cannot be disabled.
...
The use of printf, wxLogDebug, and std::err/std::out causes excessive
debugging output which makes finding specific debugging messages more
difficult than it needs to be.
There is still some debugging output in test code that really needs to
be moved into a unit test.
Add debugging output section to the coding policy regarding debugging
output.
2020-08-18 10:17:36 -04:00
Marek Roszko
1905a23ba1
libedit: fix double msg_panel refresh and use new move event
2020-08-18 13:11:48 +00:00
Marek Roszko
3674064b9e
Fix double msgpanel refresh and use the new moved event
2020-08-18 13:11:48 +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
Jeff Young
2b0b7a5153
Clear pin net-name-driving cache when changing annotation.
...
Also update connectivity after clear annotation, annotate or back
annotate.
Also update status bar for highlighted nets.
Fixes https://gitlab.com/kicad/code/kicad/issues/5170
2020-08-14 12:41:20 +01:00
Wayne Stambaugh
0bb175a028
Eeschema: Add change and update symbol from library support.
...
ADDED: Add support to to Eeschema to change and update symbols from a
symbol library.
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/4565
2020-08-13 13:53:49 -04:00
Jeff Young
f4ab14f32d
Performance improvements for SchematicCleanup().
...
Fixes https://gitlab.com/kicad/code/kicad/issues/4563
2020-08-10 12:41:52 +01:00
Jeff Young
e910dc0092
Make sure lines/wires/busses get default widths if not spec'ed.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/4854
2020-08-09 21:52:36 +01:00
Jon Evans
5abc85aa80
Cleanup re-annotation code style
2020-08-09 12:43:05 -04:00
bjpiccioni
d08bf90576
ADDED: Geographic Reannotation
2020-08-09 12:43:05 -04:00
Jeff Young
dcd02539e3
Remove linked-pin processing from LIB_PIN's setters.
...
It belongs in the tool layer (specifically LIB_PIN_TOOL).
2020-08-03 22:21:35 +01:00
Jeff Young
5f3fd43b29
Fix uninitialized variable.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/4948
2020-07-31 17:19:21 +01:00
jean-pierre charras
f00c59c446
Fix a few Coverity warnings.
2020-07-29 09:26:57 +02:00
Jeff Young
8a9fa53cd7
Clear annotations by default on copy/paste.
...
Folks didn't seem to like the "only clear when there are collisions"
behaviour. Paste Special remains available to "force keep".
Fixes https://gitlab.com/kicad/code/kicad/issues/4933
Fixes https://gitlab.com/kicad/code/kicad/issues/4744
2020-07-27 19:53:42 +01:00
Mark Roszko
7bdb98f961
libedit: Make context menu follow context
2020-07-26 20:16:38 +00:00
Jeff Young
864087890b
Fix typo assuming new field value was always the name.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/4936
2020-07-22 15:10:54 +01:00
Ian McInerney
ae45c08ce4
Fix label creation for new netname driven from a pin
...
LIB_PIN is never used in the connectivity calculation,
so it should use SCH_PIN instead. Additionally, the label
orientation should take into account the orientation of
the component to ensure they don't overlap.
2020-07-19 01:52:34 +01:00
Jeff Young
944c9eac7c
Allow Update Schematic from PCB to re-link based on refdes.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/4306
2020-07-16 18:32:49 +01:00
Jeff Young
11ca21039a
Clear new flag when creating image pins.
...
Otherwise if you then move it we'll think it needs to be inserted
and end up with a circular drawings list.
Fixes https://gitlab.com/kicad/code/kicad/issues/4622
2020-07-16 01:39:29 +01:00
Jeff Young
e8079bf655
Make sure UI gets adjusted for Symbol property changes.
...
For instance, if the number of units is changed from 1 to not-1
or vice versa then we need to rebuild the units selector.
Fixes https://gitlab.com/kicad/code/kicad/issues/4622
2020-07-16 01:39:29 +01: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
Jeff Young
9b92b275de
Remove vestiages of old open-PCB-for-settings hack.
...
We used to have to open a PCB_EDIT_FRAME to get the settings for
the footprint editor and footprint viewer. This necessitated some
special processing when opening a PCB_EDIT_FRAME to actually edit
a board as it might already be open but unloaded.
Since the new settings architecture allows the footprint editor and
footprint viewer to init themselves we no longer need the special-
case code.
2020-07-11 21:19:49 +01:00
Jeff Young
e325d2e18f
Allow Net Inspector to create, rename and delete nets.
...
ADDED: create/edit/delete nets in PCBnew Net Inspector
ADDED: update from PCB now allows updating of changed nets
Fixes https://gitlab.com/kicad/code/kicad/issues/1996
2020-07-11 21:19:49 +01:00
Jon Evans
4a5792cb87
Fix bus unfolding in the wake of bus entry changes
...
Since bus entry shape is not a thing anymore,
unfolding routine can be simplified to just use size
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4853
2020-07-09 18:51:42 -04:00
Wayne Stambaugh
4c383c51fa
Eeschema: add update symbol from library command to context menu.
...
Rather than displaying dialog that has every update option possible like
updating footprints in the board editor, this change updates the library
symbol immediately using the symbol library identifier and requires no
additional input from the user.
ADDED: Context menu entry for schematic symbols to update the symbol from
the symbol library using the existing library identifier.
2020-07-08 10:15:24 -04: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
358cccfd73
A bit of safety if realtime connection updating isn't on.
2020-07-07 14:45:14 +01:00
Jeff Young
e66523586b
Add Assign Netclass... to context menu.
...
ADDED Assign Netclass feature to EEschema.
Netclass assignments also now shown in status bar.
Fixes https://gitlab.com/kicad/code/kicad/issues/4581
2020-07-07 14:23:39 +01:00
Jeff Young
3939b31027
Integration of netclasses into Eeschema.
...
This is mostly architecture, with the hookup of the Schematic Setup
dialog's Net Classes page. Things like assigning to a net on the
canvas to follow.
Fixes https://gitlab.com/kicad/code/kicad/issues/2132
Fixes https://gitlab.com/kicad/code/kicad/issues/4581
2020-07-06 20:00:50 +01:00
Jon Evans
e9b99cc8b7
Fix grabbing connections from power components
2020-07-04 20:59:35 -04:00
Jon Evans
b94e29e3b1
Persist ERC pin table in project settings
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/2066
Also a partial fix for https://gitlab.com/kicad/code/kicad/-/issues/4577
2020-07-03 17:11:42 -04:00
Ian McInerney
bb1afb747a
Remove bus entry shape
...
The shape isn't needed anymore, since bus entries can be rotated
and mirrored like other items.
Fixes https://gitlab.com/kicad/code/kicad/issues/4588
2020-06-30 02:09:33 +01:00
Jeff Young
6acd35c981
Cleanup.
2020-06-27 20:07:26 +01:00
Wayne Stambaugh
2078e629c5
Eeschema: allow editing of junction properties diameter and color.
...
Add missing plot and print changes for the new bus entry properties.
ADDED: Junction properties diameter and color can now be edited.
Fixes: https://gitlab.com/kicad/code/kicad/issues/4593
2020-06-24 13:36:17 -04:00
Wayne Stambaugh
853cf2c9b9
Eeschema: make bus wire entry properties editable.
...
CHANGED: Bus to wire entry object properties line color, width, and style
can now be edited.
Fixes: https://gitlab.com/kicad/code/kicad/issues/4591
2020-06-24 13:36:17 -04:00
Jeff Young
c48f4272f3
Collapse a level out of the zoom settings.
...
The APP_SETTINGS_BASE now holds the list of zoom factors, and
the old legacy (screen-based) code has been removed.
2020-06-13 22:44:16 +01:00
Jeff Young
f84406009b
Push a couple of layers of indirection out of grid settings.
2020-06-13 11:35:56 +01:00
jean-pierre charras
eef81e84b2
Avoid marking a default name translatable: after translation the result
...
can be unexpected and broken.
2020-06-06 20:51:50 +02:00
Ian McInerney
4357c1d3b3
Coverity and compiler warning fixes
...
* Initialize variables
* Test dynamic casts
Fixes https://gitlab.com/kicad/code/kicad/issues/4620
2020-06-05 12:50:56 +01:00
Jon Evans
ae852e17f9
Re-add null component checking in UpdateNetHighlighting
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4606
2020-06-03 20:36:30 -04:00
Jeff Young
c01046c12f
Give new sheets an initial name and filepath.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/4516
2020-06-02 20:28:20 +01:00
Jeff Young
aadc926740
Coverity fixes and "auto" removal.
2020-06-02 17:22:23 +01:00
Wayne Stambaugh
52078a4b1b
Allow setting mandatory derived symbol field properties.
...
CHANGED: All mandatory fields in derived symbols can be edited. This
not only includes the field value but also all text properties.
Kill the dual datasheet variable storage which caused many datasheet
bugs over the years. The datasheet is now always stored in the data
sheet field.
2020-06-02 14:21:11 +00:00
Michael Kavanagh
9414f65a3f
Eeschema: allow Properties... in wire context menu
...
Seems to have been forgotten from 91fd0635
2020-05-30 14:29:53 +00:00
Wayne Stambaugh
91fd063585
Eeschema: allow editing of wire and bus properties.
...
CHANGED: Wire and bus lines properties (color, line width, and line type)
can be edited the same as graphical lines.
2020-05-29 14:33:27 +00:00
Jeff Young
f3e4e61fa7
Push some more editing code out to the tool framework.
2020-05-27 23:29:51 +01:00
Jon Evans
1792479ca5
Fix sheet pin import after SelectPoint API change
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4552
2020-05-27 11:21:59 -04:00
Jeff Young
160981ee71
Better error reporting for DRC rule parsing.
2020-05-25 22:51:47 +01:00
Mikołaj Wielgus
ecec7192fc
Add "Select All" in schematic & layout disambiguation popup menu
...
ADDED: "Select All" in schematic editor disambiguation menu
ADDED: "Select All" in layout edtor disambiguation menu
Fixes https://gitlab.com/kicad/code/kicad/-/issues/3877
2020-05-24 23:35:04 +00:00
Jon Evans
77a6550ba9
Fix bus unfolding with prefixes
2020-05-24 19:17:01 -04:00
Jon Evans
699985cd97
Check for nested buses when highlighting
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4531
2020-05-24 16:15:22 -04:00
Jon Evans
c7daf8a8f3
ADDED: Cross-probe highlighting of bus members
...
Note: this is a basic implementation but it could be
improved once we include bus information in the netlist
and pcbnew can natively keep track of buses and nets
instead of just nets.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4158
2020-05-24 13:30:23 -04:00
Jon Evans
1e69f592f6
Rework net highlighting to use connections instead of strings
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/1933
Fixes https://gitlab.com/kicad/code/kicad/-/issues/3921
2020-05-24 10:46:05 -04:00
Jon Evans
a63df2fbf0
Remove BuildNetListBase from netlisting paths
2020-05-23 13:14:05 -04:00
Jeff Young
d61b6f965e
Flatten some settings and remove some more globals.
2020-05-23 16:50:33 +01:00
Jeff Young
70fb5cac96
Flatten one level of showElectricalTypes settings.
2020-05-23 16:50:33 +01:00
jean-pierre charras
4cfff6b35d
Libedit: fix crash when right clicking.
...
Fixes #4511
https://gitlab.com/kicad/code/kicad/issues/4511
2020-05-22 09:01:29 +02:00
Jon Evans
7c7b7f41da
Move SCH_SCREEN project access to SCHEMATIC
...
SCH_SCREEN no longer needs to be a KIWAY_HOLDER
2020-05-20 22:27:48 -04:00
Ian McInerney
c4142a5842
Remaining part of code forgotten by 73a1ce3e
2020-05-20 11:43:50 +01:00
Jon Evans
fbc42a8cb5
Move schematic defaults to SCHEMATIC and add some missing settings entries
2020-05-20 00:03:23 -04:00
Jon Evans
e1476dea58
Fix build
2020-05-19 23:57:53 -04:00
Jon Evans
4e2e280bf4
Fix part adding
2020-05-19 13:24:57 -04:00
Jon Evans
d7bd4c9b04
Move Eeschema globals to new SCHEMATIC object
...
Set up a new lineage for SCH_ITEMS to get back to the SCHEMATIC
they live on: Items will all be parented to the SCH_SCREEN that
they are added to, and each SCH_SCREEN will point back to the
SCHEMATIC that it is part of. Note that this hierarchy is not
the same as the actual schematic hierarchy, which continues to
be managed through SCH_SHEETs and SCH_SHEET_PATHS.
2020-05-18 13:04:56 -04:00
Wayne Stambaugh
980aefea4b
Eeschema: fix copy and paste bug.
...
Add required library symbols to new file formatter and parser when copying
schematic symbols to prevent missing library symbol when pasting into a
different schematic which may not have the same library symbol available.
Fix a minor bug where the default schematic symbol reference was not set
by the parser when loading.
Fixes https://gitlab.com/kicad/code/kicad/issues/4442
2020-05-15 15:53:59 -04:00
Wayne Stambaugh
ad88874adf
Use new file formats for copy and paste in schematic and symbol editors.
2020-05-13 18:56:19 -04:00
Jeff Young
4a1ee40058
Pretty print bus definitions to the menus.
2020-05-13 16:26:53 +01:00
Jeff Young
ba301c292a
Check for single item seletion for most property dialogs.
2020-05-13 13:42:23 +01:00
Jeff Young
ec5f7b35a9
Attempt to fix crash with RMB on un-selected graphic line.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/4414
2020-05-12 19:48:59 +01:00
Jeff Young
724c669434
Move a few more commands to tool framework.
2020-05-12 18:12:38 +01:00
jean-pierre charras
b29f55c1ca
Cosmetic minor changes for 2 icons.
...
Avoid using the same icon for 2 different actions in the same screen or menu.
2020-05-09 16:22:29 +02:00
Wayne Stambaugh
1840fe351e
Eeschema: fix assertion when duplicating a sheet.
...
The duplicate sheet code path assigned a SCH_SCREEN object instead of a
SCH_SHEET object as a parent. A recently added assertion to check for
this did it's job.
Fixes https://gitlab.com/kicad/code/kicad/issues/4369
2020-05-08 14:57:44 -04:00
Jeff Young
73e1496b25
Change attached-label algorithm.
...
Rather than try and keep moving with other items, calculate nearest
point on current line to original label at each step.
Fixes https://gitlab.com/kicad/code/kicad/issues/4347
2020-05-07 18:59:47 +01:00
Jeff Young
51e72ed9ba
Finish the collect-attached-labels rewrite.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/4341
2020-05-06 20:38:12 +01:00
Jeff Young
f6d1aa1f42
Fix some failures to drop hover selections after executing a command.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/4330
2020-05-06 19:02:21 +01:00
Jeff Young
0f34fc2e5f
Simplify the "pick up attached labels" logic.
...
This should vastly reduce the number of side-effects we were seeing.
Fixes https://gitlab.com/kicad/code/kicad/issues/4311
Fixes https://gitlab.com/kicad/code/kicad/issues/git
Fixes https://gitlab.com/kicad/code/kicad/issues/4320
2020-05-06 15:48:58 +01:00
Wayne Stambaugh
590a101a88
Eeschema: fix update schematic symbol library link bugs.
2020-05-05 18:06:43 -04:00
Wayne Stambaugh
9c99286385
Fix a few Coverity warnings.
2020-05-05 16:42:59 -04:00
Wayne Stambaugh
7183e9f97e
Make the new schematic and symbol library file formats the default.
...
This is a very large and potentially disruptive change so this will be an
unusually long and detailed commit message.
The new file formats are now the default in both the schematic and symbol
library editors. Existing symbol libraries will be saved in their current
format until new features are added to library symbols. Once this happens,
both the legacy schematic and symbol file formats will be no longer be
savable and existing libraries will have to be converted. Saving to the
legacy file formats is still available for round robin testing and should
not be used for normal editing.
When loading the legacy schematic file, it is imperative that the schematic
library symbols are rescued and/or remapped to valid library identifiers.
Otherwise, there will be no way to link to the original library symbol and
the user will be required manually set the library identifier. The cached
symbol will be saved in the schematic file so the last library symbol in
the cache will still be used but there will be no way to update it from the
original library.
The next save after loading a legacy schematic file will be converted to
the s-expression file format. Schematics with hierarchical sheets will
automatically have all sheet file name extensions changed to .kicad_sym
and saved to the new format as well.
Appending schematics requires that the schematic to append has already been
converted to the new file format. This is required to ensure that library
symbols are guaranteed to be valid for the appended schematic.
The schematic symbol library symbol link resolution has been moved out of
the SCH_COMPONENT object and move into the SCH_SCREEN object that owns the
symbol. This was done to ensure that there is a single place where the
library symbol links get resolved rather than the dozen or so different
code paths that previously existed. It also removes the necessity of the
SCH_COMPONENT object of requiring any knowledge of the symbol library table
and/or the cache library.
When opening an s-expression schematic, the legacy cache library is not
loaded so any library symbols not rescued cannot be loaded. Broken library
symbol links will have to be manually resolved by adding the cache library
to the symbol library table and changing the links in the schematic symbol.
Now that the library symbols are embedded in the schematic file, the
SCH_SCREEN object maintains the list of library symbols for the schematic
automatically. No external manipulation of this library cache should ever
occur.
ADDED: S-expression schematic and symbol library file formats.
2020-05-04 12:40:03 +00:00
Jeff Young
5bed201a23
Don't collect connected labels on a paste.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/4311
2020-05-03 21:47:53 +01:00
Jeff Young
199bb2ffb0
Add hittesting for worksheets in Pcbnew and Eeschema.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/4282
2020-05-03 00:07:38 +01:00
Wayne Stambaugh
fa57c8a570
Eeschema: fix sheet bug in schematic editor drawing tool.
...
SCH_SHEET objects can only have another SCH_SHEET object as a parent
or nullptr for the root sheet so overload EDA_ITEM::SetParent() to
prevent the parent from being set to another type of object and add
some checks to the root sheet code just in case someone gets clever
and attempts to bypass the overloaded SetParent() call.
2020-04-26 14:27:51 -04: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
Jeff Young
7308099852
Add an icon and put Schematic Setup in the toolbar.
2020-04-24 14:46:22 +01:00
Ian McInerney
facf40d3ce
libedit: Add drag to move behavior
...
ADDED: Drag to move behavior in the symbol editor
Fixes https://gitlab.com/kicad/code/kicad/issues/1904
2020-04-23 23:58:33 +01:00
Jeff Young
f113370e1e
Edit worksheet properties when no other selection is available.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/4044
2020-04-21 21:17:59 +01:00
Jeff Young
a286cb5a8f
Keep labels on dragged wires.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/2107
2020-04-19 18:24:39 +01:00
Jeff Young
2b6089240a
Change super/subscript syntax to ^{foo} and _{foo}.
2020-04-18 21:04:41 +01:00
Jeff Young
42cd604c3c
Expose Show Hidden Fields to GUI.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/2010
2020-04-18 16:36:51 +01:00
Jeff Young
d7d1cb6f78
A bunch of fixes to Eeschema Find/Replace.
2020-04-18 14:43:08 +01:00
Jeff Young
9c8941e040
Remove a bunch of globals.
2020-04-16 17:34:46 +01:00
Jeff Young
122b1ddaae
Unwrap an unnecessary layer now that we have new config stuff.
2020-04-13 20:58:12 +01:00
Jeff Young
c82679a6f2
Fix crash bug when highlighting no net (found by Coverity).
2020-04-12 11:19:44 +01:00
Jeff Young
292a9fadd9
Allow a click in the value field when searching for power nodes.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/4180
2020-04-11 23:51:00 +01:00
Jeff Young
c4994eee7b
Fix a pair of bugs in the new highlight net logic.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/4180
2020-04-11 13:02:18 +01:00
Jeff Young
962aa73e12
Improve EE_COLLECTOR to not miss children of sheets or symbols.
...
Also implements pin highlighting and special cases for power symbols.
Fixes https://gitlab.com/kicad/code/kicad/issues/4180
2020-04-10 14:09:26 +01:00
jean-pierre charras
cb7263d017
Eeschema: fix ERC dialog not shown after a double click, when recalled by tool ERC.
...
(the dialog was reactivated by calling Raise(), but this is not enough: Show()
must be called also, at least on Windows).
Fix also a minor wxWidgets alert in ERC dialog.
Fixes #4171
https://gitlab.com/kicad/code/kicad/issues/4171
2020-04-08 10:03:51 +02:00
Jeff Young
8eb15fe911
Tidy up some Coverity issues.
2020-04-07 17:29:58 +01:00
jean-pierre charras
1027c2fb8d
Eeschema: when placing a symbol, and after placing others instances of the symbol
...
deselect the previously placed items.
Otherwise, the changes (rotation, mirroring...) made during placing the current symbol
are applied to other previously placed items.
This is obviously not what is wanted, and creates crashes in Eeschema.
Fixes #4163
https://gitlab.com/kicad/code/kicad/issues/4163
2020-04-06 13:00:58 +02:00
Jeff Young
cc9ac37a0e
Add text variable support to envVar processing.
2020-04-05 20:52:26 +01:00
Jeff Young
591428b0d9
Remove some problematic global variables.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/4121
2020-04-05 16:17:04 +01:00
Jeff Young
20c00cbb21
Finish off "busses" -> "buses".
...
Fixes https://gitlab.com/kicad/code/kicad/issues/4144
2020-04-02 18:27:05 +01:00
jean-pierre charras
e811101567
fix a few Coverity warnings.
2020-04-01 09:34:44 +02:00
Jeff Young
132d4d3ffa
Clean up compiler warning.
2020-03-30 14:15:59 +01:00
Jeff Young
4990d1e7b2
Variable substitution framework.
...
This implements editing of variables and moving SCH_FIELDs,
TEXTE_MODULEs, TEXTE_PCB and worksheet items over to the new
framework.
2020-03-30 14:15:59 +01:00
Jeff Young
5134856f18
Rationalise 3D settings data-structure.
...
Move the camera out to its own so that everything else is board-
related, and then rename BOARD_ADAPTER.
At some point the flags should probably be moved out too, and they
can have the EDA_3D_SETTINGS name.
2020-03-28 16:09:40 +00:00
jean-pierre charras
615deb40f3
Eeschema: move, mirror and rotate block: fix some issues.
...
Fixes #4111
https://gitlab.com/kicad/code/kicad/issues/4111
2020-03-28 13:17:59 +01:00
Jeff Young
ba36fc0009
Fix some Coverity issues.
2020-03-25 14:38:43 +00:00
Jeff Young
d69ebfae49
Push tool framework base down into TOOL_HOLDER.
...
This allows us to use it outside of EDA_BASE_FRAMEs (in this case, in
PANEL_PREVIEW_3D.)
2020-03-24 19:00:25 +00:00
Alexander
cf25975876
EEschema: Fix back annotation
...
Repairs back annotation after some schematic code modifications
2020-03-24 10:53:00 +00:00
Jeff Young
66382db7dd
Add some defensive code for selection anomalies.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/4021
2020-03-21 20:55:50 +00:00
Jeff Young
204f2cd580
Reference -> reference designator.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/4012
2020-03-17 16:09:25 +00:00
Jeff Young
cee973dc04
Move ERC error reporting over to the new framework.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/1989
2020-03-16 11:06:15 +00:00
Jeff Young
085d80e3f3
Remove duplicated settings from preferences.
...
These have now moved to project-specific settings.
2020-03-13 17:28:53 +00:00
Jeff Young
dc9882c3b9
Fix a few bugs with Sheet field dragging and rotating.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/4046
2020-03-12 13:57:29 +00:00
Jeff Young
437f888c25
Schematic Setup dialog.
...
Includes:
- moving some of the project settings from the Preferences dialog
- ERC severites
- project-specific field-name templates
Fixes https://gitlab.com/kicad/code/kicad/issues/2145
2020-03-10 18:54:17 +00:00
Jeff Young
535033c5c9
Enable editing of sheet fields.
2020-03-07 18:52:30 +00:00
Jeff Young
fe3e0307d8
Move sheet name and filename to SCH_FIELD architecture.
...
Only internal storage architecture has changed (so far).
2020-03-06 16:23:44 +00:00
jean-pierre charras
b7cd0c54c2
Fix compil issues, especially on Windows:
...
Replace SEVERITY_ERROR by RPT_SEVERITY_ERROR to avoid collision with a system definition.
Replace other SEVERITY_XXX by RPT_SEVERITY_XX for consistency.
Fix compil warnings and some other compil issues.
2020-03-04 10:48:18 +01:00
Jeff Young
85c2e0d23a
Add user-defined severities, exclusions and colors to DRC markers.
...
Exclusions are currently persisted in the project file.
Fixes https://gitlab.com/kicad/code/kicad/issues/1989
2020-03-04 00:39:28 +00:00
Seth Hillbrand
20fde2c16f
eeschema: Fix find from RTree change
...
The RTree doesn't keep pins and fields in the tree, so we need to search
for them differently.
Fixes #3979 | https://gitlab.com/kicad/code/kicad/issues/3979
2020-03-03 09:35:12 -08:00
Simon Richter
866aac9737
Clean up a few unused names of caught exceptions
2020-03-01 00:33:45 +00:00
Jeff Young
3f31d48b5e
Use a more friendly method of ensuring unique sheet names.
...
Also fixes a bug where we were failing to respect the
forceKeepAnnotations flag when processing content nested in
a sheet.
Fixes https://gitlab.com/kicad/code/kicad/issues/3681
2020-02-29 00:07:57 +00:00
Ian McInerney
d5ceb8252e
Clean up some warnings
2020-02-28 00:06:52 +00:00
Seth Hillbrand
245b778454
libedit: Fix speed of lib check
...
The symbol check output the HTML message for each item. This is _very_
slow and can lock the system reponsiveness. Changing to a queue/flush
method is much faster
2020-02-27 15:06:48 -08:00
Jeff Young
c7ec110fba
Only center focused items when they're not visible.
...
This includes outside the window and behind an occluding dialog.
This keeps the view from jumping around when focusing on nearby
objects.
2020-02-24 23:19:17 +00:00
Jeff Young
c68b554c8e
Promote PathsAndReferences from wxArrayString to first-class-citizen.
...
Keeping the data in an un-serialized format greatly simplifies usage,
and should make it more robust.
2020-02-24 23:19:17 +00:00
Jon Evans
41f59ab873
Avoid intermittent compiler crash in GCC 7.4
...
Somehow the previous way this statement was written can cause an
internal compiler crash on gcc 7.4.0-1ubuntu1~18.04.1 sometimes.
2020-02-22 21:26:48 -05:00
Jeff Young
ea025a35e5
Change KUUID to KIID.
2020-02-21 22:20:42 +00:00
Jon Evans
e8e3b4f11e
Rename UUID to KUUID to fix MSVC build
...
Also add another newly-required boost flag
2020-02-20 22:07:17 -05:00
Jeff Young
129042f8a6
Convert timestamps to UUIDs.
2020-02-20 21:29:52 +00:00
Jon Evans
e59a3d981e
Implement a new settings framework across all of KiCad
...
CHANGED: Settings are now stored in versioned sub-directories
ADDED: First-run dialog for migrating settings from a previous version
CHANGED: Settings are now stored as JSON files instead of wxConfig-style INI files
CHANGED: Color settings are now all stored in a separate settings file
CHANGED: The symbol editor and footprint editor now have their own settings files
CHANGED: Color settings are no longer exposed through BOARD object
CHANGED: Page layout editor now uses Eeschema's color scheme
Settings are now managed through a central SETTINGS_MANAGER held by PGM_BASE.
Existing settings will be migrated from the wxConfig format on first run of each application.
Per-application settings are now stored in one class for each application.
2020-02-19 23:44:56 -05:00
jean-pierre charras
2ca16c0b29
eeschema: fixes some issues related to translated and not translated field names.
...
When searching for fields, the code was sometimes comparing translated and not translated names.
This is an issue for mandatory fields, in non English languages.
Translated field names should be used only in messages.
2020-02-16 17:52:53 +01:00
Jeff Young
2017389f2d
Pinning for library trees in FPEditor and SymbolEditor.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/2288
2020-02-14 00:10:40 +00:00
Seth Hillbrand
03f74c87a1
Update immediate mode location and restart wires
...
The immediate action option clears (or not) the position of the events.
We use this to determine if the command should start at the given
position or merely activate the tool. This was being checked in the
menu options, which only activated for tool commands in the context
menu. Moving to the process event, we catch hotkeys as well.
This also restores the previous logic in eeschema that used a static
variable for storing wires rather than the private class variable.
Starting the draw event now picks up from the existing wires when
activated in immediate mode.
Fixes #3891 | https://gitlab.com/kicad/code/kicad/issues/3891
2020-02-11 09:12:36 -08:00
jean-pierre charras
ba9dedaaf3
Eeschema, point editor: constraint corners of a SHEET symbol to stay on 50 mil grid
...
Fixes #3867
https://gitlab.com/kicad/code/kicad/issues/3867
2020-02-07 10:06:01 +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
Seth Hillbrand
7d64527eeb
eeschema: Handle Rebuild for subcomponents
...
The parents are the only items that live in the RTree, so the rebuild
check needs to recurse into the sub structure to check for selection
Fixes https://gitlab.com/kicad/code/kicad/issues/3858
2020-02-04 22:49:43 -06:00
Jon Evans
ac875e26a8
Fix handling of SCH_PINs on multi-unit parts
...
Fixes https://gitlab.com/kicad/code/kicad/issues/3770
2020-02-04 11:51:29 +00:00
Seth Hillbrand
9f7e0ef8e8
eeschema: Remove Bus-Bus and Place sheet pin buttons
...
Cleaning toolbars of functions that are superfluous or do not match well
to the user workflow.
2020-02-04 04:39:26 -06:00
jean-pierre charras
b8108d294f
Fix a few I18n messages, and minor wxWidgets alerts.
2020-02-01 14:06:56 +01:00
Alexander Shuklin
3d0b3a51f3
Eeschema: Adding back annotation
...
ADDED: Back annotation algorithm,
eeschema back annotation dialog
CHANGED: added some minor helper methods to SCH_REFERENCE_LIST and SCH_REFERENCE,
split SCH_REFERENCE_LIST::CheckAnnotation on 2 parts to reuse code
2020-01-29 16:33:57 +00:00
Seth Hillbrand
84a697060f
Don't insert pins/text when moving
...
Pins and component fields belong to the parent object and need to be
avoided when moving to prevent re-insertion on update.
Fixes #3804 | https://gitlab.com/kicad/code/kicad/issues/3804
Fixes #3811 | https://gitlab.com/kicad/code/kicad/issues/3811
2020-01-25 09:30:51 -08:00
Jon Evans
da222d96b1
Fix a few issues with bus unfolding
...
Bus submenus weren't sending events because tool wasn't set.
Net names need to be unescaped for display.
Unfolding wasn't drawing the new wire segments.
SCH_LINE_WIRE_BUS_TOOL could get caught in an infinite event handling loop.
Fixes https://gitlab.com/kicad/code/kicad/issues/3796
2020-01-21 22:02:46 -05:00
Mark Roszko
70908043a3
Convert enums inside eeschema and the symbol editor to be scoped
...
Scope: NETLIST_ITEM, CONNECTION_TYPE, ELECTRICAL_PINTYPE,
NET_CONNECTION, NETLIST_ITEM, GRAPHIC_PINSHAPE
Note, the pin type enum had PT_ added to the front to prevent
shadowing of the INPUT symbol on msys2 (see discussion at
c17c9960d8
)
2020-01-18 20:51:28 +00:00
Seth Hillbrand
40f97b55c7
Remove confused dynamic_cast
...
dynamic_cast could not resolve the cast chain leading to a null undo
point. Since we know the item to be LIB_ITEM, we can use static_cast
anyway and avoid the overhead.
Fixes #3771 | https://gitlab.com/kicad/code/kicad/issues/3771
2020-01-16 06:17:04 -08:00
Ian McInerney
33a40e788b
Add missing null check to library viewer control tool
2020-01-13 14:40:55 +00:00
Jeff Young
836c1ea56e
Fix a bunch of un-caught boost::bad_pointer exceptions.
...
This also removes vector cover types which do nothing except obfuscate
the underlying implementation.
Mainly changes SCH_SHEET_PINS and CONFIG_PARAM_ARRAY (which will soon
be replaced by Jon's new stuff).
2020-01-12 19:55:00 +00:00
Ian McInerney
960b553a70
Cleanup type casting in EE toolbase
...
* Ensure the lib edit undo checks for pointer validity
* Assert that the frames are the correct type (satisfies coverity)
* Convert C casts to C++ casts
2020-01-12 19:47:13 +00:00
Seth Hillbrand
84d5d6c168
Eeschema: Return null in case of canceling placement
2020-01-11 17:02:55 -08: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
88eab8134e
Fix a couple of uninitialized variables (from Coverity scan).
2020-01-11 00:11:31 +00:00
Jeff Young
8abfc13053
Fix possible null dereference (from Coverity scan).
2020-01-10 22:32:50 +00:00
Seth Hillbrand
77c60d9655
Remove the last vestiges of dlist
...
It served us (mostly) well for more than a decade. It helped KiCad grow
before the std:: came into decent shape or speed. It was a good little
list.
RIP DLIST 2008-2020
2020-01-10 06:37:08 -08:00
Seth Hillbrand
6e5e453d0d
Replace EESchema DLIST
...
This moves EESchema DLIST structures to rtree. These changes are more
fundamental than the pcbnew changes from 9163ac543
888c01d11
d1877d7c1
and 961b22d60
as eeschema operations were more dependent on passing
drawing list references around with SCH_ITEM* objects.
2020-01-10 06:37:08 -08:00
Mark Roszko
ca34ade00c
Make global labels have the same spin style as net/hierarchical labels
...
For legacy reasons, it stored left and right "spin" as flipped integers in the file format.
But the code handled the flip in multiple locations rather than just doing it on file io.
This change unifies the internal code and does the mapping in the file I/O.
2020-01-08 19:07:55 +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
Jon Evans
5255a29bc0
Always use local bus member names for unfolding menu
2020-01-03 22:11:00 -05:00
Jon Evans
d5a80e9cfd
Fix shadowing warning
2020-01-03 18:52:46 -05:00
Franck Jullien
ea218bc722
eeschema: Allow hierarchy navigator to stay open
...
ADD: User can now decide to keep the hierarchy navigator open while working
on a schematic.
This behavior can be configured in eeschema->preferences->eeschema->Editing options.
2020-01-03 21:08:40 +01:00
Ian McInerney
81292d2bf1
eeschema: Cleanup processing for multiple line editing
2020-01-03 19:30:29 +00:00
Ian McInerney
079423c3cc
eeschema: Remove unused include of eeschema_id.h
2020-01-03 16:04:54 +00:00
Mark Roszko
b84fe2b703
ADDED: Editing style of multiple graphical lines at the same time.
...
Provides the ability to quickly set the style of multiple lines. This is only allowed if the selection includes _only_ graphical lines.
2019-12-31 04:05:51 +00:00
Jeff Young
e85701f405
Don't allow IS_NEW flag on created-line-segments to fool us.
...
When dragging we'll create new line segments between selection-edge
objects and things outside the selection that they're attached to.
These new lines have their IS_NEW flags set, but shouldn't fool us
into thinking that the selection contains pasted (or placed) items.
2019-12-28 11:58:33 +00:00
Jeff Young
87e163945e
Items added to a selection for a drag should only be temporary.
...
After the drag, cancel, or undo, only the originally-selected items
should remain selected.
2019-12-28 11:58:33 +00:00
Mark Roszko
19ceb11ae7
Change more enums over to scoped enums
2019-12-28 00:55:11 +00:00
Mark Roszko
d3edeaec50
Fix "Properties" not appearing in right click menu for graphic line.
2019-12-26 15:15:34 +00:00
Ian McInerney
3ca231aa78
Rename lib viewer frame files to use the class name
2019-12-19 14:05:46 +00:00
jean-pierre charras
d9de28de35
Eeschema: usability enhancement.
...
ADDED: a config option to select (when clicking on a pin) the parent symbol
or only the pin.
Previously, when cliking on a pin, the parent symbol was selected.
Allowing the pin selection is mandatory in cross probing, and to display the pin
characteristics in some cases, for instance if a pin is flagged by the ERC tooL.
2019-12-19 12:41:51 +01:00
jean-pierre charras
a049348576
Eeschema: fix null pointer use.
...
Fixes #3694 | https://gitlab.com/kicad/code/kicad/issues/3694
2019-12-19 09:11:34 +01:00
Wayne Stambaugh
2b920ffa04
Symbol editor: inheritance symbol editing bug fixes.
...
There is no need to create a new root symbol and re-parent all derived
symbols when renaming a root symbol. Just rename the buffered root
symbol.
Test for duplicate symbol names when validating the properties dialog
information to prevent broken symbol pointers.
Fix a field drawing bug when editing derived symbols.
Fix bug to insure duplicate symbol names cannot exist in a library.
Fixes kicad/code/kicad#3654
Fixes kicad/code/kicad#3672
2019-12-16 10:11:06 -05:00
Seth Hillbrand
e9323fff82
Eeschema: Move SCH_LINE_WIRE_BUS_TOOL to class
...
The remaining static elements of SCH_LINE_WIRE_BUS_TOOL are moved into
the class and passed elements eliminated in favor of held class
elements.
2019-12-13 12:41:57 -08:00
Seth Hillbrand
cda291adae
eeschema: Clean bits of DLIST
...
Removes the extra DLIST manipulation from SCH_LINE_WIRE_BUS_TOOL and
moves the static storage into class storage
2019-12-13 11:22:18 -08:00
Wayne Stambaugh
20836261d7
Fix minor coding policy violations.
2019-12-12 14:55:35 -05:00
Wayne Stambaugh
a18d7a8495
Eeschema: fix a selection bug created in commit bec87864
.
...
Apparently the schematic and symbol library editors now have common
selection filtering so checking for a valid LIB_EDIT_FRAME when
filtering for the schematic editor frame prevented all schematic
object from being selected.
2019-12-12 11:42:11 -05:00
Wayne Stambaugh
bec878640c
Symbol editor: fix crash caused by broken root symbol name.
...
The symbol editor selection criteria did not include LIB_FIELD objects
which allowed the root symbol name to be changed causing broken derived
symbol links. Disable the symbols fields from being edited when a
derived part is shown in the editor to prevent this.
Add a missing warning that deleting a root symbol used to derive other
symbols would also delete all derived symbols from a library. Give the
user a chance to cancel the delete operation in this case.
Fixes kicad/code/kicad#3654
2019-12-12 10:45:12 -05:00
Wayne Stambaugh
8e150521a2
Fix a few minor symbol library inheritance bugs.
...
Don't clobber value file when load aliases in legacy symbol library cache
parser.
Use actual symbol library LIB_PART pointer rather than a flattened copy
of the symbol. This fixed a bug when displaying the parent field in the
message panel for derived symbols.
Simplify the flatten code by copying the parent and updating the lesser
information from the inherited symbol.
2019-12-06 11:33:52 -05:00
Wayne Stambaugh
54f066fed7
Implement simple inheritance for library symbols.
...
This change completely removes the LIB_ALIAS design pattern an replaces
it by allowing LIB_PART objects to inherit from other LIB_PART objects.
The initial implementation only allows for single inheritance and only
supports the mandatory fields in the derived part because that is all
that the current symbol library file format will support. Once the new
file format is implemented and saving to the old file format is deprecated,
more complex inheritance will be added. The LIB_ALIAS information saved
in the document files was move into the LIB_PART object. This change
impacts virtually every part of the schematic and symbol library editor
code so this commit message is woefully incomplete.
REMOVE: Removed the symbol aliases concept from the schematic and symbol
editors and the symbol viewer.
NEW: Replace the symbol alias concept with simple inheritance that allows
a library symbol to be derived from another library symbol.
2019-12-06 11:33:52 -05:00
Jeff Young
3af3bf894c
Make sure the IS_MOVED flag gets set when breaking out of a bus.
...
This (among other things) causes an update-preview event to be sent
when modifying it (such as rotating).
Fixes: lp:1854456
* https://bugs.launchpad.net/kicad/+bug/1854456
2019-12-02 20:01:44 +00:00
Seth Hillbrand
ffcf3b01fc
Fixup issue with adding junctions
...
Segfault when we pass a component to the routine as it expects to see a
selection.
2019-11-27 11:13:01 -08:00
Franck Jullien
a5f8340654
eechema: add junction if needed when component is placed
...
Fixes: lp:1849376
* https://bugs.launchpad.net/kicad/+bug/1849376
2019-11-26 19:23:02 -08:00
Ian McInerney
087a90cf99
eeschema: Update titlebar when searching schematics
...
Fixes: lp:1851641
* https://bugs.launchpad.net/kicad/+bug/1851641
2019-11-24 01:25:00 +00:00
Ian McInerney
7339eb31eb
eeschema: Allow bus entry labels to rotate and mirror
...
Fixes: lp:1853079
* https://bugs.launchpad.net/kicad/+bug/1853079
2019-11-23 23:35:21 +00:00
Jeff Young
fb52124426
Fix several issue with bus entry connectivity.
...
When dragging a bus the entry is connected to the bus so the wire
connected to the entry (if any) needs to stretch.
While an entry can connect in the middle of bus, it cannot connect
in the middle of a wire.
Fixes: lp:1849973
* https://bugs.launchpad.net/kicad/+bug/1849973
2019-11-18 11:36:30 +00:00
Ian McInerney
1df7b718d9
eeschema: Allow labels to rotate on bus unfold
2019-11-15 20:43:56 +00:00
Seth Hillbrand
42f5c944b3
libedit: When pasting keep original multi-unit
...
Copy/Paste should keep the original items' designation for all units and
conversion type. If it was specified in the original copy, we should
keep the same specification when pasting (but update for the current
frame)
2019-11-12 16:11:08 -08:00
Jeff Young
9d288968e7
Be more explicit about extent of schematic cleanups.
...
The new connectivity algorithm had a tendency to cleanup
globally, but that could insert undo records from other sheets
into the current screen's undo stack. Needless to say, this
was a recipie for segfaults.
Fixes: lp:1846247
* https://bugs.launchpad.net/kicad/+bug/1846247
2019-11-10 23:25:54 +00:00
Seth Hillbrand
81ce588a00
eeschema: Set sheet unit number when setting unit
...
The auto increment needs to ensure the unit number is updated in two
places. Hierarchy and draw list.
Fixes: lp:1851431
* https://bugs.launchpad.net/kicad/+bug/1851431
2019-11-05 14:04:01 -08:00
Jeff Young
984c64677e
Hook up rotate & flip to bus entries when drawing them.
...
Also adds support for the bus entry shape hotkeys while drawing.
Fixes: lp:1849967
* https://bugs.launchpad.net/kicad/+bug/1849967
2019-11-05 17:22:51 +00:00
Seth Hillbrand
bbf355a12f
eeschema: Fix an issue with duplicate timestamps
...
Duplicating into a non-clone still doesn't get a new timestamp, so we
need to explicitly set it.
2019-10-29 16:48:19 -07:00
Seth Hillbrand
868ff5bb2c
Right click gets a new object if the mouse has moved
...
Right click is a pointing operation combined with a request for the
context menu. We need to highlight the user's intended object when they
have moved their mouse to a new element instead of showing the context
menu for the selected object.
However, in cases where the selection is difficult to make, it is
sometimes helpful to select the item first, then right-click. In these
cases, we keep the selection where the mouse remains inside the selected
object's bounding box.
2019-10-29 16:11:06 -07:00
Seth Hillbrand
7b2d6ab40e
eeschema: Allow mult-part placement option
...
When placing a new component in the schematic, this allows the user to
iterate through all units in the selected component without re-opening
the choose part dialog. It also allows the optional addition of
multiple copies of the same component to be placed in the schematic.
Fixes: lp:1806217
* https://bugs.launchpad.net/kicad/+bug/1806217
2019-10-29 12:20:14 -07:00
Seth Hillbrand
e533ea4ae6
eeschema: Keep selection with only components
...
Adding a field to a selection changes the bounding box and count for
rotation. This can cause odd offsets when the field is rotated against
the selection center rather than the bounding box as well as with the
component.
Fixes: lp:1849078
* https://bugs.launchpad.net/kicad/+bug/1849078
2019-10-28 10:50:26 -07:00
Seth Hillbrand
080275b4ee
Cleanup wire merge code
2019-10-18 20:15:29 -07:00
Seth Hillbrand
92011d91d2
eeschema: Testing for static/dynamic cast failure
2019-10-18 15:29:26 -07:00
Seth Hillbrand
363281dd4d
eeschema: add junction when needed for broken wire
...
The break wire command will break all wires at a point. If there are
multiple crossing wires, we need to check to see if a junction might be
required to reflect the new connection.
Fixes: lp:1848450
* https://bugs.launchpad.net/kicad/+bug/1848450
2019-10-17 12:22:57 -07:00
Jeff Young
d9336e9f97
Reset autoplace flag when a field is moved with respect to its component.
...
Fixes: lp:1843929
* https://bugs.launchpad.net/kicad/+bug/1843929
2019-10-01 15:31:52 +01:00
Seth Hillbrand
f2bf9fa534
eeschema: Prevent crash on move/drag re-entry
...
Restarting a move/drag operation breaks the stack by starting the tool
without popping it on exit.
TODO: implement RAII for these stack push/pop
2019-09-11 17:01:16 -07:00
Jeff Young
1a375a1e71
Better handling of SPICE current probe statements.
2019-09-10 11:07:47 +01:00
Jeff Young
f21e24cd17
Fix pin rotatation and SPICE current probe statement for 2-pin symbols
...
Fixes: lp:1843159
* https://bugs.launchpad.net/kicad/+bug/1843159
2019-09-08 22:54:49 +01: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
0ff20c18a3
More direct selection handling.
...
Fixes: lp:1842750
* https://bugs.launchpad.net/kicad/+bug/1842750
2019-09-07 20:52:17 +01:00
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
Jeff Young
efbc802f4d
Fix sheet rotation issues.
...
1) When sheet pins are on 3 or more sides there's no point in switching
the orientation to vertical.
2) Careful that we don't cause the sheet to walk when rotating and the
sheet-name or file-name is longer than the side it's on.
Fixes: lp:1841714
* https://bugs.launchpad.net/kicad/+bug/1841714
2019-09-02 22:36:55 +01:00
Jeff Young
fc50ddda64
Implement Paste Special for eeschema.
...
Also changes the normal paste behaviour to only clear annotations
when a collision is found.
Fixes: lp:1837002
* https://bugs.launchpad.net/kicad/+bug/1837002
2019-09-02 19:24:29 +01:00
Jeff Young
5e353e8967
Fix another case of selection getting out of sync with dragged items.
...
Use a big hammer this time.
Fixes: lp:1839780
* https://bugs.launchpad.net/kicad/+bug/1839780
2019-08-31 20:23:06 +01:00
Jeff Young
33625dbd9d
Add support for cut/paste of unsaved sheet content.
...
Fixes: lp:1841801
* https://bugs.launchpad.net/kicad/+bug/1841801
2019-08-30 21:56:57 +01:00
Jeff Young
71c7bf3274
Avoid ghosting items in original location when pasting.
2019-08-29 23:56:16 +01:00
Jeff Young
02a7a79e0d
Use resolved path when trying to load sheet content.
...
Also, if it can't be loaded then at least initialize it so that we
don't crash later (trying to access a NULL screen).
Fixes: lp:1841801
* https://bugs.launchpad.net/kicad/+bug/1841801
2019-08-29 23:56:16 +01:00
Jeff Young
bc450853ae
More robust solution for adding dragged items to selection.
...
Fixes: lp:1839780
* https://bugs.launchpad.net/kicad/+bug/1839780
2019-08-29 23:56:16 +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
Seth Hillbrand
0d3f6a4930
eeschema: Remove Save All
...
Saving individual parts of a schematic can break the schematic. This
moves the schematic save option to save all sheets rather than just the
current sheet.
Fixes: lp:1840383
* https://bugs.launchpad.net/kicad/+bug/1840383
2019-08-27 20:21:02 -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
49a0907c55
Force deletion of junctions which were selected.
...
Fixes: lp:1841456
* https://bugs.launchpad.net/kicad/+bug/1841456
2019-08-27 19:23:07 +01:00
Jeff Young
b109aba663
Add a file browser to the Sheet Properties dialog.
...
Fixes: lp:1840459
* https://bugs.launchpad.net/kicad/+bug/1840459
2019-08-26 00:45:34 +01:00
Jeff Young
23fd4b64dd
Remove curly braces from netname escaping context.
...
They're now used for bus definition control characters.
Also fixes the sheet pin edit dialog to correctly escape/unescape
netnames.
Fixes: lp:1840834
* https://bugs.launchpad.net/kicad/+bug/1840834
2019-08-22 10:53:39 +01:00
Jeff Young
cc93d82025
Don't drop selection until unfold net has been chosen.
...
Fixes: lp:1831466
* https://bugs.launchpad.net/kicad/+bug/1831466
2019-08-21 15:35:02 +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
Seth Hillbrand
3135b63976
Eeschema: Update pins on paste
...
We use the pin cache to mark the pin locations for future operations.
This needs to be updated after paste.
Fixes: lp:1840286
* https://bugs.launchpad.net/kicad/+bug/1840286
2019-08-16 09:32:35 -07:00
Ian McInerney
49dd5d838c
libedit: Fix inverted Y axis on move command
...
Also clean up some code formatting issues
2019-08-15 20:13:18 +01:00
Jeff Young
29af26565d
Fix re-entrancy issue in LibEdit move tool.
2019-08-15 15:51:27 +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
206b40621e
Fix bugs in Eeschema paste.
...
1) don't ASSERT; use exceptions (which can be caught) instead.
2) clean up LIB_LOGGER so it's only used during sync
3) fix typos in wxLogMessage() calls so they produce output.
4) throw on unrecognized token in loadContent().
5) if clipboard can't be pasted as content then paste as text.
Fixes: lp:1840172
* https://bugs.launchpad.net/kicad/+bug/1840172
2019-08-15 10:00:23 +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
e855b244ae
Highlight whole net for simulation voltage probe.
2019-08-12 22:21:09 +01: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
Jeff Young
039bd92ea5
Make LibEdit respect the Move-warps-cursor setting.
2019-08-10 11:58:05 +01:00
Jeff Young
c5fb8518d2
Redraw pins when placing when they are modified.
...
Fixes: lp:1839363
* https://bugs.launchpad.net/kicad/+bug/1839363
2019-08-08 14:09:42 +01:00
Jeff Young
9fe7bfb596
Check for focus loss from dialog before doing cut/copy/paste in edit frame.
...
Fixes: lp:1838708
* https://bugs.launchpad.net/kicad/+bug/1838708
2019-08-08 13:51:23 +01:00
Jeff Young
a96158e26b
Add current probe to SPICE simulation.
...
Fixes: lp:1740321
* https://bugs.launchpad.net/kicad/+bug/1740321
2019-08-05 16:48:18 -06:00
Jeff Young
23d824de66
Simulator improvements.
...
1) Add highlighting to simProbe and simTune tools.
2) Probe tool should accept wires and pins, not wires and components.
3) Give simulator window a flat look to match rest of Kicad.
4) Collapse whitespace out of simulator window.
5) Add some error messages.
6) Add some whitespace to simulation setting dialog.
2019-08-05 16:48:18 -06:00
Ian McInerney
ce7833b982
Warp display when selecting schematic items
...
When selecting items where the reference point is off-screen, GTK
would default the cursor to jump to the bottom of the screen.
Fixes: lp:1838843
* https://bugs.launchpad.net/kicad/+bug/1838843
2019-08-03 19:17:53 -06:00
Jeff Young
c624ee9cff
Re-parent new objects on duplicate.
...
Fixes: lp:1838269
* https://bugs.launchpad.net/kicad/+bug/1838269
2019-08-01 21:40:18 -06: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
c03535343c
Don't apply GTK fix to OSX: it produces somewhat random crashes.
...
Fixes: lp:1837225
* https://bugs.launchpad.net/kicad/+bug/1837225
2019-07-28 11:28:42 -06:00
Jeff Young
70270f5bd1
Fix accidental commit of debugging change.
2019-07-27 23:33:34 -06:00
Jeff Young
0a0eb35ee8
Update comments with latest test results.
2019-07-27 23:27:21 -06:00
Jeff Young
2af41e87f9
Don't add first found object to selection until Find (or return) is hit.
...
Fixes: lp:1838021
* https://bugs.launchpad.net/kicad/+bug/1838021
2019-07-27 00:20:52 -06:00
Jeff Young
21b90de829
Another attempt to work around Apple's [NSAlert runModal] bug.
...
Fixes: lp:1837225
* https://bugs.launchpad.net/kicad/+bug/1837225
2019-07-26 16:47:17 -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
jean-pierre charras
6b031d9b9e
Symbol editor: fix an issue when editing LIB_RECTANGLE graphic items.
...
The point editor expects rectangles with a height and width > 0.
Previously, this constraint did not exist,
so some LIB_RECTANGLE graphic items can create issues when trying to move a corner.
Now, the LIB_RECTANGLE graphic item is normalized before trying to move a corner.
2019-07-26 10:40:40 +02:00
Jeff Young
b858fa38c4
Fix crash bugs in picker tools.
2019-07-21 19:06:06 -06:00
jean-pierre charras
de4854d112
Eeschema - restrict buses and wires to H and V orientation was taken in account only when activating the Create Bus or Wire tool.
...
Now taken in account during creation.
Fixes: lp:1837308
https://bugs.launchpad.net/kicad/+bug/1837308
2019-07-21 10:02:43 +02:00
Jeff Young
4d4adf0753
A possible hack to work around the apple runModal bug.
...
Fixes: lp:1837225
* https://bugs.launchpad.net/kicad/+bug/1837225
2019-07-20 17:31:56 -06:00
Jeff Young
0821f1ac11
Move crosshairs to found item; remove find highlighting when find dialog closed.
...
Fixes: lp:1837069
* https://bugs.launchpad.net/kicad/+bug/1837069
2019-07-19 18:41:11 -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
jean-pierre charras
e32a50b34d
Simulator: fix a crash when using the "Probe" or "Tune" tool, when clicking on an item is schematic editor.
2019-07-19 10:12:54 +02:00
Seth Hillbrand
5324b65fb0
eeschema: Don't trust the pointer
...
We are not guaranteed a selection. Keep pointers to the front items
guarded. This can happen after repeating a new item, e.g.
2019-07-17 18:21:36 -07:00
Jeff Young
3de00eef5f
Cleanup.
2019-07-17 21:45:43 +01:00
Jeff Young
d67c2d13c7
Fix re-entrancy problem in cross-probing.
...
Fixes: lp:1836940
* https://bugs.launchpad.net/kicad/+bug/1836940
Fixes: lp:1836937
* https://bugs.launchpad.net/kicad/+bug/1836937
2019-07-17 21:35:28 +01:00
Jeff Young
a61673a144
Fix compile error for those who have to use the somewhat feeble gcc.
2019-07-16 15:11:50 +01:00
Jeff Young
7d10b29592
Cleanup unused includes.
2019-07-16 01:15:33 +01:00
Jeff Young
3069fd5974
Exit point editor after an <esc> while dragging.
...
Fixes: lp:1836652
* https://bugs.launchpad.net/kicad/+bug/1836652
2019-07-16 01:09:49 +01: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
34894acb89
Don't try to copy a null item.
...
Fixes: lp:1836126
* https://bugs.launchpad.net/kicad/+bug/1836126
2019-07-11 18:23:32 +01:00
Jeff Young
029b624e96
When adding new wires due to directly-connected items, don't try and de-select them after an undo. The won't be around anymore.
...
Fixes: lp:1836218
* https://bugs.launchpad.net/kicad/+bug/1836218
2019-07-11 17:36:32 +01:00
Jeff Young
cd1a1a67fb
Add seleciton/brightening/highlighting to images.
2019-07-10 01:14:28 +01:00
Jeff Young
30ec895c96
Cleanup event processing stuff to keep better track of "handled".
...
See: https://lists.launchpad.net/kicad-developers/msg41471.html .
2019-07-09 21:59:46 +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
46f47adebe
Update symbols after assigning different LIB_IDs.
...
Fixes: lp:1835612
* https://bugs.launchpad.net/kicad/+bug/1835612
2019-07-09 12:38:41 +01:00
Jeff Young
3a8f32c380
Convert ShowEEschema to an ACTION so it can get a hotkey assignment.
...
Fixes: lp:1686010
* https://bugs.launchpad.net/kicad/+bug/1686010
2019-07-09 00:43:41 +01:00
Jeff Young
d3d0bdbe17
Go back to rotating selection around center.
...
Fixes: lp:https://bugs.launchpad.net/kicad/+bug/1833371
* https://bugs.launchpad.net/kicad/+bug/https://bugs.launchpad.net/kicad/+bug/1833371
2019-07-09 00:14:32 +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
jean-pierre charras
fffb0d340f
Eeschema: fix not deletable bitmap issue (missing SCH_BITMAP in deletable list).
...
Also display bitmap info in message panel.
Fixes: lp:1835125
https://bugs.launchpad.net/kicad/+bug/1835125
2019-07-05 10:25:23 +02:00
Maciej Suminski
c715a22e1c
Symbol Editor: clear IS_NEW flag after placing a pin
...
IS_NEW flag needs to be cleared after a pin is placed, otherwise further
move operations will keep adding the pin to the edited symbol.
2019-07-03 13:32:47 +02:00
Jeff Young
d03041b565
Cleanup.
2019-07-02 21:36:42 +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
jean-pierre charras
5ed8ba5bf3
Libedit: fix a bug in edit graphic item properties:
...
When changing the common to units and/or common to convert options, the item properties were not updated.
2019-07-01 12:36:46 +02:00
Jeff Young
d88bddad7e
Respect m_DrawSpecificUnit and m_DrawSpecificConvert when pasting.
...
Fixes: lp:1834719
* https://bugs.launchpad.net/kicad/+bug/1834719
2019-06-29 22:20:40 +01:00
Jeff Young
09b07cd387
Minor adjustments to arc editing algorithms.
...
1) Don't snap center since it will be re-computed (most likely
off-grid) anyway.
2) Don't flip shape during initial drawing.
2019-06-29 20:03:08 +01:00
Jeff Young
232e21cb37
Restore selection properly after an undo.
2019-06-29 20:03:08 +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
2ed3bf47bb
Improve hittesting for Eeschema and LibEdit delete tools.
2019-06-28 22:18:30 +01:00
Jeff Young
a72b5416c3
Show preview object for Eeschema junction, noconnect and bus entry 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
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
7292ce6a8b
Improve eeschema selection disambiguation logic.
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
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
Jeff Young
f9702aab87
Immediate actions for PlEditor, PcbNew, etc.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
33773bad4d
Yet more command conversions to ACTIONs.
2019-06-02 21:10:56 +01: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
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
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
d2daab808c
Remove some legacy cursor handling stuff.
2019-05-31 21:54:22 +01:00
jean-pierre charras
4842c73530
Fix minor compil warnings.
2019-05-31 21:38:30 +02: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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
f87d371b8b
Move to shared COLLECTORS for sch and lib.
2019-05-06 15:31:23 +01:00
Jeff Young
49231ac08f
Fix missing event processing for Leave Sheet button in toolbar.
2019-05-06 03:30:51 +01: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
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
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
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
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