The 'isSaving' flag is a way to identify if the project is currently being saved and serves as a way to correctly distinguish whether the current filepath change is due to a save or a new scene or a load operation
Updated the event trigger to be onVisibleChanged and the condition to check whether the current selected node is an incomputable node and the current tab index does not exist for it before resetting the index to 0
Introduce new environment variable to enable and configure
QML debugging when starting Meshroom GUI app.
Introduce a new EnvVar class to centralize the management of
environment variables across Meshroom.
Keys.AfterItem as the priority ensures the Item's own key events are handled before Forwarding it to specified items. This handles all defined Enter and Return key presses
`pointSize` was divided by 100 before being sent to the shader that
rendered the programmable points, and was used as is to set the size of
the "fixed size" points implicitly in the QML.
Now that both cases are handled by the same shader, we do not need to
perform this division here: it will be done directly in the shader (by
opposition, keeping it here would have meant performing a x100
multiplication in the shader for the "fixed size" case).
The `fixedPointSize` parameter was used to determine whether the
point size was fixed or programmable from the QML (using a `PointSize`
render state). With Qt6, this render state is not correctly handled by
the RHI and we need to set directly within the shader whether the point
size is fixed or not, hence the binding.
The template has been renamed to fit the automatic name parsing of
template files, it has been effectively converted to an actual template
and all the nodes have been aligned coherently.
Remove dynamic tooltip for cut/copy actions that displays all
selected node names:
- This inline textual information is hard to process as a user.
- Avoid binding to and iteration over the selection.
Re-write the computability status of the current node selection
as properties within the node menu component.
Note that this should be further improved to better scale with the size
of the selection, as it requires to traverse the graph for each node.
Avoid having the node context menu always evaluating the current
state of the selected nodes for its own display, by dynamically
creating it on demand with a Loader.
Use callbacks for recomputing/resubmitting actions, instead of
storing state in the UI components.
Switch selection management backend to a QItemSelectionModel,
while keeping the current 'selectedNodes' API for now.
Use DelegateSectionBox for node selection in the graph, and
rewrite the handling of node selection / displacement.
- SelectionBox: generic Selection box component.
- DelegateSelectionBox: specialized SelectionBox to select model delegates
from an instantiator (Repeater, ListView).
Also Introduce a Geom2D helper class to provide missing features for
intersection testing in QML.
Implementing this method allows to use QObjectListModel
in combination with other Qt classes that can act on a model
(eg: QSelectionItemModel, QSortFilterProxyModel...).