Commit graph

50 commits

Author SHA1 Message Date
Fabien Castan
b14129a6c2 [qml] update import QtQuick to 2.15 2020-08-03 21:21:48 +02:00
Fabien Castan
735b3cbe79 [qml] qt-5.15: update Connections functions syntax 2020-08-03 19:27:13 +02:00
Fabien Castan
bac6ffe8f2 [ui] WorkspaceView: use activeNodes for sfm 2020-07-25 18:27:33 +02:00
Fabien Castan
ec67c772fa [ui] new generic way to manage "active" nodes per node type 2020-07-07 22:05:53 +02:00
Theo
4f5a2eda6f [ui] Viewer2D: expose loading status on Image Viewer Panel 2020-05-14 14:07:23 +02:00
Fabien Castan
19d2f90554 [ui] ImageGallery: allow to visualize the list of HDR images created by LDRToHDR
Conflicts:
	meshroom/ui/reconstruction.py
2020-03-10 12:33:36 +01:00
Fabien Castan
c9061f3fec [ui] Viewer2D: improve toolbar alignment/spacing
Conflicts:
	meshroom/ui/qml/Viewer/Viewer2D.qml
2020-03-10 12:10:56 +01:00
Fabien Castan
d70c625fac [ui] Viewer2D: refactoring to simplify layouts
* fix mousearea order
* add alpha backgroud
* move HDR as a tool button

Conflicts:
	meshroom/ui/qml/Viewer/CircleGizmo.qml
	meshroom/ui/qml/Viewer/Viewer2D.qml
2020-03-10 12:08:14 +01:00
Fabien Castan
a4b42b3347 [ui] Viewer2D: disable menu when the plugin is not available 2020-03-03 17:41:03 +01:00
Fabien Castan
69ca95a590 [ui] Viewer2D: update wording in menu to "HDR Image Viewer" 2020-03-03 17:40:12 +01:00
Fabien Castan
302aaabd60 [ui] Viewer2D: add color picker to floating point image toolbar 2020-03-03 11:07:19 +01:00
Grégoire De Lillo
7a2fca185b [ui] Viewer2D : Add a FloatImageViewer and an ImageToolbar
Use an ImageViewerWrapper to handle the `FloatImageViewer` or the standard one.
2020-02-28 12:34:19 +01:00
Fabien Castan
18ab1d1793 [ui] Viewer: update min values 2020-01-27 13:16:25 +01:00
ChemicalXandco
4ddd25fb73 use getImageFile function to set image source 2020-01-27 13:16:22 +01:00
ChemicalXandco
b2db142cc2 add button on 2D Viewer to view depth maps in the 3D Viewer 2020-01-27 13:16:21 +01:00
Fabien Castan
dbcfce7c90
[ui] WorkspaceView: open images in the 2D Viewer from the Graph/NodeEditor
Double click on a node or an attribute with an image file to display it
in the 2D viewer.
2019-12-12 18:50:18 +01:00
Yann Lanthony
1c873508ef
[ui] Inspector3D: double click on media now sets node as "active"
To be consistent with the Graph Editor behavior, double clicking on a node sets it as the active node of its type. This, for example, enables to switch from one SfM to another from the media list.
2019-09-11 10:49:09 +02:00
Yann Lanthony
312b9f5e0b
[ui] Inspector3D: provide camera from Viewer3D 2019-09-11 10:09:27 +02:00
Yann Lanthony
774675bd65
[ui] Viewer3D: move Inspector3D outside Viewer3D
Inspector3D is not an overlay anymore to simplify 3D manipulations, by having view center at the center of the 3D view.
2019-09-10 19:28:14 +02:00
Yann Lanthony
00857a7a88
[ui] Reconstruction: rename 'endNode' to 'texturing'
+ use makeProperty helper
2019-06-27 18:29:33 +02:00
Yann Lanthony
c595d8d664 [ui] move ImageGallery into a dedicated module 2019-01-21 10:55:17 +01:00
Yann Lanthony
b5c985b3fb [ui] GraphEditor: solo 3D media with Double Click + Control modifier
* allow to solo a 3D media from the GraphEditor by double clicking on a node or an attribute with the Control modifier pressed
* consistent with Viewer3D.MediaLibrary behavior (solo on Ctrl+Click on visibility button)
* handle supported file extensions in Viewer3DSettings
2019-01-07 16:19:42 +01:00
Yann Lanthony
b6e4876494 [ui] move Panel to Controls module 2018-12-20 11:17:23 +01:00
Yann Lanthony
66943922d8 [ui] Viewer3D: clean "Load Model" handling
move related properties to the button responsible for loading the end node when a result is available
2018-12-10 15:13:26 +01:00
Yann Lanthony
2f307c16fb [ui] Viewer3D: synchronize media list and graph hover/selection
* ease bidirectional navigation between 3D media list and graph
* use same mechanism to indicate selected/hovered elements
* remove 'frame' button (space gain + action available on double click)
2018-12-07 16:07:42 +01:00
Yann Lanthony
e9682a8ce9 [ui] Viewer3D: load all urls from an external file drop 2018-12-07 16:07:41 +01:00
Yann Lanthony
97fcdf67bf [ui] Viewer3D: multi 3D media support
* use new media loading backend through MediaLibrary
* Inspector3D: new overlay UI that displays and allows to manipulate MediaLibrary content
2018-12-07 16:07:41 +01:00
Yann Lanthony
7a8e1c689f [ui] Reconstruction: expose end node instead of mesh filepath
In preparation for massive Viewer3D refactoring.
2018-11-23 20:20:08 +01:00
Yann Lanthony
7415c1d391 [ui] split 2D and 3D viewers into separate modules
+ remove historical MayaCameraController
2018-11-23 14:26:57 +01:00
Yann Lanthony
f415745a4a [ui] make Nodes moves undoable
Handle nodes move and auto-layout on Python side by using GraphLayout and MoveNodeCommand.

