The content of the "DISPLAY" and "CAMERA" groups is hidden by default.
Instead of customizing the `Group` object's toolbar to hide/expand these
groups, the `ExpandableGroup` object, which is specifically made to handle
these cases, is used. The groups can be expanded either by clicking
the dedicated tool button or anywhere on the toolbar.
If any model with cameras is displayed in the 3D Viewer, a slider can
be used to filter the cameras that are being currently displayed based
on their resection IDs. This allows to visualize the order in which the
cameras have been added, and the groups in which they have been added.
...for node attributes and 3D inspector
- add search bar for node attributes
- add search bar for 3D inspector
- improve attributes filtering by adding more flexibility
and fixing some issues
This commit addresses warnings that were raised by QtCreator's linter:
- IDs declared more than once
- variables declared more than once in the same scope
- type coercions
- variables declared as "var" when their type is known
- unclosed "case" in switch-case
Some QML properties access exposed Python objects that may or may not
be null upon their access. When these objects are accessed while null,
QML issues "TypeError" warnings. These warnings have no functional
impact as QML correctly handles trying to access null objects, but can
spam the logs.
This commit aims at fixing all these warnings by checking that the
Python objects are not null before being accessed.
## Description
Fix various typos in the source code. This includes user facing code, documentation, and source comments. This PR has not been tested.
Closes#1605
Now, if we change the translation of the gizmo (for instance), we make sure rotation and scale will not be changed. Very useful to avoid approximations and to have a clean undo-redo stack.
- When SfMTransform uses manual method, we display in real-time the input on which we apply the gizmo transformation.
- For now, the options "Additional Scale", "Apply Scale/Rotation/Translation" of the node are not handled. The purpose will be to disable them when the method is "manual".