Commit graph

4544 commits

Author SHA1 Message Date
waaake
3b1e7e9420 [ui] GraphEditor: Introduced DelegateSelectionLine to the graph editor
Upon selection end the found intersected edges gets removed
2025-03-18 17:50:03 +01:00
waaake
7883b51c20 [ui] Added selectionLine and delegate variant to allow drawing an edge
The drawn edge is checked for intersection with individual node edges and any edge found interesecting is emitted when the selection ends
2025-03-18 17:47:34 +01:00
waaake
6c163cb731 [ui] Graph: Added method to delete edges by indices
This method allows removal of edges from the graph by index of the edge
2025-03-18 17:47:33 +01:00
waaake
2cc93f7006 [ui] Edge: Exposed the intersects method from the QML Edge component 2025-03-18 17:47:33 +01:00
waaake
37b7831960 [ui] Edge: Added method to detect an intersection of a Rectangle's diagonal agasint the Edge Path
If an edge or shape were to cut the edge, the intersection of the shake is detected by this function
2025-03-18 17:47:32 +01:00
waaake
d0aeafb34e [ui] GraphEditor: Moved the click on edge to remove with the remove popup to be triggered with right click 2025-03-18 17:47:32 +01:00
waaake
b07540eaac [ui] GraphEditor: Added check for node shake and connected shake to disconnect nodes method 2025-03-18 17:47:31 +01:00
waaake
1fdf27022b [ui] Node: Added backend and signal for a Node Shake
Node shake is detected when the node starts changins positions after being clicked and it is tracked via a timer to consider a shake.

