Commit graph

4361 commits

Author SHA1 Message Date
Candice Bentéjac
faff99f963
Merge pull request #2625 from alicevision/fix/validateSavePermissions
[ui] Add Validation for Save file path accessibility
2024-12-23 19:07:00 +01:00
Candice Bentéjac
e8d177e28e
Merge pull request #2579 from alicevision/dev/nukeExport
[nodes] `ExportDistortion`: Add animated distortion option
2024-12-23 18:34:13 +01:00
Candice Bentéjac
65cd6dc394 [pipelines] Update ExportDistortion version for all nodes 2024-12-23 18:24:56 +01:00
Fabien Servant @ TCS
139dba8e8d
Update ExportDistortion version number 2024-12-23 11:03:48 +01:00
waaake
21b5080dcb [ui] Application: Save now validates user access to the save directory
File and template save as validation includes an access check to ensure that a given directory exists and the user has access for writing to it
2024-12-23 09:03:41 +05:30
waaake
9b96cfcc99 [helper] Filepath: Added accessibility helper method
Accessibility method helps identify whether a given save path directory is accessible for the user to write to.
2024-12-23 09:01:56 +05:30
Candice Bentéjac
aeb77d8dbc
Merge pull request #2622 from alicevision/fix/NodeMenuKeys
[ui] GraphEditor: Address Key Event Conflicts in Node Menu
2024-12-19 09:54:56 +00:00
waaake
b31da19e66 [ui] GraphEditor: Fixed Key handling for Node creation Menu
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
2024-12-19 06:05:11 +01:00
Fabien Castan
6e99f9daeb
Merge pull request #2619 from alicevision/dev/sfmBootstraping
Sfm Bootstraping parameterization
2024-12-18 09:17:00 +01:00
Fabien Castan
e7a5387e96
Merge pull request #2620 from alicevision/fix/qt6Issues
Fix Qt6-induced issues
2024-12-18 09:12:16 +01:00
Candice Bentéjac
ebbd000714 [Viewer3D] MediaLoader: Send pointSize as is
`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).
2024-12-17 19:07:40 +01:00
Candice Bentéjac
e3f1e27c68 [Viewer3D] MediaLoader: Bind fixedPointSize for the SfMLoader
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.
2024-12-17 19:05:03 +01:00
Candice Bentéjac
9aa9e7fe6e [GraphEditor] Add missing import of Utils to access Format methods 2024-12-17 11:03:33 +00:00
Fabien Castan
0aa163d603
Merge pull request #2582 from alicevision/dev/sfmFilter
New MultiView Photometric Stereo pipeline and new sfmFilter node
2024-12-13 23:36:57 +01:00
Candice Bentéjac
92a4db40b0 [pipelines] Fix multi-view photometric stereo template
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.
2024-12-13 17:09:20 +01:00
Candice Bentéjac
d65b52a34f [nodes] SfMFilter: Add verbose level attribute 2024-12-13 17:09:20 +01:00
Fabien Castan
1f441b7c92 [nodes] SfMFilter: Adapt to node api changes (no more uid) 2024-12-13 17:09:19 +01:00
jmelou
47bbce4ddf [pipeline] Simplify MV-PS pipeline
Pose transfert in SfMTransfert
2024-12-13 17:09:19 +01:00
jmelou
2519a57e76 [node] Add SfMFilter node
Select views using regex
2024-12-13 17:09:19 +01:00
Yann Lanthony
c2d4159cef
Merge pull request #2618 from alicevision/ci/codecov
CI: add codecov
2024-12-13 13:10:28 +01:00
Fabien Castan
5ea6af6905
CI: add codecov 2024-12-13 13:03:25 +01:00
Candice Bentéjac
c93fb3c41e
Merge pull request #2616 from alicevision/fix/dynamicOutputIcon
[GraphEditor] AttributeItemDelegate: Use MaterialLabel for uncomputed attributes
2024-12-13 11:12:49 +01:00
Candice Bentéjac
e565458131 [GraphEditor] AttributeItemDelegate: Use MaterialLabel for uncomputed components 2024-12-11 14:59:35 +01:00
Candice Bentéjac
99e5edf518
Merge pull request #2615 from alicevision/fix/returnGraphLoadStatus
Fix projects disappearing from the list of recent projects
2024-12-11 13:44:51 +00:00
Yann Lanthony
a0398c45c0
[core] Graph: fix Graph.load missing return value
Add missing return statement for the load function, used by the UI to determine whether the load was successful.
2024-12-11 14:10:43 +01:00
Fabien Castan
908312ad1c
Merge pull request #2610 from alicevision/dev/colorizePointCloud
New SfMColorizing Node
2024-12-10 09:29:19 +01:00
Fabien Castan
2d56016770
Merge pull request #2605 from alicevision/fix/nodeSelectionPerfs
Refactor Node selection for better UX and performance
2024-12-09 20:07:20 +01:00
Yann Lanthony
944ff15002 [ui] Additive mode for select following Nodes
Implement additive selection behavior when selecting downstream
nodes from a node, using Alt+Shift+Click.
2024-12-09 11:16:33 +01:00
Yann Lanthony
4730cc0800 Update git-blame-ignore-revs 2024-12-09 10:27:32 +01:00
Yann Lanthony
fc85999011 [ui] GraphEditor: toggle node selected state on Ctrl+click
Closer to the standard behavior of the Ctrl modifier key for selection.
2024-12-09 10:18:48 +01:00
Yann Lanthony
87c0cef605 [ui] GraphEditor: fix indentation 2024-12-06 11:03:30 +01:00
Yann Lanthony
4a60e24c2e [ui] GraphEditor: Improve node selected status logic
Instead of connecting to onSelectionChanged, use ItemSelectionModel.hasSelection
property, that can be use for direct bindings with the same behavior.
https://doc.qt.io/qt-6/qml-qtqml-models-itemselectionmodel.html#hasSelection-prop
2024-12-06 10:47:20 +01:00
Yann Lanthony
a3268f456c [ui] Graph: cleanup unused function 2024-12-06 10:14:50 +01:00
Yann Lanthony
67bd43e040 [ui] Graph: remove selectedNodes model
Expose `getSelectedNode` that relies on the QItemSelectionModel
for imperative code in QML that still requires to access the
selected node instances.
2024-12-06 10:14:50 +01:00
Yann Lanthony
cdfa6186b1 [ui] Graph: Add clearSelectedNodesData method
Convenient function to directly work on the current node selection.
2024-12-06 10:14:50 +01:00
Yann Lanthony
8dbcfa392f [ui] Application: Simplify Cut/CopyNodes actions
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.
2024-12-06 10:14:50 +01:00
Yann Lanthony
d11a1f62cc [ui] Graph Editor: fix remaining use of deleted function 2024-12-06 10:14:50 +01:00
Yann Lanthony
107b1e959a [ui] GraphEditor: cache selected node computability status
Avoid to evaluate the computability/submitability status of each
node twice by caching the information when creating the node
context menu.
2024-12-06 10:14:50 +01:00
Yann Lanthony
ade1f87b8f [ui] GraphEditor: Centralize node selection computability status
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.
2024-12-06 10:14:50 +01:00
Yann Lanthony
b5836d96ed [ui] GraphEditor: Create node context menu after selection update
Delay the loading of the node context menu once the node selection
has been updated, for it to consider the proper selection.
2024-12-06 10:14:50 +01:00
Yann Lanthony
b3a8c6a1f2 [ui] GraphEditor: move node context menu to a Loader
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.
2024-12-06 10:14:50 +01:00
Yann Lanthony
686927a92d [ui] Graph: add removeSelectedNodes method
Add and use an explicit method to remove the currently selected nodes
in a graph.
2024-12-06 10:14:43 +01:00
Yann Lanthony
05eabb2b13 [ui] Graph: Node selection refactor (1)
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.
2024-12-06 10:13:51 +01:00
Yann Lanthony
6d2e9a2ba9 [ui] Utils: add SelectionBox and DelegateSelectionBox
- 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.
2024-12-06 10:12:11 +01:00
Yann Lanthony
dfe2166942 [ui] Node: expose additional mouse events
Forward mouse 'released' and 'clicked' events for giving
more control over node selection management.
2024-12-06 10:12:11 +01:00
Yann Lanthony
b21192282d QObjectListModel: implement 'index' method
Implementing this method allows to use QObjectListModel
in combination with other Qt classes that can act on a model
(eg: QSelectionItemModel, QSortFilterProxyModel...).
2024-12-06 10:12:11 +01:00
Yann Lanthony
df4ad22b6c
Merge pull request #2613 from alicevision/fix/edgeSelection
[GraphEditor] Edge: Correctly update the `EdgeMouseArea` when moving nodes
2024-12-03 12:48:05 +01:00
Candice Bentéjac
0dca19f158 [GraphEditor] Edge: Correctly update the EdgeMouseArea when moving nodes 2024-12-03 11:56:56 +01:00
Yann Lanthony
feedad4775
Merge pull request #2602 from alicevision/fix/ValidateSaveFile
[BugFix] File save dialog now requires a valid filename
2024-12-03 09:57:37 +01:00
waaake
32a493d026 [ui] FileSaveDialog: Added Validation to the file save process
Validating the filename to ensure that the file does not gets saved with just the extension
2024-12-02 17:42:02 +05:30