Commit graph

403 commits

Author SHA1 Message Date
Yann Lanthony
ca712ef2aa [ui] AttributeEditor: don't instantiate slider if no range is defined 2018-07-19 13:50:45 +02:00
Yann Lanthony
fc8a3f5f0b [ui] GraphEditor: add helper functions to move and select nodes 2018-07-19 13:50:45 +02:00
Yann Lanthony
2952e11691 [core] move duplicateNode methods to core.graph
handle this low-level operation engine side

* fix ListAttribute children links duplication
* handle CompatibilityNode duplication
* move corresponding unit test in test_graph.py
* [ui] add DuplicateNodeCommand
2018-07-19 13:50:45 +02:00
Yann Lanthony
7d389e365c [ui] display application version in window title 2018-07-19 13:50:45 +02:00
Fabien Castan
2480c22bf2 [ui] display number of reconstructed cameras 2018-07-16 23:15:00 +02:00
Yann Lanthony
80869879bb [ui] fix Live Reconstruction mode
* use Filepath to setup watched folder
* consider whether mvs nodes were created when sending sfmAugmented signal
2018-07-05 16:45:59 +02:00
Yann Lanthony
d5d8fa77dc [ui] graph: better ListAttribute connections filtering
* fix ListAttribute => ListAttribute with children (was breaking multiple simple connections to a ListAttribute)
* add missing case ListAttribute => Attribute
2018-06-26 12:29:55 +02:00
Yann Lanthony
99d6068250 [graph] make ListAttribute connectable at root level
ListAttribute can now be connected :
 * at root level to another ListAttribute (new)
 * at child level to basic Attributes
2018-06-18 14:58:35 +02:00
Yann Lanthony
20ef9b5a05 [ui] GraphEditor: unregister AttributePins when destroyed 2018-06-18 14:43:18 +02:00
Yann Lanthony
5b586a2810 [ui] use sorted NodeChunks to handle global progression
Simplify global progression handling by directly considering the list of NodeChunks (sorted by visit order) instead of the list of Nodes.
2018-05-28 16:23:01 +02:00
Yann Lanthony
df1dc2bab6 [ui] ImageGallery: improve synced selection with 3D view
Fix synchronization with 3D camera selection when the corresponding image has not been instantiated in ImageGallery (outside visible viewport).

* SortFilterDelegateModel: add "find" method
* ImageGallery
    * move passive selection logic out of the Delegate as it's created only when visible in the GridView
    * use SortFilterDelegateModel.find to get item index based on selected "viewId" and set GridView's currentIndex
