Skip to content

Commit

Permalink
[ui] Rework of MessageDialog for CompatibilityManager and SensorDBDialog
Browse files Browse the repository at this point in the history
  • Loading branch information
Just-Kiel authored and cbentejac committed Nov 26, 2024
1 parent 648b095 commit 0ef1715
Show file tree
Hide file tree
Showing 3 changed files with 55 additions and 19 deletions.
27 changes: 24 additions & 3 deletions meshroom/ui/qml/Controls/MessageDialog.qml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ Dialog {
property alias icon: iconLabel
property alias canCopy: copyButton.visible
property alias preset: presets.state
property alias content: contentComponent.sourceComponent
property alias textMetrics: textMetrics

default property alias children: layout.children

Expand Down Expand Up @@ -48,7 +50,6 @@ Dialog {
}

RowLayout {
width: parent.width
// Icon
Label {
id: iconLabel
Expand All @@ -59,7 +60,6 @@ Dialog {

Label {
id: titleLabel
Layout.fillWidth: true
text: title + " - " + Qt.application.name + " " + Qt.application.version
font.bold: true
}
Expand All @@ -76,7 +76,7 @@ Dialog {
}
}

ColumnLayout {
contentItem: ColumnLayout {
id: layout
// Text
spacing: 12
Expand All @@ -85,20 +85,41 @@ Dialog {
font.bold: true
visible: text != ""
onLinkActivated: function(link) { Qt.openUrlExternally(link) }

Layout.preferredWidth: titleLabel.width
wrapMode: Text.WordWrap
}
// Detailed text
Label {
id: detailedLabel
text: text
visible: text != ""
onLinkActivated: function(link) { Qt.openUrlExternally(link) }

Layout.preferredWidth: titleLabel.width
wrapMode: Text.WordWrap
}
// Additional helper text
Label {
id: helperLabel
visible: text != ""
onLinkActivated: function(link) { Qt.openUrlExternally(link) }

Layout.preferredWidth: titleLabel.width
wrapMode: Text.WordWrap
}

Loader {
id: contentComponent

Layout.fillWidth: true
}
}

TextMetrics {
id: textMetrics

text: "A"
}

StateGroup {
Expand Down
24 changes: 20 additions & 4 deletions meshroom/ui/qml/GraphEditor/CompatibilityManager.qml
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ MessageDialog {
+ "This operation is undoable and can also be done manually in the Graph Editor."
: ""

ColumnLayout {
content: ColumnLayout {
spacing: 16

ListView {
Expand All @@ -68,6 +68,20 @@ MessageDialog {
clip: true
model: nodesModel

property int longestLabel: {
var longest = 0
for (var i = 0; i < issueCount; ++i) {
var n = nodesModel.at(i)
if (n.defaultLabel.length > longest)
longest = n.defaultLabel.length
}
return longest
}

property int upgradableLabelWidth: {
return "Upgradable".length * root.textMetrics.width
}

ScrollBar.vertical: MScrollBar { id: scrollbar }

spacing: 4
Expand All @@ -79,9 +93,9 @@ MessageDialog {
background: Rectangle { color: Qt.darker(parent.palette.window, 1.15) }
RowLayout {
width: parent.width
Label { text: "Node"; Layout.preferredWidth: 150; font.bold: true }
Label { text: "Node"; Layout.preferredWidth: listView.longestLabel * root.textMetrics.width; font.bold: true }
Label { text: "Issue"; Layout.fillWidth: true; font.bold: true }
Label { text: "Upgradable"; font.bold: true }
Label { text: "Upgradable"; Layout.preferredWidth: listView.upgradableLabelWidth; font.bold: true }
}
}

Expand All @@ -94,14 +108,16 @@ MessageDialog {
anchors.horizontalCenter: parent != null ? parent.horizontalCenter : undefined

Label {
Layout.preferredWidth: 150
Layout.preferredWidth: listView.longestLabel * root.textMetrics.width
text: compatibilityNodeDelegate.node ? compatibilityNodeDelegate.node.defaultLabel : ""
}
Label {
Layout.fillWidth: true
text: compatibilityNodeDelegate.node ? compatibilityNodeDelegate.node.issueDetails : ""
}
Label {
Layout.preferredWidth: listView.upgradableLabelWidth
horizontalAlignment: Text.AlignHCenter
text: compatibilityNodeDelegate.node && compatibilityNodeDelegate.node.canUpgrade ? MaterialIcons.check : MaterialIcons.clear
color: compatibilityNodeDelegate.node && compatibilityNodeDelegate.node.canUpgrade ? "#4CAF50" : "#F44336"
font.family: MaterialIcons.fontFamily
Expand Down
23 changes: 11 additions & 12 deletions meshroom/ui/qml/ImageGallery/SensorDBDialog.qml
Original file line number Diff line number Diff line change
Expand Up @@ -16,21 +16,19 @@ MessageDialog {
icon.text: MaterialIcons.camera
icon.font.pointSize: 10

modal: true
parent: Overlay.overlay
canCopy: false

title: "Sensor Database"
text: "Add missing Camera Models to the Sensor Database to improve your results."
detailedText: "If a warning is displayed on your images, adding your Camera Model to the Sensor Database\n"+
"can help fix it and improve your reconstruction results."
detailedText: "If a warning is displayed on your images, adding your Camera Model to the Sensor Database can help fix it and improve your reconstruction results."
helperText: 'To update the Sensor Database (<a href="https://github.com/alicevision/meshroom/wiki/Add-Camera-to-database">complete guide</a>):<br>' +
' - Look for the "sensor width" in millimeters of your Camera Model<br>' +
' - Add a new line in the Database following this pattern: Make;Model;SensorWidthInMM<br>' +
' - Click on "' + rebuildIntrinsics.text + '" once the Database has been saved<br>' +
' - Click on "Update Intrinsics" once the Database has been saved<br>' +
' - Contribute to the <a href="https://github.com/alicevision/AliceVision/blob/develop/src/aliceVision/sensorDB/cameraSensors.db">online Database</a>'

ColumnLayout {
content: ColumnLayout {
RowLayout {
Layout.fillWidth: true
spacing: 2
Expand Down Expand Up @@ -62,13 +60,14 @@ MessageDialog {
onClicked: Qt.openUrlExternally(sensorDatabase)
}
}
}
Button {
id: rebuildIntrinsics
text: "Update Intrinsics"
enabled: !readOnly
onClicked: updateIntrinsicsRequest()
Layout.alignment: Qt.AlignCenter

Button {
id: rebuildIntrinsics
text: "Update Intrinsics"
enabled: !readOnly
onClicked: updateIntrinsicsRequest()
Layout.alignment: Qt.AlignCenter
}
}
standardButtons: Dialog.Close
onAccepted: close()
Expand Down

0 comments on commit 0ef1715

Please sign in to comment.