Commit graph

118 commits

Author SHA1 Message Date
Fabien Castan
90c480af21 Merge branch 'develop' of https://github.com/alicevision/meshroom into dev/panoramaFisheye
Conflicts:
	meshroom/ui/qml/Viewer/FeaturesInfoOverlay.qml
	meshroom/ui/qml/Viewer/Viewer2D.qml
2020-06-01 14:38:30 +02:00
Theo
f07b959a2b [ui] New SfMStatsView 2020-04-29 20:25:46 +02:00
Fabien Castan
0e606eef4e [ui] Add the notion of Node Documentation 2020-03-26 10:54:00 +01:00
Fabien Castan
e933e1adf6 [ui] Float attributes: ensure alignment on the left
Ensure that the important part of the number is displayed.
2020-03-18 20:21:02 +01:00
Fabien Castan
77fc562a1e [ui] AttributeEditor: improve display of long floating point values 2020-03-10 11:59:41 +01:00
Fabien Castan
80e3afd9a9 [ui] GraphEditor: node status layout adjustments 2020-01-27 17:57:56 +01:00
Fabien Castan
2705c89130 [ui] GraphEditor: single tab group + status table
- Use a single tab group for attributes, log, statistics, status
- Use a ListView with key/value to display the node status fields (instead of a file viewer)
2020-01-27 16:08:18 +01:00
Fabien Castan
c38f0c3fa3 [ui] minor qml warning fix 2020-01-27 13:16:23 +01:00
Yann Lanthony
97e18e02e1
[ui] Node: only display File attributes as Node attribute pins 2019-12-13 19:27:15 +01:00
Fabien Castan
40c3430707 [ui] StatViewer: do not display uninitialied values 2019-09-10 18:56:23 +02:00
Fabien Castan
4cc78ad5ec [ui] StatViewer: more compatibility with previous "statistics" files
* compute max peak ram if no total ram info
* hide GPU chart if the file is from a previous version
2019-09-10 18:56:22 +02:00
Fabien Castan
8f630d5c09 [ui] StatViewer: compatibility with previous "statistics" files 2019-09-10 17:52:37 +02:00
Yann Lanthony
07ced073f3
[ui] StatViewer: introduce custom ChartViewLegend system
* add a generic ChartViewLegend component that provides an interactive legend for ChartViews
* rely more on data bindings to control Series visibility and display
2019-08-06 10:39:39 +02:00
Yann Lanthony
aedf10c838
[ui] StatViewer: fix "Toggle CPU" button
use MaterialLabel instead of Text
2019-08-06 10:31:39 +02:00
Yann Lanthony
001d9a3de8
[ui] StatViewer: fix average computation 2019-08-06 10:28:12 +02:00
Yann Lanthony
bedda0c5b6
[ui] simplify loading of statistics file
* NodeLog: remove intermediate property for Loader
* StatViewer
   * keep only one function to load source file
   * only send request only after the previous one fully completed
  * update deltaTime before initializing charts
  * reset "sourceModified" property when source changes
2019-08-06 10:23:59 +02:00
Lee Geertsen
1822bbe13d Dynamically load TextFileViewer or StatViewer depending on selected tab 2019-07-26 11:35:44 +02:00
Lee Geertsen
e48039bb2f Add StatViewer component to view statistics charts 2019-07-26 11:34:43 +02:00
Yann Lanthony
eb8023e02c
[ui] NodeEditor: display AttributeEditor by default 2019-06-26 12:57:30 +02:00
Yann Lanthony
d7f8311dcf
[ui] NodeLog: set TextFileViewer source when chunks ListView is ready
Avoid going through an empty source when switching from one node to another (currentChunk being invalid the time the ListView is being constructed).
2019-05-15 20:17:09 +02:00
Yann Lanthony
17556427fd
[ui] NodeLog: PySide2 5.11 compatibility fixes
* downgrade imports to work with versions prior to 5.12
* remove ES7 syntax
2019-05-09 18:18:48 +02:00
Yann Lanthony
55dba55d19
[ui] New TextFileViewer for displaying log files
Introduce a new TextFileViewer component with auto-reload feature based on a ListView instead of a TextArea for performance reasons. Uses the text content split on line breaks as ListView's model.
Features: 
 * auto-scroll to bottom
 * display line numbers
 * customizable line delegates (e.g.: display a real progress bar)
 * color lines according to log level
