Merge pull request #1852 from alicevision/mug/improveLoadDepthMap3D

[ui] Load 3D Depth Map: minor improvements
This commit is contained in:
Fabien Castan 2023-01-04 12:28:17 +01:00 committed by GitHub
commit 27ce3df5cb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 23 additions and 12 deletions

View file

@ -258,7 +258,8 @@ FocusScope {
onDisplayedNodeChanged: {
// clear metadata if no displayed node
if (!displayedNode) {
metadata = {};
root.source = "";
root.metadata = {};
}
// update output attribute names
@ -274,6 +275,9 @@ FocusScope {
}
names.push("gallery");
outputAttribute.names = names;
root.source = getImageFile();
root.metadata = getMetadata();
}
Connections {
@ -1163,18 +1167,26 @@ FocusScope {
id: fontMetrics
}
Layout.preferredWidth: model.reduce((acc, label) => Math.max(acc, fontMetrics.boundingRect(label).width), 0) + 3.0 * Qt.application.font.pixelSize
onNameChanged: {
root.source = getImageFile();
root.metadata = getMetadata();
}
}
MaterialToolButton {
property var activeNode: root.aliceVisionPluginAvailable && _reconstruction ? _reconstruction.activeNodes.get('allDepthMap').node : null
enabled: activeNode
ToolTip.text: "View Depth Map in 3D (" + (activeNode ? activeNode.label : "No DepthMap Node Selected") + ")"
id: displayImageOutputIn3D
enabled: root.aliceVisionPluginAvailable && _reconstruction && displayedNode && Filepath.basename(root.source).includes("depthMap")
ToolTip.text: "View Depth Map in 3D"
text: MaterialIcons.input
font.pointSize: 11
Layout.minimumWidth: 0
onClicked: {
root.viewIn3D(root.getFileAttributePath(activeNode, "depth", _reconstruction.selectedViewId));
root.viewIn3D(
root.source,
displayedNode.name + ":" + outputAttribute.name + " " + String(_reconstruction.selectedViewId)
);
}
}

View file

@ -83,7 +83,7 @@ Entity {
return -1;
}
function load(filepath) {
function load(filepath, label = undefined) {
var pathStr = Filepath.urlToString(filepath);
if(!Filepath.exists(pathStr))
{
@ -99,12 +99,11 @@ Entity {
// add file to the internal ListModel
m.mediaModel.append(makeElement({
"source": pathStr,
"label": Filepath.basename(pathStr),
"label": label ? label : Filepath.basename(pathStr),
"section": "External"
}));
}
function view(attribute) {
if(m.sourceToEntity[attribute]) {
ensureVisible(attribute);

View file

@ -36,8 +36,8 @@ FocusScope {
mainCamera.viewCenter = defaultCamViewCenter;
}
function load(filepath) {
mediaLibrary.load(filepath);
function load(filepath, label = undefined) {
mediaLibrary.load(filepath, label);
}
/// View 'attribute' in the 3D Viewer. Media will be loaded if needed.

View file

@ -30,9 +30,9 @@ Item {
// Load a 3D media file in the 3D viewer
function load3DMedia(filepath) {
function load3DMedia(filepath, label = undefined) {
if(panel3dViewerLoader.active) {
panel3dViewerLoader.item.viewer3D.load(filepath);
panel3dViewerLoader.item.viewer3D.load(filepath, label);
}
}