Commit graph

948 commits

Author SHA1 Message Date
Candice Bentéjac
1015ea448a [ui] Add an icon and tooltip on a node's header if it has a comment
If the "Comments" internal attribute is filled, add a corresponding
icon in the node's header, as well as a tooltip that contains the
comment.
2023-02-15 08:36:13 +00:00
Candice Bentéjac
930af07966 [core] Correctly load internalAttributes in compatibility mode 2023-02-15 08:36:11 +00:00
Candice Bentéjac
21d01acc9a Add "color" as an internal attribute
Setting this attribute allows the user to change the color
of a node, either by directly providing an SVG color name or an
hexadecimal color code, or by picking a color with the selector.
2023-02-15 08:36:11 +00:00
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
Fabien Castan
ac27d14d79
Merge pull request #1888 from alicevision/mug/fixSyncCamView
[ui] fix "Sync Camera with Image Selection"
2023-02-14 21:05:38 +01:00
Loïc Vital
e9a75c812c [ui] FeaturesViewer: make time window spinbox editable 2023-02-13 18:28:58 +01:00
Loïc Vital
ece2371166 [ui] display track endpoints option in features viewer 2023-02-13 18:01:45 +01:00
mugulmd
aea6eb19ab [ui] 3D image overlay: use autoTransform to avoid shrinking when resizing viewer 2023-02-09 03:45:13 -08:00
Fabien Castan
334bfc8b00
Merge pull request #1861 from alicevision/mug/thumbnailCache
[ui] Thumbnail cache
2023-02-09 11:08:09 +00:00
Fabien Castan
db8d00e901 [ui] ImageGallery thumbnails: no need for caching and expensive smooth resizing 2023-02-08 21:50:04 +01:00
Fabien Castan
db8b3873e3 [ui] ImageGallery: do not reduce thumbnail resolution
As we rely on the thumbnails cache, the images are already downscaled at
a small resolution. So there is no more need to force a max resolution
on the Qml Image.
2023-02-08 18:20:54 +01:00
mugulmd
a52aeabedb [ui] 3D viewer: correct field of view using orientation tag 2023-02-06 08:37:30 -08:00
mugulmd
7e4b1a77ac [ui] factorize exif orientation transform in utility functions 2023-02-06 08:16:42 -08:00
mugulmd
205ff22b74 [ui] apply orientation tag to 3d scene to match 2d viewer 2023-02-06 06:09:37 -08:00
Candice Bentéjac
6579ed3797 [Viewer] Check if active node's "input" attribute exists before accessing it 2023-02-03 10:58:16 +01:00
mugulmd
9b0be36278 [ui] improve thumbnails quality 2023-01-26 05:10:35 -08:00
mugulmd
2f72f9e7d1 [ui] ImageDelegate: increase thumbnail timer to 5s 2023-01-23 06:28:30 -08:00
Fabien Castan
d18e8397c6
Merge pull request #1862 from alicevision/dev/externComputeIcon
[ui] Display nodes computed in another Meshroom instance as "Computed Externally"
2023-01-22 18:10:16 +00:00
Fabien Castan
40b182efc5
Merge pull request #1864 from alicevision/dev/saveImportImagesFolder
[ui] Use the location of the most recently imported images as the base folder for the "Import Images" dialog
2023-01-22 18:07:56 +00:00
Sarah Brood
56fe514582
[ui] GraphEditor: use maxZoom to fit on nodes (#1865) 2023-01-18 11:49:03 +00:00
mugulmd
dd235dcbf1 [ui] clear thumbnail requests when changing viewpoints 2023-01-17 07:11:32 -08:00
mugulmd
ae3184decc [ui] send thumbnail request with timer to avoid deadlocks 2023-01-17 07:00:17 -08:00
mugulmd
0926b20d43 [ui] fallback for dispatching thumbnails in case cellID changed 2023-01-17 02:42:35 -08:00
Candice Bentéjac
d745c07f14 [ui] Change "Import Images" base folder behaviour if no location is saved
Prior to saving the images' locations across sessions, if no image had
been yet imported but a project file with images had been opened, the
default base folder for the session became the project images' location.
The location of dropped images back then was never saved.

Now that the locations from the "Import Images" are saved across session,
the possibilities of having no location saved have drastically decreased.
The three cases where it can happen are the following:
- the user has never opened Meshroom before (or the user has been using
Meshroom without ever using "Import Images")
- the user has cleared their Meshroom settings
- the 3 saved locations have become invalid

For these three cases, the default base folder is either set to the
location of the first dropped image or to the opened project's images.
That location is NOT saved for later sessions. Using the "Import Images"
action is necessary for the location to be saved.
2023-01-16 16:06:00 +01:00
mugulmd
80174e22af [ui] ImageGallery: faster thumbnail dispatch using caller ID 2023-01-16 06:21:48 -08:00
Candice Bentéjac
1b5e33c9ef [ui] Save the last folders of imported images across sessions
Save up to 3 folder locations from which images have been imported.
These folder locations will be saved across Meshroom sessions, in
a similar fashion as the "Recent Files" entries.
If no folder location has been saved (or if all saved folder locations
are invalid), we fall back to the default behaviour: if a project with
images has been opened before the "Import Images" action is called, then
the base folder will be the folder containing the opened project's
images.
2023-01-16 15:10:28 +01:00
Candice Bentéjac
5638cf3a75 [ui] "Import Images" dialog: Use opened project's images folder as the base folder
If a project has already been opened before the "Import Images" dialog
is opened for the first time, and if the opened project has imported
images, use the location of these images' folder as the base folder for
the "Import Images" dialog.

If the opened project has no imported images, the base folder will remain
identical to the other dialogs' until images are imported.
2023-01-16 15:10:27 +01:00
mugulmd
a2e6a68811 [ui] ImageDelegate: check URL is not empty instead of OS call 2023-01-16 03:17:56 -08:00
Fabien Castan
2c7547e493
Merge pull request #1857 from alicevision/mug/exifOrientation
[ui] Viewer2D: support all Exif orientation tags
2023-01-14 21:25:34 +00:00
Candice Bentéjac
2dc0a678a1 [ui] Save folder location of the last imported images
This commit changes the folder in which the "Import Images" dialog
opens: it used to be opened in the folder in which the last .mg file
had been opened, and it now opens in the folder from which the last
images were imported.

The location of the last imported images is saved, and used specifically
when opening the "Import Images" dialog, as opposed to all the other
dialogs which open in the folder of the last opened .mg file.
2023-01-10 12:48:44 +01:00
mugulmd
cd955893e3 [ui] ImageGallery: default value for grid view cache buffer 2023-01-10 02:06:00 -08:00
mugulmd
88c85e9496 [ui] thumbnail busy indicator when loading 2023-01-10 00:31:50 -08:00
mugulmd
af2c9c0fd3 [ui] dispatch thumbnail creation signal from grid 2023-01-09 06:21:10 -08:00
mugulmd
60c8e779d5 [ui] create thumbnails asynchronously 2023-01-09 05:52:16 -08: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
mugulmd
ff6358ea07 [ui] new Thumbnail disk cache 2023-01-05 07:01:54 -08:00
Candice Bentéjac
04bd976387 [ui] ImageGallery: fix the DB path in the "Edit Sensor Database" dialog
The output of "cameraInit.attribute("sensorDatabase").value" is the
unresolved ${ALICEVISION_SENSOR_DB} environment variable.

To get the path, the variable needs to be evaluated.
2023-01-05 09:41:47 +01:00
Fabien Castan
27ce3df5cb
Merge pull request #1852 from alicevision/mug/improveLoadDepthMap3D
[ui] Load 3D Depth Map: minor improvements
2023-01-04 12:28:17 +01:00
mugulmd
17093279f5 [ui] fix scaling for Exif orientation tags 5 to 8 2023-01-04 00:18:11 -08:00
mugulmd
d06fe19d20 [ui] force HDR display when disabling 8bit viewer 2023-01-03 05:58:51 -08:00
mugulmd
a3d289f046 [ui] use env var MESHROOM_USE_8BIT_VIEWER as default value for enabling 8bit viewer 2023-01-03 05:41:21 -08:00
mugulmd
c21bbd307c [ui] check box in 2D viewer header bar to enable/disable 8bit viewer 2023-01-03 05:29:54 -08:00
mugulmd
116d6467f1 [ui] new ExifOrientedViewer component to factorize orientation code 2022-12-29 05:46:38 -08:00
mugulmd
a5b2bc5e60 [ui] FeaturesViewer: apply container dimensions for correct transform 2022-12-29 01:39:04 -08:00
mugulmd
1e2ab5e53e [ui] 8bit viewer: same exif orientation workflow as the other viewers 2022-12-29 01:36:39 -08:00
Fabien Castan
1f64420d5a
Merge pull request #1855 from alicevision/dev/imgGalleryCacheBuffer
[ui] ImageGallery: Increase the GridView's cache capacity
2022-12-23 00:39:08 +01:00
Candice Bentéjac
eb4ec8318c [ui] Reorganize the "File" menu
- Remove the "New" menu; the "Ctrl+N" shortcut remains valid to create
new default pipelines
- Move the "Save As Template" and "Import Project" actions into an
"Advanced" menu; their behaviour and shortcuts remain unchanged
- Add menu separators between the "Open" and "Save" functionalities,
the "Save" and "Import Images" functionalities, the "Import Images"
and "Advanced" functionalities, and the "Advanced" and "Quit"
functionalities.
2022-12-22 21:12:11 +01:00
Candice Bentéjac
45bdeba343 [ui] Increase the "cacheBuffer" value of ImageGallery's GridView
The "cacheBuffer" property determines whether delegates are retained
outside the visible area of view. In the case of the ImageGallery,
it determines whether the images that are not currently visible in
the GridView (because we need to scroll up or down to be able to see
them) will remain in the cache or not. The default value is platform-
dependent (320 for Windows) and currently causes any image that is not
directly visible to be lost, even if it was previously loaded when it
appeared in the view: if we scroll up or down, we will necessarily need
to wait for the images to be loaded again.

10000 is an arbitrary value that seems to work correctly for most cases.
2022-12-22 16:09:52 +01:00
Loïc Vital
935a8a2568 [ui] load 3D depth map: custom label in 3D inspector 2022-12-20 12:31:36 +01:00