Commit graph

2656 commits

Author SHA1 Message Date
Fabien Castan
78e19a1a34
Merge pull request #1728 from p12tic/reduce-qml-crash-confusion
[ui] Reduce confusion when qml loading fails
2022-08-25 20:04:10 +02:00
Povilas Kanapickas
9365a37bde [ui] Reduce confusion when qml loading fails
Currently we disable all logging out of qml by default. This is
problematic in case qml loading fails for any reason (e.g. missing
dependencies) as the user will be presented with a message that is not
actionable: "QQmlApplicationEngine failed to load component". There is
no way to understand what's happening unless the user knows about
MESHROOM_OUTPUT_QML_WARNINGS.

This is improved by checking for presence of "QQmlApplicationEngine
failed to load component" and warning if qml logging is disabled in that
case.
2022-08-25 18:47:16 +03:00
Candice Bentéjac
ede24713d0 Add "Copy" and "Paste" actions in the "Edit" menu
Also add a "Copy Node(s)" option in the nodes' right click menu.
2022-08-25 11:32:37 +02:00
Candice Bentéjac
e11452efdb Extend copy/paste support to selections containing multiple nodes 2022-08-25 11:08:57 +02:00
Fabien Castan
2005324e7e
Merge pull request #1755 from alicevision/fix/uiIntrinsicsTable
[ui] Update intrinsics table when switching between groups
2022-08-23 20:27:05 +02:00
Fabien Castan
906b7fc02b
Merge pull request #1748 from alicevision/fabiencastan-patch-1
[core] fix logging of nodes loading
2022-08-23 16:29:20 +02:00
Candice Bentéjac
08d502f4a6 Clear clipboard's content when exiting
Workaround for a bug in QClipboard that occurs when the clipboard
has been used within the app and its content exceeds a certain size
on X11/XCB.
This issue will hold up the app when exiting and is present in Qt5
versions.

With this workaround, the content of the clipboard will be lost when
exiting, but the app will exit normally.
2022-08-19 15:24:30 +02:00
Candice Bentéjac
5b65866e49 [ui] Paste a node on the mouse's position
When creating a node with a "paste" operation, place the node
on the mouse's position in the graph instead of default position (0,0).

If the mouse is placed on an existing node, the pasted node will be
placed on the mouse's position plus an offset so that the pasted node
does not directly overlap with the existing node.
2022-08-19 12:02:09 +02:00
Candice Bentéjac
ddda62a652 Add node to graph with Ctrl+V if valid node content is in the clipboard
Attempt to paste the clipboard's content in the graph when Ctrl+V is
pressed. If the clipboard contains a valid node description, add the
corresponding node to the graph.
Otherwise, do nothing.
2022-08-19 12:00:16 +02:00
Candice Bentéjac
751bad96c6 Copy selected node's content to the clipboard when Ctrl+C is pressed
When Ctrl+C is pressed while a node selected, its content is formatted
to JSON and copied to the system's clipboard.
2022-08-19 11:31:31 +02:00
Candice Bentéjac
93a3ad8f16 [ui] Update intrinsics table when switching between groups 2022-08-08 11:58:12 +02:00
Fabien Castan
92e77e77a9
Merge pull request #1750 from alicevision/dev/abstractCamInit
Add abstract InitNode
2022-08-05 12:23:04 +02:00
Candice Bentéjac
659c8a05ed Add abstract InitNode
InitNode is an abstract class which is meant to be inherited
by all the initialization nodes (such as CameraInit), included
those that might be created by the user.

InitNode contains methods that can be reimplemented by the
children classes if necessary.

