- "meshroom -h / --help": now provides command line documentation (so
argparse is done before GUI creation)
- new positional argument to set project file or input folder
- new "--pipeline" option to set a default pipeline, also support an
environment variable
* store status file last modification time on NodeChunk
* ChunksMonitor: don't stop the underlying thread when changing chunks, only modify the list of monitored files + use a mutex for thread-safety
Saving file on disk impacts cache folder location and therefore status files paths; force re-evaluation of monitored filepaths at the end of a "saveAs" operation.
* make last modification time check on status asynchronous using a dedicated thread + use a ThreadPool to run tasks in parallel
* avoid UI freeze when checking for status updates + increase performances
Depending on the 'Save File Dialog' used (OS/Qt fallback implementation), it is possible to save the meshroom graph with another extension, making it impossible to reload it via File>Open (due to the filter allowing only *.mg files).
* ease the deletion of a branch from a given starting point
* accessible with alt+del on a node
* re-order menu to put the most destructive operation (Clear Data) at the very end
* change 'destroyCallback' function to 'resetOnDestroy' boolean parameter
* create a dedicated lambda to reset value to None when object is destroyed and attach it to the target instance
* only way to keep a reference to this function that can be used for destroyed signal (dis)connection with instance accessible
* keep track of currently hovered node in UIGraph on Python side
* Node: show border on hover + make MouseArea contain everything else to always get hover events, even when cursor is over children attribute pins
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
handle this low-level operation engine side
* fix ListAttribute children links duplication
* handle CompatibilityNode duplication
* move corresponding unit test in test_graph.py
* [ui] add DuplicateNodeCommand