Commit graph

158 commits

Author SHA1 Message Date
Candice Bentéjac
330382ab0c Add "label" as an internal attribute
Setting the "label" internal attribute allows to give a custom
label to replace the node's default label.
2023-02-15 08:36:10 +00:00
Candice Bentéjac
9bc9e2c129 Add "Notes" tab with "comment"/"invalid comment" attributes
Add two internal attributes, "Comment" and "Invalid comment", in
a specific "Notes" tab, which will contain any further internal
attribute. Internal attributes exist for all nodes.
2023-02-15 08:36:10 +00:00
Candice Bentéjac
9a956df4d4 [core] Check all chunks' execution mode to determine if a node is external
Prior to this commit, a node was considered external if its first chunk's
execution mode was EXTERN. In some cases, a node can be submitted
externally but have its first chunk's execution mode as LOCAL.

This can occur if computations are started locally then stopped and
resumed externally. If any chunk completed its computations locally,
then its execution mode will remain LOCAL, even if the node is submitted
externally later on.

A node is now considered external if at least one of its chunks'
execution mode is external.
2023-01-05 17:13:20 +01:00
Candice Bentéjac
45d3f202fc Display the "Computed Externally" icon whenever the node runs externally
A node running externally used to mean it was running on a submitter.
This definition has been extended and a node is now considered to be
external if it is running on a submitter or running in another instance
of Meshroom. The "Computed Externally" is updated to reflect that
change.
2023-01-05 16:44:55 +01:00
Candice Bentéjac
8bef398bed Remove workarounds and backports for Python 2 support
In particular:
- In common/, remove the backport of weakref.WeakMethod
- In docs/ and ui/, use the standard FileNotFoundError class
- Use built-in open() instead of io.open(), and stop importing io
- In core/stats.py, use the standard implementation of xml.etree instead
of the C one
2022-12-05 17:16:21 +01:00
Candice Bentéjac
635f85e7fd Remove all references to pyCompatibility
- "pyCompatibility.basestring" are replaced by standard Python3 "str"
- "Sequence" and "Iterable" from "collections" are now directly imported
with "collections.abc"
2022-12-05 17:16:21 +01:00
Candice Bentéjac
89b89d09c0 [core] Treat a chunk as external if it is computed locally in another session 2022-12-05 15:42:57 +01:00
Candice Bentéjac
b08f83552e [ui] Clear locally submitted nodes before loading a new graph
When loading a new graph while the opened one was locally computing nodes,
computations were automatically stopped to be able to load the new graph.
However, the computing chunks' status were not being updated before
the graphs were switched up. This meant that opening that previously
computing graph again would lead to a display in which nodes appeared to
be computing although there was no ongoing computations.
2022-11-28 10:06:57 +01:00
Loïc Vital
b91d0b372e [ui] only load nodes in Viewer2D when at least one chunk is finished 2022-10-19 09:50:18 +01:00
Loïc Vital
a574c0fc9b use semantic field in file attributes to specify images and store displayed node in 2D viewer to adapt UI 2022-10-19 09:50:08 +01:00
Loïc Vital
fc5ab540f5 added outputImageTypes in node desc to update the viewer2D imageType combo box when double clicking a node 2022-10-19 09:50:07 +01:00
Fabien Castan
ee20136f82
Merge pull request #1764 from alicevision/dev/displayComputeTime
[ui] Display computation time for "running" or "finished" nodes
2022-09-10 00:27:34 +02:00
Candice Bentéjac
5542516ba4 [ui] Display computation time for "running" or "finished" nodes 2022-09-09 16:36:43 +02:00
Candice Bentéjac
c44b2a8c00 Add "minimal" mode for template files
Add a specific option to save a graph as a template ("Save As
Template") in "minimal" mode.

This mode only saves, for each node in the graph, the input and
output attributes whose values differ from the default ones. Any
attribute that is not serialized in the saved template file is
assumed to have its default value.
If a conflict is detected on a node when opening the template
file, it is logged but solved automatically.

The goal of this minimal mode is to prevent template files from
needing an update every single time a modification (may it be
minor or major) is done on a node description. Templates can
thus follow node changes and still be usable.
2022-09-06 09:43:19 +02:00
Fabien Castan
290e0278e9 [core] fix: filter attributes after the node upgrade
Values from removed attributes may be used in the node's upgrade code.
2021-09-03 22:12:25 +02:00
Thomas Zorroché
45bed69672 [nodes] change default mesh format to obj 2021-09-03 21:13:20 +02:00
Thomas Zorroche
dc1ca91a31 [core] node: warning on lambda evaluation 2021-09-03 21:13:18 +02:00
Fabien Castan
5ab6ed8e52 [core] Improve project files upgrade
- upgrade groups with changes in params
- new upgradeAttributeValues per node
2021-08-13 16:07:14 +02:00
Fabien Castan
18be350e6f
Merge pull request #1227 from ChemicalXandco/box_select
[ui] add support for selecting multiple nodes at once
2021-05-03 23:42:11 +02:00
Fabien Castan
6972d37639 [core] avoid access to invalid node desc for CompatibilityNode 2021-02-12 18:15:46 +01:00
Fabien Castan
79e4a59e8c [core] fix clearSubmittedChunks 2021-01-28 19:56:25 +01:00
Fabien Castan
5e7b044d13 [core] fix StatusData inheritance 2021-01-28 19:44:44 +01:00
Fabien Servant
1993114178 [core] more robust check of "status" file 2021-01-25 17:38:33 +01:00
Fabien Castan
078120696a [ui] GraphEditor: fix some readOnly regarding CompatibilityNodes 2021-01-22 14:30:33 +01:00
Fabien Castan
831443c29d [ui] NodeEditor: refactor ChunksList and add global stats 2021-01-22 11:38:53 +01:00
ChemicalXandco
c253e7d363 [ui] add support for selecting multiple nodes at once 2021-01-15 18:16:45 +00:00
Fabien Castan
d3d17ec6dd [core] node: fix missing function argument to getInputNodes 2020-12-28 17:31:48 +01:00
Fabien Castan
d291fcc39d [core] graph: use new dependenciesOnly option on graph operations
Input attribute to input attribute connection is not a real dependency between the nodes.
2020-12-14 19:02:49 +01:00
Fabien Castan
1102ce84e0 Merge branch 'develop' of github.com:alicevision/meshroom into dev/nodesAndTaskManager
Conflicts:
	meshroom/core/graph.py
	meshroom/ui/qml/main.qml
2020-12-01 20:02:43 +01:00
Fabien Castan
4e5bef2a80 [core] allow lambda on "group" property 2020-11-20 17:40:49 +01:00
Julien-Haudegond
0693af58c1 [core] Node: fix locked issue when computation is canceled 2020-09-04 16:31:58 +02:00
Julien-Haudegond
49e33fb9ba [core] Node: fix locked issue 2020-09-04 11:37:04 +02:00
Julien-Haudegond
11bf6821ae [core] Node: avoid submitting already running nodes 2020-08-31 11:11:35 +02:00
Julien-Haudegond
5d63d02a33 [core] Node: update duplicate nodes' status without any latency 2020-08-31 11:08:22 +02:00
Julien-Haudegond
8281f8cb2a [core] Node: improve updateDuplicates and add hasDuplicates property 2020-08-27 16:18:32 +02:00
Julien-Haudegond
3e82a21677 [core] TaskManager: fix issue in contains() / Node: add a Slot decorator 2020-08-27 10:56:28 +02:00
Julien-Haudegond
44821a1c5e [ui] GraphEditor: move stop/cancel computation check into a Python slot 2020-08-26 15:52:00 +02:00
Julien-Haudegond
a00c82cd2f [ui] GraphEditor: check sessionUid for stop/cancel computation 2020-08-26 15:33:45 +02:00
Julien-Haudegond
ed83532064 [core] Node: do not lock duplicates 2020-08-24 16:35:48 +02:00
Julien-Haudegond
79e1c69d5d Merge remote-tracking branch 'origin/develop' into dev/nodesAndTaskManager 2020-08-24 15:19:31 +02:00
Julien-Haudegond
ba1994deb9 [core/ui] replace and remove depending/required nodes methods 2020-08-24 11:59:03 +02:00
Julien-Haudegond
11e68e77ed [core] Graph/Node: getInputNodes and getOutputNodes methods 2020-08-24 11:35:32 +02:00
Fabien Castan
b295242576 [ui] Camera Response Function display: make it safer
More checks on file content and catch exception.
Check nbColumns using a slot instead of using the property.
Use a workaround on the CVS loader to avoid a crash (do not set active
to False).
2020-08-24 11:33:26 +02:00
Julien-Haudegond
b71832ebbd [core] Node: stopComputation method
- Node: stopComputation method.
- Task Manager: avoid stopping the entire task manager when a node is stopped.
2020-08-20 15:53:02 +02:00
Julien-Haudegond
2083d83d14 [core] Node: add globalExecMode property 2020-08-20 15:14:19 +02:00
Julien-Haudegond
a3e0d530b4 [core/ui] fix typo and syntax 2020-08-20 15:07:29 +02:00
Julien-Haudegond
fe91d07a6a [core] Node: add alive property for QML 2020-08-17 11:39:22 +02:00
Julien-Haudegond
0af2f32187 [core] Node: fix locked when stopped 2020-08-13 12:39:41 +02:00
Julien-Haudegond
d838e7866a [ui] Node: fix slowness due to QML function calls with a lot of nodes
Instead of calling the duplicateList function for each node, at each modification, it is called only when we press the button.
2020-08-13 11:45:52 +02:00
Julien-Haudegond
fd51237fa3 [core] Node: add duplicate nodes list property 2020-08-12 18:01:37 +02:00