* Node QML component relies on underlying core.Node object's position
* MoveNodeCommand is called after a Node has been dragged
* partial/full auto-layout for specific graph operations (Duplication, Augmentation...) are now part of those operations
* serialized position in node data allows to properly restore nodes coordinates on undo/redo
* remove all layout/node moving code from QML
2018-07-26 22:46:22 +02:00
Yann Lanthony
c606c1d3e2 [ui] ImageGallery: fix 'readOnly' behavior
* properly propagate readOnly state + disable high-level modifications on ImageGallery when graph is being computed
* tweak ImageGallery initial width
2018-05-28 16:04:45 +02:00
Yann Lanthony
2f2390e465 [ui] fix Palette propagation
* bugfix: in latest PySide2 versions, application palette is not properly applied to all QtQuick Controls 2 components. Force this by exposing QApplication palette and bind it to the root ApplicationWindow.
* rename all "palette" ids to "activePalette" to avoid clashes with "palette" property on QtQuick Controls 2
* use parent component palette when it makes sense to propagate active/disabled style (instead of always using Active SystemPalette)
2018-05-28 15:30:09 +02:00
Yann Lanthony
014c1fe25f [ui] specify keys for DropAreas 2018-04-13 22:48:46 +02:00
Yann Lanthony
472b860131 [ui] better handling of Reconstruction's current sfm node
* reset sfm node on graph change by using 'sfm' property (ensure previous sfm node is correctly disconnected)
* ui: clear viewers when graph changes
2018-04-06 14:24:45 +02:00
Yann Lanthony
450f800fef [ui] allow SfM augmentation when providing new images
* create two separate drop areas when adding images to the project (add images / augment reconstruction)
* add sfm augmentation in graph after intrinsics have been built
2018-03-21 15:53:34 +01:00
Yann Lanthony
266f0985d2 [ui] convert string paths to urls outside Viewers
* fix external image drop on 2D Viewer
* fix 3D model loading from "Load Model" button
2018-03-21 15:53:34 +01:00
Yann Lanthony
f1b42acc14 [ui] add FilepathHelper Python class to manipulate paths and QUrls
* avoid non-cross platform hacks to convert string path to urls
* use standard python API
2018-03-06 15:32:33 +01:00
Yann Lanthony
2cdc83f06f [ui] add string <--> file representation convertors
* convenient methods to conform strings to Qt file reprensentation using the "file:/" protocol prefix
* use those methodes when manipulating files
2018-02-26 16:59:25 +01:00
Yann Lanthony
62726b4663 [ui] fix missing "else"
+ remove unnecessary call to clearAbc
2018-02-26 16:33:06 +01:00
Yann Lanthony
53764812bd [ui] add ImageMetadataView + integration in Viewer2D
* display image metadata as a sorted table view with filtering  
* 2DViewer: new bottom toolbar with metadata toggle + image resolution
2018-02-15 16:10:25 +01:00
Yann Lanthony
d91601ca8e [ui] move filepath.js to Utils module 2018-02-15 15:12:07 +01:00
Fabien Castan
2dceec447d Add 3D depth map viewer 2018-02-13 14:52:55 +01:00
Yann Lanthony
a582a2f5c1 [ui] improve Alembic files loading
New version of AlembicEntity always clears itself when setting an url (even if it's invalid/empty). Don't need to re-create the AlembicEntity each time we load a file.
2018-01-29 14:46:28 +01:00
Yann Lanthony
c53c0ae8d2 [ui] display reconstruction status on Images
* add the notion of a current SfM node in the Reconstruction
* retrieve views and poses from this node when selected or when its status changes
* use this information to display a status on Images in ImageGallery
2018-01-15 21:45:15 +01:00
Yann Lanthony
b8b8ea376c [ui] handle file drop on Viewer2D 2018-01-15 21:17:51 +01:00
Yann Lanthony
13c22dc884 [ui] add SfmLiveView Panel to control live reconstruction 2018-01-15 15:11:07 +01:00
Yann Lanthony
273cfd9f0e [ui] handle multiple CameraInit nodes in a Reconstruction
* [ui] ImageGallery: add control to navigate image groups
* [graph] expose Node.attribute as a Slot
2018-01-15 14:33:27 +01:00
Yann Lanthony
cc4a24f5f3 [ui] 3D Viewer: Alembic support
* optional and only available if AlembicEntity QML plugin is in QML import path
* 3D viewer can load a 3D model and an Alembic file at the same time
* add contextual menu options to unload model/Alembic
2018-01-09 18:58:27 +01:00
Yann Lanthony
b8f61bf033 [ui] display output 3D files when double clicking on a node
* iterate over output attributes to find an "obj" file
* make default material brighter
2018-01-05 12:14:32 +01:00
Yann Lanthony
8d8bf0be5e [ui] better UI Components split + improvements
* add WorkspaceView that contains Meshroom main modules (ImageGallery, 2D/3D viewer)
* add Panel component to standardize UI modules layout
* ImageGallery: 
  * add images basename on image delegates
  * add explanatory placeholder when no image has been added to the reconstruction yet
2017-12-14 19:11:52 +01:00