Emits the shaked signal when the node is shaked
2025-03-18 17:47:31 +01:00
waaake
ac220fd914 [ui] GraphEditor: Added Menu item to invoke disconnectSelectedNodes functionality for the graph 2025-03-18 17:47:30 +01:00
waaake
dc9b4c07b0 [ui] GraphEditor: Added shortcut to invoke disconnectSelectedNodes functionality for the graph 2025-03-18 17:47:30 +01:00
waaake
7beb173683 [ui] Graph: Added disconnectSelectedNodes function
This function is responsible to disconnect any edges incoming and outgoing edges from the nodes which do not lie in the current selection
2025-03-18 17:47:30 +01:00
waaake
456c3ccaea [ui][fix] Edge: Fixed the type for mouse event modifiers
With PySide6 the modifiers are now enum.Flag based. Updated type ensures the alt+mouse click removes edges from graphs
2025-03-18 17:47:29 +01:00
Fabien Castan
09720f6be1
Merge pull request #2696 from alicevision/dev/surveyInjecting
Node to inject survey points in the SFM
2025-03-17 10:53:40 +01:00
Fabien Castan
84769a0d01
Merge pull request #2695 from alicevision/fix/computationTime
[core] Node: Status should be `NONE` when there is no chunk
2025-03-12 12:45:18 +01:00
Candice Bentéjac
df7e6f8845 [core] Node: Status should be NONE when there is no chunk
Prior to this commit, nodes with a varying number of chunks were initialized with an empty list of chunks (as expected), but with a global status that was set to `SUCCESS` instead of `NONE`. This caused issue on the graphical side as `SUCCESS` is interpreted as the status for nodes that have been successfully computed.
2025-03-12 10:40:46 +00:00
Fabien Servant
d8f3a25b67 Injecting survey points 2025-03-11 11:40:35 +01:00
Fabien Castan
08614a398d
Merge pull request #2693 from alicevision/dev/relativePathsUpdate
[nodes] Replace `desc.Node.internalFolder` with `{nodeCacheFolder}`
2025-03-10 15:05:33 +01:00
Candice Bentéjac
091dbddcd3 [nodes] Replace desc.Node.internalFolder with {nodeCacheFolder}
For nodes that were added right before the merge of #2629, the replacement
still needed to be done.
2025-03-10 11:29:28 +00:00
Candice Bentéjac
21afd053f8
Merge pull request #2629 from alicevision/dev/relativePaths
Add relative paths to nodes as variables
2025-03-10 10:48:09 +00:00
Candice Bentéjac
aa0943e4bf
Merge pull request #2668 from alicevision/dev/exportImages
[nodes] Add nodes for versatile image exporting
2025-03-06 13:45:39 +00:00
Candice Bentéjac
ef33aabe5e [nodes] ExportImages: Fix category and namingMode parameter
Change the category to "Export" instead of "Utils" and align the
default value of the `namingMode` parameter with the one used in the
AliceVision's executable. Moreover, the value "viewId" was incorrect,
as "viewid" if the expected one.
2025-03-06 14:42:48 +01:00
Fabien Servant
92cc5b7cb2 images export nodes 2025-03-06 11:09:18 +00:00
Candice Bentéjac
2c06ea4870 [GraphEditor] Use attribute's evaluated value for "Open File"
Otherwise, input attributes with variables (either environment ones
or local ones) cannot be opened through "Open File", even though "Open
Containing Folder" works fine.
2025-03-05 13:36:34 +00:00
Candice Bentéjac
6b9e76d95a [nodes] ScenePreview: Use {nodeSourceCodeFolder} for the script's path 2025-03-05 13:36:34 +00:00
Candice Bentéjac
e0b2aafae3 [core] Attribute: Strip ending "/" from invalidation values
By doing so, invalidation values will evaluate to the same UID
independently from whether the attribute's value has been written
with an extra "/" or not.
2025-03-05 13:36:34 +00:00
Candice Bentéjac
8afc9adad3 [core] Node: Resolve nodeCacheFolder without cache for outputs 2025-03-05 13:36:33 +00:00
Candice Bentéjac
dafb7be688 [nodes] CameraInit: Use node's internal folder instead of the description's 2025-03-05 13:36:33 +00:00
Candice Bentéjac
23901c502b [desc] Remove internalFolder in desc.Node
This is fully replaced with `{nodeCacheFolder}`.
2025-03-05 13:36:32 +00:00
Candice Bentéjac
53de9090ca [tests] Replace desc.Node.internalFolder with {nodeCacheFolder} 2025-03-05 13:36:32 +00:00
Candice Bentéjac
2290c12da2 [nodes] Replace desc.Node.internalFolder with {nodeCacheFolder} 2025-03-05 13:36:31 +00:00
Candice Bentéjac
6cbb97d9a8 [core] Add default relative paths to the command line variables
Add 2 default entries to the command line variables:
- `nodeCacheFolder`, which contains the location of the cache folder
- `nodeSourceCodeFolder`, which contains the location of the file
describing the node
2025-03-05 13:26:53 +00:00
Candice Bentéjac
40fd46d476 [core] Node: Add a sourceCodeFolder property
This property stores the location of the source code for a given node
and is not exposed to the QML side.
2025-03-05 13:26:53 +00:00
Candice Bentéjac
5791bdb1bd
Merge pull request #2682 from alicevision/dev/choiceParamValuesOverride
ChoiceParam: add option to serialize overriden values
2025-03-05 10:19:42 +00:00
Candice Bentéjac
2f05261564
Merge pull request #2686 from alicevision/fix/attributeEditorTextField
[ui] AttributeEditor: Generic TextField param editor improvements
2025-02-27 11:36:09 +00:00
Yann Lanthony
634197583c [ui] AttributeEditor: Generic TextField param editor improvements
* Use disabled text color when attribute is readonly.
* Improved UX: text cursor on mouse hovering.
* Simplify context menu handling.
2025-02-26 15:24:21 +01:00
demoulinv
f901f814f7
Merge pull request #2667 from alicevision/dev/usdSupport
Export USD Node
2025-02-26 10:57:11 +01:00
Yann Lanthony
5a66087eac
Merge pull request #2680 from alicevision/fix/jsParamInjection
[qml] Fix QML warnings when dropping project files into the Graph Editor
2025-02-25 17:39:18 +01:00
Yann Lanthony
fb3c1b5718
Merge pull request #2678 from alicevision/fix/emptyPipelineMenu
[GraphEditor] Only display "Pipelines" menu when templates are available
2025-02-25 17:38:47 +01:00
Candice Bentéjac
6bdf50ae69
Merge pull request #2683 from alicevision/fix/qmlInvalidTyping
[ui] Application: fix save-as dialog not working properly (Qt6.7+)
2025-02-24 13:21:19 +00:00
Yann Lanthony
cdb25e28df [ui] Application: fix save-as dialog not working properly (Qt6.7+)
Since Qt 6.7, type annotations are enforced at runtime.
Typing the `sourceSaveDialog` as Dialog (or Platform.FileDialog) breaks the value received by the function and its behavior.
2025-02-21 18:18:15 +01:00
Yann Lanthony
062bc3ca28 [core] ChoiceParam: add option to serialize overriden values
Introduce a new `saveValuesOverride` parameter on desc.ChoiceParam to define
whether to serialize the list of possible values if they have been overridden at runtime.
2025-02-21 10:45:26 +01:00
Candice Bentéjac
8ee7b50204 [nodes] Fix labels and descriptions for some nodes 2025-02-20 12:56:39 +01:00
Candice Bentéjac
54c8bfefa8 [pipelines] Experimental: Align nodes and apply correct colors 2025-02-20 12:56:39 +01:00
Candice Bentéjac
bfb9ee3272 [GraphEditor] Convert file to string before testing its extension
This fixes the "Property 'endsWith' of object file xxx is not a function"
warning.
2025-02-20 11:06:07 +01:00
Candice Bentéjac
e214868d81 [ui] Fix injections into signal handlers with JS functions 2025-02-20 11:06:06 +01:00
Candice Bentéjac
1fbf42a3f4 [GraphEditor] Only display "Pipelines" menu when templates are available
In the node menu (displayed when pressing "Tab" or right-clicking in the
Graph Editor), the "Pipelines" menu entry used to be displayed even if
there was no available template (the entry would open to display an
empty list).

This commit adds a check to ensure that the "Pipelines" menu is only
added to the node menu if there is at least one template that is
available. Otherwise, it is not displayed.
2025-02-19 15:14:27 +01:00
Yann Lanthony
b29bcfe0c5
Merge pull request #2676 from alicevision/fix/qmlComponentsRegistration
[ui] app: Register components to QML before instantiating the engine
2025-02-19 12:20:03 +01:00
Candice Bentéjac
96a9757f5c [ui] app: Register components to QML before instantiating the engine 2025-02-18 18:15:19 +01:00
Candice Bentéjac
6355037036
Merge pull request #2671 from alicevision/dev/nodeCreationCallback
NodeAPI: Trigger node creation callback only for explicit new node creation
2025-02-18 18:07:25 +01:00
Fabien Castan
550f685c07
Merge pull request #2675 from alicevision/fix/cliRecentProjectFiles
Fix Meshroom App CLI `latest` option
2025-02-17 23:35:20 +01:00