2018-05-28 16:14:28 +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
b46520009f [ui] add 'Message' structure to wrap high-level messages
* fix random segfault due to signals with 2+ arguments (PySide bug)
* group Connections to '_reconstruction' instance
2018-05-28 11:25:41 +02:00
Fabien Castan
1c16199ca4 [ui] fix background color of ImageDelegate 2018-05-21 16:57:09 +02:00
Fabien Castan
81dcf10d25 [ui] fix FloatingPane background color 2018-05-21 16:10:20 +02:00
Fabien Castan
4e3372b2b1 [ui] force palette.window 2018-05-21 15:59:12 +02:00
Fabien Castan
3c6ebf3df4 [qt] disable qml Connections that create a crash on Qt 5.11
Disable them temporarily, but we need to find an alternative.
2018-05-20 22:42:29 +02:00
Yann Lanthony
1634555bf0 [ui] replace anchors by alignments inside Layouts 2018-05-03 16:52:00 +02:00
Yann Lanthony
f87024b0c5 [ui] highlight selected view in 3D + 3D picking
Spawn a cube on each camera to display which one is selected + allow picking from the 3D view
2018-04-21 13:14:29 +02:00
Yann Lanthony
8466264cf0
Merge pull request #106 from alicevision/dev_retrocompatibility
Retrocompatibility V1
2018-04-16 18:39:32 +02:00
Yann Lanthony
cfaa0bc012 [ui] Viewer2D: display image source path
* display selectable-by-mouse source filepath
* add radius property to FloatingPane to control border radius from outside
* use FloatingPane in ImageMetadataView
2018-04-16 12:14:04 +02:00
Yann Lanthony
f2089108aa [ui] high-level log system to prompt message dialogs in UI
* add 'info', 'warning', 'error' Signals on root object Reconstruction
* create MessageDialogs when those signals are emitted
2018-04-13 22:52:22 +02:00
Yann Lanthony
014c1fe25f [ui] specify keys for DropAreas 2018-04-13 22:48:46 +02:00
Yann Lanthony
1e462d94de [ui][3d] fix depthMap clearing
* must be fixed in qtOIIO plugin
2018-04-13 22:46:44 +02:00
Yann Lanthony
029d4f2e7b [ui] GraphEditor: clamp zoom 2018-04-13 22:44:09 +02:00
Yann Lanthony
b64cfc856c [ui] ImageMetadataView: display image location on map when available 2018-04-13 19:29:30 +02:00
Yann Lanthony
def7e6b634 [ui] set font size at Application level 2018-04-09 12:00:30 +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
11121039dc [ui] Viewer3D: reset polycount on source change 2018-04-05 22:00:20 +02:00
Yann Lanthony
adf59e56fa [ui] GraphEditor: fix typo 2018-04-05 21:56:36 +02:00
Yann Lanthony
a2dd3c22bd [ui][3D] tweak rotation/scale pane
* use a GridLayout
* reduce default sliders size
2018-03-23 11:23:47 +01:00
Yann Lanthony
c4f47d1307 [ui] Panel: clip by default 2018-03-23 11:23:47 +01:00
Yann Lanthony
35e89a3c9b [ui][3D] retrieve and display polycount after loading a scene
* use vertexPosition attribute buffer to determine the number of faces
* remove useless Qt.resolvedUrl()
2018-03-23 11:23:46 +01:00
Yann Lanthony
d4c0a4975a [ui] add "Controls" module to centralize common UI components
* add FloatingPane control + use it in Viewer3D
2018-03-23 11:17:11 +01:00
Yann Lanthony
6ae591e981 [ui] module Singleton crashes at exit; expose "Filepath" as context property
TODO: find a better way to do this (wait for 'qmlRegisterSingletonType' to be available in PySide ? )
2018-03-23 11:17:11 +01:00
Yann Lanthony
74e80e70b5 [ui][3d] introduce Wireframe render mode
* add WireframeMaterial from Qt 3D example
* MaterialSwitcher now has 3 render modes: Solid, Wireframe, Textured
* Remove NodeInstantiator; always create the material and modify entity's components (avoid rendering issues when switching between materials)
* use DiffuseSpecularMaterial for Solid and Textured mode
* create a MaterialSwitcher for all types of meshes (with/without textures)
* add a render settings panel as part of 3D viewport overlay and remove "Textures" entry from outliner
2018-03-23 11:17:10 +01:00
Yann Lanthony
f1d4291219 [ui][3d] improve layout of mesh rotation/scale control 2018-03-21 17:24:19 +01:00
Yann Lanthony
9f39579e00 [ui][3d] reduce camera nearPlane
useful for close-up mesh inspection
2018-03-21 17:24:19 +01:00
Yann Lanthony
0249706018 [ui] add missing string paths to url conversions 2018-03-21 17:24:19 +01:00
Yann Lanthony
2e4d9b85e6 [ui] UIGraph: rename 'addNode' to 'addNewNode' to match core.graph API 2018-03-21 15:53:34 +01: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
9f2dbc9639 [reconstruction] small structural re-organization
* move LiveSfmManager.stepCreated to Reconstruction.sfmAugmented
* add utility methods in Reconstruction to get all images/views used in the graph
* ui: perform local auto-layout on sfm augmentation on created nodes
2018-03-21 15:53:34 +01:00
Yann Lanthony
e0b72863ee [ui] GraphEditor: improve auto-layout related functions
* move graph boundingBox computation in a separate method
* perform autoLayout from "from" to "to" index (instead of "to"-1)
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
0c071d03d1 [ui] remove ASCII icons
won't render correctly on some platforms
2018-02-26 17:01:41 +01:00
Yann Lanthony
b9a1e57b79 [ui][log] reload file when auto-reload timer stops
useful to reload the file when status goes from RUNNING to ERROR/SUCCESS
2018-02-26 17:00:20 +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