Commit graph

162 commits

Author SHA1 Message Date
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
4541d825ad [ui] GraphEditor: consistent readOnly mode when computing
* lock edit actions when graph is being computed
* add an advanced option to control this behavior and unlock it (stored in persistent settings)
2019-01-07 15:39:47 +01:00
Yann Lanthony
34ca607261 [ui] GraphEditor : add "Clear Pending Status" tool at Graph level
* allow to clear status of all submitted nodes in the graph
* unify wording
2019-01-07 10:47:25 +01:00
Yann Lanthony
00feb46667 [ui] extract NodeEditor from AttributeEditor
* NodeEditor
    * exposes Node parameters: compatibility, attributes and logs
    * provides a placeholder when no active Node
* AttributeEditor
    * only displays the list of Attributes
    * use 'AttributeEditor' for GroupAttributes in AttributeItemDelegate
* Layout
   * move NodeEditor on the same SplitView level as GraphEditor
   * move current node name and menu to the Panel's header
2019-01-04 17:30:37 +01:00
Yann Lanthony
5b991053a8 [ui] UIGraph: add selectedNode property
move node selection management to the Python side
2018-12-07 16:07:42 +01:00
Yann Lanthony
717b4f8b37 [ui] GraphEditor: display compatible attributes in Viewer3D on double click 2018-12-07 16:07:41 +01:00
Yann Lanthony
52c99a803e [ui] ComputeUnsaved: set a more straightforward text for Discard button
avoid potentially ambiguous platform-dependent text
2018-08-09 00:11:35 +02:00
Yann Lanthony
0bcf59e4ce [ui] prompt warning when computing unsaved project
* warn the user that the data will be computed in the default cache folder
* allow to save the scene from this Dialog
* fix whitespaces in texts
2018-08-03 17:24:04 +02:00
Yann Lanthony
494cb71d3f [ui] shortcuts: add Ctrl+N for new + allow Ctrl+S for initial save 2018-08-03 17:24:04 +02:00
Yann Lanthony
30f99b01f2 [ui] MessageDialog: add presets and options
* add Info, Warning and Error presets
* add canCopy options to display/hide copy to clipboard button
* tweak paddings and font size
2018-08-03 17:24:04 +02:00
Yann Lanthony
1007c37ba4 [ui] add footer with cache folder info 2018-08-03 17:24:04 +02:00
Yann Lanthony
6581886b46 [ui] store main Window size in persisting settings 2018-08-03 17:24:04 +02:00
Yann Lanthony
3438900b2b [ui] add "About" dialog
Accessible from main menu Help > About Meshroom, or by pressing "F1". Provides info about Meshroom version + useful links and related Open Source Licenses.

* load COPYING.md from Meshroom/AliceVision files (either provided with the standalone package or online) + translate them to HTML for display  (added `markdown` package in requirements)
* request.js: centralize function to open file urls
* provide system info from MeshroomApp (exposed as contextProperty)
2018-08-03 17:24:04 +02:00
Yann Lanthony
72a657ec48 [ui] hide 'Submit' button if no submitter available 2018-08-03 17:24:04 +02:00
Yann Lanthony
94cba653d5 [ui] GraphEditor: improved ToolBar
* replace text buttons with MaterialToolButtons
* hide advanced min/max depth settings to a Settings menu
2018-07-27 19:12:55 +02:00
Yann Lanthony
c3464fa4e8 [ui] GraphEditor: trigger fit on project opening
* fit when the underlying graph has changed (new/open project)
* add 'F' shortcut to fit
* trigger fit after UI has been fully initialized (correct sizes)
2018-07-27 19:05:53 +02: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
93dd055f72 [clean] fix variable names and typos
* node_factory & attribute_factory to camelCase
* fix depths variable in updateNodesTopologicalData
2018-07-26 12:11:43 +02:00
Yann Lanthony
3615f641fd [ui][dialogs] improve wording
+ use MessageDialog for unsaved project dialog
2018-07-25 20:05:37 +02:00
Yann Lanthony
fd8c275203 [ui] add CompatibilityManager component
* display and allow to upgrade incompatible nodes after project loading
* add a ToolButton in main toolbar to open CompatibilityManager in case of compatibility issues
2018-07-20 17:57:53 +02:00
Yann Lanthony
5ddf138554 [ui] bind start/submit button 'enabled' property to graph computability 2018-07-19 14:50:58 +02:00
Yann Lanthony
0128cd56f0 [ui] add CompatibilityBadge on CompatibilityNodes
* add badge icon on nodes in GraphEditor
* add badge banner in AttributeEditor with upgrade button when available
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
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
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
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
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
def7e6b634 [ui] set font size at Application level 2018-04-09 12:00:30 +02: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
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
0c071d03d1 [ui] remove ASCII icons
won't render correctly on some platforms
2018-02-26 17:01:41 +01:00
Yann Lanthony
d91601ca8e [ui] move filepath.js to Utils module 2018-02-15 15:12:07 +01:00
Yann Lanthony
bb638f9e08 [ui] customize global ToolTip style
less agressive contrast between border and background when using dark theme
2018-02-05 17:32:22 +01:00
Yann Lanthony
63aa19698a [ui] Main Menu: GraphEditor visibility control 2018-01-15 21:50: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
13c22dc884 [ui] add SfmLiveView Panel to control live reconstruction 2018-01-15 15:11:07 +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
a26a3f9af5 [ui] GraphEditor: add node creation menu
* expose node types model as context property
* right clicking on an empty space inside the Graph Editor opens Node Creation menu with all available node types
2017-12-18 19:46:45 +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
Yann Lanthony
886ded7f19 [ui] create GraphEditor module 2017-12-12 17:47:27 +01:00
Yann Lanthony
1663b86542 [ui] ensure no local computation is in progress before closing Meshroom 2017-11-30 21:28:15 +01:00
Yann Lanthony
03ca18c312 [ui] improve Viewer3D
* add Rotation/Scale controls
* add controls to disable default items (grid/locator)
* add drop support to load external 3D models
* add "View All" action in contextual menu to fit to scene
* automatically propose to load the reconstructed mesh when available
2017-11-28 22:35:20 +01:00
Yann Lanthony
fd5da4fa48 [ui] add global progress bar to follow graph computation
Use dfs-sorted NodeChunks to reflect this progression
2017-11-28 22:19:32 +01:00
Yann Lanthony
47d88f8635 [ui] handle graph submission
* add button to submit the graph to the default submitter
* add warning message when the graph is being computed in another meshroom instance
* make Start button green
2017-11-28 22:18:44 +01:00
Yann Lanthony
ce1b416f2d [ui] set default font point size to 9 2017-11-28 20:22:49 +01:00