* add featureExtraction property to keep track of current FeatureExtraction node
* update it when current CameraInit node is changed
* allow to set current CameraInit by double clicking on a CameraInit node from the Graph Editor
* allow to solo a 3D media from the GraphEditor by double clicking on a node or an attribute with the Control modifier pressed
* consistent with Viewer3D.MediaLibrary behavior (solo on Ctrl+Click on visibility button)
* handle supported file extensions in Viewer3DSettings
* NodeEditor
* exposes Node parameters: compatibility, attributes and logs
* provides a placeholder when no active Node
* AttributeEditor
* only displays the list of Attributes
* use 'AttributeEditor' for GroupAttributes in AttributeItemDelegate
* Layout
* move NodeEditor on the same SplitView level as GraphEditor
* move current node name and menu to the Panel's header
Accessible from main menu Help > About Meshroom, or by pressing "F1". Provides info about Meshroom version + useful links and related Open Source Licenses.
* load COPYING.md from Meshroom/AliceVision files (either provided with the standalone package or online) + translate them to HTML for display (added `markdown` package in requirements)
* request.js: centralize function to open file urls
* provide system info from MeshroomApp (exposed as contextProperty)
* fit when the underlying graph has changed (new/open project)
* add 'F' shortcut to fit
* trigger fit after UI has been fully initialized (correct sizes)
Handle nodes move and auto-layout on Python side by using GraphLayout and MoveNodeCommand.
* Node QML component relies on underlying core.Node object's position
* MoveNodeCommand is called after a Node has been dragged
* partial/full auto-layout for specific graph operations (Duplication, Augmentation...) are now part of those operations
* serialized position in node data allows to properly restore nodes coordinates on undo/redo
* remove all layout/node moving code from QML
* display and allow to upgrade incompatible nodes after project loading
* add a ToolButton in main toolbar to open CompatibilityManager in case of compatibility issues
* bugfix: in latest PySide2 versions, application palette is not properly applied to all QtQuick Controls 2 components. Force this by exposing QApplication palette and bind it to the root ApplicationWindow.
* rename all "palette" ids to "activePalette" to avoid clashes with "palette" property on QtQuick Controls 2
* use parent component palette when it makes sense to propagate active/disabled style (instead of always using Active SystemPalette)
* move LiveSfmManager.stepCreated to Reconstruction.sfmAugmented
* add utility methods in Reconstruction to get all images/views used in the graph
* ui: perform local auto-layout on sfm augmentation on created nodes
* add the notion of a current SfM node in the Reconstruction
* retrieve views and poses from this node when selected or when its status changes
* use this information to display a status on Images in ImageGallery
* optional and only available if AlembicEntity QML plugin is in QML import path
* 3D viewer can load a 3D model and an Alembic file at the same time
* add contextual menu options to unload model/Alembic