This abstract class allows to keep on using scripts such as
meshroom_batch without having to modify them specifically or
being limited to using a CameraInit node.
2022-08-05 10:42:59 +02:00
Fabien Castan
d5b1d43b27
[core] fix logging of nodes loading 2022-08-03 23:41:55 +02:00
Fabien Castan
96b4ec8d1d
Merge pull request #1681 from alicevision/outputInACEScgColorSpace
Output in ACES or ACEScg color space
2022-08-02 15:28:08 +02:00
Fabien Castan
dd5aadd875
Merge pull request #1738 from alicevision/fix/undoDuplicatedNodes
Fix node duplication/removal behaviour
2022-08-01 15:56:48 +02:00
Fabien Castan
55885077ed
Merge pull request #1745 from alicevision/ci/stale/add_bug_tag
[ci] add bug to the list of tag to skip the stale check
2022-08-01 15:45:59 +02:00
Simone Gasparini
a091369047
[ci] add bug to the list of tag to skip the stale check 2022-08-01 11:19:17 +02:00
Candice Bentéjac
819d9e3e70 Prevent duplication/removal a node more than once in the same action 2022-07-28 14:13:38 +02:00
Candice Bentéjac
c4c8b5c8d5 [ui] Vertically align duplicated nodes correctly
When a node is duplicated more than once in a single "duplicate"
operation, it happens that several of the duplicated nodes
overlap. This patch takes into account all the newly duplicated
(and already moved) nodes before moving them into their final
position.
2022-07-28 14:13:38 +02:00
Candice Bentéjac
b77274a027 Store all duplicates of a node correctly upon their creation
Duplicates used to be stored in a dictionary with an entry being
"parent node": "duplicated node". On occasions where a single
parent node was duplicated more than once, the latest duplicated
 node erased the previous one(s), and these older ones were
"lost": after being created, there was no trace left of their
existence in the duplication operation. Undoing that duplication
operation was thus leaving these duplicated nodes out and not
removing them.

Duplicated nodes are now stored as "parent node": [list of
duplicated nodes] to keep track of all the created nodes,
effectively removing them upon an "undo".
2022-07-28 14:13:31 +02:00
Fabien Castan
cdbcb75170
Merge pull request #1723 from p12tic/fix-pyside2-decorator-bug
[ui] Work around PySide2 bug affecting property decorators
2022-07-28 10:31:38 +02:00
Fabien Castan
25cb8f80d8
Merge branch 'develop' into fix-pyside2-decorator-bug 2022-07-28 10:31:01 +02:00
Fabien Castan
b291a9ed07
Merge pull request #1727 from alicevision/dev/externalPipelines
Use project files to define pipelines
2022-07-26 15:06:16 +02:00
Fabien Castan
7186ca3ce5 [pipelines] photogAndTracking: nodes ui alignment 2022-07-25 19:17:53 +02:00
Candice Bentéjac
945f59e00c Retrieve file features for templates
When a project file is opened as such, its filepath is stored
and all its features are retrieved as a consequence. Templates
were hard-coded instead of opened as files, so there never was
any need to load their features.

