Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ui] Rework of MessageDialog for CompatibilityManager and SensorDBDialog #2537

Open
wants to merge 1 commit into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 24 additions & 3 deletions meshroom/ui/qml/Controls/MessageDialog.qml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,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 @@ -47,7 +49,6 @@ Dialog {
}

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

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

ColumnLayout {
contentItem: ColumnLayout {
id: layout
// Text
spacing: 12
Expand All @@ -84,20 +84,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 @@ -55,7 +55,7 @@ MessageDialog {
+ "This operation is undoable and can also be done manually in the Graph Editor."
: ""

ColumnLayout {
content: ColumnLayout {
spacing: 16

ListView {
Expand All @@ -66,6 +66,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 @@ -77,9 +91,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 @@ -92,14 +106,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 @@ -17,21 +17,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 @@ -63,13 +61,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
Loading