Binding the "enabled" property of AlembicLoader's ObjectPicker to the parent MediaLoader's own "enabled" property caused invalid state where the loaded AlembicEntity was partially visible when toggling object visibility (since Qt 5.13).
In order to disable camera picking when AlembicEntity is disable, scale the camSelector component to 0.
* add a generic ChartViewLegend component that provides an interactive legend for ChartViews
* rely more on data bindings to control Series visibility and display
* NodeLog: remove intermediate property for Loader
* StatViewer
* keep only one function to load source file
* only send request only after the previous one fully completed
* update deltaTime before initializing charts
* reset "sourceModified" property when source changes
Since Qt-5.13, RenderSettings.OnDemand can lead to rendering issues due to non-triggered updates (e.g: when resizing the viewport or changing visibilities of objects displayed).
On auto-realod mode, only trigger a new request when the last one has been completed. Avoids requests loops on slow filesystems that can lead to UI freezes.
Make FeaturesViewer available in Viewer2D to display the feature points of the current view, based on the current FeatureExtraction node.
* FeaturesInfoOverlay: overlay that displays info and provides controls over a FeaturesViewer component.
* ColorChart: color picker based on a set of predefined colors.
* 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
Introduce a new TextFileViewer component with auto-reload feature based on a ListView instead of a TextArea for performance reasons. Uses the text content split on line breaks as ListView's model.
Features:
* auto-scroll to bottom
* display line numbers
* customizable line delegates (e.g.: display a real progress bar)
* color lines according to log level
Usage of DelegateModel for model filtering has not proven to be the most stable solution, and might be responsible for random crashes happening during engine's garbage collection. Implement Loader-based alternative:
* first delegate is a Loader which creates the AttributeItemDelegate if necessary
* compensate spacing using negative height when element is hidden
If an outside 3D media file is the first thing ever loaded, 'model.attribute' will be initialized to 'null' and will prevent an actual Attribute to be associated to this role. This breaks media loading from within Meshroom.
* don't try to put object in cache on MediaLoader 'Component.onCompleted' callback ; only effect was to put back in cache a media retrieved from cache during 'onFinalSourceChanged'
* redesign 'updateModelAndCache' as 'updateModel' and 'updateCacheAndModel' for this purpose
* wait for MediaLoader full initialization (@ 'NodeInstiator.onObjectAdded' callback) to reparent an object retrieved from cache; otherwise it silently fails.