2019-05-07 11:47:09 +02:00
Yann Lanthony
45faa860c9 [ui] AttributeEditor: remove SortFilterDelegateModel
Usage of DelegateModel for model filtering has not proven to be the most stable solution, and might be responsible for random crashes happening during engine's garbage collection.  Implement Loader-based alternative:
* first delegate is a Loader which creates the AttributeItemDelegate if necessary
* compensate spacing using negative height when element is hidden
2019-02-08 15:37:06 +01:00
Fabien Castan
e63725c4e0
Merge pull request #379 from alicevision/dev_unsavedDialog
Show unsaved project warning dialog also when computing from GraphEditor
2019-01-30 10:02:54 +01:00
Yann Lanthony
28e7e64f3d [ui] show unsaved project warning dialog also when computing from GraphEditor 2019-01-30 09:48:37 +01:00
Yann Lanthony
4d6195cf81 [ui] Node: use TextMetrics to expand elided attribute pins at hover 2019-01-29 16:12:19 +01:00
Yann Lanthony
2990129e0f [ui] GraphEditor: display ClosedHandCursor while dragging 2019-01-07 18:47:20 +01:00
Yann Lanthony
b46a2dbba1 [ui] Controls: add SearchBar component + better keyboard focus handling
* use it in MetadataListView and GraphEditor 'add Node' menu
* GraphEditor: forward MenuItem key events to searchBar to be able to continue editing the filter even if it lost active focus
2019-01-07 16:48: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
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
b09068dc68 [ui] Node: add "Clear Data From Here" menu entry + confirmation dialog 2019-01-07 10:47:25 +01:00
Yann Lanthony
d1bf04bdf5 [ui] Node: gather single and "From Here" actions in the same menu entry
* add a ToolButton for duplicating/removing following nodes in corresponding entries instead of having a separate item
* change text when those button are hovered to reflect the change of action
* wording: rename "Delete Node" to "Remove Node"
2019-01-07 10:47:25 +01:00
Yann Lanthony
d10c779914 [ui] GraphEditor: add "Delete From Here" in node contextual menu
* ease the deletion of a branch from a given starting point
* accessible with alt+del on a node
* re-order menu to put the most destructive operation (Clear Data) at the very end
2019-01-07 10:47:25 +01:00
Yann Lanthony
b50f9fb44d [ui] GraphEditor: only display "Submit" in node menu if available 2019-01-07 10:47:25 +01:00
Yann Lanthony
5a38295184 [ui][AttributeEditor] display attribute technical name in tooltip
+ convert attribute description from plain text to html
2019-01-04 17:30:38 +01:00
Yann Lanthony
6ac4a9d712 [desc][qt] use QVariantList for list-type properties
* required for PySide2 > 5.11.1 (and compatible with 5.11.1)
* AttributeItemDelegate: test for list length to determine whether to create a slider component (if range is set to None on Python side, it will be an empty list on the QML/JS side)
2019-01-04 17:30:38 +01:00
Yann Lanthony
e7b49f31c7 [ui][GraphEditor] use 'C' locale for FloatParam validator + minor fixes
* using 'C' locale to ensure floating point values can be written using '.' decimal separator
* make TextField larger by default for numbers and fill width when slider is not defined
* avoid binding loop on height for ListAttributes by using contentHeight as implicitHeight
* add explicitly id for Connections in ComboBox
2019-01-04 17:30:37 +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
dc8be1efae [ui] Attribute: display icon on advanced parameters 2018-12-20 11:17:23 +01:00
Yann Lanthony
1c935b6b5a [ui] GraphEditor: show/hide advanced Attributes
* use SortFilterModels to filter out  advanced attributes when hidden
* add GraphEditorSettings with persistent settings related to the GraphEditor
2018-12-20 11:17:23 +01:00
Yann Lanthony
05854ed897 [ui] UIGraph: add hoveredNode property + node hovering visual feedback
* keep track of currently hovered node in UIGraph on Python side
* Node: show border on hover + make MouseArea contain everything else to always get hover events, even when cursor is over children attribute pins
2018-12-07 16:07:42 +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
7db4beea89 [ui] use Node label in GraphEditor 2018-11-19 15:17:37 +01:00
Yann Lanthony
3b656d97fd [ui] NodeLog: load file only if visible
* when visibility changes, only load current file if log is actually visible
* set 'keepCursorPosition' default value to false in 'loadCurrentFile' method
2018-09-06 15:56:52 +02:00
Yann Lanthony
143b519dbd [ui] NodeLog: cross-platform monospace display
Specify multiple fixed size font families:
- Linux: "Monospace" 
- Windows: "Consolas" 
- OSX: "Monaco"
2018-09-06 15:56:52 +02:00
Yann Lanthony
fc8ea7ca18 [ui] GraphLayout: fix bouding box computation
correctly initialize width and height with first item
2018-08-06 10:37:45 +02:00
Fabien Castan
44e34d7eb3 [ui] use shift to pan (instead of Ctrl) 2018-08-03 14:38:08 +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