Skip to content

Commit

Permalink
Merge pull request #2531 from alicevision/dev/UIchanges
Browse files Browse the repository at this point in the history
UI Changes
  • Loading branch information
fabiencastan authored Sep 13, 2024
2 parents 064b29c + 2570c0e commit 24b7a37
Show file tree
Hide file tree
Showing 16 changed files with 59 additions and 66 deletions.
1 change: 1 addition & 0 deletions meshroom/nodes/aliceVision/ConvertSfMFormat.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ class ConvertSfMFormat(desc.AVCommandLineNode):
value=["dspsift"],
exclusive=False,
joinChar=",",
exposed=True,
),
desc.ListAttribute(
elementDesc=desc.File(
Expand Down
1 change: 1 addition & 0 deletions meshroom/nodes/aliceVision/FeatureExtraction.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ class FeatureExtraction(desc.AVCommandLineNode):
value=["dspsift"],
exclusive=False,
joinChar=",",
exposed=True,
),
desc.ChoiceParam(
name="describerPreset",
Expand Down
2 changes: 2 additions & 0 deletions meshroom/nodes/aliceVision/FeatureMatching.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ class FeatureMatching(desc.AVCommandLineNode):
name="featuresFolders",
label="Features Folders",
description="Folder(s) containing the extracted features and descriptors.",
exposed=True,
),
desc.File(
name="imagePairsList",
Expand All @@ -65,6 +66,7 @@ class FeatureMatching(desc.AVCommandLineNode):
value=["dspsift"],
exclusive=False,
joinChar=",",
exposed=True,
),
desc.ChoiceParam(
name="photometricMatchingMethod",
Expand Down
1 change: 1 addition & 0 deletions meshroom/nodes/aliceVision/ImageMatching.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ class ImageMatching(desc.AVCommandLineNode):
name="featuresFolders",
label="Features Folders",
description="Folder(s) containing the extracted features and descriptors.",
exposed=True,
),
desc.ChoiceParam(
name="method",
Expand Down
1 change: 1 addition & 0 deletions meshroom/nodes/aliceVision/ImageMatchingMultiSfM.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ class ImageMatchingMultiSfM(desc.AVCommandLineNode):
name="featuresFolders",
label="Features Folders",
description="Folder(s) containing the extracted features and descriptors.",
exposed=True,
),
desc.ChoiceParam(
name="method",
Expand Down
5 changes: 5 additions & 0 deletions meshroom/nodes/aliceVision/LdrToHdrCalibration.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ class LdrToHdrCalibration(desc.AVCommandLineNode):
group="user", # not used directly on the command line
errorMessage="The set number of brackets is not a multiple of the number of input images.\n"
"Errors will occur during the computation.",
exposed=True,
),
desc.IntParam(
name="nbBrackets",
Expand All @@ -78,6 +79,7 @@ class LdrToHdrCalibration(desc.AVCommandLineNode):
description="Bypass HDR creation and use the medium bracket as the source for the next steps.",
value=False,
enabled=lambda node: node.nbBrackets.value != 1,
exposed=True,
),
desc.ChoiceParam(
name="calibrationMethod",
Expand All @@ -92,6 +94,7 @@ class LdrToHdrCalibration(desc.AVCommandLineNode):
value="auto",
exclusive=True,
enabled=lambda node: node.byPass.enabled and not node.byPass.value,
exposed=True,
),
desc.ChoiceParam(
name="calibrationWeight",
Expand All @@ -114,6 +117,7 @@ class LdrToHdrCalibration(desc.AVCommandLineNode):
range=(8, 14, 1),
advanced=True,
enabled=lambda node: node.byPass.enabled and not node.byPass.value,
exposed=True,
),
desc.ChoiceParam(
name="workingColorSpace",
Expand All @@ -126,6 +130,7 @@ class LdrToHdrCalibration(desc.AVCommandLineNode):
invalidate=False,
group="user", # not used directly on the command line
enabled=lambda node: node.byPass.enabled and not node.byPass.value,
exposed=True,
),
desc.IntParam(
name="maxTotalPoints",
Expand Down
4 changes: 4 additions & 0 deletions meshroom/nodes/aliceVision/LdrToHdrMerge.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ class LdrToHdrMerge(desc.AVCommandLineNode):
group="user", # not used directly on the command line
errorMessage="The set number of brackets is not a multiple of the number of input images.\n"
"Errors will occur during the computation.",
exposed=True,
),
desc.IntParam(
name="nbBrackets",
Expand Down Expand Up @@ -124,6 +125,7 @@ class LdrToHdrMerge(desc.AVCommandLineNode):
description="Bypass HDR creation and use the medium bracket as the source for the next steps.",
value=False,
enabled=lambda node: node.nbBrackets.value != 1,
exposed=True,
),
desc.BoolParam(
name="keepSourceImageName",
Expand Down Expand Up @@ -151,6 +153,7 @@ class LdrToHdrMerge(desc.AVCommandLineNode):
range=(8, 14, 1),
advanced=True,
enabled=lambda node: node.byPass.enabled and not node.byPass.value,
exposed=True,
),
desc.ChoiceParam(
name="workingColorSpace",
Expand All @@ -161,6 +164,7 @@ class LdrToHdrMerge(desc.AVCommandLineNode):
value="AUTO",
exclusive=True,
enabled=lambda node: node.byPass.enabled and not node.byPass.value,
exposed=True,
),
desc.BoolParam(
name="enableHighlight",
Expand Down
5 changes: 5 additions & 0 deletions meshroom/nodes/aliceVision/LdrToHdrSampling.py
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,7 @@ class LdrToHdrSampling(desc.AVCommandLineNode):
group="user", # not used directly on the command line
errorMessage="The set number of brackets is not a multiple of the number of input images.\n"
"Errors will occur during the computation.",
exposed=True,
),
desc.IntParam(
name="nbBrackets",
Expand All @@ -93,6 +94,7 @@ class LdrToHdrSampling(desc.AVCommandLineNode):
description="Bypass HDR creation and use the medium bracket as the source for the next steps.",
value=False,
enabled=lambda node: node.nbBrackets.value != 1,
exposed=True,
),
desc.ChoiceParam(
name="calibrationMethod",
Expand All @@ -107,6 +109,7 @@ class LdrToHdrSampling(desc.AVCommandLineNode):
value="auto",
exclusive=True,
enabled=lambda node: node.byPass.enabled and not node.byPass.value,
exposed=True,
),
desc.IntParam(
name="channelQuantizationPower",
Expand All @@ -116,6 +119,7 @@ class LdrToHdrSampling(desc.AVCommandLineNode):
range=(8, 14, 1),
advanced=True,
enabled=lambda node: node.byPass.enabled and not node.byPass.value,
exposed=True,
),
desc.ChoiceParam(
name="workingColorSpace",
Expand All @@ -126,6 +130,7 @@ class LdrToHdrSampling(desc.AVCommandLineNode):
value="AUTO",
exclusive=True,
enabled=lambda node: node.byPass.enabled and not node.byPass.value,
exposed=True,
),
desc.IntParam(
name="blockSize",
Expand Down
1 change: 1 addition & 0 deletions meshroom/nodes/aliceVision/PanoramaCompositing.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@ class PanoramaCompositing(desc.AVCommandLineNode):
label="Use Tiling",
description="Enable tiling mode for parallelization.",
value=True,
exposed=True,
),
desc.ChoiceParam(
name="storageDataType",
Expand Down
2 changes: 2 additions & 0 deletions meshroom/nodes/aliceVision/PanoramaEstimation.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ class PanoramaEstimation(desc.AVCommandLineNode):
name="featuresFolders",
label="Features Folders",
description="Folder(s) containing the extracted features.",
exposed=True,
),
desc.ListAttribute(
elementDesc=desc.File(
Expand All @@ -53,6 +54,7 @@ class PanoramaEstimation(desc.AVCommandLineNode):
value=["sift"],
exclusive=False,
joinChar=",",
exposed=True,
),
desc.FloatParam(
name="offsetLongitude",
Expand Down
1 change: 1 addition & 0 deletions meshroom/nodes/aliceVision/PanoramaMerging.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ class PanoramaMerging(desc.AVCommandLineNode):
label="Use Tiling",
description="Enable tiling mode for parallelization.",
value=True,
exposed=True,
),
desc.ChoiceParam(
name="storageDataType",
Expand Down
2 changes: 2 additions & 0 deletions meshroom/nodes/aliceVision/SfMTriangulation.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ class SfMTriangulation(desc.AVCommandLineNode):
name="featuresFolders",
label="Features Folders",
description="Folder(s) containing the extracted features and descriptors.",
exposed=True,
),
desc.ListAttribute(
elementDesc=desc.File(
Expand All @@ -42,6 +43,7 @@ class SfMTriangulation(desc.AVCommandLineNode):
name="matchesFolders",
label="Matches Folders",
description="Folder(s) in which computed matches are stored.",
exposed=True,
),
desc.ChoiceParam(
name="describerTypes",
Expand Down
3 changes: 3 additions & 0 deletions meshroom/nodes/aliceVision/StructureFromMotion.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@ class StructureFromMotion(desc.AVCommandLineNode):
name="featuresFolders",
label="Features Folders",
description="Folder(s) containing the extracted features and descriptors.",
exposed=True,
),
desc.ListAttribute(
elementDesc=desc.File(
Expand All @@ -93,6 +94,7 @@ class StructureFromMotion(desc.AVCommandLineNode):
name="matchesFolders",
label="Matches Folders",
description="Folder(s) in which the computed matches are stored.",
exposed=True,
),
desc.ChoiceParam(
name="describerTypes",
Expand All @@ -102,6 +104,7 @@ class StructureFromMotion(desc.AVCommandLineNode):
value=["dspsift"],
exclusive=False,
joinChar=",",
exposed=True,
),
desc.ChoiceParam(
name="localizerEstimator",
Expand Down
1 change: 1 addition & 0 deletions meshroom/nodes/aliceVision/TracksBuilding.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ class TracksBuilding(desc.AVCommandLineNode):
name="featuresFolders",
label="Features Folders",
description="Folder(s) containing the extracted features and descriptors.",
exposed=True,
),
desc.ListAttribute(
elementDesc=desc.File(
Expand Down
91 changes: 27 additions & 64 deletions meshroom/ui/qml/Application.qml
Original file line number Diff line number Diff line change
Expand Up @@ -591,9 +591,14 @@ Page {
elide: Text.ElideLeft
elideWidth: newPipelineMenu.maxWidth
}
ToolTip.text: modelData["path"]
ToolTip.visible: hovered
ToolTip.delay: 200

ToolTip {
id: toolTip

delay: 200
text: modelData["path"]
visible: hovered
}
}
}
}
Expand Down Expand Up @@ -1037,7 +1042,7 @@ Page {

headerBar: RowLayout {
MaterialToolButton {
text: MaterialIcons.refresh
text: MaterialIcons.sync
ToolTip.text: "Refresh Nodes Status"
ToolTip.visible: hovered
font.pointSize: 11
Expand All @@ -1051,45 +1056,30 @@ Page {
enabled: !updatingStatus
}
MaterialToolButton {
id: filePollerRefreshStatus
text: {
if (_reconstruction.filePollerRefresh === 0)
return MaterialIcons.published_with_changes
else if (_reconstruction.filePollerRefresh === 2)
return MaterialIcons.sync
else
return MaterialIcons.sync_disabled
}
text: MaterialIcons.more_vert
font.pointSize: 11
padding: 2
enabled: true
ToolTip {
id: filePollerTooltip
property string title: "Auto-Refresh Nodes Status For External Changes. "
property string description: "Check if the status of a node is changed by another instance on the same network, " +
"such as when computing in render farm."
text: {
var status = ""
if (_reconstruction.filePollerRefresh === 0)
status = "Enabled"
else if (_reconstruction.filePollerRefresh === 2)
status = "Minimal"
else
status = "Disabled"
return title + "(Current: " + status + ")\n\n" + description
}
visible: filePollerRefreshStatus.hovered
contentWidth: 420
}
onClicked: {
refreshFilesMenu.open()
}
onClicked: graphEditorMenu.open()
checkable: true
checked: graphEditorMenu.visible
Menu {
id: refreshFilesMenu
width: 210
id: graphEditorMenu
y: parent.height
x: -width + parent.width
MenuItem {
text: "Clear Pending Status"
enabled: _reconstruction ? !_reconstruction.computingLocally : false
onTriggered: _reconstruction.graph.clearSubmittedNodes()
}
MenuItem {
text: "Force Unlock Nodes"
onTriggered: _reconstruction.graph.forceUnlockNodes()
}

Menu {
title: "Refresh Nodes Status"

MenuItem {
id: enableAutoRefresh
text: "Enable Auto-Refresh"
checkable: true
Expand All @@ -1105,8 +1095,6 @@ Page {
}
// Prevents cases where the user unchecks the currently checked option
enableAutoRefresh.checked = true
filePollerRefreshStatus.text = MaterialIcons.published_with_changes
filePollerTooltip.text = filePollerTooltip.title + "(Current: Enabled)\n\n" + filePollerTooltip.description
}
}
MenuItem {
Expand All @@ -1125,8 +1113,6 @@ Page {
}
// Prevents cases where the user unchecks the currently checked option
disableAutoRefresh.checked = true
filePollerRefreshStatus.text = MaterialIcons.sync_disabled
filePollerTooltip.text = filePollerTooltip.title + "(Current: Disabled)\n\n" + filePollerTooltip.description
}
}
MenuItem {
Expand All @@ -1145,31 +1131,8 @@ Page {
}
// Prevents cases where the user unchecks the currently checked option
minimalAutoRefresh.checked = true
filePollerRefreshStatus.text = MaterialIcons.sync
filePollerTooltip.text = filePollerTooltip.title + "(Current: Minimal)\n\n" + filePollerTooltip.description
}
}
}
}
MaterialToolButton {
text: MaterialIcons.more_vert
font.pointSize: 11
padding: 2
onClicked: graphEditorMenu.open()
checkable: true
checked: graphEditorMenu.visible
Menu {
id: graphEditorMenu
y: parent.height
x: -width + parent.width
MenuItem {
text: "Clear Pending Status"
enabled: _reconstruction ? !_reconstruction.computingLocally : false
onTriggered: _reconstruction.graph.clearSubmittedNodes()
}
MenuItem {
text: "Force Unlock Nodes"
onTriggered: _reconstruction.graph.forceUnlockNodes()
}
}
}
Expand Down
4 changes: 2 additions & 2 deletions meshroom/ui/qml/GraphEditor/AttributeItemDelegate.qml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ RowLayout {
var tooltip = ""
if (!attribute.validValue && attribute.desc.errorMessage !== "")
tooltip += "<i><b>Error: </b>" + Format.plainToHtml(attribute.desc.errorMessage) + "</i><br><br>"
tooltip += "<b> " + attribute.desc.name + ": " + attribute.type + "</b><br>" + Format.plainToHtml(attribute.desc.description)
tooltip += "<b> " + attribute.desc.name + ":</b> " + attribute.type + "<br>" + Format.plainToHtml(attribute.desc.description)

parameterTooltip.text = tooltip
}
Expand Down Expand Up @@ -78,7 +78,7 @@ RowLayout {
var tooltip = ""
if (!object.validValue && object.desc.errorMessage !== "")
tooltip += "<i><b>Error: </b>" + Format.plainToHtml(object.desc.errorMessage) + "</i><br><br>"
tooltip += "<b>" + object.desc.name + ": " + attribute.type + "</b><br>" + Format.plainToHtml(object.description)
tooltip += "<b>" + object.desc.name + ":</b> " + attribute.type + "<br>" + Format.plainToHtml(object.description)
return tooltip
}
visible: parameterMA.containsMouse
Expand Down

0 comments on commit 24b7a37

Please sign in to comment.