Now that .mg files can be opened both as projects and pipelines,
we need to retrieve the features in both cases, whether the filepath
is stored (file opened as project) or not (file opened as template).
This can be useful to retrieve the layout contained in the .mg file
for the pipeline, for example.
2022-07-21 15:28:36 +02:00
Fabien Castan
09fc117c65
Merge pull request #1732 from alicevision/fix/uiNodeConnections
[ui] Fix offset between the mouse's position and the tip of the edge when connecting two nodes
2022-07-21 12:32:03 +02:00
Fabien Castan
18d0835199
Merge pull request #1734 from alicevision/fix/python3-compatibility
Fix compatibility with Python 3
2022-07-21 12:26:02 +02:00
Candice Bentéjac
f2a904ac9b Fix compatibility with Python 3
- Import "collections" correctly depending on the version of
Python
- Fix regex that raised deprecation warnings in Python 3
2022-07-19 14:52:18 +02:00
Candice Bentéjac
8310b5c532 [ui] Highlight attributes' pins correctly
Harmonize the highlighting of the attributes' pins when they
are hovered and clicked on, may they already be connected to
other nodes or not.
2022-07-19 10:57:16 +02:00
Candice Bentéjac
352c8403e1 [ui] Fix vertical alignment of attributes' pins
The attributes' pins are now vertically aligned with their
matching labels.
2022-07-19 10:55:50 +02:00
Candice Bentéjac
47a99963fb [ui] Ensure the edge connecting two nodes is following the mouse
Moving the mouse rapidly when starting to connect two nodes'
attributes could lead to an unwanted offset between the tip of
the edge and the mouse's position; it forced the user to move
the mouse further than the attribute pin they wanted to connect
to in order to actually be able to connect to it.
2022-07-19 10:49:52 +02:00
Candice Bentéjac
578c1f01c0 [ui] Generate the "New Pipeline" menu based on the found project files
The "New Pipeline" menu is automatically filled with the list
of the project files that were found dynamically. Pipelines can thus
be initialized with templates without restarting Meshroom app.
2022-07-13 18:20:34 +02:00
Candice Bentéjac
8fb0c778d1 Add support for external pipelines using project files
- Support loading external pipelines as templates with project files
- Add template files for some standard pipelines
- Remove the hard-coded generation of new pipelines
- Update multiviewPipeline test: the multiviewPipeline test relied on the hard-coded generation of
pipelines.
2022-07-12 14:56:24 +02:00
Candice Bentéjac
7ec65d828c Do not evaluate variables of string parameters in the nodes' description
Set the value of the string parameters in the nodes' description as
the unevaluated variable instead of the evaluated variable. The
evaluation will be made later, when the nodes with such parameters
will be computed.
2022-07-12 11:22:57 +02:00
Candice Bentéjac
708eb85c9c Evaluate variables in nodes' string parameters 2022-07-12 09:31:37 +02:00
Povilas Kanapickas
e725f599c5 [ui] Work around PySide2 bug affecting property decorators
PySide 5.15.1 and newer have a bug
(https://bugreports.qt.io/browse/PYSIDE-1426) which results in the
following error emitted on certain @Property decorators:

TypeError: A constant property cannot have a WRITE method or a NOTIFY
signal.

Until the bug is fixed on PySide2 side workaround is to not use Property
as a decorator, but as a simple function wrapper emitting the property
as a class member.

Fixes #1239.
2022-07-08 01:00:43 +03:00
Fabien Castan
8eaef0b367
Merge pull request #1704 from alicevision/fix/stats
Fix stats
2022-06-02 14:19:53 +02:00
Fabien Castan
7b467b649d fix: force float conversion 2022-06-02 14:15:18 +02:00
Fabien Castan
8cfc5cbb45 [core] fix ressources stats 2022-06-02 14:14:48 +02:00
Fabien Castan
81eb338437
Merge pull request #1679 from alicevision/fix/imageGalleryInitNodes
[ui] ImageGallery: fix missing function changeCurrentIndex
2022-06-01 16:40:10 +02:00
demoulinv
a4598e0443 [launch]
Add ALICEVISION_ROOT setting example in start.bat
2022-04-27 14:26:40 +02:00
Fabien Castan
5829206ba8 [ui] ImageGallery: fix missing function changeCurrentIndex 2022-04-26 17:08:08 +02:00
Fabien Castan
d1960c1eea
Merge pull request #1665 from alicevision/fix/meshroomBatchParamOverride
[bin] batch: allow to set params inside groups
2022-04-25 17:06:18 +02:00
Fabien Castan
a1bd5bddad
Merge pull request #1652 from alicevision/dev/focalMM_valid
[camerainit] update parameters to use focal in mm
2022-04-25 17:05:36 +02:00
demoulinv
32370d1670 Update ImageProcessing node adding ACES and ACEScg in output color space menu. 2022-04-21 18:40:45 +02:00
Fabien Castan
7083b01819 [nodes] CameraInit: pixelRatioLocked True by default 2022-04-11 17:01:38 +02:00
Fabien Castan
a62c951bf5 [core] more generic str to bool conversion 2022-04-11 16:56:38 +02:00
Fabien Castan
fd4851b7e9 [bin] batch: allow to set params inside groups 2022-04-06 10:46:08 +02:00
Fabien Castan
8e064fc7e0
Merge pull request #1635 from alicevision/dev/sfmDisableStructureColor
[nodes] StructureFromMotion: Add option computeStructureColor
2022-03-25 21:51:05 +01:00