* Do not handle tab key event when committing property changes so the
property grid tab navigation works correctly.
* Do not call commit property changes on tab key when no changes are
pending.
* Skip event handling in the base object value change and changing event
handlers in case they do not get overloaded in derived objects.
* Do not force focus to canvas on property change so arrow and tab key
grid navigation work properly. Forcing the user to click the property
grid control to edit a single property doesn't make sense.
* Pass properties panel show event up the event stack.
* Do not set focus to canvas in tool dispatcher if it already has the
focus.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16957
ADDED: Horizontal/vertical zoom for simulator plots, via mouse wheel,
toolbar buttons, menu commands, and hotkeys.
ADDED: Simulator preferences panel, populated with mouse wheel
and trackpad settings that control pan and zoom of simulator plots.
ADDED: Zoom In/Out Horizontally/Vertically commands that can be bound
to hotkeys.
CHANGED: Simulator plot scroll wheel gestures are no longer hard-coded
and can now be configured via the new Simulator preferences panel.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16597
Other unreported bugs that were fixed:
- Fixed wierd, jumpy simulator plot view limiting behavior.
- Fixed Zoom In Center and Zoom Out Center commands not preserving
the simulator plot center point.
- Fixed simulator plot nudging when exported as PNGs.
- Fixed rectangular selection zoom being able to exceed simulator plot
view limits.
Notes:
- Provided new SIM_PREFERENCES struct to be used for future
simulator preferences set via the simulator preferences dialog.
- Bundled pre-existing EESCHEMA_SETTINGS::SIMULATOR settings into
EESCHEMA_SETTINGS::SIMULATOR::VIEW.
- Replaced mpWindow::EnableMouseWheelPan with more general
SetMouseWheelActions.
- Refactored and tidied up wxMathPlot's mpWindow code involved with
fitting, zooming, and panning.
- Consolidated long lists of duplicated member variable initializers to
a new mpWindow private delegated constructor.
- Provided provisional Zoom In/Out Horizontally/Vertically toolbar
icons that need improvement by a graphics designer.
- Provided gitignore entries for the Qt Creator IDE
Parenting dialogs to child windows of top level windows is most likely
not defined behavior. It's also likely that this behavior varies across
platforms so it' best not to risk doing it. wxWidgets does not check if
the dialog parent is actually a top level window. There may be other
places we are doing this with our message dialogs so we should do an
audit.